---
info:
  title: GitLab API
  version: v4
swagger: '2.0'
produces:
- application/json
securityDefinitions:
  access_token_header:
    type: apiKey
    name: PRIVATE-TOKEN
    in: header
  access_token_query:
    type: apiKey
    name: private_token
    in: query
host: gitlab.com
tags:
- name: badges
  description: Operations about badges
- name: groups
  description: Operations about groups
- name: runners
  description: Operations about runners
- name: web_commits
  description: Operations about web commits
- name: group_avatar
  description: Operations about group_avatars
- name: invitations
  description: Operations about invitations
- name: members
  description: Operations about members
- name: group_access_tokens
  description: Operations about group_access_tokens
- name: wikis
  description: Operations about wikis
- name: branches
  description: Operations about branches
- name: secure_files
  description: Operations about secure_files
- name: commits
  description: Operations about commits
- name: pages
  description: Operations about pages
- name: pages_domains
  description: Operations about pages_domains
- name: project_avatar
  description: Operations about project_avatars
- name: projects_job_token_scope
  description: Operations about projects_job_token_scopes
- name: project_snippets
  description: Operations about project_snippets
- name: protected_tags
  description: Operations about protected_tags
- name: remote_mirrors
  description: Operations about remote_mirrors
- name: project_access_tokens
  description: Operations about project_access_tokens
- name: tags
  description: Operations about tags
- name: alert_management
  description: Operations about alert_managements
- name: batched_background_migrations
  description: Operations about batched_background_migrations
- name: admin
  description: Operations about admins
- name: migrations
  description: Operations about migrations
- name: broadcast_messages
  description: Operations about broadcast_messages
- name: applications
  description: Operations about applications
- name: avatar
  description: Operations about avatars
- name: bulk_imports
  description: Operations about bulk_imports
- name: job
  description: Operations about jobs
- name: jobs
  description: Operations about jobs
- name: events
  description: Operations about events
- name: users
  description: Operations about users
- name: keys
  description: Operations about keys
- name: markdown
  description: Operations about markdowns
- name: namespaces
  description: Operations about namespaces
- name: personal_access_tokens
  description: Operations about personal_access_tokens
- name: project_repository_storage_moves
  description: Operations about project_repository_storage_moves
- name: snippets
  description: Operations about snippets
- name: snippet_repository_storage_moves
  description: Operations about snippet_repository_storage_moves
- name: hooks
  description: Operations about hooks
- name: usage_data
  description: Operations about usage_data
- name: metrics
  description: Operations about metrics
- name: user
  description: Operations about users
- name: user_counts
  description: Operations about user_counts
- name: application
  description: Operations about applications
- name: import
  description: Operations about imports
- name: slack
  description: Operations about slacks
- name: topics
  description: Operations about topics
- name: access_requests
  description: Operations related to access requests
- name: ci_lint
  description: Operations related to linting a CI config file
- name: ci_resource_groups
  description: Operations to manage job concurrency with resource groups
- name: ci_variables
  description: Operations related to CI/CD variables
- name: cluster_agents
  description: Operations related to the GitLab agent for Kubernetes
- name: clusters
  description: Operations related to clusters
- name: composer_packages
  description: Operations related to Composer packages
- name: conan_packages
  description: Operations related to Conan packages
- name: container_registry
  description: Operations related to container registry
- name: container_registry_event
  description: Operations related to container registry events
- name: debian_distribution
  description: Operations related to Debian Linux distributions
- name: debian_packages
  description: Operations related to Debian Linux packages
- name: dependency_proxy
  description: Operations to manage dependency proxy for a groups
- name: deploy_keys
  description: Operations related to deploy keys
- name: deploy_tokens
  description: Operations related to deploy tokens
- name: deployments
  description: Operations related to deployments
- name: dora_metrics
  description: Operations related to DevOps Research and Assessment (DORA) key metrics
- name: environments
  description: Operations related to environments
- name: error_tracking_client_keys
  description: Operations related to error tracking client keys
- name: error_tracking_project_settings
  description: Operations related to error tracking project settings
- name: feature_flags_user_lists
  description: Operations related to accessing GitLab feature flag user lists
- name: feature_flags
  description: Operations related to feature flags
- name: features
  description: Operations related to managing Flipper-based feature flags
- name: freeze_periods
  description: Operations related to deploy freeze periods
- name: generic_packages
  description: Operations related to Generic packages
- name: geo
  description: Operations related to Geo
- name: geo_nodes
  description: Operations related Geo Nodes
- name: go_proxy
  description: Operations related to Go Proxy
- name: group_export
  description: Operations related to exporting groups
- name: group_import
  description: Operations related to importing groups
- name: group_packages
  description: Operations related to group packages
- name: helm_packages
  description: Operations related to Helm packages
- name: integrations
  description: Operations related to integrations
- name: issue_links
  description: Operations related to issue links
- name: jira_connect_subscriptions
  description: Operations related to JiraConnect subscriptions
- name: maven_packages
  description: Operations related to Maven packages
- name: merge_requests
  description: Operations related to merge requests
- name: metadata
  description: Operations related to metadata of the GitLab instance
- name: ml_model_registry
  description: Operations related to Model registry
- name: npm_packages
  description: Operations related to NPM packages
- name: nuget_packages
  description: Operations related to Nuget packages
- name: package_files
  description: Operations about package files
- name: plan_limits
  description: Operations related to plan limits
- name: project_export
  description: Operations related to exporting projects
- name: project_hooks
  description: Operations related to project hooks
- name: project_import
  description: Operations related to importing projects
- name: project_import_bitbucket
  description: Operations related to importing BitBucket projects
- name: project_import_github
  description: Operations related to importing GitHub projects
- name: project_packages
  description: Operations related to project packages
- name: projects
  description: Operations related to projects
- name: protected environments
  description: Operations related to protected environments
- name: pypi_packages
  description: Operations related to PyPI packages
- name: release_links
  description: Operations related to release assets (links)
- name: releases
  description: Operations related to releases
- name: resource_milestone_events
  description: Operations about resource milestone events
- name: rpm_packages
  description: Operations related to RPM packages
- name: rubygem_packages
  description: Operations related to RubyGems
- name: suggestions
  description: Operations related to suggestions
- name: system_hooks
  description: Operations related to system hooks
- name: terraform_state
  description: Operations related to Terraform state files
- name: terraform_registry
  description: Operations related to the Terraform module registry
- name: unleash_api
  description: Operations related to Unleash API
paths:
  "/api/v4/groups/{id}/access_requests":
    get:
      summary: Gets a list of access requests for a group.
      description: This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user
        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: Gets a list of access requests for a group.
          schema:
            "$ref": "#/definitions/API_Entities_AccessRequester"
      tags:
      - access_requests
      operationId: getApiV4GroupsIdAccessRequests
    post:
      summary: Requests access for the authenticated user to a group.
      description: This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user
        type: string
        required: true
      responses:
        '200':
          description: successful operation
          schema:
            "$ref": "#/definitions/API_Entities_AccessRequester"
          examples:
            successfull_response:
              id: 1
              username: raymond_smith
              name: Raymond Smith
              state: active
              created_at: '2012-10-22T14:13:35Z'
              access_level: 20
      tags:
      - access_requests
      operationId: postApiV4GroupsIdAccessRequests
  "/api/v4/groups/{id}/access_requests/{user_id}/approve":
    put:
      summary: Approves an access request for the given user.
      description: This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the access requester
        type: integer
        format: int32
        required: true
      - name: putApiV4GroupsIdAccessRequestsUserIdApprove
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4GroupsIdAccessRequestsUserIdApprove"
      responses:
        '200':
          description: successful operation
          schema:
            "$ref": "#/definitions/API_Entities_AccessRequester"
          examples:
            successfull_response:
              id: 1
              username: raymond_smith
              name: Raymond Smith
              state: active
              created_at: '2012-10-22T14:13:35Z'
              access_level: 20
      tags:
      - access_requests
      operationId: putApiV4GroupsIdAccessRequestsUserIdApprove
  "/api/v4/groups/{id}/access_requests/{user_id}":
    delete:
      summary: Denies an access request for the given user.
      description: This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the access requester
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Denies an access request for the given user.
      tags:
      - access_requests
      operationId: deleteApiV4GroupsIdAccessRequestsUserId
  "/api/v4/groups/{id}/badges":
    get:
      summary: Gets a list of group badges viewable by the authenticated user.
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user.
        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
      - in: query
        name: name
        description: Name for the badge
        type: string
        required: false
      responses:
        '200':
          description: Gets a list of group badges viewable by the authenticated user.
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Badge"
      tags:
      - badges
      operationId: getApiV4GroupsIdBadges
    post:
      summary: Adds a badge to a group.
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user.
        type: string
        required: true
      - name: postApiV4GroupsIdBadges
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdBadges"
      responses:
        '201':
          description: Adds a badge to a group.
          schema:
            "$ref": "#/definitions/API_Entities_Badge"
      tags:
      - badges
      operationId: postApiV4GroupsIdBadges
  "/api/v4/groups/{id}/badges/render":
    get:
      summary: Preview a badge from a group.
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user.
        type: string
        required: true
      - in: query
        name: link_url
        description: URL of the badge link
        type: string
        required: true
      - in: query
        name: image_url
        description: URL of the badge image
        type: string
        required: true
      responses:
        '200':
          description: Preview a badge from a group.
          schema:
            "$ref": "#/definitions/API_Entities_BasicBadgeDetails"
      tags:
      - badges
      operationId: getApiV4GroupsIdBadgesRender
  "/api/v4/groups/{id}/badges/{badge_id}":
    get:
      summary: Gets a badge of a group.
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user.
        type: string
        required: true
      - in: path
        name: badge_id
        description: The badge ID
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Gets a badge of a group.
          schema:
            "$ref": "#/definitions/API_Entities_Badge"
      tags:
      - badges
      operationId: getApiV4GroupsIdBadgesBadgeId
    put:
      summary: Updates a badge of a group.
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user.
        type: string
        required: true
      - in: path
        name: badge_id
        type: integer
        format: int32
        required: true
      - name: putApiV4GroupsIdBadgesBadgeId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4GroupsIdBadgesBadgeId"
      responses:
        '200':
          description: Updates a badge of a group.
          schema:
            "$ref": "#/definitions/API_Entities_Badge"
      tags:
      - badges
      operationId: putApiV4GroupsIdBadgesBadgeId
    delete:
      summary: Removes a badge from the group.
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user.
        type: string
        required: true
      - in: path
        name: badge_id
        description: The badge ID
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Removes a badge from the group.
      tags:
      - badges
      operationId: deleteApiV4GroupsIdBadgesBadgeId
  "/api/v4/groups/{id}/custom_attributes":
    get:
      description: Get all custom attributes on a group
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get all custom attributes on a group
          schema:
            "$ref": "#/definitions/API_Entities_CustomAttribute"
      tags:
      - groups
      operationId: getApiV4GroupsIdCustomAttributes
  "/api/v4/groups/{id}/custom_attributes/{key}":
    get:
      description: Get a custom attribute on a group
      produces:
      - application/json
      parameters:
      - in: path
        name: key
        description: The key of the custom attribute
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a custom attribute on a group
          schema:
            "$ref": "#/definitions/API_Entities_CustomAttribute"
      tags:
      - groups
      operationId: getApiV4GroupsIdCustomAttributesKey
    put:
      description: Set a custom attribute on a group
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: key
        description: The key of the custom attribute
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: putApiV4GroupsIdCustomAttributesKey
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4GroupsIdCustomAttributesKey"
      responses:
        '200':
          description: Set a custom attribute on a group
      tags:
      - groups
      operationId: putApiV4GroupsIdCustomAttributesKey
    delete:
      description: Delete a custom attribute on a group
      produces:
      - application/json
      parameters:
      - in: path
        name: key
        description: The key of the custom attribute
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a custom attribute on a group
      tags:
      - groups
      operationId: deleteApiV4GroupsIdCustomAttributesKey
  "/api/v4/groups":
    get:
      description: Get a groups list
      produces:
      - application/json
      parameters:
      - in: query
        name: statistics
        description: Include project statistics
        type: boolean
        default: false
        required: false
      - in: query
        name: skip_groups
        description: Array of group ids to exclude from list
        type: array
        items:
          type: integer
          format: int32
        required: false
      - in: query
        name: all_available
        description: Show all group that you have access to
        type: boolean
        required: false
      - in: query
        name: visibility
        description: Limit by visibility
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: query
        name: search
        description: Search for a specific group
        type: string
        required: false
      - in: query
        name: owned
        description: Limit by owned by authenticated user
        type: boolean
        default: false
        required: false
      - in: query
        name: order_by
        description: Order by name, path, id or similarity if searching
        type: string
        default: name
        enum:
        - name
        - path
        - id
        - similarity
        required: false
      - in: query
        name: sort
        description: Sort by asc (ascending) or desc (descending)
        type: string
        default: asc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: min_access_level
        description: Minimum access level of authenticated user
        type: integer
        format: int32
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        required: false
      - in: query
        name: top_level_only
        description: Only include top level groups
        type: boolean
        required: false
      - in: query
        name: repository_storage
        description: Filter by repository storage used by the group
        type: string
        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
      - in: query
        name: with_custom_attributes
        description: Include custom attributes in the response
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get a groups list
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Group"
      tags:
      - groups
      operationId: getApiV4Groups
    post:
      description: Create a group. Available only for users who can create groups.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4Groups
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4Groups"
      responses:
        '201':
          description: Create a group. Available only for users who can create groups.
          schema:
            "$ref": "#/definitions/API_Entities_Group"
      tags:
      - groups
      operationId: postApiV4Groups
  "/api/v4/groups/{id}":
    put:
      description: Update a group. Available only for users who can administrate groups.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - name: putApiV4GroupsId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4GroupsId"
      responses:
        '200':
          description: Update a group. Available only for users who can administrate
            groups.
          schema:
            "$ref": "#/definitions/API_Entities_Group"
      tags:
      - groups
      operationId: putApiV4GroupsId
    get:
      description: Get a single group, with containing projects.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: query
        name: with_custom_attributes
        description: Include custom attributes in the response
        type: boolean
        default: false
        required: false
      - in: query
        name: with_projects
        description: Omit project details
        type: boolean
        default: true
        required: false
      responses:
        '200':
          description: Get a single group, with containing projects.
          schema:
            "$ref": "#/definitions/API_Entities_GroupDetail"
      tags:
      - groups
      operationId: getApiV4GroupsId
    delete:
      description: Remove a group.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      responses:
        '204':
          description: Remove a group.
      tags:
      - groups
      operationId: deleteApiV4GroupsId
  "/api/v4/groups/{id}/projects":
    get:
      description: Get a list of projects in this group.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: query
        name: archived
        description: Limit by archived status
        type: boolean
        required: false
      - in: query
        name: visibility
        description: Limit by visibility
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: query
        name: search
        description: Return list of authorized projects matching the search criteria
        type: string
        required: false
      - in: query
        name: order_by
        description: Return projects ordered by field
        type: string
        default: created_at
        enum:
        - id
        - name
        - path
        - created_at
        - updated_at
        - last_activity_at
        - similarity
        - star_count
        required: false
      - in: query
        name: sort
        description: Return projects sorted in ascending and descending order
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: simple
        description: Return only the ID, URL, name, and path of each project
        type: boolean
        default: false
        required: false
      - in: query
        name: owned
        description: Limit by owned by authenticated user
        type: boolean
        default: false
        required: false
      - in: query
        name: starred
        description: Limit by starred status
        type: boolean
        default: false
        required: false
      - in: query
        name: with_issues_enabled
        description: Limit by enabled issues feature
        type: boolean
        default: false
        required: false
      - in: query
        name: with_merge_requests_enabled
        description: Limit by enabled merge requests feature
        type: boolean
        default: false
        required: false
      - in: query
        name: with_shared
        description: Include projects shared to this group
        type: boolean
        default: true
        required: false
      - in: query
        name: include_subgroups
        description: Includes projects in subgroups of this group
        type: boolean
        default: false
        required: false
      - in: query
        name: include_ancestor_groups
        description: Includes projects in ancestors of this group
        type: boolean
        default: false
        required: false
      - in: query
        name: min_access_level
        description: Limit by minimum access level of authenticated user on projects
        type: integer
        format: int32
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        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
      - in: query
        name: with_custom_attributes
        description: Include custom attributes in the response
        type: boolean
        default: false
        required: false
      - in: query
        name: with_security_reports
        description: Return only projects having security report artifacts present
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get a list of projects in this group.
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Project"
      tags:
      - groups
      operationId: getApiV4GroupsIdProjects
  "/api/v4/groups/{id}/projects/shared":
    get:
      description: Get a list of shared projects in this group
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: query
        name: archived
        description: Limit by archived status
        type: boolean
        required: false
      - in: query
        name: visibility
        description: Limit by visibility
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: query
        name: search
        description: Return list of authorized projects matching the search criteria
        type: string
        required: false
      - in: query
        name: order_by
        description: Return projects ordered by field
        type: string
        default: created_at
        enum:
        - id
        - name
        - path
        - created_at
        - updated_at
        - last_activity_at
        - star_count
        required: false
      - in: query
        name: sort
        description: Return projects sorted in ascending and descending order
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: simple
        description: Return only the ID, URL, name, and path of each project
        type: boolean
        default: false
        required: false
      - in: query
        name: starred
        description: Limit by starred status
        type: boolean
        default: false
        required: false
      - in: query
        name: with_issues_enabled
        description: Limit by enabled issues feature
        type: boolean
        default: false
        required: false
      - in: query
        name: with_merge_requests_enabled
        description: Limit by enabled merge requests feature
        type: boolean
        default: false
        required: false
      - in: query
        name: min_access_level
        description: Limit by minimum access level of authenticated user on projects
        type: integer
        format: int32
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        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
      - in: query
        name: with_custom_attributes
        description: Include custom attributes in the response
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get a list of shared projects in this group
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Project"
      tags:
      - groups
      operationId: getApiV4GroupsIdProjectsShared
  "/api/v4/groups/{id}/subgroups":
    get:
      description: Get a list of subgroups in this group.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: query
        name: statistics
        description: Include project statistics
        type: boolean
        default: false
        required: false
      - in: query
        name: skip_groups
        description: Array of group ids to exclude from list
        type: array
        items:
          type: integer
          format: int32
        required: false
      - in: query
        name: all_available
        description: Show all group that you have access to
        type: boolean
        required: false
      - in: query
        name: visibility
        description: Limit by visibility
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: query
        name: search
        description: Search for a specific group
        type: string
        required: false
      - in: query
        name: owned
        description: Limit by owned by authenticated user
        type: boolean
        default: false
        required: false
      - in: query
        name: order_by
        description: Order by name, path, id or similarity if searching
        type: string
        default: name
        enum:
        - name
        - path
        - id
        - similarity
        required: false
      - in: query
        name: sort
        description: Sort by asc (ascending) or desc (descending)
        type: string
        default: asc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: min_access_level
        description: Minimum access level of authenticated user
        type: integer
        format: int32
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        required: false
      - in: query
        name: top_level_only
        description: Only include top level groups
        type: boolean
        required: false
      - in: query
        name: repository_storage
        description: Filter by repository storage used by the group
        type: string
        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
      - in: query
        name: with_custom_attributes
        description: Include custom attributes in the response
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get a list of subgroups in this group.
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Group"
      tags:
      - groups
      operationId: getApiV4GroupsIdSubgroups
  "/api/v4/groups/{id}/descendant_groups":
    get:
      description: Get a list of descendant groups of this group.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: query
        name: statistics
        description: Include project statistics
        type: boolean
        default: false
        required: false
      - in: query
        name: skip_groups
        description: Array of group ids to exclude from list
        type: array
        items:
          type: integer
          format: int32
        required: false
      - in: query
        name: all_available
        description: Show all group that you have access to
        type: boolean
        required: false
      - in: query
        name: visibility
        description: Limit by visibility
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: query
        name: search
        description: Search for a specific group
        type: string
        required: false
      - in: query
        name: owned
        description: Limit by owned by authenticated user
        type: boolean
        default: false
        required: false
      - in: query
        name: order_by
        description: Order by name, path, id or similarity if searching
        type: string
        default: name
        enum:
        - name
        - path
        - id
        - similarity
        required: false
      - in: query
        name: sort
        description: Sort by asc (ascending) or desc (descending)
        type: string
        default: asc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: min_access_level
        description: Minimum access level of authenticated user
        type: integer
        format: int32
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        required: false
      - in: query
        name: top_level_only
        description: Only include top level groups
        type: boolean
        required: false
      - in: query
        name: repository_storage
        description: Filter by repository storage used by the group
        type: string
        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
      - in: query
        name: with_custom_attributes
        description: Include custom attributes in the response
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get a list of descendant groups of this group.
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Group"
      tags:
      - groups
      operationId: getApiV4GroupsIdDescendantGroups
  "/api/v4/groups/{id}/projects/{project_id}":
    post:
      description: Transfer a project to the group namespace. Available only for admin.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: path
        name: project_id
        description: The ID or path of the project
        type: string
        required: true
      responses:
        '201':
          description: Transfer a project to the group namespace. Available only for
            admin.
          schema:
            "$ref": "#/definitions/API_Entities_GroupDetail"
      tags:
      - groups
      operationId: postApiV4GroupsIdProjectsProjectId
  "/api/v4/groups/{id}/transfer_locations":
    get:
      description: Get the groups to where the current group can be transferred to
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: query
        name: search
        description: Return list of namespaces matching the search criteria
        type: string
        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: Get the groups to where the current group can be transferred
            to
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Group"
      tags:
      - groups
      operationId: getApiV4GroupsIdTransferLocations
  "/api/v4/groups/{id}/transfer":
    post:
      description: Transfer a group to a new parent group or promote a subgroup to
        a root group
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - name: postApiV4GroupsIdTransfer
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdTransfer"
      responses:
        '201':
          description: Transfer a group to a new parent group or promote a subgroup
            to a root group
      tags:
      - groups
      operationId: postApiV4GroupsIdTransfer
  "/api/v4/groups/{id}/share":
    post:
      description: Share a group with a group
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - name: postApiV4GroupsIdShare
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdShare"
      responses:
        '201':
          description: Share a group with a group
          schema:
            "$ref": "#/definitions/API_Entities_GroupDetail"
      tags:
      - groups
      operationId: postApiV4GroupsIdShare
  "/api/v4/groups/{id}/share/{group_id}":
    delete:
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: path
        name: group_id
        description: The ID of the shared group
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: deleted Share
      tags:
      - groups
      operationId: deleteApiV4GroupsIdShareGroupId
  "/api/v4/groups/{id}/ldap_sync":
    post:
      description: Sync a group with LDAP.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Sync a group with LDAP.
      tags:
      - groups
      operationId: postApiV4GroupsIdLdapSync
  "/api/v4/groups/{id}/restore":
    post:
      description: Restore a group.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Restore a group.
      tags:
      - groups
      operationId: postApiV4GroupsIdRestore
  "/api/v4/groups/{id}/provisioned_users":
    get:
      description: Get a list of users provisioned by the group
      produces:
      - application/json
      parameters:
      - in: query
        name: username
        description: Return a single user with a specific username
        type: string
        required: false
      - in: query
        name: search
        description: Search users by name, email or username
        type: string
        required: false
      - in: query
        name: active
        description: Return only active users
        type: boolean
        default: false
        required: false
      - in: query
        name: blocked
        description: Return only blocked users
        type: boolean
        default: false
        required: false
      - in: query
        name: created_after
        description: Return users created after the specified time
        type: string
        format: date-time
        required: false
      - in: query
        name: created_before
        description: Return users created before the specified time
        type: string
        format: date-time
        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
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a list of users provisioned by the group
          schema:
            "$ref": "#/definitions/API_Entities_UserPublic"
      tags:
      - groups
      operationId: getApiV4GroupsIdProvisionedUsers
  "/api/v4/groups/{id}/users":
    get:
      description: Get a list of users for the group
      produces:
      - application/json
      parameters:
      - in: query
        name: search
        description: Search users by name, email or username
        type: string
        required: false
      - in: query
        name: active
        description: Filters only active users
        type: boolean
        default: false
        required: false
      - in: query
        name: include_saml_users
        description: Return users with a SAML identity in this group
        type: boolean
        required: false
      - in: query
        name: include_service_accounts
        description: Return service accounts owned by this group
        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
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a list of users for the group
          schema:
            "$ref": "#/definitions/API_Entities_UserPublic"
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '404':
          description: 404 Not Found
      tags:
      - groups
      operationId: getApiV4GroupsIdUsers
  "/api/v4/groups/{id}/ssh_certificates":
    get:
      summary: Get a list of Groups::SshCertificate for a Group.
      description: Get a list of ssh certificates created for a group.
      produces:
      - application/json
      parameters:
      - 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
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a list of ssh certificates created for a group.
          schema:
            type: array
            items:
              "$ref": "#/definitions/EE_API_Entities_SshCertificate"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: 404 Not Found
      tags:
      - groups
      operationId: getApiV4GroupsIdSshCertificates
    post:
      summary: Add a Groups::SshCertificate.
      description: Create a ssh certificate for a group.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: postApiV4GroupsIdSshCertificates
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdSshCertificates"
      responses:
        '201':
          description: Create a ssh certificate for a group.
          schema:
            "$ref": "#/definitions/EE_API_Entities_SshCertificate"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - groups
      operationId: postApiV4GroupsIdSshCertificates
  "/api/v4/groups/{id}/ssh_certificates/{ssh_certificates_id}":
    delete:
      summary: Removes an ssh certificate from a group.
      description: Removes a Groups::SshCertificate
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - in: path
        name: ssh_certificates_id
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Removes an ssh certificate from a group.
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable entity
      tags:
      - groups
      operationId: deleteApiV4GroupsIdSshCertificatesSshCertificatesId
  "/api/v4/groups/{id}/runners":
    get:
      summary: List group's runners
      description: List all runners available in the group as well as its ancestor
        groups, including any allowed shared runners.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: query
        name: type
        description: The type of runners to return
        type: string
        enum:
        - instance_type
        - group_type
        - project_type
        required: false
      - in: query
        name: paused
        description: Whether to include only runners that are accepting or ignoring
          new jobs
        type: boolean
        required: false
      - in: query
        name: status
        description: The status of runners to return
        type: string
        enum:
        - active
        - paused
        - online
        - offline
        - never_contacted
        - stale
        required: false
      - in: query
        name: tag_list
        description: A list of runner tags
        type: array
        items:
          type: string
        required: false
        example: "['macos', 'shell']"
      - in: query
        name: version_prefix
        description: The version prefix of runners to return
        type: string
        required: false
        example: "'15.1.' or '16.'"
      - 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 runners available for group
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Runner"
        '400':
          description: Scope contains invalid value
        '403':
          description: Forbidden
      tags:
      - runners
      - groups
      operationId: getApiV4GroupsIdRunners
  "/api/v4/groups/{id}/runners/reset_registration_token":
    post:
      summary: Reset the runner registration token for a group
      description: Reset runner registration token
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      responses:
        '201':
          description: Reset runner registration token
          schema:
            "$ref": "#/definitions/API_Entities_Ci_ResetTokenResult"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Group Not Found
      tags:
      - runners
      - groups
      operationId: postApiV4GroupsIdRunnersResetRegistrationToken
  "/api/v4/groups/{id}/dependency_proxy/cache":
    delete:
      summary: Purge the dependency proxy for a group
      description: Schedules for deletion the cached manifests and blobs for a group.This
        endpoint requires the Owner role for the group.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user
        type: string
        required: true
      responses:
        '202':
          description: Purge the dependency proxy for a group
        '401':
          description: Unauthorized
      tags:
      - dependency_proxy
      operationId: deleteApiV4GroupsIdDependencyProxyCache
  "/api/v4/groups/{id}/deploy_tokens":
    get:
      summary: List group deploy tokens
      description: Get a list of a group's deploy tokens. This feature was introduced
        in GitLab 12.9.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user
        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
      - in: query
        name: active
        description: Limit by active status
        type: boolean
        required: false
      responses:
        '200':
          description: List group deploy tokens
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_DeployToken"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - deploy_tokens
      operationId: getApiV4GroupsIdDeployTokens
    post:
      summary: Create a group deploy token
      description: Creates a new deploy token for a group. This feature was introduced
        in GitLab 12.9.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user
        type: integer
        format: int32
        required: true
      - name: postApiV4GroupsIdDeployTokens
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdDeployTokens"
      responses:
        '201':
          description: Create a group deploy token
          schema:
            "$ref": "#/definitions/API_Entities_DeployTokenWithToken"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deploy_tokens
      operationId: postApiV4GroupsIdDeployTokens
  "/api/v4/groups/{id}/deploy_tokens/{token_id}":
    get:
      summary: Get a group deploy token
      description: 'Get a single group''s deploy token by ID. This feature was introduced
        in GitLab 14.9. '
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user
        type: integer
        format: int32
        required: true
      - in: path
        name: token_id
        description: The ID of the deploy token
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a group deploy token
          schema:
            "$ref": "#/definitions/API_Entities_DeployToken"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deploy_tokens
      operationId: getApiV4GroupsIdDeployTokensTokenId
    delete:
      summary: Delete a group deploy token
      description: Removes a deploy token from the group. This feature was introduced
        in GitLab 12.9.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user
        type: integer
        format: int32
        required: true
      - in: path
        name: token_id
        description: The ID of the deploy token
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a group deploy token
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deploy_tokens
      operationId: deleteApiV4GroupsIdDeployTokensTokenId
  "/api/v4/groups/{id}/avatar":
    get:
      summary: Download the group avatar
      description: This feature was introduced in GitLab 14.0
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the group
        type: string
        required: true
      responses:
        '200':
          description: Download the group avatar
      tags:
      - group_avatar
      operationId: getApiV4GroupsIdAvatar
  "/api/v4/groups/{id}/clusters":
    get:
      summary: List group clusters
      description: This feature was introduced in GitLab 12.1. Returns a list of group
        clusters.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the 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: List group clusters
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Cluster"
        '403':
          description: Forbidden
      tags:
      - clusters
      operationId: getApiV4GroupsIdClusters
  "/api/v4/groups/{id}/clusters/{cluster_id}":
    get:
      summary: Get a single group cluster
      description: This feature was introduced in GitLab 12.1. Gets a single group
        cluster.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the group
        type: string
        required: true
      - in: path
        name: cluster_id
        description: The cluster ID
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single group cluster
          schema:
            "$ref": "#/definitions/API_Entities_ClusterGroup"
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - clusters
      operationId: getApiV4GroupsIdClustersClusterId
    put:
      summary: Edit group cluster
      description: This feature was introduced in GitLab 12.1. Updates an existing
        group cluster.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the group
        type: string
        required: true
      - in: path
        name: cluster_id
        description: The cluster ID
        type: integer
        format: int32
        required: true
      - name: putApiV4GroupsIdClustersClusterId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4GroupsIdClustersClusterId"
      responses:
        '200':
          description: Edit group cluster
          schema:
            "$ref": "#/definitions/API_Entities_ClusterGroup"
        '400':
          description: Validation error
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - clusters
      operationId: putApiV4GroupsIdClustersClusterId
    delete:
      summary: Delete group cluster
      description: This feature was introduced in GitLab 12.1. Deletes an existing
        group cluster. Does not remove existing resources within the connected Kubernetes
        cluster.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the group
        type: string
        required: true
      - in: path
        name: cluster_id
        description: The Cluster ID
        type: integer
        format: int32
        required: true
      responses:
        '403':
          description: Forbidden
        '204':
          description: Delete group cluster
          schema:
            "$ref": "#/definitions/API_Entities_ClusterGroup"
        '404':
          description: Not found
      tags:
      - clusters
      operationId: deleteApiV4GroupsIdClustersClusterId
  "/api/v4/groups/{id}/clusters/user":
    post:
      summary: Add existing cluster to group
      description: This feature was introduced in GitLab 12.1. Adds an existing Kubernetes
        cluster to the group.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the group
        type: string
        required: true
      - name: postApiV4GroupsIdClustersUser
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdClustersUser"
      responses:
        '201':
          description: Add existing cluster to group
          schema:
            "$ref": "#/definitions/API_Entities_ClusterGroup"
        '400':
          description: Validation error
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - clusters
      operationId: postApiV4GroupsIdClustersUser
  "/api/v4/groups/{id}/registry/repositories":
    get:
      summary: List registry repositories within a group
      description: Get a list of registry repositories in a group. This feature was
        introduced in GitLab 12.2.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group accessible by the authenticated
          user
        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: List registry repositories within a group
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ContainerRegistry_Repository"
        '401':
          description: Unauthorized
        '404':
          description: Group Not Found
      tags:
      - container_registry
      operationId: getApiV4GroupsIdRegistryRepositories
  "/api/v4/groups/{id}/export/download":
    get:
      summary: Download export
      description: This feature was introduced in GitLab 12.5.
      produces:
      - application/octet-stream
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      responses:
        '200':
          description: Download export
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - group_export
      operationId: getApiV4GroupsIdExportDownload
  "/api/v4/groups/{id}/export":
    post:
      summary: Start export
      description: This feature was introduced in GitLab 12.5.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      responses:
        '202':
          description: Start export
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '429':
          description: Too many requests
        '503':
          description: Service unavailable
      tags:
      - group_export
      operationId: postApiV4GroupsIdExport
  "/api/v4/groups/{id}/export_relations":
    post:
      summary: Start relations export
      description: This feature was introduced in GitLab 13.12
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - name: postApiV4GroupsIdExportRelations
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdExportRelations"
      responses:
        '202':
          description: Start relations export
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - group_export
      operationId: postApiV4GroupsIdExportRelations
  "/api/v4/groups/{id}/export_relations/download":
    get:
      summary: Download relations export
      description: This feature was introduced in GitLab 13.12
      produces:
      - application/octet-stream
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: query
        name: relation
        description: Group relation name
        type: string
        required: true
      - in: query
        name: batched
        description: Whether to download in batches
        type: boolean
        required: false
      - in: query
        name: batch_number
        description: Batch number to download
        type: integer
        format: int32
        required: false
      responses:
        '200':
          description: Download relations export
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - group_export
      operationId: getApiV4GroupsIdExportRelationsDownload
  "/api/v4/groups/{id}/export_relations/status":
    get:
      summary: Relations export status
      description: This feature was introduced in GitLab 13.12
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a group
        type: string
        required: true
      - in: query
        name: relation
        description: Group relation name
        type: string
        required: false
      responses:
        '200':
          description: Relations export status
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_BulkImports_ExportStatus"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - group_export
      operationId: getApiV4GroupsIdExportRelationsStatus
  "/api/v4/groups/import/authorize":
    post:
      summary: Workhorse authorize the group import upload
      description: This feature was introduced in GitLab 12.8
      produces:
      - application/json
      consumes:
      - application/json
      responses:
        '201':
          description: Workhorse authorize the group import upload
      tags:
      - group_import
      operationId: postApiV4GroupsImportAuthorize
  "/api/v4/groups/import":
    post:
      summary: Create a new group import
      description: This feature was introduced in GitLab 12.8
      produces:
      - application/json
      consumes:
      - multipart/form-data
      parameters:
      - in: formData
        name: path
        description: Group path
        type: string
        required: true
      - in: formData
        name: name
        description: Group name
        type: string
        required: true
      - in: formData
        name: file
        description: The group export file to be imported
        type: file
        required: true
      - in: formData
        name: parent_id
        description: The ID of the parent group that the group will be imported into.
          Defaults to the current user's namespace.
        type: integer
        format: int32
        required: false
      - in: formData
        name: organization_id
        description: 'The ID of the organization that the group will be part of. '
        type: integer
        format: int32
        required: false
      responses:
        '202':
          description: Create a new group import
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '400':
          description: Bad request
        '503':
          description: Service unavailable
      tags:
      - group_import
      operationId: postApiV4GroupsImport
  "/api/v4/groups/{id}/packages":
    get:
      summary: List packages within a group
      description: Get a list of project packages at the group level. This feature
        was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID or URL-encoded path of the group
        type: string
        required: true
      - in: query
        name: exclude_subgroups
        description: Determines if subgroups should be excluded
        type: boolean
        default: false
        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
      - in: query
        name: order_by
        description: Return packages ordered by `created_at`, `name`, `version` or
          `type` fields.
        type: string
        default: created_at
        enum:
        - created_at
        - name
        - version
        - type
        - project_path
        required: false
      - in: query
        name: sort
        description: Return packages sorted in `asc` or `desc` order.
        type: string
        default: asc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: package_type
        description: Return packages of a certain type
        type: string
        enum:
        - maven
        - npm
        - conan
        - nuget
        - pypi
        - composer
        - generic
        - golang
        - debian
        - rubygems
        - helm
        - terraform_module
        - rpm
        - ml_model
        required: false
      - in: query
        name: package_name
        description: Return packages with this name
        type: string
        required: false
      - in: query
        name: package_version
        description: Return packages with this version
        type: string
        required: false
      - in: query
        name: include_versionless
        description: Returns packages without a version
        type: boolean
        required: false
      - in: query
        name: status
        description: Return packages with specified status
        type: string
        enum:
        - default
        - hidden
        - processing
        - error
        - pending_destruction
        required: false
      responses:
        '200':
          description: List packages within a group
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Package"
        '401':
          description: Unauthorized
        '404':
          description: Group Not Found
      tags:
      - group_packages
      operationId: getApiV4GroupsIdPackages
  "/api/v4/groups/{id}/variables":
    get:
      description: Get a list of group-level variables
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: |-
          The ID of a group or URL-encoded path of the group owned by the authenticated
                user
        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: Get a list of group-level variables
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
      tags:
      - ci_variables
      operationId: getApiV4GroupsIdVariables
    post:
      description: Create a new variable in a group
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: |-
          The ID of a group or URL-encoded path of the group owned by the authenticated
                user
        type: string
        required: true
      - name: postApiV4GroupsIdVariables
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdVariables"
      responses:
        '201':
          description: Create a new variable in a group
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
        '400':
          description: 400 Bad Request
      tags:
      - ci_variables
      operationId: postApiV4GroupsIdVariables
  "/api/v4/groups/{id}/variables/{key}":
    get:
      description: Get the details of a group’s specific variable
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: |-
          The ID of a group or URL-encoded path of the group owned by the authenticated
                user
        type: string
        required: true
      - in: path
        name: key
        description: The key of the variable
        type: string
        required: true
      responses:
        '200':
          description: Get the details of a group’s specific variable
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
        '404':
          description: Group Variable Not Found
      tags:
      - ci_variables
      operationId: getApiV4GroupsIdVariablesKey
    put:
      description: Update an existing variable from a group
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: |-
          The ID of a group or URL-encoded path of the group owned by the authenticated
                user
        type: string
        required: true
      - in: path
        name: key
        description: The key of a variable
        type: string
        required: true
      - name: putApiV4GroupsIdVariablesKey
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4GroupsIdVariablesKey"
      responses:
        '200':
          description: Update an existing variable from a group
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
        '400':
          description: 400 Bad Request
        '404':
          description: Group Variable Not Found
      tags:
      - ci_variables
      operationId: putApiV4GroupsIdVariablesKey
    delete:
      description: Delete an existing variable from a group
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: |-
          The ID of a group or URL-encoded path of the group owned by the authenticated
                user
        type: string
        required: true
      - in: path
        name: key
        description: The key of a variable
        type: string
        required: true
      responses:
        '404':
          description: Group Variable Not Found
        '204':
          description: Delete an existing variable from a group
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
      tags:
      - ci_variables
      operationId: deleteApiV4GroupsIdVariablesKey
  "/api/v4/groups/{id}/invitations":
    post:
      summary: Invite non-members by email address to a group or project.
      description: This feature was introduced in GitLab 13.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
      - name: postApiV4GroupsIdInvitations
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdInvitations"
      responses:
        '201':
          description: Invite non-members by email address to a group or project.
          schema:
            "$ref": "#/definitions/API_Entities_Invitation"
      tags:
      - invitations
      operationId: postApiV4GroupsIdInvitations
    get:
      summary: Get a list of group or project invitations viewable by the authenticated
        user
      description: This feature was introduced in GitLab 13.6
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        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
      - in: query
        name: query
        description: A query string to search for members
        type: string
        required: false
      responses:
        '200':
          description: Get a list of group or project invitations viewable by the
            authenticated user
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Invitation"
      tags:
      - invitations
      operationId: getApiV4GroupsIdInvitations
  "/api/v4/groups/{id}/invitations/{email}":
    put:
      description: Updates a group or project invitation.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
      - in: path
        name: email
        description: The email address of the invitation
        type: string
        required: true
      - name: putApiV4GroupsIdInvitationsEmail
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4GroupsIdInvitationsEmail"
      responses:
        '200':
          description: Updates a group or project invitation.
          schema:
            "$ref": "#/definitions/API_Entities_Invitation"
      tags:
      - invitations
      operationId: putApiV4GroupsIdInvitationsEmail
    delete:
      description: Removes an invitation from a group or project.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
      - in: path
        name: email
        description: The email address of the invitation
        type: string
        required: true
      responses:
        '204':
          description: Removes an invitation from a group or project.
        '403':
          description: Forbidden
        '404':
          description: Not found
        '409':
          description: Could not delete invitation
      tags:
      - invitations
      operationId: deleteApiV4GroupsIdInvitationsEmail
  "/api/v4/groups/{id}/-/packages/maven/*path/{file_name}":
    get:
      summary: Download the maven package file at a group level
      description: This feature was introduced in GitLab 11.7
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group
        type: string
        required: true
      - in: query
        name: path
        description: Package path
        type: string
        required: true
        example: foo/bar/mypkg/1.0-SNAPSHOT
      - in: path
        name: file_name
        description: Package file name
        type: string
        required: true
        example: mypkg-1.0-SNAPSHOT.jar
      responses:
        '200':
          description: Download the maven package file at a group level
        '302':
          description: Download the maven package file at a group level
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - maven_packages
      operationId: getApiV4GroupsIdPackagesMaven*pathFileName
  "/api/v4/groups/{id}/members":
    get:
      description: Gets a list of group or project members viewable by the authenticated
        user.
      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.
          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, 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: 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, including those who gained membership through ancestor group.
          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:
      - groups
      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:
      - groups
      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:
      - groups
      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:
      - groups
      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:
      - groups
      operationId: getApiV4GroupsIdPendingMembers
  "/api/v4/groups/{id}/billable_members":
    get:
      description: Gets a list of billable users of root group.
      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
      - in: query
        name: search
        description: The exact name of the subscribed member
        type: string
        required: false
      - in: query
        name: sort
        description: The sorting option
        type: string
        enum:
        - access_level_asc
        - access_level_desc
        - last_joined
        - name_asc
        - name_desc
        - oldest_joined
        - oldest_sign_in
        - recent_sign_in
        - last_activity_on_asc
        - last_activity_on_desc
        required: false
      responses:
        '200':
          description: Gets a list of billable users of root group.
          schema:
            "$ref": "#/definitions/API_Entities_Member"
      tags:
      - groups
      operationId: getApiV4GroupsIdBillableMembers
  "/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:
      - groups
      operationId: putApiV4GroupsIdMembersUserIdState
  "/api/v4/groups/{id}/billable_members/{user_id}/memberships":
    get:
      description: Get the direct memberships of a billable user of a root 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 root group.
          schema:
            "$ref": "#/definitions/EE_API_Entities_BillableMembership"
      tags:
      - groups
      operationId: getApiV4GroupsIdBillableMembersUserIdMemberships
  "/api/v4/groups/{id}/billable_members/{user_id}/indirect":
    get:
      description: Get the indirect memberships of a billable user of a root 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 root group.
          schema:
            "$ref": "#/definitions/EE_API_Entities_BillableMembership"
      tags:
      - groups
      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:
      - groups
      operationId: deleteApiV4GroupsIdBillableMembersUserId
  "/api/v4/groups/{id}/merge_requests":
    get:
      summary: List group merge requests
      description: Get all merge requests for this group and its subgroups.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user.
        type: string
        required: true
      - in: query
        name: author_id
        description: Returns merge requests created by the given user `id`. Mutually
          exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`.
        type: integer
        format: int32
        required: false
      - in: query
        name: author_username
        description: Returns merge requests created by the given `username`. Mutually
          exclusive with `author_id`.
        type: string
        required: false
      - in: query
        name: assignee_id
        description: Returns merge requests assigned to the given user `id`. `None`
          returns unassigned merge requests. `Any` returns merge requests with an
          assignee.
        type: integer
        format: int32
        required: false
      - in: query
        name: assignee_username
        description: Returns merge requests created by the given `username`. Mutually
          exclusive with `author_id`.
        type: array
        items:
          type: string
        required: false
      - in: query
        name: reviewer_username
        description: Returns merge requests which have the user as a reviewer with
          the given `username`. `None` returns merge requests with no reviewers. `Any`
          returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`.
          Introduced in GitLab 13.8.
        type: string
        required: false
      - in: query
        name: labels
        description: Returns merge requests matching a comma-separated list of labels.
          `None` lists all merge requests with no labels. `Any` lists all merge requests
          with at least one label. Predefined names are case-insensitive.
        type: array
        items:
          type: string
        required: false
      - in: query
        name: milestone
        description: Returns merge requests for a specific milestone. `None` returns
          merge requests with no milestone. `Any` returns merge requests that have
          an assigned milestone.
        type: string
        required: false
      - in: query
        name: my_reaction_emoji
        description: Returns merge requests reacted by the authenticated user by the
          given `emoji`. `None` returns issues not given a reaction. `Any` returns
          issues given at least one reaction.
        type: string
        required: false
      - in: query
        name: reviewer_id
        description: Returns merge requests which have the user as a reviewer with
          the given user `id`. `None` returns merge requests with no reviewers. `Any`
          returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`.
        type: integer
        format: int32
        required: false
      - in: query
        name: state
        description: Returns `all` merge requests or just those that are `opened`,
          `closed`, `locked`, or `merged`.
        type: string
        default: all
        enum:
        - opened
        - closed
        - locked
        - merged
        - all
        required: false
      - in: query
        name: order_by
        description: Returns merge requests ordered by `created_at`, `label_priority`,
          `milestone_due`, `popularity`, `priority`, `title` or `updated_at` fields.
          Introduced in GitLab 14.8.
        type: string
        default: created_at
        enum:
        - created_at
        - label_priority
        - milestone_due
        - popularity
        - priority
        - title
        - updated_at
        required: false
      - in: query
        name: sort
        description: Returns merge requests sorted in `asc` or `desc` order.
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: with_labels_details
        description: 'If `true`, response returns more details for each label in labels
          field: `:name`,`:color`, `:description`, `:description_html`, `:text_color`'
        type: boolean
        default: false
        required: false
      - in: query
        name: with_merge_status_recheck
        description: If `true`, this projection requests (but does not guarantee)
          that the `merge_status` field be recalculated asynchronously. Introduced
          in GitLab 13.0.
        type: boolean
        default: false
        required: false
      - in: query
        name: created_after
        description: Returns merge requests created on or after the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: created_before
        description: Returns merge requests created on or before the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: updated_after
        description: Returns merge requests updated on or after the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: updated_before
        description: Returns merge requests updated on or before the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: view
        description: If simple, returns the `iid`, URL, title, description, and basic
          state of merge request
        type: string
        enum:
        - simple
        required: false
      - in: query
        name: scope
        description: 'Returns merge requests for the given scope: `created_by_me`,
          `assigned_to_me` or `all`'
        type: string
        enum:
        - created-by-me
        - assigned-to-me
        - created_by_me
        - assigned_to_me
        - all
        required: false
      - in: query
        name: source_branch
        description: Returns merge requests with the given source branch
        type: string
        required: false
      - in: query
        name: source_project_id
        description: Returns merge requests with the given source project id
        type: integer
        format: int32
        required: false
      - in: query
        name: target_branch
        description: Returns merge requests with the given target branch
        type: string
        required: false
      - in: query
        name: search
        description: Search merge requests against their `title` and `description`.
        type: string
        required: false
      - in: query
        name: in
        description: Modify the scope of the search attribute. `title`, `description`,
          or a string joining them with comma.
        type: string
        required: false
        example: title,description
      - in: query
        name: wip
        description: Filter merge requests against their `wip` status. `yes` to return
          only draft merge requests, `no` to return non-draft merge requests.
        type: string
        enum:
        - 'yes'
        - 'no'
        required: false
      - in: query
        name: not[author_id]
        description: "`<Negated>` Returns merge requests created by the given user
          `id`. Mutually exclusive with `author_username`. Combine with `scope=all`
          or `scope=assigned_to_me`."
        type: integer
        format: int32
        required: false
      - in: query
        name: not[author_username]
        description: "`<Negated>` Returns merge requests created by the given `username`.
          Mutually exclusive with `author_id`."
        type: string
        required: false
      - in: query
        name: not[assignee_id]
        description: "`<Negated>` Returns merge requests assigned to the given user
          `id`. `None` returns unassigned merge requests. `Any` returns merge requests
          with an assignee."
        type: integer
        format: int32
        required: false
      - in: query
        name: not[assignee_username]
        description: "`<Negated>` Returns merge requests created by the given `username`.
          Mutually exclusive with `author_id`."
        type: array
        items:
          type: string
        required: false
      - in: query
        name: not[reviewer_username]
        description: "`<Negated>` Returns merge requests which have the user as a
          reviewer with the given `username`. `None` returns merge requests with no
          reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive
          with `reviewer_id`. Introduced in GitLab 13.8."
        type: string
        required: false
      - in: query
        name: not[labels]
        description: "`<Negated>` Returns merge requests matching a comma-separated
          list of labels. `None` lists all merge requests with no labels. `Any` lists
          all merge requests with at least one label. Predefined names are case-insensitive."
        type: array
        items:
          type: string
        required: false
      - in: query
        name: not[milestone]
        description: "`<Negated>` Returns merge requests for a specific milestone.
          `None` returns merge requests with no milestone. `Any` returns merge requests
          that have an assigned milestone."
        type: string
        required: false
      - in: query
        name: not[my_reaction_emoji]
        description: "`<Negated>` Returns merge requests reacted by the authenticated
          user by the given `emoji`. `None` returns issues not given a reaction. `Any`
          returns issues given at least one reaction."
        type: string
        required: false
      - in: query
        name: not[reviewer_id]
        description: "`<Negated>` Returns merge requests which have the user as a
          reviewer with the given user `id`. `None` returns merge requests with no
          reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive
          with `reviewer_username`."
        type: integer
        format: int32
        required: false
      - in: query
        name: deployed_before
        description: Returns merge requests deployed before the given date/time. Expected
          in ISO 8601 format.
        type: string
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: deployed_after
        description: Returns merge requests deployed after the given date/time. Expected
          in ISO 8601 format
        type: string
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: environment
        description: Returns merge requests deployed to the given environment
        type: string
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: approved
        description: Filters merge requests by their `approved` status. `yes` returns
          only approved merge requests. `no` returns only non-approved merge requests.
        type: string
        enum:
        - 'yes'
        - 'no'
        required: false
      - in: query
        name: merge_user_id
        description: Returns merge requests which have been merged by the user with
          the given user `id`. Mutually exclusive with `merge_user_username`.
        type: integer
        format: int32
        required: false
      - in: query
        name: merge_user_username
        description: Returns merge requests which have been merged by the user with
          the given `username`. Mutually exclusive with `merge_user_id`.
        type: string
        required: false
      - in: query
        name: approver_ids
        description: Return merge requests which have specified the users with the
          given IDs as an individual approver
        type: string
        required: false
      - in: query
        name: approved_by_ids
        description: Return merge requests which have been approved by the specified
          users with the given IDs
        type: string
        required: false
      - in: query
        name: approved_by_usernames
        description: |-
          Return merge requests which have been approved by the specified users with the given
                      usernames
        type: string
        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
      - in: query
        name: non_archived
        description: Returns merge requests from non archived projects only.
        type: boolean
        default: true
        required: false
      responses:
        '200':
          description: List group merge requests
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequestBasic"
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - merge_requests
      operationId: getApiV4GroupsIdMergeRequests
  "/api/v4/groups/{id}/releases":
    get:
      summary: List group releases
      description: Returns a list of group releases.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group owned by the authenticated
          user
        type: string
        required: true
      - in: query
        name: sort
        description: The direction of the order. Either `desc` (default) for descending
          order or `asc` for ascending order
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: simple
        description: Return only limited fields for each release
        type: boolean
        default: false
        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: List group releases
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Release"
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - releases
      operationId: getApiV4GroupsIdReleases
  "/api/v4/groups/{id}/access_tokens":
    get:
      summary: Get list of all access tokens for the specified resource
      description: This feature was introduced in GitLab 13.9.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID or URL-encoded path of the group
        type: string
        required: true
      responses:
        '200':
          description: Get list of all access tokens for the specified resource
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ResourceAccessToken"
      tags:
      - group_access_tokens
      operationId: getApiV4GroupsIdAccessTokens
    post:
      summary: Create a resource access token
      description: This feature was introduced in GitLab 13.9.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
        example: 2
      - name: postApiV4GroupsIdAccessTokens
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdAccessTokens"
      responses:
        '201':
          description: Create a resource access token
          schema:
            "$ref": "#/definitions/API_Entities_ResourceAccessTokenWithToken"
      tags:
      - group_access_tokens
      operationId: postApiV4GroupsIdAccessTokens
  "/api/v4/groups/{id}/access_tokens/{token_id}":
    get:
      summary: Get an access token for the specified resource by ID
      description: This feature was introduced in GitLab 14.10.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID or URL-encoded path of the group
        type: string
        required: true
      - in: path
        name: token_id
        description: The ID of the token
        type: string
        required: true
      responses:
        '200':
          description: Get an access token for the specified resource by ID
          schema:
            "$ref": "#/definitions/API_Entities_ResourceAccessToken"
      tags:
      - group_access_tokens
      operationId: getApiV4GroupsIdAccessTokensTokenId
    delete:
      summary: Revoke a resource access token
      description: This feature was introduced in GitLab 13.9.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
      - in: path
        name: token_id
        description: The ID of the token
        type: string
        required: true
      responses:
        '204':
          description: Revoke a resource access token
        '400':
          description: Bad Request
        '404':
          description: Not found
      tags:
      - group_access_tokens
      operationId: deleteApiV4GroupsIdAccessTokensTokenId
  "/api/v4/groups/{id}/access_tokens/{token_id}/rotate":
    post:
      summary: Rotate a resource access token
      description: This feature was introduced in GitLab 16.0.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID
        type: string
        required: true
      - in: path
        name: token_id
        description: The ID of the token
        type: string
        required: true
      - name: postApiV4GroupsIdAccessTokensTokenIdRotate
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdAccessTokensTokenIdRotate"
      responses:
        '201':
          description: Rotate a resource access token
          schema:
            "$ref": "#/definitions/API_Entities_ResourceAccessTokenWithToken"
      tags:
      - group_access_tokens
      operationId: postApiV4GroupsIdAccessTokensTokenIdRotate
  "/api/v4/groups/{id}/wikis":
    get:
      description: Get a list of wiki pages
      produces:
      - application/json
      parameters:
      - in: query
        name: with_content
        description: Include pages' content
        type: boolean
        default: false
        required: false
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a list of wiki pages
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_WikiPageBasic"
        '404':
          description: Not found
      tags:
      - wikis
      operationId: getApiV4GroupsIdWikis
    post:
      description: Create a wiki page
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: postApiV4GroupsIdWikis
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdWikis"
      responses:
        '201':
          description: Create a wiki page
          schema:
            "$ref": "#/definitions/API_Entities_WikiPage"
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - wikis
      operationId: postApiV4GroupsIdWikis
  "/api/v4/groups/{id}/wikis/{slug}":
    get:
      description: Get a wiki page
      produces:
      - application/json
      parameters:
      - in: path
        name: slug
        description: The slug of a wiki page
        type: string
        required: true
      - in: query
        name: version
        description: The version hash of a wiki page
        type: string
        required: false
      - in: query
        name: render_html
        description: Render content to HTML
        type: boolean
        default: false
        required: false
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a wiki page
          schema:
            "$ref": "#/definitions/API_Entities_WikiPage"
        '404':
          description: Not found
      tags:
      - wikis
      operationId: getApiV4GroupsIdWikisSlug
    put:
      description: Update a wiki page
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - in: path
        name: slug
        type: integer
        format: int32
        required: true
      - name: putApiV4GroupsIdWikisSlug
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4GroupsIdWikisSlug"
      responses:
        '200':
          description: Update a wiki page
          schema:
            "$ref": "#/definitions/API_Entities_WikiPage"
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - wikis
      operationId: putApiV4GroupsIdWikisSlug
    delete:
      description: Delete a wiki page
      produces:
      - application/json
      parameters:
      - in: path
        name: slug
        description: The slug of a wiki page
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a wiki page
        '400':
          description: Validation error
        '404':
          description: Not found
      tags:
      - wikis
      operationId: deleteApiV4GroupsIdWikisSlug
  "/api/v4/groups/{id}/wikis/attachments":
    post:
      summary: Upload an attachment to the wiki repository
      description: This feature was introduced in GitLab 11.3.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: postApiV4GroupsIdWikisAttachments
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdWikisAttachments"
      responses:
        '201':
          description: Upload an attachment to the wiki repository
          schema:
            "$ref": "#/definitions/API_Entities_WikiAttachment"
        '404':
          description: Not found
      tags:
      - wikis
      operationId: postApiV4GroupsIdWikisAttachments
  "/api/v4/groups/{id}/audit_events":
    get:
      description: Get a list of audit events in this group.
      produces:
      - application/json
      parameters:
      - in: query
        name: created_after
        description: Return audit events created after the specified time
        type: string
        format: date-time
        required: false
        example: '2016-01-19T09:05:50.355Z'
      - in: query
        name: created_before
        description: Return audit events created before the specified time
        type: string
        format: date-time
        required: false
        example: '2016-01-19T09:05:50.355Z'
      - 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
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a list of audit events in this group.
          schema:
            type: array
            items:
              "$ref": "#/definitions/EE_API_Entities_AuditEvent"
      tags:
      - groups
      operationId: getApiV4GroupsIdAuditEvents
  "/api/v4/groups/{id}/audit_events/{audit_event_id}":
    get:
      description: Get a specific audit event in this group.
      produces:
      - application/json
      parameters:
      - in: path
        name: audit_event_id
        description: The ID of the audit event
        type: integer
        format: int32
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a specific audit event in this group.
          schema:
            "$ref": "#/definitions/EE_API_Entities_AuditEvent"
      tags:
      - groups
      operationId: getApiV4GroupsIdAuditEventsAuditEventId
  "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/Release.gpg":
    get:
      summary: The Release file signature
      description: This feature was introduced in GitLab 13.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      responses:
        '200':
          description: The Release file signature
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4GroupsIdPackagesDebianDists*distributionReleaseGpg
  "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/Release":
    get:
      summary: The unsigned Release file
      description: This feature was introduced in GitLab 13.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      responses:
        '200':
          description: The unsigned Release file
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4GroupsIdPackagesDebianDists*distributionRelease
  "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/InRelease":
    get:
      summary: The signed Release file
      description: This feature was introduced in GitLab 13.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      responses:
        '200':
          description: The signed Release file
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4GroupsIdPackagesDebianDists*distributionInrelease
  "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/debian-installer/binary-{architecture}/Packages":
    get:
      summary: The installer (udeb) binary files index
      description: This feature was introduced in GitLab 15.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: component
        description: The Debian Component
        type: string
        required: true
        example: main
      - in: path
        name: architecture
        description: The Debian Architecture
        type: string
        required: true
        example: binary-amd64
      responses:
        '200':
          description: The installer (udeb) binary files index
        '202':
          description: The installer (udeb) binary files index
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentDebianInstallerBinaryArchitecturePackages
  ? "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/debian-installer/binary-{architecture}/by-hash/SHA256/{file_sha256}"
  : get:
      summary: The installer (udeb) binary files index by hash
      description: This feature was introduced in GitLab 15.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: component
        description: The Debian Component
        type: string
        required: true
        example: main
      - in: path
        name: architecture
        description: The Debian Architecture
        type: string
        required: true
        example: binary-amd64
      - in: path
        name: file_sha256
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: The installer (udeb) binary files index by hash
        '202':
          description: The installer (udeb) binary files index by hash
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentDebianInstallerBinaryArchitectureByHashSha256FileSha256
  "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/source/Sources":
    get:
      summary: The source files index
      description: This feature was introduced in GitLab 15.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: component
        description: The Debian Component
        type: string
        required: true
        example: main
      responses:
        '200':
          description: The source files index
        '202':
          description: The source files index
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentSourceSources
  "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/source/by-hash/SHA256/{file_sha256}":
    get:
      summary: The source files index by hash
      description: This feature was introduced in GitLab 15.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: component
        description: The Debian Component
        type: string
        required: true
        example: main
      - in: path
        name: file_sha256
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: The source files index by hash
        '202':
          description: The source files index by hash
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentSourceByHashSha256FileSha256
  "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/binary-{architecture}/Packages":
    get:
      summary: The binary files index
      description: This feature was introduced in GitLab 13.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: component
        description: The Debian Component
        type: string
        required: true
        example: main
      - in: path
        name: architecture
        description: The Debian Architecture
        type: string
        required: true
        example: binary-amd64
      responses:
        '200':
          description: The binary files index
        '202':
          description: The binary files index
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentBinaryArchitecturePackages
  "/api/v4/groups/{id}/-/packages/debian/dists/*distribution/{component}/binary-{architecture}/by-hash/SHA256/{file_sha256}":
    get:
      summary: The binary files index by hash
      description: This feature was introduced in GitLab 15.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: component
        description: The Debian Component
        type: string
        required: true
        example: main
      - in: path
        name: architecture
        description: The Debian Architecture
        type: string
        required: true
        example: binary-amd64
      - in: path
        name: file_sha256
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: The binary files index by hash
        '202':
          description: The binary files index by hash
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4GroupsIdPackagesDebianDists*distributionComponentBinaryArchitectureByHashSha256FileSha256
  "/api/v4/groups/{id}/-/packages/debian/pool/{distribution}/{project_id}/{letter}/{package_name}/{package_version}/{file_name}":
    get:
      summary: Download Debian package
      description: This feature was introduced in GitLab 14.2
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: string
        required: true
      - in: path
        name: project_id
        description: The Project Id
        type: integer
        format: int32
        required: true
      - in: path
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: letter
        description: The Debian Classification (first-letter or lib-first-letter)
        type: string
        required: true
        example: a
      - in: path
        name: package_name
        description: The Debian Source Package Name
        type: string
        required: true
        example: my-pkg
      - in: path
        name: package_version
        description: The Debian Source Package Version
        type: string
        required: true
        example: 1.0.0
      - in: path
        name: file_name
        description: The Debian File Name
        type: string
        required: true
        example: example_1.0.0~alpha2_amd64.deb
      responses:
        '200':
          description: Download Debian package
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4GroupsIdPackagesDebianPoolDistributionProjectIdLetterPackageNamePackageVersionFileName
  "/api/v4/groups/{id}/-/debian_distributions":
    post:
      summary: Create a Debian Distribution
      description: This feature was introduced in 14.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group
        type: string
        required: true
      - name: postApiV4GroupsIdDebianDistributions
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GroupsIdDebianDistributions"
      responses:
        '201':
          description: Create a Debian Distribution
          schema:
            "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_distribution
      operationId: postApiV4GroupsIdDebianDistributions
    get:
      summary: Get a list of Debian Distributions
      description: This feature was introduced in 14.0
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the 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
      - in: query
        name: codename
        description: The Debian Codename
        type: string
        required: false
        example: sid
      - in: query
        name: suite
        description: The Debian Suite
        type: string
        required: false
        example: unstable
      - in: query
        name: origin
        description: The Debian Origin
        type: string
        required: false
        example: Grep
      - in: query
        name: label
        description: The Debian Label
        type: string
        required: false
        example: grep.be
      - in: query
        name: version
        description: The Debian Version
        type: string
        required: false
        example: '12'
      - in: query
        name: description
        description: The Debian Description
        type: string
        required: false
        example: My description
      - in: query
        name: valid_time_duration_seconds
        description: The duration before the Release file should be considered expired
          by the client
        type: integer
        format: int32
        required: false
        example: 604800
      - in: query
        name: components
        description: The list of Components
        type: array
        items:
          type: string
        required: false
        example: main
      - in: query
        name: architectures
        description: The list of Architectures
        type: array
        items:
          type: string
        required: false
        example: amd64
      responses:
        '200':
          description: Get a list of Debian Distributions
          schema:
            "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_distribution
      operationId: getApiV4GroupsIdDebianDistributions
  "/api/v4/groups/{id}/-/debian_distributions/{codename}":
    get:
      summary: Get a Debian Distribution
      description: This feature was introduced in 14.0
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group
        type: string
        required: true
      - in: path
        name: codename
        description: The Debian Codename
        type: string
        required: true
        example: sid
      responses:
        '200':
          description: Get a Debian Distribution
          schema:
            "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_distribution
      operationId: getApiV4GroupsIdDebianDistributionsCodename
    put:
      summary: Update a Debian Distribution
      description: This feature was introduced in 14.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group
        type: string
        required: true
      - in: path
        name: codename
        description: The Debian Codename
        type: string
        required: true
        example: sid
      - name: putApiV4GroupsIdDebianDistributionsCodename
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4GroupsIdDebianDistributionsCodename"
      responses:
        '200':
          description: Update a Debian Distribution
          schema:
            "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_distribution
      operationId: putApiV4GroupsIdDebianDistributionsCodename
    delete:
      summary: Delete a Debian Distribution
      description: This feature was introduced in 14.0
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group
        type: string
        required: true
      - in: path
        name: codename
        description: The Debian Codename
        type: string
        required: true
        example: sid
      - in: query
        name: suite
        description: The Debian Suite
        type: string
        required: false
        example: unstable
      - in: query
        name: origin
        description: The Debian Origin
        type: string
        required: false
        example: Grep
      - in: query
        name: label
        description: The Debian Label
        type: string
        required: false
        example: grep.be
      - in: query
        name: version
        description: The Debian Version
        type: string
        required: false
        example: '12'
      - in: query
        name: description
        description: The Debian Description
        type: string
        required: false
        example: My description
      - in: query
        name: valid_time_duration_seconds
        description: The duration before the Release file should be considered expired
          by the client
        type: integer
        format: int32
        required: false
        example: 604800
      - in: query
        name: components
        description: The list of Components
        type: array
        items:
          type: string
        required: false
        example: main
      - in: query
        name: architectures
        description: The list of Architectures
        type: array
        items:
          type: string
        required: false
        example: amd64
      responses:
        '202':
          description: Delete a Debian Distribution
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_distribution
      operationId: deleteApiV4GroupsIdDebianDistributionsCodename
  "/api/v4/groups/{id}/-/debian_distributions/{codename}/key.asc":
    get:
      summary: Get a Debian Distribution Key
      description: This feature was introduced in 14.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group
        type: string
        required: true
      - in: path
        name: codename
        description: The Debian Codename
        type: string
        required: true
        example: sid
      responses:
        '200':
          description: Get a Debian Distribution Key
          schema:
            "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_distribution
      operationId: getApiV4GroupsIdDebianDistributionsCodenameKeyAsc
  "/api/v4/groups/{id}/-/packages/npm/-/package/*package_name/dist-tags":
    get:
      summary: Get all tags for a given an NPM package
      description: This feature was introduced in GitLab 12.7
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group
        type: string
        required: true
      - in: query
        name: package_name
        description: Package name
        type: string
        required: true
      responses:
        '200':
          description: Get all tags for a given an NPM package
          schema:
            "$ref": "#/definitions/API_Entities_NpmPackageTag"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: getApiV4GroupsIdPackagesNpmPackage*packageNameDistTags
  "/api/v4/groups/{id}/-/packages/npm/-/package/*package_name/dist-tags/{tag}":
    put:
      summary: Create or Update the given tag for the given NPM package and version
      description: This feature was introduced in GitLab 12.7
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group
        type: string
        required: true
      - in: path
        name: tag
        description: Package dist-tag
        type: string
        required: true
      - name: putApiV4GroupsIdPackagesNpmPackage*packageNameDistTagsTag
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4GroupsIdPackagesNpmPackage*packageNameDistTagsTag"
      responses:
        '204':
          description: Create or Update the given tag for the given NPM package and
            version
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: putApiV4GroupsIdPackagesNpmPackage*packageNameDistTagsTag
    delete:
      summary: Deletes the given tag
      description: This feature was introduced in GitLab 12.7
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group
        type: string
        required: true
      - in: query
        name: package_name
        description: Package name
        type: string
        required: true
      - in: path
        name: tag
        description: Package dist-tag
        type: string
        required: true
      responses:
        '204':
          description: Deletes the given tag
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: deleteApiV4GroupsIdPackagesNpmPackage*packageNameDistTagsTag
  "/api/v4/groups/{id}/-/packages/npm/*package_name":
    get:
      summary: NPM registry metadata endpoint
      description: This feature was introduced in GitLab 11.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group
        type: string
        required: true
      - in: query
        name: package_name
        description: Package name
        type: string
        required: true
        example: mypackage
      responses:
        '200':
          description: Ok
          schema:
            "$ref": "#/definitions/API_Entities_NpmPackage"
        '302':
          description: Found (redirect)
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: getApiV4GroupsIdPackagesNpm*packageName
  "/api/v4/groups/{id}/-/packages/npm/-/npm/v1/security/advisories/bulk":
    post:
      summary: NPM registry bulk advisory endpoint
      description: This feature was introduced in GitLab 15.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group
        type: string
        required: true
      responses:
        '200':
          description: Ok
        '307':
          description: Temporary Redirect
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: postApiV4GroupsIdPackagesNpmNpmV1SecurityAdvisoriesBulk
  "/api/v4/groups/{id}/-/packages/npm/-/npm/v1/security/audits/quick":
    post:
      summary: NPM registry quick audit endpoint
      description: This feature was introduced in GitLab 15.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the group
        type: string
        required: true
      responses:
        '200':
          description: Ok
        '307':
          description: Temporary Redirect
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: postApiV4GroupsIdPackagesNpmNpmV1SecurityAuditsQuick
  "/api/v4/groups/{id}/-/packages/nuget/index":
    get:
      summary: The NuGet V3 Feed Service Index
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: The NuGet V3 Feed Service Index
          schema:
            "$ref": "#/definitions/API_Entities_Nuget_ServiceIndex"
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4GroupsIdPackagesNugetIndex
  "/api/v4/groups/{id}/-/packages/nuget/symbolfiles/*file_name/*signature/*same_file_name":
    get:
      summary: The NuGet Symbol File Download Endpoint
      description: This feature was introduced in GitLab 16.7
      produces:
      - application/json
      parameters:
      - in: header
        name: Symbolchecksum
        type: string
        required: true
      - in: path
        name: id
        description: The group ID or full group path.
        type: integer
        format: int32
        required: true
      - in: query
        name: file_name
        description: The symbol file name
        type: string
        required: true
        example: mynugetpkg.pdb
      - in: query
        name: signature
        description: The symbol file signature
        type: string
        required: true
        example: k813f89485474661234z7109cve5709eFFFFFFFF
      - in: query
        name: same_file_name
        type: string
        required: true
      responses:
        '200':
          description: The NuGet Symbol File Download Endpoint
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4GroupsIdPackagesNugetSymbolfiles*fileName*signature*sameFileName
  "/api/v4/groups/{id}/-/packages/nuget/v2":
    get:
      summary: The NuGet V2 Feed Service Index
      description: This feature was introduced in GitLab 16.2
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: The NuGet V2 Feed Service Index
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4GroupsIdPackagesNugetV2
  "/api/v4/groups/{id}/-/packages/nuget/v2/$metadata":
    get:
      summary: The NuGet V2 Feed Package $metadata endpoint
      description: This feature was introduced in GitLab 16.3
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: The NuGet V2 Feed Package $metadata endpoint
      tags:
      - nuget_packages
      operationId: getApiV4GroupsIdPackagesNugetV2$metadata
  "/api/v4/groups/{id}/-/packages/nuget/metadata/*package_name/index":
    get:
      summary: The NuGet Metadata Service - Package name level
      description: This feature was introduced in GitLab 12.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: integer
        format: int32
        required: true
      - in: query
        name: package_name
        description: The NuGet package name
        type: string
        required: true
        example: MyNuGetPkg
      responses:
        '200':
          description: The NuGet Metadata Service - Package name level
          schema:
            "$ref": "#/definitions/API_Entities_Nuget_PackagesMetadata"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4GroupsIdPackagesNugetMetadata*packageNameIndex
  "/api/v4/groups/{id}/-/packages/nuget/metadata/*package_name/*package_version":
    get:
      summary: The NuGet Metadata Service - Package name and version level
      description: This feature was introduced in GitLab 12.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: integer
        format: int32
        required: true
      - in: query
        name: package_name
        description: The NuGet package name
        type: string
        required: true
        example: MyNuGetPkg
      - in: query
        name: package_version
        description: The NuGet package version
        type: string
        required: true
        example: 1.0.0
      responses:
        '200':
          description: The NuGet Metadata Service - Package name and version level
          schema:
            "$ref": "#/definitions/API_Entities_Nuget_PackageMetadata"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4GroupsIdPackagesNugetMetadata*packageName*packageVersion
  "/api/v4/groups/{id}/-/packages/nuget/query":
    get:
      summary: The NuGet Search Service
      description: This feature was introduced in GitLab 12.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The group ID or full group path.
        type: integer
        format: int32
        required: true
      - in: query
        name: q
        description: The search term
        type: string
        required: false
        example: MyNuGet
      - in: query
        name: skip
        description: The number of results to skip
        type: integer
        format: int32
        default: 0
        required: false
        example: 1
      - in: query
        name: take
        description: The number of results to return
        type: integer
        format: int32
        default: 20
        required: false
        example: 1
      - in: query
        name: prerelease
        description: Include prerelease versions
        type: boolean
        default: true
        required: false
      responses:
        '200':
          description: The NuGet Search Service
          schema:
            "$ref": "#/definitions/API_Entities_Nuget_SearchResults"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4GroupsIdPackagesNugetQuery
  "/api/v4/groups/{id}/-/packages/pypi/files/{sha256}/*file_identifier":
    get:
      summary: Download a package file from a group
      description: This feature was introduced in GitLab 13.12
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or full path of the group.
        type: integer
        format: int32
        required: true
      - in: query
        name: file_identifier
        description: The PyPi package file identifier
        type: string
        required: true
        example: my.pypi.package-0.0.1.tar.gz
      - in: path
        name: sha256
        description: The PyPi package sha256 check sum
        type: string
        required: true
        example: 5y57017232013c8ac80647f4ca153k3726f6cba62d055cd747844ed95b3c65ff
      responses:
        '200':
          description: Download a package file from a group
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - pypi_packages
      operationId: getApiV4GroupsIdPackagesPypiFilesSha256*fileIdentifier
  "/api/v4/groups/{id}/-/packages/pypi/simple":
    get:
      summary: The PyPi Simple Group Index Endpoint
      description: This feature was introduced in GitLab 15.1
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or full path of the group.
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: The PyPi Simple Group Index Endpoint
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - pypi_packages
      operationId: getApiV4GroupsIdPackagesPypiSimple
  "/api/v4/groups/{id}/-/packages/pypi/simple/*package_name":
    get:
      summary: The PyPi Simple Group Package Endpoint
      description: This feature was introduced in GitLab 12.10
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or full path of the group.
        type: integer
        format: int32
        required: true
      - in: query
        name: package_name
        description: The PyPi package name
        type: string
        required: true
        example: my.pypi.package
      responses:
        '200':
          description: The PyPi Simple Group Package Endpoint
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - pypi_packages
      operationId: getApiV4GroupsIdPackagesPypiSimple*packageName
  "/api/v4/projects/{id}/access_requests":
    get:
      summary: Gets a list of access requests for a project.
      description: This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        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: Gets a list of access requests for a project.
          schema:
            "$ref": "#/definitions/API_Entities_AccessRequester"
      tags:
      - access_requests
      operationId: getApiV4ProjectsIdAccessRequests
    post:
      summary: Requests access for the authenticated user to a project.
      description: This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      responses:
        '200':
          description: successful operation
          schema:
            "$ref": "#/definitions/API_Entities_AccessRequester"
          examples:
            successfull_response:
              id: 1
              username: raymond_smith
              name: Raymond Smith
              state: active
              created_at: '2012-10-22T14:13:35Z'
              access_level: 20
      tags:
      - access_requests
      operationId: postApiV4ProjectsIdAccessRequests
  "/api/v4/projects/{id}/access_requests/{user_id}/approve":
    put:
      summary: Approves an access request for the given user.
      description: This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the access requester
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdAccessRequestsUserIdApprove
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdAccessRequestsUserIdApprove"
      responses:
        '200':
          description: successful operation
          schema:
            "$ref": "#/definitions/API_Entities_AccessRequester"
          examples:
            successfull_response:
              id: 1
              username: raymond_smith
              name: Raymond Smith
              state: active
              created_at: '2012-10-22T14:13:35Z'
              access_level: 20
      tags:
      - access_requests
      operationId: putApiV4ProjectsIdAccessRequestsUserIdApprove
  "/api/v4/projects/{id}/access_requests/{user_id}":
    delete:
      summary: Denies an access request for the given user.
      description: This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: user_id
        description: The user ID of the access requester
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Denies an access request for the given user.
      tags:
      - access_requests
      operationId: deleteApiV4ProjectsIdAccessRequestsUserId
  "/api/v4/projects/{id}/badges":
    get:
      summary: Gets a list of project badges viewable by the authenticated user.
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user.
        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
      - in: query
        name: name
        description: Name for the badge
        type: string
        required: false
      responses:
        '200':
          description: Gets a list of project badges viewable by the authenticated
            user.
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Badge"
      tags:
      - badges
      operationId: getApiV4ProjectsIdBadges
    post:
      summary: Adds a badge to a project.
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user.
        type: string
        required: true
      - name: postApiV4ProjectsIdBadges
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdBadges"
      responses:
        '201':
          description: Adds a badge to a project.
          schema:
            "$ref": "#/definitions/API_Entities_Badge"
      tags:
      - badges
      operationId: postApiV4ProjectsIdBadges
  "/api/v4/projects/{id}/badges/render":
    get:
      summary: Preview a badge from a project.
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user.
        type: string
        required: true
      - in: query
        name: link_url
        description: URL of the badge link
        type: string
        required: true
      - in: query
        name: image_url
        description: URL of the badge image
        type: string
        required: true
      responses:
        '200':
          description: Preview a badge from a project.
          schema:
            "$ref": "#/definitions/API_Entities_BasicBadgeDetails"
      tags:
      - badges
      operationId: getApiV4ProjectsIdBadgesRender
  "/api/v4/projects/{id}/badges/{badge_id}":
    get:
      summary: Gets a badge of a project.
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user.
        type: string
        required: true
      - in: path
        name: badge_id
        description: The badge ID
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Gets a badge of a project.
          schema:
            "$ref": "#/definitions/API_Entities_Badge"
      tags:
      - badges
      operationId: getApiV4ProjectsIdBadgesBadgeId
    put:
      summary: Updates a badge of a project.
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user.
        type: string
        required: true
      - in: path
        name: badge_id
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdBadgesBadgeId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdBadgesBadgeId"
      responses:
        '200':
          description: Updates a badge of a project.
          schema:
            "$ref": "#/definitions/API_Entities_Badge"
      tags:
      - badges
      operationId: putApiV4ProjectsIdBadgesBadgeId
    delete:
      summary: Removes a badge from the project.
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user.
        type: string
        required: true
      - in: path
        name: badge_id
        description: The badge ID
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Removes a badge from the project.
      tags:
      - badges
      operationId: deleteApiV4ProjectsIdBadgesBadgeId
  "/api/v4/projects/{id}/repository/branches":
    get:
      description: Get a project repository branches
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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
      - in: query
        name: search
        description: Return list of branches matching the search criteria
        type: string
        required: false
      - in: query
        name: regex
        description: Return list of branches matching the regex
        type: string
        required: false
      - in: query
        name: sort
        description: Return list of branches sorted by the given field
        type: string
        enum:
        - name_asc
        - updated_asc
        - updated_desc
        required: false
      - in: query
        name: page_token
        description: Name of branch to start the pagination from
        type: string
        required: false
      responses:
        '200':
          description: Get a project repository branches
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Branch"
        '404':
          description: 404 Project Not Found
      tags:
      - branches
      operationId: getApiV4ProjectsIdRepositoryBranches
    post:
      description: Create branch
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdRepositoryBranches
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdRepositoryBranches"
      responses:
        '201':
          description: Create branch
          schema:
            "$ref": "#/definitions/API_Entities_Branch"
        '400':
          description: Failed to create branch
      tags:
      - branches
      operationId: postApiV4ProjectsIdRepositoryBranches
  "/api/v4/projects/{id}/repository/branches/{branch}/protect":
    put:
      description: Protect a single branch
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: branch
        description: The name of the branch
        type: string
        required: true
      - name: putApiV4ProjectsIdRepositoryBranchesBranchProtect
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdRepositoryBranchesBranchProtect"
      responses:
        '200':
          description: Protect a single branch
          schema:
            "$ref": "#/definitions/API_Entities_Branch"
        '404':
          description: 404 Branch Not Found
      tags:
      - branches
      operationId: putApiV4ProjectsIdRepositoryBranchesBranchProtect
  "/api/v4/projects/{id}/repository/branches/{branch}/unprotect":
    put:
      description: Unprotect a single branch
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: branch
        description: The name of the branch
        type: string
        required: true
      responses:
        '200':
          description: Unprotect a single branch
          schema:
            "$ref": "#/definitions/API_Entities_Branch"
        '404':
          description: 404 Project Not Found
      tags:
      - branches
      operationId: putApiV4ProjectsIdRepositoryBranchesBranchUnprotect
  "/api/v4/projects/{id}/repository/branches/{branch}":
    delete:
      description: Delete a branch
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: branch
        description: The name of the branch
        type: string
        required: true
      responses:
        '204':
          description: Delete a branch
        '404':
          description: Branch Not Found
      tags:
      - branches
      operationId: deleteApiV4ProjectsIdRepositoryBranchesBranch
    head:
      description: Check if a branch exists
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: branch
        description: The name of the branch
        type: string
        required: true
      responses:
        '204':
          description: No Content
        '404':
          description: Not Found
      tags:
      - branches
      operationId: headApiV4ProjectsIdRepositoryBranchesBranch
    get:
      description: Get a single repository branch
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: branch
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single repository branch
          schema:
            "$ref": "#/definitions/API_Entities_Branch"
        '404':
          description: Branch Not Found
      tags:
      - branches
      operationId: getApiV4ProjectsIdRepositoryBranchesBranch
  "/api/v4/projects/{id}/repository/merged_branches":
    delete:
      description: Delete all merged branches
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '202':
          description: 202 Accepted
        '404':
          description: 404 Project Not Found
      tags:
      - branches
      operationId: deleteApiV4ProjectsIdRepositoryMergedBranches
  "/api/v4/projects/{id}/jobs/artifacts/{ref_name}/download":
    get:
      summary: Download the artifacts archive from a job
      description: This feature was introduced in GitLab 8.10
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: ref_name
        description: Branch or tag name in repository. `HEAD` or `SHA` references
          are not supported.
        type: string
        required: true
      - in: query
        name: job
        description: The name of the job.
        type: string
        required: true
      - in: query
        name: job_token
        description: To be used with triggers for multi-project pipelines, available
          only on Premium and Ultimate tiers.
        type: string
        required: false
      responses:
        '200':
          description: Download the artifacts archive from a job
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdJobsArtifactsRefNameDownload
  "/api/v4/projects/{id}/jobs/artifacts/{ref_name}/raw/*artifact_path":
    get:
      summary: Download a specific file from artifacts archive from a ref
      description: This feature was introduced in GitLab 11.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: ref_name
        description: Branch or tag name in repository. `HEAD` or `SHA` references
          are not supported.
        type: string
        required: true
      - in: query
        name: job
        description: The name of the job.
        type: string
        required: true
      - in: query
        name: artifact_path
        description: Path to a file inside the artifacts archive.
        type: string
        required: true
      - in: query
        name: job_token
        description: To be used with triggers for multi-project pipelines, available
          only on Premium and Ultimate tiers.
        type: string
        required: false
      responses:
        '200':
          description: Download a specific file from artifacts archive from a ref
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdJobsArtifactsRefNameRaw*artifactPath
  "/api/v4/projects/{id}/jobs/{job_id}/artifacts":
    get:
      summary: Download the artifacts archive from a job
      description: This feature was introduced in GitLab 8.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: job_id
        description: The ID of a job
        type: integer
        format: int32
        required: true
      - in: query
        name: job_token
        description: To be used with triggers for multi-project pipelines, available
          only on Premium and Ultimate tiers.
        type: string
        required: false
      responses:
        '200':
          description: Download the artifacts archive from a job
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdJobsJobIdArtifacts
    delete:
      summary: Delete the artifacts files from a job
      description: This feature was introduced in GitLab 11.9
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: job_id
        description: The ID of a job
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete the artifacts files from a job
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          description: Conflict
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdJobsJobIdArtifacts
  "/api/v4/projects/{id}/jobs/{job_id}/artifacts/*artifact_path":
    get:
      summary: Download a specific file from artifacts archive
      description: This feature was introduced in GitLab 10.0
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: job_id
        description: The ID of a job
        type: integer
        format: int32
        required: true
      - in: query
        name: artifact_path
        description: Path to a file inside the artifacts archive.
        type: string
        required: true
      - in: query
        name: job_token
        description: To be used with triggers for multi-project pipelines, available
          only on Premium and Ultimate tiers.
        type: string
        required: false
      responses:
        '200':
          description: Download a specific file from artifacts archive
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdJobsJobIdArtifacts*artifactPath
  "/api/v4/projects/{id}/jobs/{job_id}/artifacts/keep":
    post:
      description: Keep the artifacts to prevent them from being deleted
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: job_id
        description: The ID of a job
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Keep the artifacts to prevent them from being deleted
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Job"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdJobsJobIdArtifactsKeep
  "/api/v4/projects/{id}/artifacts":
    delete:
      description: Expire the artifacts files from a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '202':
          description: Expire the artifacts files from a project
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '409':
          description: Conflict
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdArtifacts
  "/api/v4/projects/{id}/jobs":
    get:
      description: Get a projects jobs
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: scope
        description: The scope of builds to show
        type: array
        items:
          type: string
          enum:
          - created
          - waiting_for_resource
          - preparing
          - waiting_for_callback
          - pending
          - running
          - success
          - failed
          - canceling
          - canceled
          - skipped
          - manual
          - scheduled
        required: false
        example:
        - pending
        - running
      - 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 a projects jobs
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Ci_Job"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdJobs
  "/api/v4/projects/{id}/jobs/{job_id}":
    get:
      description: Get a specific job of a project
      produces:
      - application/json
      parameters:
      - in: path
        name: job_id
        description: The ID of a job
        type: integer
        format: int32
        required: true
        example: 88
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a specific job of a project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Job"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdJobsJobId
  "/api/v4/projects/{id}/jobs/{job_id}/trace":
    get:
      description: Get a trace of a specific job of a project
      produces:
      - application/json
      parameters:
      - in: path
        name: job_id
        description: The ID of a job
        type: integer
        format: int32
        required: true
        example: 88
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a trace of a specific job of a project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Job"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdJobsJobIdTrace
  "/api/v4/projects/{id}/jobs/{job_id}/cancel":
    post:
      description: Cancel a specific job of a project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: job_id
        description: The ID of a job
        type: integer
        format: int32
        required: true
        example: 88
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Cancel a specific job of a project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Job"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdJobsJobIdCancel
  "/api/v4/projects/{id}/jobs/{job_id}/retry":
    post:
      description: Retry a specific job of a project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: job_id
        description: The ID of a job
        type: integer
        format: int32
        required: true
        example: 88
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Retry a specific job of a project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Job"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdJobsJobIdRetry
  "/api/v4/projects/{id}/jobs/{job_id}/erase":
    post:
      description: Erase job (remove artifacts and the trace)
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: job_id
        description: The ID of a build
        type: integer
        format: int32
        required: true
        example: 88
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Erase job (remove artifacts and the trace)
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Job"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '409':
          description: Conflict
      tags:
      - projects
      operationId: postApiV4ProjectsIdJobsJobIdErase
  "/api/v4/projects/{id}/jobs/{job_id}/play":
    post:
      summary: Trigger an actionable job (manual, delayed, etc)
      description: This feature was added in GitLab 8.11
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: job_id
        description: The ID of a Job
        type: integer
        format: int32
        required: true
        example: 88
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdJobsJobIdPlay
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdJobsJobIdPlay"
      responses:
        '200':
          description: Trigger an actionable job (manual, delayed, etc)
          schema:
            "$ref": "#/definitions/API_Entities_Ci_JobBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdJobsJobIdPlay
  "/api/v4/projects/{id}/resource_groups":
    get:
      description: Get all resource groups for a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        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: Get all resource groups for a project
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Ci_ResourceGroup"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - ci_resource_groups
      operationId: getApiV4ProjectsIdResourceGroups
  "/api/v4/projects/{id}/resource_groups/{key}":
    get:
      description: Get a specific resource group
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: key
        description: The key of the resource group
        type: string
        required: true
      responses:
        '200':
          description: Get a specific resource group
          schema:
            "$ref": "#/definitions/API_Entities_Ci_ResourceGroup"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - ci_resource_groups
      operationId: getApiV4ProjectsIdResourceGroupsKey
    put:
      summary: Edit an existing resource group
      description: Updates an existing resource group's properties.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: key
        description: The key of the resource group
        type: string
        required: true
      - name: putApiV4ProjectsIdResourceGroupsKey
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdResourceGroupsKey"
      responses:
        '200':
          description: Edit an existing resource group
          schema:
            "$ref": "#/definitions/API_Entities_Ci_ResourceGroup"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - ci_resource_groups
      operationId: putApiV4ProjectsIdResourceGroupsKey
  "/api/v4/projects/{id}/resource_groups/{key}/upcoming_jobs":
    get:
      description: List upcoming jobs for a specific resource group
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: key
        description: The key of the resource 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: List upcoming jobs for a specific resource group
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Ci_JobBasic"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - ci_resource_groups
      operationId: getApiV4ProjectsIdResourceGroupsKeyUpcomingJobs
  "/api/v4/projects/{id}/runners":
    get:
      summary: List project's runners
      description: List all runners available in the project, including from ancestor
        groups and any allowed shared runners.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: query
        name: scope
        description: 'Deprecated: Use `type` or `status` instead. The scope of runners
          to return'
        type: string
        enum:
        - specific
        - shared
        - instance_type
        - group_type
        - project_type
        - active
        - paused
        - online
        - offline
        - never_contacted
        - stale
        required: false
      - in: query
        name: type
        description: The type of runners to return
        type: string
        enum:
        - instance_type
        - group_type
        - project_type
        required: false
      - in: query
        name: paused
        description: Whether to include only runners that are accepting or ignoring
          new jobs
        type: boolean
        required: false
      - in: query
        name: status
        description: The status of runners to return
        type: string
        enum:
        - active
        - paused
        - online
        - offline
        - never_contacted
        - stale
        required: false
      - in: query
        name: tag_list
        description: A list of runner tags
        type: array
        items:
          type: string
        required: false
        example: "['macos', 'shell']"
      - in: query
        name: version_prefix
        description: The version prefix of runners to return
        type: string
        required: false
        example: "'15.1.' or '16.'"
      - 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 runners available for project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Runner"
        '400':
          description: Scope contains invalid value
        '403':
          description: No access granted
      tags:
      - runners
      - projects
      operationId: getApiV4ProjectsIdRunners
    post:
      summary: Enable a runner in project
      description: Enable an available project runner in the project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - name: postApiV4ProjectsIdRunners
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdRunners"
      responses:
        '201':
          description: Enable a runner in project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Runner"
        '400':
          description: Bad Request
        '403':
          description: No access granted
        '404':
          description: Runner not found
      tags:
      - runners
      - projects
      operationId: postApiV4ProjectsIdRunners
  "/api/v4/projects/{id}/runners/{runner_id}":
    delete:
      summary: Disable a project runner from the project
      description: It works only if the project isn't the only project associated
        with the specified runner. If so, an error is returned. Use the call to delete
        a runner instead.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: runner_id
        description: The ID of a runner
        type: integer
        format: int32
        required: true
      responses:
        '400':
          description: Bad Request
        '204':
          description: Disable project's runner
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Runner"
        '403':
          description: Only one project associated with the runner. Please remove
            the runner instead
        '404':
          description: Runner not found
        '412':
          description: Precondition Failed
      tags:
      - runners
      - projects
      operationId: deleteApiV4ProjectsIdRunnersRunnerId
  "/api/v4/projects/{id}/runners/reset_registration_token":
    post:
      summary: Reset the runner registration token for a project
      description: Reset runner registration token
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project
        type: string
        required: true
      responses:
        '201':
          description: Reset runner registration token
          schema:
            "$ref": "#/definitions/API_Entities_Ci_ResetTokenResult"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Project Not Found
      tags:
      - runners
      - projects
      operationId: postApiV4ProjectsIdRunnersResetRegistrationToken
  "/api/v4/projects/{id}/secure_files":
    get:
      description: Get list of secure files in a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: |-
          The ID or URL-encoded path of the project owned by the
                  authenticated user
        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: Get list of secure files in a project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_SecureFile"
      tags:
      - secure_files
      operationId: getApiV4ProjectsIdSecureFiles
    post:
      description: Create a secure file
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: |-
          The ID or URL-encoded path of the project owned by the
                  authenticated user
        type: string
        required: true
      - name: postApiV4ProjectsIdSecureFiles
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdSecureFiles"
      responses:
        '201':
          description: Create a secure file
          schema:
            "$ref": "#/definitions/API_Entities_Ci_SecureFile"
        '400':
          description: 400 Bad Request
      tags:
      - secure_files
      operationId: postApiV4ProjectsIdSecureFiles
  "/api/v4/projects/{id}/secure_files/{secure_file_id}":
    get:
      description: Get the details of a specific secure file in a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a secure file
        type: integer
        format: int32
        required: true
      - in: path
        name: secure_file_id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get the details of a specific secure file in a project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_SecureFile"
        '404':
          description: 404 Not found
      tags:
      - secure_files
      operationId: getApiV4ProjectsIdSecureFilesSecureFileId
    delete:
      description: Remove a secure file
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: |-
          The ID or URL-encoded path of the project owned by the
                  authenticated user
        type: string
        required: true
      - in: path
        name: secure_file_id
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Remove a secure file
        '404':
          description: 404 Not found
      tags:
      - secure_files
      operationId: deleteApiV4ProjectsIdSecureFilesSecureFileId
  "/api/v4/projects/{id}/secure_files/{secure_file_id}/download":
    get:
      description: Download secure file
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: |-
          The ID or URL-encoded path of the project owned by the
                  authenticated user
        type: string
        required: true
      - in: path
        name: secure_file_id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Download secure file
        '404':
          description: 404 Not found
      tags:
      - secure_files
      operationId: getApiV4ProjectsIdSecureFilesSecureFileIdDownload
  "/api/v4/projects/{id}/pipelines":
    get:
      summary: Get all Pipelines of the project
      description: This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - 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
      - in: query
        name: scope
        description: The scope of pipelines
        type: string
        enum:
        - running
        - pending
        - finished
        - branches
        - tags
        required: false
        example: pending
      - in: query
        name: status
        description: The status of pipelines
        type: string
        enum:
        - created
        - waiting_for_resource
        - preparing
        - waiting_for_callback
        - pending
        - running
        - success
        - failed
        - canceling
        - canceled
        - skipped
        - manual
        - scheduled
        required: false
        example: pending
      - in: query
        name: ref
        description: The ref of pipelines
        type: string
        required: false
        example: develop
      - in: query
        name: sha
        description: The sha of pipelines
        type: string
        required: false
        example: a91957a858320c0e17f3a0eca7cfacbff50ea29a
      - in: query
        name: yaml_errors
        description: Returns pipelines with invalid configurations
        type: boolean
        required: false
      - in: query
        name: username
        description: The username of the user who triggered pipelines
        type: string
        required: false
        example: root
      - in: query
        name: updated_before
        description: 'Return pipelines updated before the specified datetime. Format:
          ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
        example: '2015-12-24T15:51:21.880Z'
      - in: query
        name: updated_after
        description: 'Return pipelines updated after the specified datetime. Format:
          ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
        example: '2015-12-24T15:51:21.880Z'
      - in: query
        name: order_by
        description: Order pipelines
        type: string
        default: id
        enum:
        - id
        - status
        - ref
        - updated_at
        - user_id
        required: false
        example: status
      - in: query
        name: sort
        description: Sort pipelines
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
        example: asc
      - in: query
        name: source
        type: string
        enum:
        - unknown
        - push
        - web
        - trigger
        - schedule
        - api
        - external
        - pipeline
        - chat
        - webide
        - merge_request_event
        - external_pull_request_event
        - parent_pipeline
        - ondemand_dast_scan
        - ondemand_dast_validation
        - security_orchestration_policy
        - container_registry_push
        required: false
        example: push
      - in: query
        name: name
        description: Filter pipelines by name
        type: string
        required: false
        example: Build pipeline
      responses:
        '200':
          description: Get all Pipelines of the project
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Ci_PipelineBasic"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      tags:
      - projects
      operationId: getApiV4ProjectsIdPipelines
  "/api/v4/projects/{id}/pipeline":
    post:
      summary: Create a new pipeline
      description: This feature was introduced in GitLab 8.14
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - name: postApiV4ProjectsIdPipeline
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdPipeline"
      responses:
        '201':
          description: Create a new pipeline
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Pipeline"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdPipeline
  "/api/v4/projects/{id}/pipelines/latest":
    get:
      summary: Gets the latest pipeline for the project branch
      description: This feature was introduced in GitLab 12.3
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - in: query
        name: ref
        description: Branch ref of pipeline. Uses project default branch if not specified.
        type: string
        required: false
        example: develop
      responses:
        '200':
          description: Gets the latest pipeline for the project branch
          schema:
            "$ref": "#/definitions/API_Entities_Ci_PipelineWithMetadata"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdPipelinesLatest
  "/api/v4/projects/{id}/pipelines/{pipeline_id}":
    get:
      summary: Gets a specific pipeline for the project
      description: This feature was introduced in GitLab 8.11
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - in: path
        name: pipeline_id
        description: The pipeline ID
        type: integer
        format: int32
        required: true
        example: 18
      responses:
        '200':
          description: Gets a specific pipeline for the project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_PipelineWithMetadata"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdPipelinesPipelineId
    delete:
      summary: Deletes a pipeline
      description: This feature was introduced in GitLab 11.6
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - in: path
        name: pipeline_id
        description: The pipeline ID
        type: integer
        format: int32
        required: true
        example: 18
      responses:
        '204':
          description: Pipeline was deleted
        '403':
          description: Forbidden
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdPipelinesPipelineId
  "/api/v4/projects/{id}/pipelines/{pipeline_id}/jobs":
    get:
      description: Get pipeline jobs
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - in: path
        name: pipeline_id
        description: The pipeline ID
        type: integer
        format: int32
        required: true
        example: 18
      - in: query
        name: include_retried
        description: Includes retried jobs
        type: boolean
        default: false
        required: false
      - in: query
        name: scope
        description: The scope of builds to show
        type: string
        enum:
        - created
        - waiting_for_resource
        - preparing
        - waiting_for_callback
        - pending
        - running
        - success
        - failed
        - canceling
        - canceled
        - skipped
        - manual
        - scheduled
        required: false
        example:
        - pending
        - running
      - 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 pipeline jobs
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Ci_Job"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdPipelinesPipelineIdJobs
  "/api/v4/projects/{id}/pipelines/{pipeline_id}/bridges":
    get:
      description: Get pipeline bridge jobs
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - in: path
        name: pipeline_id
        description: The pipeline ID
        type: integer
        format: int32
        required: true
        example: 18
      - in: query
        name: scope
        description: The scope of builds to show
        type: string
        enum:
        - created
        - waiting_for_resource
        - preparing
        - waiting_for_callback
        - pending
        - running
        - success
        - failed
        - canceling
        - canceled
        - skipped
        - manual
        - scheduled
        required: false
        example:
        - pending
        - running
      - 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 pipeline bridge jobs
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Ci_Bridge"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdPipelinesPipelineIdBridges
  "/api/v4/projects/{id}/pipelines/{pipeline_id}/variables":
    get:
      summary: Gets the variables for a given pipeline
      description: This feature was introduced in GitLab 11.11
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - in: path
        name: pipeline_id
        description: The pipeline ID
        type: integer
        format: int32
        required: true
        example: 18
      responses:
        '200':
          description: Gets the variables for a given pipeline
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Ci_Variable"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdPipelinesPipelineIdVariables
  "/api/v4/projects/{id}/pipelines/{pipeline_id}/test_report":
    get:
      summary: Gets the test report for a given pipeline
      description: This feature was introduced in GitLab 13.0.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - in: path
        name: pipeline_id
        description: The pipeline ID
        type: integer
        format: int32
        required: true
        example: 18
      responses:
        '200':
          description: Gets the test report for a given pipeline
          schema:
            "$ref": "#/definitions/TestReportEntity"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdPipelinesPipelineIdTestReport
  "/api/v4/projects/{id}/pipelines/{pipeline_id}/test_report_summary":
    get:
      summary: Gets the test report summary for a given pipeline
      description: This feature was introduced in GitLab 14.2
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - in: path
        name: pipeline_id
        description: The pipeline ID
        type: integer
        format: int32
        required: true
        example: 18
      responses:
        '200':
          description: Gets the test report summary for a given pipeline
          schema:
            "$ref": "#/definitions/TestReportSummaryEntity"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdPipelinesPipelineIdTestReportSummary
  "/api/v4/projects/{id}/pipelines/{pipeline_id}/metadata":
    put:
      summary: Updates pipeline metadata
      description: This feature was introduced in GitLab 16.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - in: path
        name: pipeline_id
        description: The pipeline ID
        type: integer
        format: int32
        required: true
        example: 18
      - name: putApiV4ProjectsIdPipelinesPipelineIdMetadata
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPipelinesPipelineIdMetadata"
      responses:
        '200':
          description: Updates pipeline metadata
          schema:
            "$ref": "#/definitions/API_Entities_Ci_PipelineWithMetadata"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: putApiV4ProjectsIdPipelinesPipelineIdMetadata
  "/api/v4/projects/{id}/pipelines/{pipeline_id}/retry":
    post:
      summary: Retry builds in the pipeline
      description: This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - in: path
        name: pipeline_id
        description: The pipeline ID
        type: integer
        format: int32
        required: true
        example: 18
      responses:
        '201':
          description: Retry builds in the pipeline
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Pipeline"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdPipelinesPipelineIdRetry
  "/api/v4/projects/{id}/pipelines/{pipeline_id}/cancel":
    post:
      summary: Cancel all builds in the pipeline
      description: This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or URL-encoded path
        type: string
        required: true
        example: 11
      - in: path
        name: pipeline_id
        description: The pipeline ID
        type: integer
        format: int32
        required: true
        example: 18
      responses:
        '201':
          description: Cancel all builds in the pipeline
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Pipeline"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdPipelinesPipelineIdCancel
  "/api/v4/projects/{id}/pipeline_schedules":
    get:
      description: Get all pipeline schedules
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - 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
      - in: query
        name: scope
        description: The scope of pipeline schedules
        type: string
        enum:
        - active
        - inactive
        required: false
        example: active
      responses:
        '200':
          description: Get all pipeline schedules
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Ci_PipelineSchedule"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdPipelineSchedules
    post:
      description: Create a new pipeline schedule
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - name: postApiV4ProjectsIdPipelineSchedules
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdPipelineSchedules"
      responses:
        '201':
          description: Create a new pipeline schedule
          schema:
            "$ref": "#/definitions/API_Entities_Ci_PipelineScheduleDetails"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdPipelineSchedules
  "/api/v4/projects/{id}/pipeline_schedules/{pipeline_schedule_id}":
    get:
      description: Get a single pipeline schedule
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: pipeline_schedule_id
        description: The pipeline schedule id
        type: integer
        format: int32
        required: true
        example: 13
      responses:
        '200':
          description: Get a single pipeline schedule
          schema:
            "$ref": "#/definitions/API_Entities_Ci_PipelineScheduleDetails"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdPipelineSchedulesPipelineScheduleId
    put:
      description: Edit a pipeline schedule
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: pipeline_schedule_id
        description: The pipeline schedule id
        type: integer
        format: int32
        required: true
        example: 13
      - name: putApiV4ProjectsIdPipelineSchedulesPipelineScheduleId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPipelineSchedulesPipelineScheduleId"
      responses:
        '200':
          description: Edit a pipeline schedule
          schema:
            "$ref": "#/definitions/API_Entities_Ci_PipelineScheduleDetails"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: putApiV4ProjectsIdPipelineSchedulesPipelineScheduleId
    delete:
      description: Delete a pipeline schedule
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: pipeline_schedule_id
        description: The pipeline schedule id
        type: integer
        format: int32
        required: true
        example: 13
      responses:
        '204':
          description: Delete a pipeline schedule
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '412':
          description: Precondition Failed
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdPipelineSchedulesPipelineScheduleId
  "/api/v4/projects/{id}/pipeline_schedules/{pipeline_schedule_id}/pipelines":
    get:
      description: Get all pipelines triggered from a pipeline schedule
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: pipeline_schedule_id
        description: The pipeline schedule ID
        type: integer
        format: int32
        required: true
        example: 13
      responses:
        '200':
          description: Get all pipelines triggered from a pipeline schedule
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Ci_PipelineBasic"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdPipelineSchedulesPipelineScheduleIdPipelines
  "/api/v4/projects/{id}/pipeline_schedules/{pipeline_schedule_id}/take_ownership":
    post:
      description: Take ownership of a pipeline schedule
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: pipeline_schedule_id
        description: The pipeline schedule id
        type: integer
        format: int32
        required: true
        example: 13
      responses:
        '201':
          description: Take ownership of a pipeline schedule
          schema:
            "$ref": "#/definitions/API_Entities_Ci_PipelineScheduleDetails"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdPipelineSchedulesPipelineScheduleIdTakeOwnership
  "/api/v4/projects/{id}/pipeline_schedules/{pipeline_schedule_id}/play":
    post:
      summary: Play a scheduled pipeline immediately
      description: This feature was added in GitLab 12.8
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: pipeline_schedule_id
        description: The pipeline schedule id
        type: integer
        format: int32
        required: true
        example: 13
      responses:
        '201':
          description: Play a scheduled pipeline immediately
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdPipelineSchedulesPipelineScheduleIdPlay
  "/api/v4/projects/{id}/pipeline_schedules/{pipeline_schedule_id}/variables":
    post:
      description: Create a new pipeline schedule variable
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: pipeline_schedule_id
        description: The pipeline schedule id
        type: integer
        format: int32
        required: true
        example: 13
      - name: postApiV4ProjectsIdPipelineSchedulesPipelineScheduleIdVariables
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdPipelineSchedulesPipelineScheduleIdVariables"
      responses:
        '201':
          description: Create a new pipeline schedule variable
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdPipelineSchedulesPipelineScheduleIdVariables
  "/api/v4/projects/{id}/pipeline_schedules/{pipeline_schedule_id}/variables/{key}":
    put:
      description: Edit a pipeline schedule variable
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: pipeline_schedule_id
        description: The pipeline schedule id
        type: integer
        format: int32
        required: true
        example: 13
      - in: path
        name: key
        description: The key of the variable
        type: string
        required: true
        example: NEW_VARIABLE
      - name: putApiV4ProjectsIdPipelineSchedulesPipelineScheduleIdVariablesKey
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPipelineSchedulesPipelineScheduleIdVariablesKey"
      responses:
        '200':
          description: Edit a pipeline schedule variable
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: putApiV4ProjectsIdPipelineSchedulesPipelineScheduleIdVariablesKey
    delete:
      description: Delete a pipeline schedule variable
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: pipeline_schedule_id
        description: The pipeline schedule id
        type: integer
        format: int32
        required: true
        example: 13
      - in: path
        name: key
        description: The key of the variable
        type: string
        required: true
        example: NEW_VARIABLE
      responses:
        '202':
          description: Delete a pipeline schedule variable
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdPipelineSchedulesPipelineScheduleIdVariablesKey
  "/api/v4/projects/{id}/(ref/{ref}/)trigger/pipeline":
    post:
      description: Trigger a GitLab project pipeline
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: ref
        description: The commit sha or name of a branch or tag
        type: string
        required: true
        example: develop
      - name: postApiV4ProjectsId(refRef)triggerPipeline
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsId(refRef)triggerPipeline"
      responses:
        '201':
          description: Trigger a GitLab project pipeline
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Pipeline"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsId(refRef)triggerPipeline
  "/api/v4/projects/{id}/triggers":
    get:
      description: Get trigger tokens list
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - 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 trigger tokens list
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Trigger"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdTriggers
    post:
      description: Create a trigger token
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - name: postApiV4ProjectsIdTriggers
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdTriggers"
      responses:
        '201':
          description: Create a trigger token
          schema:
            "$ref": "#/definitions/API_Entities_Trigger"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdTriggers
  "/api/v4/projects/{id}/triggers/{trigger_id}":
    get:
      description: Get specific trigger token of a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: trigger_id
        description: The trigger token ID
        type: integer
        format: int32
        required: true
        example: 10
      responses:
        '200':
          description: Get specific trigger token of a project
          schema:
            "$ref": "#/definitions/API_Entities_Trigger"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdTriggersTriggerId
    put:
      description: Update a trigger token
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: trigger_id
        description: The trigger token ID
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdTriggersTriggerId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdTriggersTriggerId"
      responses:
        '200':
          description: Update a trigger token
          schema:
            "$ref": "#/definitions/API_Entities_Trigger"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: putApiV4ProjectsIdTriggersTriggerId
    delete:
      description: Delete a trigger token
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 18
      - in: path
        name: trigger_id
        description: The trigger token ID
        type: integer
        format: int32
        required: true
        example: 10
      responses:
        '204':
          description: Delete a trigger token
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '412':
          description: Precondition Failed
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdTriggersTriggerId
  "/api/v4/projects/{id}/variables":
    get:
      description: Get project variables
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of
          the project
        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: Get project variables
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
      tags:
      - ci_variables
      operationId: getApiV4ProjectsIdVariables
    post:
      description: Create a new variable in a project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of
          the project
        type: string
        required: true
      - name: postApiV4ProjectsIdVariables
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdVariables"
      responses:
        '201':
          description: Create a new variable in a project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
        '400':
          description: 400 Bad Request
      tags:
      - ci_variables
      operationId: postApiV4ProjectsIdVariables
  "/api/v4/projects/{id}/variables/{key}":
    get:
      description: Get the details of a single variable from a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of
          the project
        type: string
        required: true
      - in: path
        name: key
        description: The key of a variable
        type: string
        required: true
      - in: query
        name: filter[environment_scope]
        description: The environment scope of a variable
        type: string
        required: false
      responses:
        '200':
          description: Get the details of a single variable from a project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
        '404':
          description: Variable Not Found
      tags:
      - ci_variables
      operationId: getApiV4ProjectsIdVariablesKey
    put:
      description: Update an existing variable from a project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of
          the project
        type: string
        required: true
      - in: path
        name: key
        description: The key of a variable
        type: string
        required: true
      - name: putApiV4ProjectsIdVariablesKey
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdVariablesKey"
      responses:
        '200':
          description: Update an existing variable from a project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
        '404':
          description: Variable Not Found
      tags:
      - ci_variables
      operationId: putApiV4ProjectsIdVariablesKey
    delete:
      description: Delete an existing variable from a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project or URL-encoded NAMESPACE/PROJECT_NAME of
          the project
        type: string
        required: true
      - in: path
        name: key
        description: The key of a variable
        type: string
        required: true
      - in: query
        name: filter[environment_scope]
        description: The environment scope of the variable
        type: string
        required: false
      responses:
        '404':
          description: Variable Not Found
        '204':
          description: Delete an existing variable from a project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
      tags:
      - ci_variables
      operationId: deleteApiV4ProjectsIdVariablesKey
  "/api/v4/projects/{id}/cluster_agents":
    get:
      summary: List the agents for a project
      description: This feature was introduced in GitLab 14.10. Returns the list of
        agents registered for the project.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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: List the agents for a project
          schema:
            "$ref": "#/definitions/API_Entities_Clusters_Agent"
      tags:
      - cluster_agents
      operationId: getApiV4ProjectsIdClusterAgents
    post:
      summary: Register an agent with a project
      description: This feature was introduced in GitLab 14.10. Registers an agent
        to the project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdClusterAgents
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdClusterAgents"
      responses:
        '201':
          description: Register an agent with a project
          schema:
            "$ref": "#/definitions/API_Entities_Clusters_Agent"
      tags:
      - cluster_agents
      operationId: postApiV4ProjectsIdClusterAgents
  "/api/v4/projects/{id}/cluster_agents/{agent_id}":
    get:
      summary: Get details about an agent
      description: This feature was introduced in GitLab 14.10. Gets a single agent
        details.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: agent_id
        description: The ID of an agent
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get details about an agent
          schema:
            "$ref": "#/definitions/API_Entities_Clusters_Agent"
      tags:
      - cluster_agents
      operationId: getApiV4ProjectsIdClusterAgentsAgentId
    delete:
      summary: Delete a registered agent
      description: This feature was introduced in GitLab 14.10. Deletes an existing
        agent registration.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: agent_id
        description: The ID of an agent
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a registered agent
      tags:
      - cluster_agents
      operationId: deleteApiV4ProjectsIdClusterAgentsAgentId
  "/api/v4/projects/{id}/repository/commits":
    get:
      description: Get a project repository commits
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: ref_name
        description: The name of a repository branch or tag, if not given the default
          branch is used
        type: string
        required: false
        example: v1.1.0
      - in: query
        name: since
        description: Only commits after or on this date will be returned
        type: string
        format: date-time
        required: false
        example: '2021-09-20T11:50:22.001'
      - in: query
        name: until
        description: Only commits before or on this date will be returned
        type: string
        format: date-time
        required: false
        example: '2021-09-20T11:50:22.001'
      - in: query
        name: path
        description: The file path
        type: string
        required: false
        example: README.md
      - in: query
        name: author
        description: Search commits by commit author
        type: string
        required: false
        example: John Smith
      - in: query
        name: all
        description: Every commit will be returned
        type: boolean
        required: false
      - in: query
        name: with_stats
        description: Stats about each commit will be added to the response
        type: boolean
        required: false
      - in: query
        name: first_parent
        description: Only include the first parent of merges
        type: boolean
        required: false
      - in: query
        name: order
        description: List commits in order
        type: string
        default: default
        enum:
        - default
        - topo
        required: false
      - in: query
        name: trailers
        description: Parse and include Git trailers for every commit
        type: boolean
        default: false
        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: Get a project repository commits
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Commit"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - commits
      operationId: getApiV4ProjectsIdRepositoryCommits
    post:
      summary: Commit multiple file changes as one commit
      description: This feature was introduced in GitLab 8.13
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdRepositoryCommits
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdRepositoryCommits"
      responses:
        '200':
          description: Commit multiple file changes as one commit
          schema:
            "$ref": "#/definitions/API_Entities_CommitDetail"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - commits
      operationId: postApiV4ProjectsIdRepositoryCommits
  "/api/v4/projects/{id}/repository/commits/{sha}":
    get:
      description: Get a specific commit of a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: sha
        description: A commit sha, or the name of a branch or tag
        type: string
        required: true
      - in: query
        name: stats
        description: Include commit stats
        type: boolean
        default: true
        required: false
      responses:
        '200':
          description: Get a specific commit of a project
          schema:
            "$ref": "#/definitions/API_Entities_CommitDetail"
        '404':
          description: Not found
      tags:
      - commits
      operationId: getApiV4ProjectsIdRepositoryCommitsSha
  "/api/v4/projects/{id}/repository/commits/{sha}/diff":
    get:
      description: Get the diff for a specific commit of a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: sha
        description: A commit sha, or the name of a branch or tag
        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
      - in: query
        name: unidiff
        description: A diff in a Unified diff format
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get the diff for a specific commit of a project
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Diff"
        '404':
          description: Not found
      tags:
      - commits
      operationId: getApiV4ProjectsIdRepositoryCommitsShaDiff
  "/api/v4/projects/{id}/repository/commits/{sha}/comments":
    get:
      description: Get a commit's comments
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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
      - in: path
        name: sha
        description: A commit sha, or the name of a branch or tag
        type: string
        required: true
      responses:
        '200':
          description: Get a commit's comments
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_CommitNote"
        '404':
          description: Not found
      tags:
      - commits
      operationId: getApiV4ProjectsIdRepositoryCommitsShaComments
    post:
      description: Post comment to commit
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: sha
        description: A commit sha, or the name of a branch or tag on which to post
          a comment
        type: string
        required: true
      - name: postApiV4ProjectsIdRepositoryCommitsShaComments
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdRepositoryCommitsShaComments"
      responses:
        '200':
          description: Post comment to commit
          schema:
            "$ref": "#/definitions/API_Entities_CommitNote"
        '400':
          description: Bad request
        '404':
          description: Not found
      tags:
      - commits
      operationId: postApiV4ProjectsIdRepositoryCommitsShaComments
  "/api/v4/projects/{id}/repository/commits/{sha}/sequence":
    get:
      description: Get the sequence count of a commit SHA
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: sha
        description: A commit SHA
        type: string
        required: true
      - in: query
        name: first_parent
        description: Only include the first parent of merges
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get the sequence count of a commit SHA
          schema:
            "$ref": "#/definitions/API_Entities_CommitSequence"
        '404':
          description: Not found
      tags:
      - commits
      operationId: getApiV4ProjectsIdRepositoryCommitsShaSequence
  "/api/v4/projects/{id}/repository/commits/{sha}/cherry_pick":
    post:
      summary: Cherry pick commit into a branch
      description: This feature was introduced in GitLab 8.15
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: sha
        description: A commit sha, or the name of a branch or tag to be cherry picked
        type: string
        required: true
      - name: postApiV4ProjectsIdRepositoryCommitsShaCherryPick
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdRepositoryCommitsShaCherryPick"
      responses:
        '200':
          description: Cherry pick commit into a branch
          schema:
            "$ref": "#/definitions/API_Entities_Commit"
        '400':
          description: Bad request
        '404':
          description: Not found
      tags:
      - commits
      operationId: postApiV4ProjectsIdRepositoryCommitsShaCherryPick
  "/api/v4/projects/{id}/repository/commits/{sha}/revert":
    post:
      summary: Revert a commit in a branch
      description: This feature was introduced in GitLab 11.5
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: sha
        description: Commit SHA to revert
        type: string
        required: true
      - name: postApiV4ProjectsIdRepositoryCommitsShaRevert
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdRepositoryCommitsShaRevert"
      responses:
        '200':
          description: Revert a commit in a branch
          schema:
            "$ref": "#/definitions/API_Entities_Commit"
        '400':
          description: Bad request
        '404':
          description: Not found
      tags:
      - commits
      operationId: postApiV4ProjectsIdRepositoryCommitsShaRevert
  "/api/v4/projects/{id}/repository/commits/{sha}/refs":
    get:
      summary: Get all references a commit is pushed to
      description: This feature was introduced in GitLab 10.6
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: sha
        description: A commit sha
        type: string
        required: true
      - in: query
        name: type
        description: Scope
        type: string
        default: all
        enum:
        - branch
        - tag
        - all
        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: Get all references a commit is pushed to
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_BasicRef"
        '404':
          description: Not found
      tags:
      - commits
      operationId: getApiV4ProjectsIdRepositoryCommitsShaRefs
  "/api/v4/projects/{id}/repository/commits/{sha}/merge_requests":
    get:
      description: Get Merge Requests associated with a commit
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: sha
        description: A commit sha, or the name of a branch or tag on which to find
          Merge Requests
        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: Get Merge Requests associated with a commit
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_MergeRequestBasic"
        '404':
          description: Not found
      tags:
      - commits
      operationId: getApiV4ProjectsIdRepositoryCommitsShaMergeRequests
  "/api/v4/projects/{id}/repository/commits/{sha}/signature":
    get:
      description: Get a commit's signature
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: sha
        description: A commit sha, or the name of a branch or tag
        type: string
        required: true
      responses:
        '200':
          description: Get a commit's signature
          schema:
            "$ref": "#/definitions/API_Entities_CommitSignature"
        '404':
          description: Not found
      tags:
      - commits
      operationId: getApiV4ProjectsIdRepositoryCommitsShaSignature
  "/api/v4/projects/{id}/repository/commits/{sha}/statuses":
    get:
      description: Get a commit's statuses
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: sha
        description: The commit hash
        type: string
        required: true
        example: 18f3e63d05582537db6d183d9d557be09e1f90c8
      - in: query
        name: ref
        description: The ref
        type: string
        required: false
        example: develop
      - in: query
        name: stage
        description: The stage
        type: string
        required: false
        example: test
      - in: query
        name: name
        description: The name
        type: string
        required: false
        example: bundler:audit
      - in: query
        name: all
        description: Show all statuses
        type: boolean
        default: false
        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: Get a commit's statuses
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_CommitStatus"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryCommitsShaStatuses
  "/api/v4/projects/{id}/statuses/{sha}":
    post:
      description: Post status to a commit
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: sha
        description: The commit hash
        type: string
        required: true
        example: 18f3e63d05582537db6d183d9d557be09e1f90c8
      - name: postApiV4ProjectsIdStatusesSha
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdStatusesSha"
      responses:
        '200':
          description: Post status to a commit
          schema:
            "$ref": "#/definitions/API_Entities_CommitStatus"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdStatusesSha
  "/api/v4/projects/{id}/deploy_keys":
    get:
      summary: List deploy keys for project
      description: Get a list of a project's deploy keys.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        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: List deploy keys for project
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_DeployKeysProject"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deploy_keys
      operationId: getApiV4ProjectsIdDeployKeys
    post:
      summary: Add deploy key
      description: Creates a new deploy key for a project. If the deploy key already
        exists in another project, it's joined to the current project only if the
        original one is accessible by the same user.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - name: postApiV4ProjectsIdDeployKeys
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdDeployKeys"
      responses:
        '201':
          description: Add deploy key
          schema:
            "$ref": "#/definitions/API_Entities_DeployKeysProject"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deploy_keys
      operationId: postApiV4ProjectsIdDeployKeys
  "/api/v4/projects/{id}/deploy_keys/{key_id}":
    get:
      summary: Get a single deploy key
      description: Get a single key.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: key_id
        description: The ID of the deploy key
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single deploy key
          schema:
            "$ref": "#/definitions/API_Entities_DeployKeysProject"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deploy_keys
      operationId: getApiV4ProjectsIdDeployKeysKeyId
    put:
      summary: Update deploy key
      description: Updates a deploy key for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: key_id
        description: The ID of the deploy key
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdDeployKeysKeyId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdDeployKeysKeyId"
      responses:
        '200':
          description: Update deploy key
          schema:
            "$ref": "#/definitions/API_Entities_DeployKey"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - deploy_keys
      operationId: putApiV4ProjectsIdDeployKeysKeyId
    delete:
      summary: Delete deploy key
      description: Removes a deploy key from the project. If the deploy key is used
        only for this project, it's deleted from the system.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: key_id
        description: The ID of the deploy key
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete deploy key
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deploy_keys
      operationId: deleteApiV4ProjectsIdDeployKeysKeyId
  "/api/v4/projects/{id}/deploy_keys/{key_id}/enable":
    post:
      summary: Enable a deploy key
      description: Enables a deploy key for a project so this can be used. Returns
        the enabled key, with a status code 201 when successful. This feature was
        added in GitLab 8.11.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: key_id
        description: The ID of the deploy key
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Enable a deploy key
          schema:
            "$ref": "#/definitions/API_Entities_DeployKey"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deploy_keys
      operationId: postApiV4ProjectsIdDeployKeysKeyIdEnable
  "/api/v4/projects/{id}/deploy_tokens":
    get:
      summary: List project deploy tokens
      description: Get a list of a project's deploy tokens. This feature was introduced
        in GitLab 12.9.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        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
      - in: query
        name: active
        description: Limit by active status
        type: boolean
        required: false
      responses:
        '200':
          description: List project deploy tokens
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_DeployToken"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - deploy_tokens
      operationId: getApiV4ProjectsIdDeployTokens
    post:
      summary: Create a project deploy token
      description: Creates a new deploy token for a project. This feature was introduced
        in GitLab 12.9.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - name: postApiV4ProjectsIdDeployTokens
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdDeployTokens"
      responses:
        '201':
          description: Create a project deploy token
          schema:
            "$ref": "#/definitions/API_Entities_DeployTokenWithToken"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deploy_tokens
      operationId: postApiV4ProjectsIdDeployTokens
  "/api/v4/projects/{id}/deploy_tokens/{token_id}":
    get:
      summary: Get a project deploy token
      description: Get a single project's deploy token by ID. This feature was introduced
        in GitLab 14.9.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: token_id
        description: The ID of the deploy token
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a project deploy token
          schema:
            "$ref": "#/definitions/API_Entities_DeployToken"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deploy_tokens
      operationId: getApiV4ProjectsIdDeployTokensTokenId
    delete:
      summary: Delete a project deploy token
      description: This feature was introduced in GitLab 12.9.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: token_id
        description: The ID of the deploy token
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a project deploy token
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deploy_tokens
      operationId: deleteApiV4ProjectsIdDeployTokensTokenId
  "/api/v4/projects/{id}/deployments":
    get:
      summary: List project deployments
      description: Get a list of deployments in a project. This feature was introduced
        in GitLab 8.11.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        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
      - in: query
        name: order_by
        description: Return deployments ordered by either one of `id`, `iid`, `created_at`,
          `updated_at` or `ref` fields. Default is `id`
        type: string
        default: id
        enum:
        - id
        - iid
        - created_at
        - updated_at
        - finished_at
        required: false
      - in: query
        name: sort
        description: Return deployments sorted in `asc` or `desc` order. Default is
          `asc`
        type: string
        default: asc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: updated_after
        description: Return deployments updated after the specified date. Expected
          in ISO 8601 format (`2019-03-15T08:00:00Z`)
        type: string
        format: date-time
        required: false
      - in: query
        name: updated_before
        description: Return deployments updated before the specified date. Expected
          in ISO 8601 format (`2019-03-15T08:00:00Z`)
        type: string
        format: date-time
        required: false
      - in: query
        name: finished_after
        description: Return deployments finished after the specified date. Expected
          in ISO 8601 format (`2019-03-15T08:00:00Z`)
        type: string
        format: date-time
        required: false
      - in: query
        name: finished_before
        description: Return deployments finished before the specified date. Expected
          in ISO 8601 format (`2019-03-15T08:00:00Z`)
        type: string
        format: date-time
        required: false
      - in: query
        name: environment
        description: The name of the environment to filter deployments by
        type: string
        required: false
      - in: query
        name: status
        description: The status to filter deployments by. One of `created`, `running`,
          `success`, `failed`, `canceled`, or `blocked`
        type: string
        enum:
        - created
        - running
        - success
        - failed
        - canceled
        - skipped
        - blocked
        required: false
      responses:
        '200':
          description: List project deployments
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Deployment"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deployments
      operationId: getApiV4ProjectsIdDeployments
    post:
      summary: Create a deployment
      description: This feature was introduced in GitLab 12.4.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - name: postApiV4ProjectsIdDeployments
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdDeployments"
      responses:
        '201':
          description: Create a deployment
          schema:
            "$ref": "#/definitions/API_Entities_DeploymentExtended"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deployments
      operationId: postApiV4ProjectsIdDeployments
  "/api/v4/projects/{id}/deployments/{deployment_id}":
    get:
      summary: Get a specific deployment
      description: This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: deployment_id
        description: The ID of the deployment
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a specific deployment
          schema:
            "$ref": "#/definitions/API_Entities_DeploymentExtended"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deployments
      operationId: getApiV4ProjectsIdDeploymentsDeploymentId
    put:
      summary: Update a deployment
      description: This feature was introduced in GitLab 12.4.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: deployment_id
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdDeploymentsDeploymentId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdDeploymentsDeploymentId"
      responses:
        '200':
          description: Update a deployment
          schema:
            "$ref": "#/definitions/API_Entities_DeploymentExtended"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - deployments
      operationId: putApiV4ProjectsIdDeploymentsDeploymentId
    delete:
      summary: Delete a specific deployment
      description: Delete a specific deployment that is not currently the last deployment
        for an environment or in a running state. This feature was introduced in GitLab
        15.3.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: deployment_id
        description: The ID of the deployment
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Deployment destroyed
        '403':
          description: Forbidden
        '400':
          description: '"Cannot destroy running deployment" or "Deployment currently
            deployed to environment"'
      tags:
      - deployments
      operationId: deleteApiV4ProjectsIdDeploymentsDeploymentId
  "/api/v4/projects/{id}/deployments/{deployment_id}/merge_requests":
    get:
      summary: List of merge requests associated with a deployment
      description: Retrieves the list of merge requests shipped with a given deployment.
        This feature was introduced in GitLab 12.7.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        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
      - in: path
        name: deployment_id
        description: The ID of the deployment
        type: integer
        format: int32
        required: true
      - in: query
        name: author_id
        description: Returns merge requests created by the given user `id`. Mutually
          exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`.
        type: integer
        format: int32
        required: false
      - in: query
        name: author_username
        description: Returns merge requests created by the given `username`. Mutually
          exclusive with `author_id`.
        type: string
        required: false
      - in: query
        name: assignee_id
        description: Returns merge requests assigned to the given user `id`. `None`
          returns unassigned merge requests. `Any` returns merge requests with an
          assignee.
        type: integer
        format: int32
        required: false
      - in: query
        name: assignee_username
        description: Returns merge requests created by the given `username`. Mutually
          exclusive with `author_id`.
        type: array
        items:
          type: string
        required: false
      - in: query
        name: reviewer_username
        description: Returns merge requests which have the user as a reviewer with
          the given `username`. `None` returns merge requests with no reviewers. `Any`
          returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`.
          Introduced in GitLab 13.8.
        type: string
        required: false
      - in: query
        name: labels
        description: Returns merge requests matching a comma-separated list of labels.
          `None` lists all merge requests with no labels. `Any` lists all merge requests
          with at least one label. Predefined names are case-insensitive.
        type: array
        items:
          type: string
        required: false
      - in: query
        name: milestone
        description: Returns merge requests for a specific milestone. `None` returns
          merge requests with no milestone. `Any` returns merge requests that have
          an assigned milestone.
        type: string
        required: false
      - in: query
        name: my_reaction_emoji
        description: Returns merge requests reacted by the authenticated user by the
          given `emoji`. `None` returns issues not given a reaction. `Any` returns
          issues given at least one reaction.
        type: string
        required: false
      - in: query
        name: reviewer_id
        description: Returns merge requests which have the user as a reviewer with
          the given user `id`. `None` returns merge requests with no reviewers. `Any`
          returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`.
        type: integer
        format: int32
        required: false
      - in: query
        name: state
        description: Returns `all` merge requests or just those that are `opened`,
          `closed`, `locked`, or `merged`.
        type: string
        default: all
        enum:
        - opened
        - closed
        - locked
        - merged
        - all
        required: false
      - in: query
        name: order_by
        description: Returns merge requests ordered by `created_at`, `label_priority`,
          `milestone_due`, `popularity`, `priority`, `title` or `updated_at` fields.
          Introduced in GitLab 14.8.
        type: string
        default: created_at
        enum:
        - created_at
        - label_priority
        - milestone_due
        - popularity
        - priority
        - title
        - updated_at
        required: false
      - in: query
        name: sort
        description: Returns merge requests sorted in `asc` or `desc` order.
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: with_labels_details
        description: 'If `true`, response returns more details for each label in labels
          field: `:name`,`:color`, `:description`, `:description_html`, `:text_color`'
        type: boolean
        default: false
        required: false
      - in: query
        name: with_merge_status_recheck
        description: If `true`, this projection requests (but does not guarantee)
          that the `merge_status` field be recalculated asynchronously. Introduced
          in GitLab 13.0.
        type: boolean
        default: false
        required: false
      - in: query
        name: created_after
        description: Returns merge requests created on or after the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: created_before
        description: Returns merge requests created on or before the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: updated_after
        description: Returns merge requests updated on or after the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: updated_before
        description: Returns merge requests updated on or before the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: view
        description: If simple, returns the `iid`, URL, title, description, and basic
          state of merge request
        type: string
        enum:
        - simple
        required: false
      - in: query
        name: scope
        description: 'Returns merge requests for the given scope: `created_by_me`,
          `assigned_to_me` or `all`'
        type: string
        enum:
        - created-by-me
        - assigned-to-me
        - created_by_me
        - assigned_to_me
        - all
        required: false
      - in: query
        name: source_branch
        description: Returns merge requests with the given source branch
        type: string
        required: false
      - in: query
        name: source_project_id
        description: Returns merge requests with the given source project id
        type: integer
        format: int32
        required: false
      - in: query
        name: target_branch
        description: Returns merge requests with the given target branch
        type: string
        required: false
      - in: query
        name: search
        description: Search merge requests against their `title` and `description`.
        type: string
        required: false
      - in: query
        name: in
        description: Modify the scope of the search attribute. `title`, `description`,
          or a string joining them with comma.
        type: string
        required: false
        example: title,description
      - in: query
        name: wip
        description: Filter merge requests against their `wip` status. `yes` to return
          only draft merge requests, `no` to return non-draft merge requests.
        type: string
        enum:
        - 'yes'
        - 'no'
        required: false
      - in: query
        name: not[author_id]
        description: "`<Negated>` Returns merge requests created by the given user
          `id`. Mutually exclusive with `author_username`. Combine with `scope=all`
          or `scope=assigned_to_me`."
        type: integer
        format: int32
        required: false
      - in: query
        name: not[author_username]
        description: "`<Negated>` Returns merge requests created by the given `username`.
          Mutually exclusive with `author_id`."
        type: string
        required: false
      - in: query
        name: not[assignee_id]
        description: "`<Negated>` Returns merge requests assigned to the given user
          `id`. `None` returns unassigned merge requests. `Any` returns merge requests
          with an assignee."
        type: integer
        format: int32
        required: false
      - in: query
        name: not[assignee_username]
        description: "`<Negated>` Returns merge requests created by the given `username`.
          Mutually exclusive with `author_id`."
        type: array
        items:
          type: string
        required: false
      - in: query
        name: not[reviewer_username]
        description: "`<Negated>` Returns merge requests which have the user as a
          reviewer with the given `username`. `None` returns merge requests with no
          reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive
          with `reviewer_id`. Introduced in GitLab 13.8."
        type: string
        required: false
      - in: query
        name: not[labels]
        description: "`<Negated>` Returns merge requests matching a comma-separated
          list of labels. `None` lists all merge requests with no labels. `Any` lists
          all merge requests with at least one label. Predefined names are case-insensitive."
        type: array
        items:
          type: string
        required: false
      - in: query
        name: not[milestone]
        description: "`<Negated>` Returns merge requests for a specific milestone.
          `None` returns merge requests with no milestone. `Any` returns merge requests
          that have an assigned milestone."
        type: string
        required: false
      - in: query
        name: not[my_reaction_emoji]
        description: "`<Negated>` Returns merge requests reacted by the authenticated
          user by the given `emoji`. `None` returns issues not given a reaction. `Any`
          returns issues given at least one reaction."
        type: string
        required: false
      - in: query
        name: not[reviewer_id]
        description: "`<Negated>` Returns merge requests which have the user as a
          reviewer with the given user `id`. `None` returns merge requests with no
          reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive
          with `reviewer_username`."
        type: integer
        format: int32
        required: false
      - in: query
        name: deployed_before
        description: Returns merge requests deployed before the given date/time. Expected
          in ISO 8601 format.
        type: string
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: deployed_after
        description: Returns merge requests deployed after the given date/time. Expected
          in ISO 8601 format
        type: string
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: environment
        description: Returns merge requests deployed to the given environment
        type: string
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: approved
        description: Filters merge requests by their `approved` status. `yes` returns
          only approved merge requests. `no` returns only non-approved merge requests.
        type: string
        enum:
        - 'yes'
        - 'no'
        required: false
      - in: query
        name: merge_user_id
        description: Returns merge requests which have been merged by the user with
          the given user `id`. Mutually exclusive with `merge_user_username`.
        type: integer
        format: int32
        required: false
      - in: query
        name: merge_user_username
        description: Returns merge requests which have been merged by the user with
          the given `username`. Mutually exclusive with `merge_user_id`.
        type: string
        required: false
      responses:
        '200':
          description: List of merge requests associated with a deployment
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_MergeRequestBasic"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - deployments
      operationId: getApiV4ProjectsIdDeploymentsDeploymentIdMergeRequests
  "/api/v4/projects/{id}/deployments/{deployment_id}/approval":
    post:
      summary: Approve or reject a blocked deployment
      description: This feature was introduced in GitLab 14.8.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: deployment_id
        description: The ID of the deployment
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdDeploymentsDeploymentIdApproval
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdDeploymentsDeploymentIdApproval"
      responses:
        '201':
          description: Approve or reject a blocked deployment
          schema:
            "$ref": "#/definitions/API_Entities_Deployments_Approval"
      tags:
      - deployments
      operationId: postApiV4ProjectsIdDeploymentsDeploymentIdApproval
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/draft_notes":
    get:
      description: Get a list of merge request draft notes
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The ID of a merge request
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a list of merge request draft notes
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_DraftNote"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes
    post:
      description: Create a new draft note
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The ID of a merge request.
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes"
      responses:
        '201':
          description: Create a new draft note
          schema:
            "$ref": "#/definitions/API_Entities_DraftNote"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/draft_notes/{draft_note_id}":
    get:
      description: Get a single draft note
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The ID of a merge request
        type: integer
        format: int32
        required: true
      - in: path
        name: draft_note_id
        description: The ID of a draft note
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single draft note
          schema:
            "$ref": "#/definitions/API_Entities_DraftNote"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId
    put:
      description: Modify an existing draft note
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The ID of a merge request.
        type: integer
        format: int32
        required: true
      - in: path
        name: draft_note_id
        description: The ID of a draft note
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId"
      responses:
        '200':
          description: Modify an existing draft note
          schema:
            "$ref": "#/definitions/API_Entities_DraftNote"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - projects
      operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId
    delete:
      description: Delete a draft note
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The ID of a merge request
        type: integer
        format: int32
        required: true
      - in: path
        name: draft_note_id
        description: The ID of a draft note
        type: integer
        format: int32
        required: true
      responses:
        '401':
          description: Unauthorized
        '204':
          description: Delete a draft note
          schema:
            "$ref": "#/definitions/API_Entities_DraftNote"
        '404':
          description: Not found
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/draft_notes/{draft_note_id}/publish":
    put:
      description: Publish a pending draft note
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The ID of a merge request
        type: integer
        format: int32
        required: true
      - in: path
        name: draft_note_id
        description: The ID of a draft note
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Publish a pending draft note
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - projects
      operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteIdPublish
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/draft_notes/bulk_publish":
    post:
      description: Bulk publish all pending draft notes
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a project
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The ID of a merge request
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Bulk publish all pending draft notes
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesBulkPublish
  "/api/v4/projects/{id}/environments":
    get:
      summary: List environments
      description: Get all environments for a given project. This feature was introduced
        in GitLab 8.11.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        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
      - in: query
        name: name
        description: Return the environment with this name. Mutually exclusive with
          search
        type: string
        required: false
      - in: query
        name: search
        description: Return list of environments matching the search criteria. Mutually
          exclusive with name. Must be at least 3 characters.
        type: string
        required: false
      - in: query
        name: states
        description: 'List all environments that match a specific state. Accepted
          values: `available`, `stopping`, or `stopped`. If no state value given,
          returns all environments'
        type: string
        enum:
        - stopped
        - available
        - stopping
        required: false
      responses:
        '200':
          description: List environments
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Environment"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - environments
      operationId: getApiV4ProjectsIdEnvironments
    post:
      summary: Create a new environment
      description: Creates a new environment with the given name and `external_url`.
        It returns `201` if the environment was successfully created, `400` for wrong
        parameters. This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - name: postApiV4ProjectsIdEnvironments
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdEnvironments"
      responses:
        '201':
          description: Create a new environment
          schema:
            "$ref": "#/definitions/API_Entities_Environment"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - environments
      operationId: postApiV4ProjectsIdEnvironments
  "/api/v4/projects/{id}/environments/{environment_id}":
    put:
      summary: Update an existing environment
      description: Updates an existing environment name and/or `external_url`. It
        returns `200` if the environment was successfully updated. In case of an error,
        a status code `400` is returned. This feature was introduced in GitLab 8.11.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: environment_id
        description: The ID of the environment
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdEnvironmentsEnvironmentId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdEnvironmentsEnvironmentId"
      responses:
        '200':
          description: Update an existing environment
          schema:
            "$ref": "#/definitions/API_Entities_Environment"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - environments
      operationId: putApiV4ProjectsIdEnvironmentsEnvironmentId
    delete:
      summary: Delete an environment
      description: It returns 204 if the environment was successfully deleted, and
        404 if the environment does not exist. This feature was introduced in GitLab
        8.11.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: environment_id
        description: The ID of the environment
        type: integer
        format: int32
        required: true
      responses:
        '401':
          description: Unauthorized
        '204':
          description: Delete an environment
          schema:
            "$ref": "#/definitions/API_Entities_Environment"
        '404':
          description: Not found
      tags:
      - environments
      operationId: deleteApiV4ProjectsIdEnvironmentsEnvironmentId
    get:
      description: Get a specific environment
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: environment_id
        description: The ID of the environment
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a specific environment
          schema:
            "$ref": "#/definitions/API_Entities_Environment"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - environments
      operationId: getApiV4ProjectsIdEnvironmentsEnvironmentId
  "/api/v4/projects/{id}/environments/review_apps":
    delete:
      summary: Delete multiple stopped review apps
      description: It schedules for deletion multiple environments that have already
        been stopped and are in the review app folder. The actual deletion is performed
        after 1 week from the time of execution. By default, it only deletes environments
        30 days or older. You can change this default using the `before` parameter.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: query
        name: before
        description: The date before which environments can be deleted. Defaults to
          30 days ago. Expected in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`)
        type: string
        format: date-time
        default: {}
        required: false
      - in: query
        name: limit
        description: Maximum number of environments to delete. Defaults to 100
        type: integer
        format: int32
        default: 100
        minimum: 1
        maximum: 1000
        required: false
      - in: query
        name: dry_run
        description: Defaults to true for safety reasons. It performs a dry run where
          no actual deletion will be performed. Set to false to actually delete the
          environment
        type: boolean
        default: true
        required: false
      responses:
        '400':
          description: Bad request
        '204':
          description: Delete multiple stopped review apps
          schema:
            "$ref": "#/definitions/API_Entities_EnvironmentBasic"
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '409':
          description: Conflict
      tags:
      - environments
      operationId: deleteApiV4ProjectsIdEnvironmentsReviewApps
  "/api/v4/projects/{id}/environments/{environment_id}/stop":
    post:
      summary: Stop an environment
      description: It returns 200 if the environment was successfully stopped, and
        404 if the environment does not exist.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: environment_id
        description: The ID of the environment
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdEnvironmentsEnvironmentIdStop
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdEnvironmentsEnvironmentIdStop"
      responses:
        '201':
          description: Stop an environment
          schema:
            "$ref": "#/definitions/API_Entities_Environment"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - environments
      operationId: postApiV4ProjectsIdEnvironmentsEnvironmentIdStop
  "/api/v4/projects/{id}/environments/stop_stale":
    post:
      summary: Stop stale environments
      description: It returns `200` if stale environment check was scheduled successfully
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - name: postApiV4ProjectsIdEnvironmentsStopStale
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdEnvironmentsStopStale"
      responses:
        '201':
          description: Stop stale environments
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      tags:
      - environments
      operationId: postApiV4ProjectsIdEnvironmentsStopStale
  "/api/v4/projects/{id}/error_tracking/settings":
    get:
      summary: Get Error Tracking settings
      description: Get error tracking settings for the project. This feature was introduced
        in GitLab 12.7.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      responses:
        '200':
          description: Get Error Tracking settings
          schema:
            "$ref": "#/definitions/API_Entities_ErrorTracking_ProjectSetting"
      tags:
      - error_tracking_project_settings
      operationId: getApiV4ProjectsIdErrorTrackingSettings
    patch:
      summary: Enable or disable the Error Tracking project settings
      description: The API allows you to enable or disable the Error Tracking settings
        for a project.Only for users with the Maintainer role for the project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - name: patchApiV4ProjectsIdErrorTrackingSettings
        in: body
        required: true
        schema:
          "$ref": "#/definitions/patchApiV4ProjectsIdErrorTrackingSettings"
      responses:
        '200':
          description: Enable or disable the Error Tracking project settings
          schema:
            "$ref": "#/definitions/API_Entities_ErrorTracking_ProjectSetting"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - error_tracking_project_settings
      operationId: patchApiV4ProjectsIdErrorTrackingSettings
    put:
      summary: Update Error Tracking project settings. Available in GitLab 15.10 and
        later.
      description: Update Error Tracking settings for a project. Only for users with
        Maintainer role for the project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - name: putApiV4ProjectsIdErrorTrackingSettings
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdErrorTrackingSettings"
      responses:
        '200':
          description: Update Error Tracking project settings. Available in GitLab
            15.10 and later.
          schema:
            "$ref": "#/definitions/API_Entities_ErrorTracking_ProjectSetting"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - error_tracking_project_settings
      operationId: putApiV4ProjectsIdErrorTrackingSettings
  "/api/v4/projects/{id}/repository/files/{file_path}/blame":
    head:
      description: Get blame file metadata from repository
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
        example: gitlab-org/gitlab
      - in: path
        name: file_path
        description: The url encoded path to the file.
        type: string
        required: true
        example: lib%2Fclass%2Erb
      - in: query
        name: ref
        description: The name of branch, tag or commit
        type: string
        required: true
        example: main
      responses:
        '200':
          description: Get blame file metadata from repository
      tags:
      - projects
      operationId: headApiV4ProjectsIdRepositoryFilesFilePathBlame
    get:
      description: Get blame file from the repository
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
        example: gitlab-org/gitlab
      - in: path
        name: file_path
        description: The url encoded path to the file.
        type: string
        required: true
        example: lib%2Fclass%2Erb
      - in: query
        name: ref
        description: The name of branch, tag or commit
        type: string
        required: true
        example: main
      - in: query
        name: range[start]
        description: The first line of the range to blame
        type: integer
        format: int32
        required: true
      - in: query
        name: range[end]
        description: The last line of the range to blame
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get blame file from the repository
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryFilesFilePathBlame
  "/api/v4/projects/{id}/repository/files/{file_path}/raw":
    get:
      description: Get raw file contents from the repository
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
        example: gitlab-org/gitlab
      - in: path
        name: file_path
        description: The url encoded path to the file.
        type: string
        required: true
        example: lib%2Fclass%2Erb
      - in: query
        name: ref
        description: The name of branch, tag or commit
        type: string
        required: false
        example: main
      - in: query
        name: lfs
        description: Retrieve binary data for a file that is an lfs pointer
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get raw file contents from the repository
          schema:
            type: file
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryFilesFilePathRaw
  "/api/v4/projects/{id}/repository/files/{file_path}":
    head:
      description: Get file metadata from repository
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
        example: gitlab-org/gitlab
      - in: path
        name: file_path
        description: The url encoded path to the file.
        type: string
        required: true
        example: lib%2Fclass%2Erb
      - in: query
        name: ref
        description: The name of branch, tag or commit
        type: string
        required: true
        example: main
      responses:
        '200':
          description: Get file metadata from repository
      tags:
      - projects
      operationId: headApiV4ProjectsIdRepositoryFilesFilePath
    get:
      description: Get a file from the repository
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
        example: gitlab-org/gitlab
      - in: path
        name: file_path
        description: The url encoded path to the file.
        type: string
        required: true
        example: lib%2Fclass%2Erb
      - in: query
        name: ref
        description: The name of branch, tag or commit
        type: string
        required: true
        example: main
      responses:
        '200':
          description: Get a file from the repository
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryFilesFilePath
    post:
      description: Create new file in repository
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
        example: gitlab-org/gitlab
      - in: path
        name: file_path
        description: The url encoded path to the file.
        type: string
        required: true
        example: lib%2Fclass%2Erb
      - name: postApiV4ProjectsIdRepositoryFilesFilePath
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdRepositoryFilesFilePath"
      responses:
        '201':
          description: Create new file in repository
      tags:
      - projects
      operationId: postApiV4ProjectsIdRepositoryFilesFilePath
    put:
      description: Update existing file in repository
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
        example: gitlab-org/gitlab
      - in: path
        name: file_path
        description: The url encoded path to the file.
        type: string
        required: true
        example: lib%2Fclass%2Erb
      - name: putApiV4ProjectsIdRepositoryFilesFilePath
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdRepositoryFilesFilePath"
      responses:
        '200':
          description: Update existing file in repository
      tags:
      - projects
      operationId: putApiV4ProjectsIdRepositoryFilesFilePath
    delete:
      description: Delete an existing file in repository
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
        example: gitlab-org/gitlab
      - in: path
        name: file_path
        description: The url encoded path to the file.
        type: string
        required: true
        example: lib%2Fclass%2Erb
      - in: query
        name: branch
        description: Name of the branch to commit into. To create a new branch, also
          provide `start_branch`.
        type: string
        required: true
        example: main
      - in: query
        name: commit_message
        description: Commit message
        type: string
        required: true
        example: Initial commit
      - in: query
        name: start_branch
        description: Name of the branch to start the new commit from
        type: string
        required: false
        example: main
      - in: query
        name: author_email
        description: The email of the author
        type: string
        required: false
        example: johndoe@example.com
      - in: query
        name: author_name
        description: The name of the author
        type: string
        required: false
        example: John Doe
      responses:
        '204':
          description: Delete an existing file in repository
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdRepositoryFilesFilePath
  "/api/v4/projects/{id}/freeze_periods":
    get:
      summary: List freeze periods
      description: Paginated list of Freeze Periods, sorted by created_at in ascending
        order. This feature was introduced in GitLab 13.0.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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: List freeze periods
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_FreezePeriod"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - freeze_periods
      operationId: getApiV4ProjectsIdFreezePeriods
    post:
      summary: Create a freeze period
      description: Creates a freeze period. This feature was introduced in GitLab
        13.0.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdFreezePeriods
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdFreezePeriods"
      responses:
        '201':
          description: Create a freeze period
          schema:
            "$ref": "#/definitions/API_Entities_FreezePeriod"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      tags:
      - freeze_periods
      operationId: postApiV4ProjectsIdFreezePeriods
  "/api/v4/projects/{id}/freeze_periods/{freeze_period_id}":
    get:
      summary: Get a freeze period
      description: Get a freeze period for the given `freeze_period_id`. This feature
        was introduced in GitLab 13.0.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: freeze_period_id
        description: The ID of the freeze period
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a freeze period
          schema:
            "$ref": "#/definitions/API_Entities_FreezePeriod"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - freeze_periods
      operationId: getApiV4ProjectsIdFreezePeriodsFreezePeriodId
    put:
      summary: Update a freeze period
      description: Updates a freeze period for the given `freeze_period_id`. This
        feature was introduced in GitLab 13.0.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: freeze_period_id
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdFreezePeriodsFreezePeriodId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdFreezePeriodsFreezePeriodId"
      responses:
        '200':
          description: Update a freeze period
          schema:
            "$ref": "#/definitions/API_Entities_FreezePeriod"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      tags:
      - freeze_periods
      operationId: putApiV4ProjectsIdFreezePeriodsFreezePeriodId
    delete:
      summary: Delete a freeze period
      description: Deletes a freeze period for the given `freeze_period_id`. This
        feature was introduced in GitLab 13.0.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: freeze_period_id
        description: The ID of the freeze period
        type: integer
        format: int32
        required: true
      responses:
        '401':
          description: Unauthorized
        '204':
          description: Delete a freeze period
          schema:
            "$ref": "#/definitions/API_Entities_FreezePeriod"
      tags:
      - freeze_periods
      operationId: deleteApiV4ProjectsIdFreezePeriodsFreezePeriodId
  "/api/v4/projects/{id}/services":
    get:
      summary: List all active integrations
      description: Get a list of all active project integrations.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: List all active integrations
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: getApiV4ProjectsIdServices
  "/api/v4/projects/{id}/services/apple-app-store":
    put:
      summary: Create/Edit Apple App Store integration
      description: Set Apple App Store integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesAppleAppStore
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesAppleAppStore"
      responses:
        '200':
          description: Create/Edit Apple App Store integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesAppleAppStore
  "/api/v4/projects/{id}/services/asana":
    put:
      summary: Create/Edit Asana integration
      description: Set Asana integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesAsana
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesAsana"
      responses:
        '200':
          description: Create/Edit Asana integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesAsana
  "/api/v4/projects/{id}/services/assembla":
    put:
      summary: Create/Edit Assembla integration
      description: Set Assembla integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesAssembla
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesAssembla"
      responses:
        '200':
          description: Create/Edit Assembla integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesAssembla
  "/api/v4/projects/{id}/services/bamboo":
    put:
      summary: Create/Edit Bamboo integration
      description: Set Bamboo integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesBamboo
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesBamboo"
      responses:
        '200':
          description: Create/Edit Bamboo integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesBamboo
  "/api/v4/projects/{id}/services/bugzilla":
    put:
      summary: Create/Edit Bugzilla integration
      description: Set Bugzilla integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesBugzilla
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesBugzilla"
      responses:
        '200':
          description: Create/Edit Bugzilla integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesBugzilla
  "/api/v4/projects/{id}/services/buildkite":
    put:
      summary: Create/Edit Buildkite integration
      description: Set Buildkite integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesBuildkite
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesBuildkite"
      responses:
        '200':
          description: Create/Edit Buildkite integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesBuildkite
  "/api/v4/projects/{id}/services/campfire":
    put:
      summary: Create/Edit Campfire integration
      description: Set Campfire integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesCampfire
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesCampfire"
      responses:
        '200':
          description: Create/Edit Campfire integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesCampfire
  "/api/v4/projects/{id}/services/confluence":
    put:
      summary: Create/Edit Confluence integration
      description: Set Confluence integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesConfluence
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesConfluence"
      responses:
        '200':
          description: Create/Edit Confluence integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesConfluence
  "/api/v4/projects/{id}/services/custom-issue-tracker":
    put:
      summary: Create/Edit Custom Issue Tracker integration
      description: Set Custom Issue Tracker integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesCustomIssueTracker
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesCustomIssueTracker"
      responses:
        '200':
          description: Create/Edit Custom Issue Tracker integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesCustomIssueTracker
  "/api/v4/projects/{id}/services/datadog":
    put:
      summary: Create/Edit Datadog integration
      description: Set Datadog integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesDatadog
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesDatadog"
      responses:
        '200':
          description: Create/Edit Datadog integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesDatadog
  "/api/v4/projects/{id}/services/diffblue-cover":
    put:
      summary: Create/Edit Diffblue Cover integration
      description: Set Diffblue Cover integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesDiffblueCover
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesDiffblueCover"
      responses:
        '200':
          description: Create/Edit Diffblue Cover integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesDiffblueCover
  "/api/v4/projects/{id}/services/discord":
    put:
      summary: Create/Edit Discord integration
      description: Set Discord integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesDiscord
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesDiscord"
      responses:
        '200':
          description: Create/Edit Discord integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesDiscord
  "/api/v4/projects/{id}/services/drone-ci":
    put:
      summary: Create/Edit Drone Ci integration
      description: Set Drone Ci integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesDroneCi
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesDroneCi"
      responses:
        '200':
          description: Create/Edit Drone Ci integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesDroneCi
  "/api/v4/projects/{id}/services/emails-on-push":
    put:
      summary: Create/Edit Emails On Push integration
      description: Set Emails On Push integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesEmailsOnPush
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesEmailsOnPush"
      responses:
        '200':
          description: Create/Edit Emails On Push integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesEmailsOnPush
  "/api/v4/projects/{id}/services/external-wiki":
    put:
      summary: Create/Edit External Wiki integration
      description: Set External Wiki integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesExternalWiki
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesExternalWiki"
      responses:
        '200':
          description: Create/Edit External Wiki integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesExternalWiki
  "/api/v4/projects/{id}/services/gitlab-slack-application":
    put:
      summary: Create/Edit Gitlab Slack Application integration
      description: Set Gitlab Slack Application integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesGitlabSlackApplication
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesGitlabSlackApplication"
      responses:
        '200':
          description: Create/Edit Gitlab Slack Application integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesGitlabSlackApplication
  "/api/v4/projects/{id}/services/google-play":
    put:
      summary: Create/Edit Google Play integration
      description: Set Google Play integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesGooglePlay
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesGooglePlay"
      responses:
        '200':
          description: Create/Edit Google Play integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesGooglePlay
  "/api/v4/projects/{id}/services/hangouts-chat":
    put:
      summary: Create/Edit Hangouts Chat integration
      description: Set Hangouts Chat integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesHangoutsChat
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesHangoutsChat"
      responses:
        '200':
          description: Create/Edit Hangouts Chat integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesHangoutsChat
  "/api/v4/projects/{id}/services/harbor":
    put:
      summary: Create/Edit Harbor integration
      description: Set Harbor integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesHarbor
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesHarbor"
      responses:
        '200':
          description: Create/Edit Harbor integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesHarbor
  "/api/v4/projects/{id}/services/irker":
    put:
      summary: Create/Edit Irker integration
      description: Set Irker integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesIrker
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesIrker"
      responses:
        '200':
          description: Create/Edit Irker integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesIrker
  "/api/v4/projects/{id}/services/jenkins":
    put:
      summary: Create/Edit Jenkins integration
      description: Set Jenkins integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesJenkins
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesJenkins"
      responses:
        '200':
          description: Create/Edit Jenkins integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesJenkins
  "/api/v4/projects/{id}/services/jira":
    put:
      summary: Create/Edit Jira integration
      description: Set Jira integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesJira
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesJira"
      responses:
        '200':
          description: Create/Edit Jira integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesJira
  "/api/v4/projects/{id}/services/mattermost-slash-commands":
    put:
      summary: Create/Edit Mattermost Slash Commands integration
      description: Set Mattermost Slash Commands integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesMattermostSlashCommands
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesMattermostSlashCommands"
      responses:
        '200':
          description: Create/Edit Mattermost Slash Commands integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesMattermostSlashCommands
  "/api/v4/projects/{id}/services/slack-slash-commands":
    put:
      summary: Create/Edit Slack Slash Commands integration
      description: Set Slack Slash Commands integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesSlackSlashCommands
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesSlackSlashCommands"
      responses:
        '200':
          description: Create/Edit Slack Slash Commands integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesSlackSlashCommands
  "/api/v4/projects/{id}/services/packagist":
    put:
      summary: Create/Edit Packagist integration
      description: Set Packagist integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesPackagist
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesPackagist"
      responses:
        '200':
          description: Create/Edit Packagist integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesPackagist
  "/api/v4/projects/{id}/services/phorge":
    put:
      summary: Create/Edit Phorge integration
      description: Set Phorge integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesPhorge
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesPhorge"
      responses:
        '200':
          description: Create/Edit Phorge integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesPhorge
  "/api/v4/projects/{id}/services/pipelines-email":
    put:
      summary: Create/Edit Pipelines Email integration
      description: Set Pipelines Email integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesPipelinesEmail
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesPipelinesEmail"
      responses:
        '200':
          description: Create/Edit Pipelines Email integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesPipelinesEmail
  "/api/v4/projects/{id}/services/pivotaltracker":
    put:
      summary: Create/Edit Pivotaltracker integration
      description: Set Pivotaltracker integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesPivotaltracker
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesPivotaltracker"
      responses:
        '200':
          description: Create/Edit Pivotaltracker integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesPivotaltracker
  "/api/v4/projects/{id}/services/prometheus":
    put:
      summary: Create/Edit Prometheus integration
      description: Set Prometheus integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesPrometheus
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesPrometheus"
      responses:
        '200':
          description: Create/Edit Prometheus integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesPrometheus
  "/api/v4/projects/{id}/services/pumble":
    put:
      summary: Create/Edit Pumble integration
      description: Set Pumble integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesPumble
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesPumble"
      responses:
        '200':
          description: Create/Edit Pumble integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesPumble
  "/api/v4/projects/{id}/services/pushover":
    put:
      summary: Create/Edit Pushover integration
      description: Set Pushover integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesPushover
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesPushover"
      responses:
        '200':
          description: Create/Edit Pushover integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesPushover
  "/api/v4/projects/{id}/services/redmine":
    put:
      summary: Create/Edit Redmine integration
      description: Set Redmine integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesRedmine
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesRedmine"
      responses:
        '200':
          description: Create/Edit Redmine integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesRedmine
  "/api/v4/projects/{id}/services/ewm":
    put:
      summary: Create/Edit Ewm integration
      description: Set Ewm integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesEwm
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesEwm"
      responses:
        '200':
          description: Create/Edit Ewm integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesEwm
  "/api/v4/projects/{id}/services/youtrack":
    put:
      summary: Create/Edit Youtrack integration
      description: Set Youtrack integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesYoutrack
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesYoutrack"
      responses:
        '200':
          description: Create/Edit Youtrack integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesYoutrack
  "/api/v4/projects/{id}/services/clickup":
    put:
      summary: Create/Edit Clickup integration
      description: Set Clickup integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesClickup
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesClickup"
      responses:
        '200':
          description: Create/Edit Clickup integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesClickup
  "/api/v4/projects/{id}/services/slack":
    put:
      summary: Create/Edit Slack integration
      description: Set Slack integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesSlack
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesSlack"
      responses:
        '200':
          description: Create/Edit Slack integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesSlack
  "/api/v4/projects/{id}/services/microsoft-teams":
    put:
      summary: Create/Edit Microsoft Teams integration
      description: Set Microsoft Teams integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesMicrosoftTeams
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesMicrosoftTeams"
      responses:
        '200':
          description: Create/Edit Microsoft Teams integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesMicrosoftTeams
  "/api/v4/projects/{id}/services/mattermost":
    put:
      summary: Create/Edit Mattermost integration
      description: Set Mattermost integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesMattermost
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesMattermost"
      responses:
        '200':
          description: Create/Edit Mattermost integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesMattermost
  "/api/v4/projects/{id}/services/teamcity":
    put:
      summary: Create/Edit Teamcity integration
      description: Set Teamcity integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesTeamcity
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesTeamcity"
      responses:
        '200':
          description: Create/Edit Teamcity integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesTeamcity
  "/api/v4/projects/{id}/services/telegram":
    put:
      summary: Create/Edit Telegram integration
      description: Set Telegram integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesTelegram
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesTelegram"
      responses:
        '200':
          description: Create/Edit Telegram integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesTelegram
  "/api/v4/projects/{id}/services/unify-circuit":
    put:
      summary: Create/Edit Unify Circuit integration
      description: Set Unify Circuit integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesUnifyCircuit
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesUnifyCircuit"
      responses:
        '200':
          description: Create/Edit Unify Circuit integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesUnifyCircuit
  "/api/v4/projects/{id}/services/webex-teams":
    put:
      summary: Create/Edit Webex Teams integration
      description: Set Webex Teams integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesWebexTeams
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesWebexTeams"
      responses:
        '200':
          description: Create/Edit Webex Teams integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesWebexTeams
  "/api/v4/projects/{id}/services/zentao":
    put:
      summary: Create/Edit Zentao integration
      description: Set Zentao integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesZentao
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesZentao"
      responses:
        '200':
          description: Create/Edit Zentao integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesZentao
  "/api/v4/projects/{id}/services/squash-tm":
    put:
      summary: Create/Edit Squash Tm integration
      description: Set Squash Tm integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesSquashTm
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesSquashTm"
      responses:
        '200':
          description: Create/Edit Squash Tm integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesSquashTm
  "/api/v4/projects/{id}/services/github":
    put:
      summary: Create/Edit Github integration
      description: Set Github integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesGithub
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesGithub"
      responses:
        '200':
          description: Create/Edit Github integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesGithub
  "/api/v4/projects/{id}/services/git-guardian":
    put:
      summary: Create/Edit Git Guardian integration
      description: Set Git Guardian integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesGitGuardian
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesGitGuardian"
      responses:
        '200':
          description: Create/Edit Git Guardian integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesGitGuardian
  "/api/v4/projects/{id}/services/google-cloud-platform-artifact-registry":
    put:
      summary: Create/Edit Google Cloud Platform Artifact Registry integration
      description: Set Google Cloud Platform Artifact Registry integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesGoogleCloudPlatformArtifactRegistry
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesGoogleCloudPlatformArtifactRegistry"
      responses:
        '200':
          description: Create/Edit Google Cloud Platform Artifact Registry integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesGoogleCloudPlatformArtifactRegistry
  "/api/v4/projects/{id}/services/google-cloud-platform-workload-identity-federation":
    put:
      summary: Create/Edit Google Cloud Platform Workload Identity Federation integration
      description: Set Google Cloud Platform Workload Identity Federation integration
        for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesGoogleCloudPlatformWorkloadIdentityFederation
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesGoogleCloudPlatformWorkloadIdentityFederation"
      responses:
        '200':
          description: Create/Edit Google Cloud Platform Workload Identity Federation
            integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesGoogleCloudPlatformWorkloadIdentityFederation
  "/api/v4/projects/{id}/services/mock-ci":
    put:
      summary: Create/Edit Mock Ci integration
      description: Set Mock Ci integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdServicesMockCi
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdServicesMockCi"
      responses:
        '200':
          description: Create/Edit Mock Ci integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesMockCi
  "/api/v4/projects/{id}/services/mock-monitoring":
    put:
      summary: Create/Edit Mock Monitoring integration
      description: Set Mock Monitoring integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Create/Edit Mock Monitoring integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdServicesMockMonitoring
  "/api/v4/projects/{id}/services/{slug}":
    delete:
      summary: Disable an integration
      description: Disable the integration for a project. Integration settings are
        preserved.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: slug
        description: The name of the integration
        type: string
        enum:
        - apple-app-store
        - asana
        - assembla
        - bamboo
        - bugzilla
        - buildkite
        - campfire
        - confluence
        - custom-issue-tracker
        - datadog
        - diffblue-cover
        - discord
        - drone-ci
        - emails-on-push
        - external-wiki
        - gitlab-slack-application
        - google-play
        - hangouts-chat
        - harbor
        - irker
        - jenkins
        - jira
        - jira-cloud-app
        - mattermost-slash-commands
        - slack-slash-commands
        - packagist
        - phorge
        - pipelines-email
        - pivotaltracker
        - prometheus
        - pumble
        - pushover
        - redmine
        - ewm
        - youtrack
        - clickup
        - slack
        - microsoft-teams
        - mattermost
        - teamcity
        - telegram
        - unify-circuit
        - webex-teams
        - zentao
        - squash-tm
        - github
        - git-guardian
        - google-cloud-platform-artifact-registry
        - google-cloud-platform-workload-identity-federation
        - mock-ci
        - mock-monitoring
        required: true
      responses:
        '204':
          description: Disable an integration
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: deleteApiV4ProjectsIdServicesSlug
    get:
      summary: Get an integration settings
      description: Get the integration settings for a project.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: slug
        description: The name of the integration
        type: string
        enum:
        - apple-app-store
        - asana
        - assembla
        - bamboo
        - bugzilla
        - buildkite
        - campfire
        - confluence
        - custom-issue-tracker
        - datadog
        - diffblue-cover
        - discord
        - drone-ci
        - emails-on-push
        - external-wiki
        - gitlab-slack-application
        - google-play
        - hangouts-chat
        - harbor
        - irker
        - jenkins
        - jira
        - jira-cloud-app
        - mattermost-slash-commands
        - slack-slash-commands
        - packagist
        - phorge
        - pipelines-email
        - pivotaltracker
        - prometheus
        - pumble
        - pushover
        - redmine
        - ewm
        - youtrack
        - clickup
        - slack
        - microsoft-teams
        - mattermost
        - teamcity
        - telegram
        - unify-circuit
        - webex-teams
        - zentao
        - squash-tm
        - github
        - git-guardian
        - google-cloud-platform-artifact-registry
        - google-cloud-platform-workload-identity-federation
        - mock-ci
        - mock-monitoring
        required: true
      responses:
        '200':
          description: Get an integration settings
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegration"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: getApiV4ProjectsIdServicesSlug
  "/api/v4/projects/{id}/services/mattermost_slash_commands/trigger":
    post:
      summary: Trigger a slash command for mattermost-slash-commands
      description: Added in GitLab 8.13
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdServicesMattermostSlashCommandsTrigger
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdServicesMattermostSlashCommandsTrigger"
      responses:
        '201':
          description: Trigger a slash command for mattermost-slash-commands
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: postApiV4ProjectsIdServicesMattermostSlashCommandsTrigger
  "/api/v4/projects/{id}/services/slack_slash_commands/trigger":
    post:
      summary: Trigger a slash command for slack-slash-commands
      description: Added in GitLab 8.13
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdServicesSlackSlashCommandsTrigger
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdServicesSlackSlashCommandsTrigger"
      responses:
        '201':
          description: Trigger a slash command for slack-slash-commands
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: postApiV4ProjectsIdServicesSlackSlashCommandsTrigger
  "/api/v4/projects/{id}/integrations":
    get:
      summary: List all active integrations
      description: Get a list of all active project integrations.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: List all active integrations
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: getApiV4ProjectsIdIntegrations
  "/api/v4/projects/{id}/integrations/apple-app-store":
    put:
      summary: Create/Edit Apple App Store integration
      description: Set Apple App Store integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsAppleAppStore
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsAppleAppStore"
      responses:
        '200':
          description: Create/Edit Apple App Store integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsAppleAppStore
  "/api/v4/projects/{id}/integrations/asana":
    put:
      summary: Create/Edit Asana integration
      description: Set Asana integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsAsana
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsAsana"
      responses:
        '200':
          description: Create/Edit Asana integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsAsana
  "/api/v4/projects/{id}/integrations/assembla":
    put:
      summary: Create/Edit Assembla integration
      description: Set Assembla integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsAssembla
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsAssembla"
      responses:
        '200':
          description: Create/Edit Assembla integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsAssembla
  "/api/v4/projects/{id}/integrations/bamboo":
    put:
      summary: Create/Edit Bamboo integration
      description: Set Bamboo integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsBamboo
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsBamboo"
      responses:
        '200':
          description: Create/Edit Bamboo integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsBamboo
  "/api/v4/projects/{id}/integrations/bugzilla":
    put:
      summary: Create/Edit Bugzilla integration
      description: Set Bugzilla integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsBugzilla
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsBugzilla"
      responses:
        '200':
          description: Create/Edit Bugzilla integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsBugzilla
  "/api/v4/projects/{id}/integrations/buildkite":
    put:
      summary: Create/Edit Buildkite integration
      description: Set Buildkite integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsBuildkite
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsBuildkite"
      responses:
        '200':
          description: Create/Edit Buildkite integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsBuildkite
  "/api/v4/projects/{id}/integrations/campfire":
    put:
      summary: Create/Edit Campfire integration
      description: Set Campfire integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsCampfire
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsCampfire"
      responses:
        '200':
          description: Create/Edit Campfire integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsCampfire
  "/api/v4/projects/{id}/integrations/confluence":
    put:
      summary: Create/Edit Confluence integration
      description: Set Confluence integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsConfluence
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsConfluence"
      responses:
        '200':
          description: Create/Edit Confluence integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsConfluence
  "/api/v4/projects/{id}/integrations/custom-issue-tracker":
    put:
      summary: Create/Edit Custom Issue Tracker integration
      description: Set Custom Issue Tracker integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsCustomIssueTracker
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsCustomIssueTracker"
      responses:
        '200':
          description: Create/Edit Custom Issue Tracker integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsCustomIssueTracker
  "/api/v4/projects/{id}/integrations/datadog":
    put:
      summary: Create/Edit Datadog integration
      description: Set Datadog integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsDatadog
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsDatadog"
      responses:
        '200':
          description: Create/Edit Datadog integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsDatadog
  "/api/v4/projects/{id}/integrations/diffblue-cover":
    put:
      summary: Create/Edit Diffblue Cover integration
      description: Set Diffblue Cover integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsDiffblueCover
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsDiffblueCover"
      responses:
        '200':
          description: Create/Edit Diffblue Cover integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsDiffblueCover
  "/api/v4/projects/{id}/integrations/discord":
    put:
      summary: Create/Edit Discord integration
      description: Set Discord integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsDiscord
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsDiscord"
      responses:
        '200':
          description: Create/Edit Discord integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsDiscord
  "/api/v4/projects/{id}/integrations/drone-ci":
    put:
      summary: Create/Edit Drone Ci integration
      description: Set Drone Ci integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsDroneCi
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsDroneCi"
      responses:
        '200':
          description: Create/Edit Drone Ci integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsDroneCi
  "/api/v4/projects/{id}/integrations/emails-on-push":
    put:
      summary: Create/Edit Emails On Push integration
      description: Set Emails On Push integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsEmailsOnPush
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsEmailsOnPush"
      responses:
        '200':
          description: Create/Edit Emails On Push integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsEmailsOnPush
  "/api/v4/projects/{id}/integrations/external-wiki":
    put:
      summary: Create/Edit External Wiki integration
      description: Set External Wiki integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsExternalWiki
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsExternalWiki"
      responses:
        '200':
          description: Create/Edit External Wiki integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsExternalWiki
  "/api/v4/projects/{id}/integrations/gitlab-slack-application":
    put:
      summary: Create/Edit Gitlab Slack Application integration
      description: Set Gitlab Slack Application integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsGitlabSlackApplication
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGitlabSlackApplication"
      responses:
        '200':
          description: Create/Edit Gitlab Slack Application integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsGitlabSlackApplication
  "/api/v4/projects/{id}/integrations/google-play":
    put:
      summary: Create/Edit Google Play integration
      description: Set Google Play integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsGooglePlay
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGooglePlay"
      responses:
        '200':
          description: Create/Edit Google Play integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsGooglePlay
  "/api/v4/projects/{id}/integrations/hangouts-chat":
    put:
      summary: Create/Edit Hangouts Chat integration
      description: Set Hangouts Chat integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsHangoutsChat
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsHangoutsChat"
      responses:
        '200':
          description: Create/Edit Hangouts Chat integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsHangoutsChat
  "/api/v4/projects/{id}/integrations/harbor":
    put:
      summary: Create/Edit Harbor integration
      description: Set Harbor integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsHarbor
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsHarbor"
      responses:
        '200':
          description: Create/Edit Harbor integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsHarbor
  "/api/v4/projects/{id}/integrations/irker":
    put:
      summary: Create/Edit Irker integration
      description: Set Irker integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsIrker
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsIrker"
      responses:
        '200':
          description: Create/Edit Irker integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsIrker
  "/api/v4/projects/{id}/integrations/jenkins":
    put:
      summary: Create/Edit Jenkins integration
      description: Set Jenkins integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsJenkins
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsJenkins"
      responses:
        '200':
          description: Create/Edit Jenkins integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsJenkins
  "/api/v4/projects/{id}/integrations/jira":
    put:
      summary: Create/Edit Jira integration
      description: Set Jira integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsJira
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsJira"
      responses:
        '200':
          description: Create/Edit Jira integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsJira
  "/api/v4/projects/{id}/integrations/mattermost-slash-commands":
    put:
      summary: Create/Edit Mattermost Slash Commands integration
      description: Set Mattermost Slash Commands integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsMattermostSlashCommands
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMattermostSlashCommands"
      responses:
        '200':
          description: Create/Edit Mattermost Slash Commands integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsMattermostSlashCommands
  "/api/v4/projects/{id}/integrations/slack-slash-commands":
    put:
      summary: Create/Edit Slack Slash Commands integration
      description: Set Slack Slash Commands integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsSlackSlashCommands
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsSlackSlashCommands"
      responses:
        '200':
          description: Create/Edit Slack Slash Commands integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsSlackSlashCommands
  "/api/v4/projects/{id}/integrations/packagist":
    put:
      summary: Create/Edit Packagist integration
      description: Set Packagist integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsPackagist
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPackagist"
      responses:
        '200':
          description: Create/Edit Packagist integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsPackagist
  "/api/v4/projects/{id}/integrations/phorge":
    put:
      summary: Create/Edit Phorge integration
      description: Set Phorge integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsPhorge
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPhorge"
      responses:
        '200':
          description: Create/Edit Phorge integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsPhorge
  "/api/v4/projects/{id}/integrations/pipelines-email":
    put:
      summary: Create/Edit Pipelines Email integration
      description: Set Pipelines Email integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsPipelinesEmail
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPipelinesEmail"
      responses:
        '200':
          description: Create/Edit Pipelines Email integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsPipelinesEmail
  "/api/v4/projects/{id}/integrations/pivotaltracker":
    put:
      summary: Create/Edit Pivotaltracker integration
      description: Set Pivotaltracker integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsPivotaltracker
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPivotaltracker"
      responses:
        '200':
          description: Create/Edit Pivotaltracker integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsPivotaltracker
  "/api/v4/projects/{id}/integrations/prometheus":
    put:
      summary: Create/Edit Prometheus integration
      description: Set Prometheus integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsPrometheus
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPrometheus"
      responses:
        '200':
          description: Create/Edit Prometheus integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsPrometheus
  "/api/v4/projects/{id}/integrations/pumble":
    put:
      summary: Create/Edit Pumble integration
      description: Set Pumble integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsPumble
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPumble"
      responses:
        '200':
          description: Create/Edit Pumble integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsPumble
  "/api/v4/projects/{id}/integrations/pushover":
    put:
      summary: Create/Edit Pushover integration
      description: Set Pushover integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsPushover
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsPushover"
      responses:
        '200':
          description: Create/Edit Pushover integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsPushover
  "/api/v4/projects/{id}/integrations/redmine":
    put:
      summary: Create/Edit Redmine integration
      description: Set Redmine integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsRedmine
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsRedmine"
      responses:
        '200':
          description: Create/Edit Redmine integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsRedmine
  "/api/v4/projects/{id}/integrations/ewm":
    put:
      summary: Create/Edit Ewm integration
      description: Set Ewm integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsEwm
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsEwm"
      responses:
        '200':
          description: Create/Edit Ewm integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsEwm
  "/api/v4/projects/{id}/integrations/youtrack":
    put:
      summary: Create/Edit Youtrack integration
      description: Set Youtrack integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsYoutrack
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsYoutrack"
      responses:
        '200':
          description: Create/Edit Youtrack integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsYoutrack
  "/api/v4/projects/{id}/integrations/clickup":
    put:
      summary: Create/Edit Clickup integration
      description: Set Clickup integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsClickup
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsClickup"
      responses:
        '200':
          description: Create/Edit Clickup integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsClickup
  "/api/v4/projects/{id}/integrations/slack":
    put:
      summary: Create/Edit Slack integration
      description: Set Slack integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsSlack
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsSlack"
      responses:
        '200':
          description: Create/Edit Slack integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsSlack
  "/api/v4/projects/{id}/integrations/microsoft-teams":
    put:
      summary: Create/Edit Microsoft Teams integration
      description: Set Microsoft Teams integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsMicrosoftTeams
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMicrosoftTeams"
      responses:
        '200':
          description: Create/Edit Microsoft Teams integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsMicrosoftTeams
  "/api/v4/projects/{id}/integrations/mattermost":
    put:
      summary: Create/Edit Mattermost integration
      description: Set Mattermost integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsMattermost
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMattermost"
      responses:
        '200':
          description: Create/Edit Mattermost integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsMattermost
  "/api/v4/projects/{id}/integrations/teamcity":
    put:
      summary: Create/Edit Teamcity integration
      description: Set Teamcity integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsTeamcity
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsTeamcity"
      responses:
        '200':
          description: Create/Edit Teamcity integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsTeamcity
  "/api/v4/projects/{id}/integrations/telegram":
    put:
      summary: Create/Edit Telegram integration
      description: Set Telegram integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsTelegram
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsTelegram"
      responses:
        '200':
          description: Create/Edit Telegram integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsTelegram
  "/api/v4/projects/{id}/integrations/unify-circuit":
    put:
      summary: Create/Edit Unify Circuit integration
      description: Set Unify Circuit integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsUnifyCircuit
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsUnifyCircuit"
      responses:
        '200':
          description: Create/Edit Unify Circuit integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsUnifyCircuit
  "/api/v4/projects/{id}/integrations/webex-teams":
    put:
      summary: Create/Edit Webex Teams integration
      description: Set Webex Teams integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsWebexTeams
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsWebexTeams"
      responses:
        '200':
          description: Create/Edit Webex Teams integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsWebexTeams
  "/api/v4/projects/{id}/integrations/zentao":
    put:
      summary: Create/Edit Zentao integration
      description: Set Zentao integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsZentao
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsZentao"
      responses:
        '200':
          description: Create/Edit Zentao integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsZentao
  "/api/v4/projects/{id}/integrations/squash-tm":
    put:
      summary: Create/Edit Squash Tm integration
      description: Set Squash Tm integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsSquashTm
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsSquashTm"
      responses:
        '200':
          description: Create/Edit Squash Tm integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsSquashTm
  "/api/v4/projects/{id}/integrations/github":
    put:
      summary: Create/Edit Github integration
      description: Set Github integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsGithub
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGithub"
      responses:
        '200':
          description: Create/Edit Github integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsGithub
  "/api/v4/projects/{id}/integrations/git-guardian":
    put:
      summary: Create/Edit Git Guardian integration
      description: Set Git Guardian integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsGitGuardian
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGitGuardian"
      responses:
        '200':
          description: Create/Edit Git Guardian integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsGitGuardian
  "/api/v4/projects/{id}/integrations/google-cloud-platform-artifact-registry":
    put:
      summary: Create/Edit Google Cloud Platform Artifact Registry integration
      description: Set Google Cloud Platform Artifact Registry integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsGoogleCloudPlatformArtifactRegistry
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGoogleCloudPlatformArtifactRegistry"
      responses:
        '200':
          description: Create/Edit Google Cloud Platform Artifact Registry integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsGoogleCloudPlatformArtifactRegistry
  "/api/v4/projects/{id}/integrations/google-cloud-platform-workload-identity-federation":
    put:
      summary: Create/Edit Google Cloud Platform Workload Identity Federation integration
      description: Set Google Cloud Platform Workload Identity Federation integration
        for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsGoogleCloudPlatformWorkloadIdentityFederation
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsGoogleCloudPlatformWorkloadIdentityFederation"
      responses:
        '200':
          description: Create/Edit Google Cloud Platform Workload Identity Federation
            integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsGoogleCloudPlatformWorkloadIdentityFederation
  "/api/v4/projects/{id}/integrations/mock-ci":
    put:
      summary: Create/Edit Mock Ci integration
      description: Set Mock Ci integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdIntegrationsMockCi
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdIntegrationsMockCi"
      responses:
        '200':
          description: Create/Edit Mock Ci integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsMockCi
  "/api/v4/projects/{id}/integrations/mock-monitoring":
    put:
      summary: Create/Edit Mock Monitoring integration
      description: Set Mock Monitoring integration for a project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Create/Edit Mock Monitoring integration
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegrationBasic"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: putApiV4ProjectsIdIntegrationsMockMonitoring
  "/api/v4/projects/{id}/integrations/{slug}":
    delete:
      summary: Disable an integration
      description: Disable the integration for a project. Integration settings are
        preserved.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: slug
        description: The name of the integration
        type: string
        enum:
        - apple-app-store
        - asana
        - assembla
        - bamboo
        - bugzilla
        - buildkite
        - campfire
        - confluence
        - custom-issue-tracker
        - datadog
        - diffblue-cover
        - discord
        - drone-ci
        - emails-on-push
        - external-wiki
        - gitlab-slack-application
        - google-play
        - hangouts-chat
        - harbor
        - irker
        - jenkins
        - jira
        - jira-cloud-app
        - mattermost-slash-commands
        - slack-slash-commands
        - packagist
        - phorge
        - pipelines-email
        - pivotaltracker
        - prometheus
        - pumble
        - pushover
        - redmine
        - ewm
        - youtrack
        - clickup
        - slack
        - microsoft-teams
        - mattermost
        - teamcity
        - telegram
        - unify-circuit
        - webex-teams
        - zentao
        - squash-tm
        - github
        - git-guardian
        - google-cloud-platform-artifact-registry
        - google-cloud-platform-workload-identity-federation
        - mock-ci
        - mock-monitoring
        required: true
      responses:
        '204':
          description: Disable an integration
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: deleteApiV4ProjectsIdIntegrationsSlug
    get:
      summary: Get an integration settings
      description: Get the integration settings for a project.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: slug
        description: The name of the integration
        type: string
        enum:
        - apple-app-store
        - asana
        - assembla
        - bamboo
        - bugzilla
        - buildkite
        - campfire
        - confluence
        - custom-issue-tracker
        - datadog
        - diffblue-cover
        - discord
        - drone-ci
        - emails-on-push
        - external-wiki
        - gitlab-slack-application
        - google-play
        - hangouts-chat
        - harbor
        - irker
        - jenkins
        - jira
        - jira-cloud-app
        - mattermost-slash-commands
        - slack-slash-commands
        - packagist
        - phorge
        - pipelines-email
        - pivotaltracker
        - prometheus
        - pumble
        - pushover
        - redmine
        - ewm
        - youtrack
        - clickup
        - slack
        - microsoft-teams
        - mattermost
        - teamcity
        - telegram
        - unify-circuit
        - webex-teams
        - zentao
        - squash-tm
        - github
        - git-guardian
        - google-cloud-platform-artifact-registry
        - google-cloud-platform-workload-identity-federation
        - mock-ci
        - mock-monitoring
        required: true
      responses:
        '200':
          description: Get an integration settings
          schema:
            "$ref": "#/definitions/API_Entities_ProjectIntegration"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: getApiV4ProjectsIdIntegrationsSlug
  "/api/v4/projects/{id}/integrations/mattermost_slash_commands/trigger":
    post:
      summary: Trigger a slash command for mattermost-slash-commands
      description: Added in GitLab 8.13
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdIntegrationsMattermostSlashCommandsTrigger
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdIntegrationsMattermostSlashCommandsTrigger"
      responses:
        '201':
          description: Trigger a slash command for mattermost-slash-commands
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: postApiV4ProjectsIdIntegrationsMattermostSlashCommandsTrigger
  "/api/v4/projects/{id}/integrations/slack_slash_commands/trigger":
    post:
      summary: Trigger a slash command for slack-slash-commands
      description: Added in GitLab 8.13
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdIntegrationsSlackSlashCommandsTrigger
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdIntegrationsSlackSlashCommandsTrigger"
      responses:
        '201':
          description: Trigger a slash command for slack-slash-commands
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - integrations
      operationId: postApiV4ProjectsIdIntegrationsSlackSlashCommandsTrigger
  "/api/v4/projects/{id}/invitations":
    post:
      summary: Invite non-members by email address to a group or project.
      description: This feature was introduced in GitLab 13.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
      - name: postApiV4ProjectsIdInvitations
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdInvitations"
      responses:
        '201':
          description: Invite non-members by email address to a group or project.
          schema:
            "$ref": "#/definitions/API_Entities_Invitation"
      tags:
      - invitations
      operationId: postApiV4ProjectsIdInvitations
    get:
      summary: Get a list of group or project invitations viewable by the authenticated
        user
      description: This feature was introduced in GitLab 13.6
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        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
      - in: query
        name: query
        description: A query string to search for members
        type: string
        required: false
      responses:
        '200':
          description: Get a list of group or project invitations viewable by the
            authenticated user
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Invitation"
      tags:
      - invitations
      operationId: getApiV4ProjectsIdInvitations
  "/api/v4/projects/{id}/invitations/{email}":
    put:
      description: Updates a group or project invitation.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
      - in: path
        name: email
        description: The email address of the invitation
        type: string
        required: true
      - name: putApiV4ProjectsIdInvitationsEmail
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdInvitationsEmail"
      responses:
        '200':
          description: Updates a group or project invitation.
          schema:
            "$ref": "#/definitions/API_Entities_Invitation"
      tags:
      - invitations
      operationId: putApiV4ProjectsIdInvitationsEmail
    delete:
      description: Removes an invitation from a group or project.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
      - in: path
        name: email
        description: The email address of the invitation
        type: string
        required: true
      responses:
        '204':
          description: Removes an invitation from a group or project.
        '403':
          description: Forbidden
        '404':
          description: Not found
        '409':
          description: Could not delete invitation
      tags:
      - invitations
      operationId: deleteApiV4ProjectsIdInvitationsEmail
  "/api/v4/projects/{id}/issues/{issue_iid}/links":
    get:
      summary: List issue relations
      description: Get a list of a given issue’s linked issues, sorted by the relationship
        creation datetime (ascending).Issues are filtered according to the user authorizations.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: issue_iid
        description: The internal ID of a project’s issue
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: List issue relations
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_RelatedIssue"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - issue_links
      operationId: getApiV4ProjectsIdIssuesIssueIidLinks
    post:
      summary: Create an issue link
      description: Creates a two-way relation between two issues.The user must be
        allowed to update both issues to succeed.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: issue_iid
        description: The internal ID of a project’s issue
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdIssuesIssueIidLinks
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdIssuesIssueIidLinks"
      responses:
        '201':
          description: Create an issue link
          schema:
            "$ref": "#/definitions/API_Entities_IssueLink"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
      tags:
      - issue_links
      operationId: postApiV4ProjectsIdIssuesIssueIidLinks
  "/api/v4/projects/{id}/issues/{issue_iid}/links/{issue_link_id}":
    get:
      summary: Get an issue link
      description: Gets details about an issue link. This feature was introduced in
        GitLab 15.1.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: issue_iid
        description: The internal ID of a project’s issue
        type: integer
        format: int32
        required: true
      - in: path
        name: issue_link_id
        description: ID of an issue relationship
        type: string
        required: true
      responses:
        '200':
          description: Get an issue link
          schema:
            "$ref": "#/definitions/API_Entities_IssueLink"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - issue_links
      operationId: getApiV4ProjectsIdIssuesIssueIidLinksIssueLinkId
    delete:
      summary: Delete an issue link
      description: Deletes an issue link, thus removes the two-way relationship.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: issue_iid
        description: The internal ID of a project’s issue
        type: integer
        format: int32
        required: true
      - in: path
        name: issue_link_id
        description: The ID of an issue relationship
        type: string
        required: true
      responses:
        '401':
          description: Unauthorized
        '204':
          description: Delete an issue link
          schema:
            "$ref": "#/definitions/API_Entities_IssueLink"
        '404':
          description: Not found
      tags:
      - issue_links
      operationId: deleteApiV4ProjectsIdIssuesIssueIidLinksIssueLinkId
  "/api/v4/projects/{id}/ci/lint":
    get:
      summary: Validates a CI YAML configuration with a namespace
      description: |-
        Checks if a project’s .gitlab-ci.yml configuration in a given commit (by default HEAD of the
                project’s default branch) is valid
      produces:
      - application/json
      parameters:
      - in: query
        name: sha
        description: 'Deprecated: Use content_ref instead'
        type: string
        required: false
      - in: query
        name: content_ref
        description: The CI/CD configuration content is taken from this commit SHA,
          branch or tag. Defaults to the HEAD of the project's default branch
        type: string
        required: false
      - in: query
        name: dry_run
        description: Run pipeline creation simulation, or only do static check. This
          is false by default
        type: boolean
        default: false
        required: false
      - in: query
        name: include_jobs
        description: |-
          If the list of jobs that would exist in a static check or pipeline
                  simulation should be included in the response. This is false by default
        type: boolean
        required: false
      - in: query
        name: ref
        description: 'Deprecated: Use dry_run_ref instead'
        type: string
        required: false
      - in: query
        name: dry_run_ref
        description: Branch or tag used as context when executing a dry run. Defaults
          to the default branch of the project. Only used when dry_run is true
        type: string
        required: false
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Validates a CI YAML configuration with a namespace
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Lint_Result"
        '404':
          description: Not found
      tags:
      - ci_lint
      operationId: getApiV4ProjectsIdCiLint
    post:
      summary: Validate a CI YAML configuration with a namespace
      description: Checks if CI/CD YAML configuration is valid. This endpoint has
        namespace specific context
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdCiLint
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdCiLint"
      responses:
        '200':
          description: Validate a CI YAML configuration with a namespace
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Lint_Result"
      tags:
      - ci_lint
      operationId: postApiV4ProjectsIdCiLint
  "/api/v4/projects/{id}/packages/maven/*path/{file_name}":
    get:
      summary: Download the maven package file at a project level
      description: This feature was introduced in GitLab 11.3
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: path
        description: Package path
        type: string
        required: true
        example: foo/bar/mypkg/1.0-SNAPSHOT
      - in: path
        name: file_name
        description: Package file name
        type: string
        required: true
        example: mypkg-1.0-SNAPSHOT.jar
      responses:
        '200':
          description: Download the maven package file at a project level
        '302':
          description: Download the maven package file at a project level
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - maven_packages
      operationId: getApiV4ProjectsIdPackagesMaven*pathFileName
    put:
      summary: Upload the maven package file
      description: This feature was introduced in GitLab 11.3
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: file_name
        description: Package file name
        type: string
        required: true
        example: mypkg-1.0-SNAPSHOT.pom
      - name: putApiV4ProjectsIdPackagesMaven*pathFileName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesMaven*pathFileName"
      responses:
        '200':
          description: Upload the maven package file
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '422':
          description: Unprocessable Entity
      tags:
      - maven_packages
      operationId: putApiV4ProjectsIdPackagesMaven*pathFileName
  "/api/v4/projects/{id}/packages/maven/*path/{file_name}/authorize":
    put:
      summary: Workhorse authorize the maven package file upload
      description: This feature was introduced in GitLab 11.3
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: file_name
        description: Package file name
        type: string
        required: true
        example: mypkg-1.0-SNAPSHOT.pom
      - name: putApiV4ProjectsIdPackagesMaven*pathFileNameAuthorize
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesMaven*pathFileNameAuthorize"
      responses:
        '200':
          description: Workhorse authorize the maven package file upload
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - maven_packages
      operationId: putApiV4ProjectsIdPackagesMaven*pathFileNameAuthorize
  "/api/v4/projects/{id}/members":
    get:
      description: Gets a list of group or project members viewable by the authenticated
        user.
      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.
          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, 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: 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, including those who gained membership through ancestor group.
          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
  "/api/v4/projects/{id}/create_ci_config":
    post:
      description: Creates merge request for missing ci config in project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Creates merge request for missing ci config in project
      tags:
      - projects
      operationId: postApiV4ProjectsIdCreateCiConfig
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/time_estimate":
    post:
      summary: Set a time estimate for a merge_request
      description: Sets an estimated time of work for this merge_request.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The internal ID of the merge_request.
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate"
      responses:
        '201':
          description: Set a time estimate for a merge_request
          schema:
            "$ref": "#/definitions/API_Entities_IssuableTimeStats"
        '401':
          description: Unauthorized
        '400':
          description: Bad request
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reset_time_estimate":
    post:
      summary: Reset the time estimate for a project merge_request
      description: Resets the estimated time for this merge_request to 0 seconds.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The internal ID of the merge_request.
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Reset the time estimate for a project merge_request
          schema:
            "$ref": "#/definitions/API_Entities_IssuableTimeStats"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidResetTimeEstimate
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/add_spent_time":
    post:
      summary: Add spent time for a merge_request
      description: Adds spent time for this merge_request.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The internal ID of the merge_request.
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidAddSpentTime
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidAddSpentTime"
      responses:
        '201':
          description: Add spent time for a merge_request
          schema:
            "$ref": "#/definitions/API_Entities_IssuableTimeStats"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidAddSpentTime
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reset_spent_time":
    post:
      summary: Reset spent time for a merge_request
      description: Resets the total spent time for this merge_request to 0 seconds.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The internal ID of the merge_request
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Reset spent time for a merge_request
          schema:
            "$ref": "#/definitions/API_Entities_IssuableTimeStats"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidResetSpentTime
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/time_stats":
    get:
      summary: Get time tracking stats
      description: Get time tracking stats
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The internal ID of the merge_request
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get time tracking stats
          schema:
            "$ref": "#/definitions/API_Entities_IssuableTimeStats"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidTimeStats
  "/api/v4/projects/{id}/merge_requests":
    get:
      summary: List project merge requests
      description: Get all merge requests for this project.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: query
        name: author_id
        description: Returns merge requests created by the given user `id`. Mutually
          exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`.
        type: integer
        format: int32
        required: false
      - in: query
        name: author_username
        description: Returns merge requests created by the given `username`. Mutually
          exclusive with `author_id`.
        type: string
        required: false
      - in: query
        name: assignee_id
        description: Returns merge requests assigned to the given user `id`. `None`
          returns unassigned merge requests. `Any` returns merge requests with an
          assignee.
        type: integer
        format: int32
        required: false
      - in: query
        name: assignee_username
        description: Returns merge requests created by the given `username`. Mutually
          exclusive with `author_id`.
        type: array
        items:
          type: string
        required: false
      - in: query
        name: reviewer_username
        description: Returns merge requests which have the user as a reviewer with
          the given `username`. `None` returns merge requests with no reviewers. `Any`
          returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`.
          Introduced in GitLab 13.8.
        type: string
        required: false
      - in: query
        name: labels
        description: Returns merge requests matching a comma-separated list of labels.
          `None` lists all merge requests with no labels. `Any` lists all merge requests
          with at least one label. Predefined names are case-insensitive.
        type: array
        items:
          type: string
        required: false
      - in: query
        name: milestone
        description: Returns merge requests for a specific milestone. `None` returns
          merge requests with no milestone. `Any` returns merge requests that have
          an assigned milestone.
        type: string
        required: false
      - in: query
        name: my_reaction_emoji
        description: Returns merge requests reacted by the authenticated user by the
          given `emoji`. `None` returns issues not given a reaction. `Any` returns
          issues given at least one reaction.
        type: string
        required: false
      - in: query
        name: reviewer_id
        description: Returns merge requests which have the user as a reviewer with
          the given user `id`. `None` returns merge requests with no reviewers. `Any`
          returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`.
        type: integer
        format: int32
        required: false
      - in: query
        name: state
        description: Returns `all` merge requests or just those that are `opened`,
          `closed`, `locked`, or `merged`.
        type: string
        default: all
        enum:
        - opened
        - closed
        - locked
        - merged
        - all
        required: false
      - in: query
        name: order_by
        description: Returns merge requests ordered by `created_at`, `label_priority`,
          `milestone_due`, `popularity`, `priority`, `title` or `updated_at` fields.
          Introduced in GitLab 14.8.
        type: string
        default: created_at
        enum:
        - created_at
        - label_priority
        - milestone_due
        - popularity
        - priority
        - title
        - updated_at
        required: false
      - in: query
        name: sort
        description: Returns merge requests sorted in `asc` or `desc` order.
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: with_labels_details
        description: 'If `true`, response returns more details for each label in labels
          field: `:name`,`:color`, `:description`, `:description_html`, `:text_color`'
        type: boolean
        default: false
        required: false
      - in: query
        name: with_merge_status_recheck
        description: If `true`, this projection requests (but does not guarantee)
          that the `merge_status` field be recalculated asynchronously. Introduced
          in GitLab 13.0.
        type: boolean
        default: false
        required: false
      - in: query
        name: created_after
        description: Returns merge requests created on or after the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: created_before
        description: Returns merge requests created on or before the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: updated_after
        description: Returns merge requests updated on or after the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: updated_before
        description: Returns merge requests updated on or before the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: view
        description: If simple, returns the `iid`, URL, title, description, and basic
          state of merge request
        type: string
        enum:
        - simple
        required: false
      - in: query
        name: scope
        description: 'Returns merge requests for the given scope: `created_by_me`,
          `assigned_to_me` or `all`'
        type: string
        enum:
        - created-by-me
        - assigned-to-me
        - created_by_me
        - assigned_to_me
        - all
        required: false
      - in: query
        name: source_branch
        description: Returns merge requests with the given source branch
        type: string
        required: false
      - in: query
        name: source_project_id
        description: Returns merge requests with the given source project id
        type: integer
        format: int32
        required: false
      - in: query
        name: target_branch
        description: Returns merge requests with the given target branch
        type: string
        required: false
      - in: query
        name: search
        description: Search merge requests against their `title` and `description`.
        type: string
        required: false
      - in: query
        name: in
        description: Modify the scope of the search attribute. `title`, `description`,
          or a string joining them with comma.
        type: string
        required: false
        example: title,description
      - in: query
        name: wip
        description: Filter merge requests against their `wip` status. `yes` to return
          only draft merge requests, `no` to return non-draft merge requests.
        type: string
        enum:
        - 'yes'
        - 'no'
        required: false
      - in: query
        name: not[author_id]
        description: "`<Negated>` Returns merge requests created by the given user
          `id`. Mutually exclusive with `author_username`. Combine with `scope=all`
          or `scope=assigned_to_me`."
        type: integer
        format: int32
        required: false
      - in: query
        name: not[author_username]
        description: "`<Negated>` Returns merge requests created by the given `username`.
          Mutually exclusive with `author_id`."
        type: string
        required: false
      - in: query
        name: not[assignee_id]
        description: "`<Negated>` Returns merge requests assigned to the given user
          `id`. `None` returns unassigned merge requests. `Any` returns merge requests
          with an assignee."
        type: integer
        format: int32
        required: false
      - in: query
        name: not[assignee_username]
        description: "`<Negated>` Returns merge requests created by the given `username`.
          Mutually exclusive with `author_id`."
        type: array
        items:
          type: string
        required: false
      - in: query
        name: not[reviewer_username]
        description: "`<Negated>` Returns merge requests which have the user as a
          reviewer with the given `username`. `None` returns merge requests with no
          reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive
          with `reviewer_id`. Introduced in GitLab 13.8."
        type: string
        required: false
      - in: query
        name: not[labels]
        description: "`<Negated>` Returns merge requests matching a comma-separated
          list of labels. `None` lists all merge requests with no labels. `Any` lists
          all merge requests with at least one label. Predefined names are case-insensitive."
        type: array
        items:
          type: string
        required: false
      - in: query
        name: not[milestone]
        description: "`<Negated>` Returns merge requests for a specific milestone.
          `None` returns merge requests with no milestone. `Any` returns merge requests
          that have an assigned milestone."
        type: string
        required: false
      - in: query
        name: not[my_reaction_emoji]
        description: "`<Negated>` Returns merge requests reacted by the authenticated
          user by the given `emoji`. `None` returns issues not given a reaction. `Any`
          returns issues given at least one reaction."
        type: string
        required: false
      - in: query
        name: not[reviewer_id]
        description: "`<Negated>` Returns merge requests which have the user as a
          reviewer with the given user `id`. `None` returns merge requests with no
          reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive
          with `reviewer_username`."
        type: integer
        format: int32
        required: false
      - in: query
        name: deployed_before
        description: Returns merge requests deployed before the given date/time. Expected
          in ISO 8601 format.
        type: string
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: deployed_after
        description: Returns merge requests deployed after the given date/time. Expected
          in ISO 8601 format
        type: string
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: environment
        description: Returns merge requests deployed to the given environment
        type: string
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: approved
        description: Filters merge requests by their `approved` status. `yes` returns
          only approved merge requests. `no` returns only non-approved merge requests.
        type: string
        enum:
        - 'yes'
        - 'no'
        required: false
      - in: query
        name: merge_user_id
        description: Returns merge requests which have been merged by the user with
          the given user `id`. Mutually exclusive with `merge_user_username`.
        type: integer
        format: int32
        required: false
      - in: query
        name: merge_user_username
        description: Returns merge requests which have been merged by the user with
          the given `username`. Mutually exclusive with `merge_user_id`.
        type: string
        required: false
      - in: query
        name: approver_ids
        description: Return merge requests which have specified the users with the
          given IDs as an individual approver
        type: string
        required: false
      - in: query
        name: approved_by_ids
        description: Return merge requests which have been approved by the specified
          users with the given IDs
        type: string
        required: false
      - in: query
        name: approved_by_usernames
        description: |-
          Return merge requests which have been approved by the specified users with the given
                      usernames
        type: string
        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
      - in: query
        name: iids
        description: Returns the request having the given `iid`.
        type: array
        items:
          type: integer
          format: int32
        required: false
      responses:
        '200':
          description: List project merge requests
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequestBasic"
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequests
    post:
      summary: Create merge request
      description: Create a new merge request.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - name: postApiV4ProjectsIdMergeRequests
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdMergeRequests"
      responses:
        '201':
          description: Create merge request
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequest"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '409':
          description: Conflict
        '422':
          description: Unprocessable entity
      tags:
      - merge_requests
      operationId: postApiV4ProjectsIdMergeRequests
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}":
    delete:
      summary: Delete a merge request
      description: 'Only for administrators and project owners. Deletes the merge
        request in question. '
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The internal ID of the merge request.
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a merge request
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '412':
          description: Precondition failed
      tags:
      - merge_requests
      operationId: deleteApiV4ProjectsIdMergeRequestsMergeRequestIid
    get:
      summary: Get single merge request
      description: 'Shows information about a single merge request. Note: the `changes_count`
        value in the response is a string, not an integer. This is because when an
        merge request has too many changes to display and store, it is capped at 1,000.
        In that case, the API returns the string `"1000+"` for the changes count.'
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The internal ID of the merge request.
        type: integer
        format: int32
        required: true
      - in: query
        name: render_html
        description: If `true`, response includes rendered HTML for title and description.
        type: boolean
        required: false
      - in: query
        name: include_diverged_commits_count
        description: If `true`, response includes the commits behind the target branch.
        type: boolean
        required: false
      - in: query
        name: include_rebase_in_progress
        description: If `true`, response includes whether a rebase operation is in
          progress.
        type: boolean
        required: false
      responses:
        '200':
          description: Get single merge request
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequest"
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIid
    put:
      summary: Update merge request
      description: Updates an existing merge request. You can change the target branch,
        title, or even close the merge request.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdMergeRequestsMergeRequestIid
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdMergeRequestsMergeRequestIid"
      responses:
        '200':
          description: Update merge request
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequest"
        '400':
          description: Bad request
        '404':
          description: Not found
        '409':
          description: Conflict
        '422':
          description: Unprocessable entity
      tags:
      - merge_requests
      operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIid
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/participants":
    get:
      summary: Get single merge request participants
      description: Get a list of merge request participants.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get single merge request participants
          schema:
            "$ref": "#/definitions/API_Entities_UserBasic"
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidParticipants
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reviewers":
    get:
      summary: Get single merge request reviewers
      description: Get a list of merge request reviewers.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get single merge request reviewers
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequestReviewer"
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidReviewers
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/commits":
    get:
      summary: Get single merge request commits
      description: Get a list of merge request commits.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get single merge request commits
          schema:
            "$ref": "#/definitions/API_Entities_Commit"
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidCommits
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/context_commits":
    get:
      summary: List merge request context commits
      description: Get a list of merge request context commits.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: List merge request context commits
          schema:
            "$ref": "#/definitions/API_Entities_Commit"
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits
    post:
      summary: Create merge request context commits
      description: Create a list of merge request context commits.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits"
      responses:
        '201':
          description: Create merge request context commits
          schema:
            "$ref": "#/definitions/API_Entities_Commit"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits
    delete:
      summary: Delete merge request context commits
      description: Delete a list of merge request context commits.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: query
        name: commits
        description: The context commits’ SHA.
        type: array
        items:
          type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete merge request context commits
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: deleteApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/changes":
    get:
      summary: Get single merge request changes
      description: Shows information about the merge request including its files and
        changes.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: query
        name: unidiff
        description: A diff in a Unified diff format
        type: boolean
        default: false
        required: false
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get single merge request changes
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequestChanges"
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidChanges
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/diffs":
    get:
      summary: Get the merge request diffs
      description: Get a list of merge request diffs.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        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
      - in: query
        name: unidiff
        description: A diff in a Unified diff format
        type: boolean
        default: false
        required: false
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get the merge request diffs
          schema:
            "$ref": "#/definitions/API_Entities_Diff"
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidDiffs
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/pipelines":
    get:
      summary: Get single merge request pipelines
      description: Get a list of merge request pipelines.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get single merge request pipelines
          schema:
            "$ref": "#/definitions/API_Entities_Ci_PipelineBasic"
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines
    post:
      summary: Create merge request pipeline
      description: 'Create a new pipeline for a merge request. A pipeline created
        via this endpoint doesn’t run a regular branch/tag pipeline. It requires `.gitlab-ci.yml`
        to be configured with `only: [merge_requests]` to create jobs.'
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Create merge request pipeline
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Pipeline"
        '400':
          description: Bad request
        '404':
          description: Not found
        '405':
          description: Method not allowed
      tags:
      - merge_requests
      operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidPipelines
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/merge":
    put:
      summary: Merge a merge request
      description: Accept and merge changes submitted with the merge request using
        this API.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge"
      responses:
        '200':
          description: Merge a merge request
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequest"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '405':
          description: Method not allowed
        '409':
          description: Conflict
        '422':
          description: Unprocessable entity
      tags:
      - merge_requests
      operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/merge_ref":
    get:
      summary: Returns the up to date merge-ref HEAD commit
      description: Returns the up to date merge-ref HEAD commit
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Returns the up to date merge-ref HEAD commit
        '400':
          description: Bad request
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidMergeRef
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/cancel_merge_when_pipeline_succeeds":
    post:
      summary: Cancel Merge When Pipeline Succeeds
      description: Cancel merge if "Merge When Pipeline Succeeds" is enabled
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Cancel Merge When Pipeline Succeeds
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequest"
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '405':
          description: Method not allowed
        '406':
          description: Not acceptable
      tags:
      - merge_requests
      operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidCancelMergeWhenPipelineSucceeds
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/rebase":
    put:
      summary: Rebase a merge request
      description: Automatically rebase the `source_branch` of the merge request against
        its `target_branch`. This feature was added in GitLab 11.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        type: string
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdMergeRequestsMergeRequestIidRebase
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdMergeRequestsMergeRequestIidRebase"
      responses:
        '200':
          description: Rebase a merge request
        '403':
          description: Forbidden
        '404':
          description: Not found
        '409':
          description: Conflict
      tags:
      - merge_requests
      operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidRebase
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/closes_issues":
    get:
      summary: List issues that close on merge
      description: Get all the issues that would be closed by merging the provided
        merge request.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project.
        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
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: List issues that close on merge
          schema:
            "$ref": "#/definitions/API_Entities_MRNote"
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidClosesIssues
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/versions":
    get:
      summary: Get a list of merge request diff versions
      description: This feature was introduced in GitLab 8.12.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The internal ID of the merge request
        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 a list of merge request diff versions
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_MergeRequestDiff"
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidVersions
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/versions/{version_id}":
    get:
      summary: Get a single merge request diff version
      description: This feature was introduced in GitLab 8.12.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The internal ID of the merge request
        type: integer
        format: int32
        required: true
      - in: path
        name: version_id
        description: The ID of the merge request diff version
        type: integer
        format: int32
        required: true
      - in: query
        name: unidiff
        description: A diff in a Unified diff format
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get a single merge request diff version
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequestDiffFull"
      tags:
      - merge_requests
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidVersionsVersionId
  "/api/v4/projects/{id}/packages/{package_id}/package_files":
    get:
      summary: List package files
      description: Get a list of package files of a single package
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_id
        description: ID of a package
        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: List package files
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_PackageFile"
      tags:
      - package_files
      operationId: getApiV4ProjectsIdPackagesPackageIdPackageFiles
  "/api/v4/projects/{id}/packages/{package_id}/package_files/{package_file_id}":
    delete:
      summary: Delete a package file
      description: This feature was introduced in GitLab 13.12
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_id
        description: ID of a package
        type: integer
        format: int32
        required: true
      - in: path
        name: package_file_id
        description: ID of a package file
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a package file
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - package_files
      operationId: deleteApiV4ProjectsIdPackagesPackageIdPackageFilesPackageFileId
  "/api/v4/projects/{id}/pages":
    delete:
      summary: Unpublish pages
      description: Remove pages. The user must have administrator access. This feature
        was introduced in GitLab 12.6
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      responses:
        '204':
          description: Unpublish pages
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pages
      operationId: deleteApiV4ProjectsIdPages
    patch:
      summary: Update pages settings
      description: Update page settings for a project. User must have administrative
        access.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - name: patchApiV4ProjectsIdPages
        in: body
        required: true
        schema:
          "$ref": "#/definitions/patchApiV4ProjectsIdPages"
      responses:
        '200':
          description: Update pages settings
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pages
      operationId: patchApiV4ProjectsIdPages
    get:
      summary: Get pages settings
      description: Get pages URL and other settings. This feature was introduced in
        Gitlab 16.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      responses:
        '200':
          description: Get pages settings
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - pages
      operationId: getApiV4ProjectsIdPages
  "/api/v4/projects/{id}/pages/domains":
    get:
      description: Get all pages domains
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        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: Get all pages domains
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_PagesDomain"
      tags:
      - pages_domains
      operationId: getApiV4ProjectsIdPagesDomains
    post:
      description: Create a new pages domain
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - name: postApiV4ProjectsIdPagesDomains
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdPagesDomains"
      responses:
        '201':
          description: Create a new pages domain
          schema:
            "$ref": "#/definitions/API_Entities_PagesDomain"
      tags:
      - projects
      operationId: postApiV4ProjectsIdPagesDomains
  "/api/v4/projects/{id}/pages/domains/{domain}":
    get:
      description: Get a single pages domain
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: domain
        description: The domain
        type: string
        required: true
      responses:
        '200':
          description: Get a single pages domain
          schema:
            "$ref": "#/definitions/API_Entities_PagesDomain"
      tags:
      - projects
      operationId: getApiV4ProjectsIdPagesDomainsDomain
    put:
      description: Updates a pages domain
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: domain
        description: The domain
        type: string
        required: true
      - name: putApiV4ProjectsIdPagesDomainsDomain
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPagesDomainsDomain"
      responses:
        '200':
          description: Updates a pages domain
      tags:
      - projects
      operationId: putApiV4ProjectsIdPagesDomainsDomain
    delete:
      description: Delete a pages domain
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: domain
        description: The domain
        type: string
        required: true
      responses:
        '204':
          description: Delete a pages domain
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdPagesDomainsDomain
  "/api/v4/projects/{id}/avatar":
    get:
      summary: Download a project avatar
      description: This feature was introduced in GitLab 16.9
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Download a project avatar
      tags:
      - project_avatar
      operationId: getApiV4ProjectsIdAvatar
  "/api/v4/projects/{id}/clusters":
    get:
      summary: List project clusters
      description: This feature was introduced in GitLab 11.7. Returns a list of project
        clusters.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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: List project clusters
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Cluster"
        '403':
          description: Forbidden
      tags:
      - clusters
      operationId: getApiV4ProjectsIdClusters
  "/api/v4/projects/{id}/clusters/{cluster_id}":
    get:
      summary: Get a single project cluster
      description: This feature was introduced in GitLab 11.7. Gets a single project
        cluster.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: cluster_id
        description: The cluster ID
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single project cluster
          schema:
            "$ref": "#/definitions/API_Entities_ClusterProject"
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - clusters
      operationId: getApiV4ProjectsIdClustersClusterId
    put:
      summary: Edit project cluster
      description: This feature was introduced in GitLab 11.7. Updates an existing
        project cluster.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: cluster_id
        description: The cluster ID
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdClustersClusterId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdClustersClusterId"
      responses:
        '200':
          description: Edit project cluster
          schema:
            "$ref": "#/definitions/API_Entities_ClusterProject"
        '400':
          description: Validation error
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - clusters
      operationId: putApiV4ProjectsIdClustersClusterId
    delete:
      summary: Delete project cluster
      description: This feature was introduced in GitLab 11.7. Deletes an existing
        project cluster. Does not remove existing resources within the connected Kubernetes
        cluster.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: cluster_id
        description: The Cluster ID
        type: integer
        format: int32
        required: true
      responses:
        '403':
          description: Forbidden
        '204':
          description: Delete project cluster
          schema:
            "$ref": "#/definitions/API_Entities_ClusterProject"
        '404':
          description: Not found
      tags:
      - clusters
      operationId: deleteApiV4ProjectsIdClustersClusterId
  "/api/v4/projects/{id}/clusters/user":
    post:
      summary: Add existing cluster to project
      description: This feature was introduced in GitLab 11.7. Adds an existing Kubernetes
        cluster to the project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdClustersUser
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdClustersUser"
      responses:
        '201':
          description: Add existing cluster to project
          schema:
            "$ref": "#/definitions/API_Entities_ClusterProject"
        '400':
          description: Validation error
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - clusters
      operationId: postApiV4ProjectsIdClustersUser
  "/api/v4/projects/{id}/registry/repositories":
    get:
      summary: List container repositories within a project
      description: This feature was introduced in GitLab 11.8.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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
      - in: query
        name: tags
        description: Determines if tags should be included
        type: boolean
        default: false
        required: false
      - in: query
        name: tags_count
        description: Determines if the tags count should be included
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: List container repositories within a project
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ContainerRegistry_Repository"
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - container_registry
      operationId: getApiV4ProjectsIdRegistryRepositories
  "/api/v4/projects/{id}/registry/repositories/{repository_id}":
    delete:
      summary: Delete repository
      description: This feature was introduced in GitLab 11.8.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: repository_id
        description: The ID of the repository
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Success
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - container_registry
      operationId: deleteApiV4ProjectsIdRegistryRepositoriesRepositoryId
  "/api/v4/projects/{id}/registry/repositories/{repository_id}/tags":
    get:
      summary: List tags of a repository
      description: This feature was introduced in GitLab 11.8.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: repository_id
        description: The ID of the repository
        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: List tags of a repository
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ContainerRegistry_Tag"
        '401':
          description: Unauthorized
        '404':
          description: Not Found
        '405':
          description: Method Not Allowed
      tags:
      - container_registry
      operationId: getApiV4ProjectsIdRegistryRepositoriesRepositoryIdTags
    delete:
      summary: Delete repository tags (in bulk)
      description: This feature was introduced in GitLab 11.8.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: repository_id
        description: The ID of the repository
        type: integer
        format: int32
        required: true
      - in: query
        name: name_regex_delete
        description: The tag name regexp to delete, specify .* to delete all
        type: string
        required: false
      - in: query
        name: name_regex
        description: The tag name regexp to delete, specify .* to delete all
        type: string
        required: false
      - in: query
        name: name_regex_keep
        description: The tag name regexp to retain
        type: string
        required: false
      - in: query
        name: keep_n
        description: Keep n of latest tags with matching name
        type: integer
        format: int32
        required: false
      - in: query
        name: older_than
        description: 'Delete older than: 1h, 1d, 1month'
        type: string
        required: false
      responses:
        '204':
          description: Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - container_registry
      operationId: deleteApiV4ProjectsIdRegistryRepositoriesRepositoryIdTags
  "/api/v4/projects/{id}/registry/repositories/{repository_id}/tags/{tag_name}":
    get:
      summary: Get details about a repository tag
      description: This feature was introduced in GitLab 11.8.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: repository_id
        description: The ID of the repository
        type: integer
        format: int32
        required: true
      - in: path
        name: tag_name
        description: The name of the tag
        type: string
        required: true
      responses:
        '200':
          description: Get details about a repository tag
          schema:
            "$ref": "#/definitions/API_Entities_ContainerRegistry_TagDetails"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - container_registry
      operationId: getApiV4ProjectsIdRegistryRepositoriesRepositoryIdTagsTagName
    delete:
      summary: Delete repository tag
      description: This feature was introduced in GitLab 11.8.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: repository_id
        description: The ID of the repository
        type: integer
        format: int32
        required: true
      - in: path
        name: tag_name
        description: The name of the tag
        type: string
        required: true
      responses:
        '204':
          description: Success
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - container_registry
      operationId: deleteApiV4ProjectsIdRegistryRepositoriesRepositoryIdTagsTagName
  "/api/v4/projects/{id}/events":
    get:
      description: List a project's visible events
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: action
        description: Event action to filter on
        type: string
        required: false
      - in: query
        name: target_type
        description: Event target type to filter on
        type: string
        enum:
        - issue
        - milestone
        - merge_request
        - note
        - project
        - snippet
        - user
        - wiki
        - design
        required: false
      - in: query
        name: before
        description: Include only events created before this date
        type: string
        format: date
        required: false
      - in: query
        name: after
        description: Include only events created after this date
        type: string
        format: date
        required: false
      - in: query
        name: sort
        description: Return events sorted in ascending and descending order
        type: string
        default: desc
        enum:
        - asc
        - desc
        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: List a project's visible events
          schema:
            "$ref": "#/definitions/API_Entities_Event"
      tags:
      - projects
      operationId: getApiV4ProjectsIdEvents
  "/api/v4/projects/{id}/export":
    get:
      summary: Get export status
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Get export status
          schema:
            "$ref": "#/definitions/API_Entities_ProjectExportStatus"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_export
      operationId: getApiV4ProjectsIdExport
    post:
      summary: Start export
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdExport
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdExport"
      responses:
        '202':
          description: Start export
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '429':
          description: Too many requests
        '503':
          description: Service unavailable
      tags:
      - project_export
      operationId: postApiV4ProjectsIdExport
  "/api/v4/projects/{id}/export/download":
    get:
      summary: Download export
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/octet-stream
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Download export
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_export
      operationId: getApiV4ProjectsIdExportDownload
  "/api/v4/projects/{id}/export_relations":
    post:
      summary: Start relations export
      description: This feature was introduced in GitLab 14.4
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdExportRelations
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdExportRelations"
      responses:
        '202':
          description: Start relations export
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_export
      operationId: postApiV4ProjectsIdExportRelations
  "/api/v4/projects/{id}/export_relations/download":
    get:
      summary: Download relations export
      description: This feature was introduced in GitLab 14.4
      produces:
      - application/octet-stream
      - application/gzip
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: relation
        description: Project relation name
        type: string
        required: true
      - in: query
        name: batched
        description: Whether to download in batches
        type: boolean
        required: false
      - in: query
        name: batch_number
        description: Batch number to download
        type: integer
        format: int32
        required: false
      responses:
        '200':
          description: Download relations export
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '500':
          description: Internal Server Error
        '503':
          description: Service unavailable
      tags:
      - project_export
      operationId: getApiV4ProjectsIdExportRelationsDownload
  "/api/v4/projects/{id}/export_relations/status":
    get:
      summary: Relations export status
      description: This feature was introduced in GitLab 14.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: relation
        description: Project relation name
        type: string
        required: false
      responses:
        '200':
          description: Relations export status
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_BulkImports_ExportStatus"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_export
      operationId: getApiV4ProjectsIdExportRelationsStatus
  "/api/v4/projects/{id}/hooks":
    get:
      summary: List project hooks
      description: Get a list of project hooks
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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: List project hooks
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ProjectHook"
      tags:
      - project_hooks
      operationId: getApiV4ProjectsIdHooks
    post:
      summary: Add project hook
      description: Adds a hook to a specified project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdHooks
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdHooks"
      responses:
        '201':
          description: Add project hook
          schema:
            "$ref": "#/definitions/API_Entities_ProjectHook"
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - project_hooks
      operationId: postApiV4ProjectsIdHooks
  "/api/v4/projects/{id}/hooks/{hook_id}":
    get:
      summary: Get project hook
      description: Get a specific hook for a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: hook_id
        description: The ID of a project hook
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get project hook
          schema:
            "$ref": "#/definitions/API_Entities_ProjectHook"
        '404':
          description: Not found
      tags:
      - project_hooks
      operationId: getApiV4ProjectsIdHooksHookId
    put:
      summary: Edit project hook
      description: Edits a hook for a specified project.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: hook_id
        description: The ID of the project hook
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdHooksHookId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdHooksHookId"
      responses:
        '200':
          description: Edit project hook
          schema:
            "$ref": "#/definitions/API_Entities_ProjectHook"
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - project_hooks
      operationId: putApiV4ProjectsIdHooksHookId
    delete:
      summary: Delete a project hook
      description: Removes a hook from a project. This is an idempotent method and
        can be called multiple times. Either the hook is available or not.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: hook_id
        description: The ID of the project hook
        type: integer
        format: int32
        required: true
      responses:
        '404':
          description: Not found
        '204':
          description: Delete a project hook
          schema:
            "$ref": "#/definitions/API_Entities_ProjectHook"
      tags:
      - project_hooks
      operationId: deleteApiV4ProjectsIdHooksHookId
  "/api/v4/projects/import/authorize":
    post:
      summary: Workhorse authorize the project import upload
      description: This feature was introduced in GitLab 12.9
      produces:
      - application/json
      consumes:
      - application/json
      responses:
        '201':
          description: Workhorse authorize the project import upload
      tags:
      - project_import
      operationId: postApiV4ProjectsImportAuthorize
  "/api/v4/projects/import":
    post:
      summary: Create a new project import
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      consumes:
      - multipart/form-data
      parameters:
      - in: formData
        name: path
        description: The new project path and name
        type: string
        required: true
      - in: formData
        name: file
        description: The project export file to be imported
        type: file
        required: true
      - in: formData
        name: name
        description: The name of the project to be imported. Defaults to the path
          of the project if not provided.
        type: string
        required: false
      - in: formData
        name: namespace
        description: The ID or name of the namespace that the project will be imported
          into. Defaults to the current user's namespace.
        type: string
        required: false
      - in: formData
        name: overwrite
        description: If there is a project in the same namespace and with the same
          name overwrite it
        type: boolean
        default: false
        required: false
      - in: formData
        name: override_params[description]
        description: The description of the project
        type: string
        required: false
      - in: formData
        name: override_params[build_git_strategy]
        description: The Git strategy. Defaults to `fetch`
        type: string
        enum:
        - fetch
        - clone
        required: false
      - in: formData
        name: override_params[build_timeout]
        description: Build timeout
        type: integer
        format: int32
        required: false
      - in: formData
        name: override_params[auto_cancel_pending_pipelines]
        description: Auto-cancel pending pipelines
        type: string
        enum:
        - disabled
        - enabled
        required: false
      - in: formData
        name: override_params[ci_config_path]
        description: The path to CI config file. Defaults to `.gitlab-ci.yml`
        type: string
        required: false
      - in: formData
        name: override_params[service_desk_enabled]
        description: Disable or enable the service desk
        type: boolean
        required: false
      - in: formData
        name: override_params[issues_enabled]
        description: Flag indication if the issue tracker is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[merge_requests_enabled]
        description: Flag indication if merge requests are enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[wiki_enabled]
        description: Flag indication if the wiki is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[jobs_enabled]
        description: Flag indication if jobs are enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[snippets_enabled]
        description: Flag indication if snippets are enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[issues_access_level]
        description: Issues access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[repository_access_level]
        description: Repository access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[merge_requests_access_level]
        description: Merge requests access level. One of `disabled`, `private` or
          `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[forking_access_level]
        description: Forks access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[wiki_access_level]
        description: Wiki access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[builds_access_level]
        description: Builds access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[snippets_access_level]
        description: Snippets access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[pages_access_level]
        description: Pages access level. One of `disabled`, `private`, `enabled` or
          `public`
        type: string
        enum:
        - disabled
        - private
        - enabled
        - public
        required: false
      - in: formData
        name: override_params[analytics_access_level]
        description: Analytics access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[container_registry_access_level]
        description: Controls visibility of the container registry. One of `disabled`,
          `private` or `enabled`. `private` will make the container registry accessible
          only to project members (reporter role and above). `enabled` will make the
          container registry accessible to everyone who has access to the project.
          `disabled` will disable the container registry
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[security_and_compliance_access_level]
        description: Security and compliance access level. One of `disabled`, `private`
          or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[releases_access_level]
        description: Releases access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[environments_access_level]
        description: Environments access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[feature_flags_access_level]
        description: Feature flags access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[infrastructure_access_level]
        description: Infrastructure access level. One of `disabled`, `private` or
          `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[monitor_access_level]
        description: Monitor access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[model_experiments_access_level]
        description: Model experiments access level. One of `disabled`, `private`
          or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[model_registry_access_level]
        description: Model registry access level. One of `disabled`, `private` or
          `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[emails_disabled]
        description: 'Deprecated: Use emails_enabled instead.'
        type: boolean
        required: false
      - in: formData
        name: override_params[emails_enabled]
        description: Enable email notifications
        type: boolean
        required: false
      - in: formData
        name: override_params[show_default_award_emojis]
        description: Show default award emojis
        type: boolean
        required: false
      - in: formData
        name: override_params[show_diff_preview_in_email]
        description: Include the code diff preview in merge request notification emails
        type: boolean
        required: false
      - in: formData
        name: override_params[warn_about_potentially_unwanted_characters]
        description: Warn about potentially unwanted characters
        type: boolean
        required: false
      - in: formData
        name: override_params[enforce_auth_checks_on_uploads]
        description: Enforce auth check on uploads
        type: boolean
        required: false
      - in: formData
        name: override_params[shared_runners_enabled]
        description: Flag indication if shared runners are enabled for that project
        type: boolean
        required: false
      - in: formData
        name: override_params[group_runners_enabled]
        description: Flag indication if group runners are enabled for that project
        type: boolean
        required: false
      - in: formData
        name: override_params[resolve_outdated_diff_discussions]
        description: Automatically resolve merge request diff threads on lines changed
          with a push
        type: boolean
        required: false
      - in: formData
        name: override_params[remove_source_branch_after_merge]
        description: Remove the source branch by default after merge
        type: boolean
        required: false
      - in: formData
        name: override_params[container_registry_enabled]
        description: 'Deprecated: Use :container_registry_access_level instead. Flag
          indication if the container registry is enabled for that project'
        type: boolean
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][cadence]
        description: Container expiration policy cadence for recurring job
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][keep_n]
        description: Container expiration policy number of images to keep
        type: integer
        format: int32
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][older_than]
        description: Container expiration policy remove images older than value
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][name_regex]
        description: Container expiration policy regex for image removal
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][name_regex_keep]
        description: Container expiration policy regex for image retention
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][enabled]
        description: Flag indication if container expiration policy is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[lfs_enabled]
        description: Flag indication if Git LFS is enabled for that project
        type: boolean
        required: false
      - in: formData
        name: override_params[visibility]
        description: The visibility of the project.
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: formData
        name: override_params[public_builds]
        description: 'Deprecated: Use public_jobs instead.'
        type: boolean
        required: false
      - in: formData
        name: override_params[public_jobs]
        description: Perform public builds
        type: boolean
        required: false
      - in: formData
        name: override_params[request_access_enabled]
        description: Allow users to request member access
        type: boolean
        required: false
      - in: formData
        name: override_params[only_allow_merge_if_pipeline_succeeds]
        description: Only allow to merge if builds succeed
        type: boolean
        required: false
      - in: formData
        name: override_params[allow_merge_on_skipped_pipeline]
        description: Allow to merge if pipeline is skipped
        type: boolean
        required: false
      - in: formData
        name: override_params[only_allow_merge_if_all_discussions_are_resolved]
        description: Only allow to merge if all threads are resolved
        type: boolean
        required: false
      - in: formData
        name: override_params[tag_list]
        description: 'Deprecated: Use :topics instead'
        type: array
        items:
          type: string
        required: false
      - in: formData
        name: override_params[topics]
        description: The list of topics for a project
        type: array
        items:
          type: string
        required: false
      - in: formData
        name: override_params[avatar]
        description: Avatar image for project
        type: file
        required: false
      - in: formData
        name: override_params[printing_merge_request_link_enabled]
        description: Show link to create/view merge request when pushing from the
          command line
        type: boolean
        required: false
      - in: formData
        name: override_params[merge_method]
        description: The merge method used when merging merge requests
        type: string
        enum:
        - ff
        - rebase_merge
        - merge
        required: false
      - in: formData
        name: override_params[suggestion_commit_message]
        description: The commit message used to apply merge request suggestions
        type: string
        required: false
      - in: formData
        name: override_params[merge_commit_template]
        description: Template used to create merge commit message
        type: string
        required: false
      - in: formData
        name: override_params[squash_commit_template]
        description: Template used to create squash commit message
        type: string
        required: false
      - in: formData
        name: override_params[issue_branch_template]
        description: Template used to create a branch from an issue
        type: string
        required: false
      - in: formData
        name: override_params[initialize_with_readme]
        description: Initialize a project with a README.md
        type: boolean
        required: false
      - in: formData
        name: override_params[auto_devops_enabled]
        description: Flag indication if Auto DevOps is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[auto_devops_deploy_strategy]
        description: Auto Deploy strategy
        type: string
        enum:
        - continuous
        - manual
        - timed_incremental
        required: false
      - in: formData
        name: override_params[autoclose_referenced_issues]
        description: Flag indication if referenced issues auto-closing is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[repository_storage]
        description: Which storage shard the repository is on. Available only to admins
        type: string
        required: false
      - in: formData
        name: override_params[packages_enabled]
        description: Enable project packages feature
        type: boolean
        required: false
      - in: formData
        name: override_params[squash_option]
        description: Squash default for project. One of `never`, `always`, `default_on`,
          or `default_off`.
        type: string
        enum:
        - never
        - always
        - default_on
        - default_off
        required: false
      - in: formData
        name: override_params[mr_default_target_self]
        description: Merge requests of this forked project targets itself by default
        type: boolean
        required: false
      - in: formData
        name: override_params[only_allow_merge_if_all_status_checks_passed]
        description: Blocks merge requests from merging unless all status checks have
          passed
        type: boolean
        required: false
      - in: formData
        name: override_params[approvals_before_merge]
        description: How many approvers should approve merge request by default
        type: integer
        format: int32
        required: false
      - in: formData
        name: override_params[mirror]
        description: Enables pull mirroring in a project
        type: boolean
        required: false
      - in: formData
        name: override_params[mirror_trigger_builds]
        description: Pull mirroring triggers builds
        type: boolean
        required: false
      - in: formData
        name: override_params[external_authorization_classification_label]
        description: The classification label for the project
        type: string
        required: false
      - in: formData
        name: override_params[requirements_access_level]
        description: Requirements feature access level. One of `disabled`, `private`
          or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[prevent_merge_without_jira_issue]
        description: Require an associated issue from Jira
        type: boolean
        required: false
      - in: formData
        name: file.path
        description: Path to locally stored body (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.name
        description: Real filename as send in Content-Disposition (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.type
        description: Real content type as send in Content-Type (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.size
        description: Real size of file (generated by Workhorse)
        type: integer
        format: int32
        required: false
      - in: formData
        name: file.md5
        description: MD5 checksum of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.sha1
        description: SHA1 checksum of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.sha256
        description: SHA256 checksum of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.etag
        description: Etag of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.remote_id
        description: Remote_id of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.remote_url
        description: Remote_url of the file (generated by Workhorse)
        type: string
        required: false
      responses:
        '201':
          description: Create a new project import
          schema:
            "$ref": "#/definitions/API_Entities_ProjectImportStatus"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '400':
          description: Bad request
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: postApiV4ProjectsImport
  "/api/v4/projects/{id}/import":
    get:
      summary: Get a project import status
      description: This feature was introduced in GitLab 10.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Get a project import status
          schema:
            "$ref": "#/definitions/API_Entities_ProjectImportStatus"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '400':
          description: Bad request
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: getApiV4ProjectsIdImport
  "/api/v4/projects/remote-import":
    post:
      summary: Create a new project import using a remote object storage path
      description: This feature was introduced in GitLab 13.2.
      produces:
      - application/json
      consumes:
      - multipart/form-data
      parameters:
      - in: formData
        name: url
        description: The URL for the file.
        type: string
        required: true
      - in: formData
        name: path
        description: The new project path and name
        type: string
        required: true
      - in: formData
        name: name
        description: The name of the project to be imported. Defaults to the path
          of the project if not provided.
        type: string
        required: false
      - in: formData
        name: namespace
        description: The ID or name of the namespace that the project will be imported
          into. Defaults to the current user's namespace.
        type: string
        required: false
      - in: formData
        name: overwrite
        description: If there is a project in the same namespace and with the same
          name overwrite it
        type: boolean
        default: false
        required: false
      - in: formData
        name: override_params[description]
        description: The description of the project
        type: string
        required: false
      - in: formData
        name: override_params[build_git_strategy]
        description: The Git strategy. Defaults to `fetch`
        type: string
        enum:
        - fetch
        - clone
        required: false
      - in: formData
        name: override_params[build_timeout]
        description: Build timeout
        type: integer
        format: int32
        required: false
      - in: formData
        name: override_params[auto_cancel_pending_pipelines]
        description: Auto-cancel pending pipelines
        type: string
        enum:
        - disabled
        - enabled
        required: false
      - in: formData
        name: override_params[ci_config_path]
        description: The path to CI config file. Defaults to `.gitlab-ci.yml`
        type: string
        required: false
      - in: formData
        name: override_params[service_desk_enabled]
        description: Disable or enable the service desk
        type: boolean
        required: false
      - in: formData
        name: override_params[issues_enabled]
        description: Flag indication if the issue tracker is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[merge_requests_enabled]
        description: Flag indication if merge requests are enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[wiki_enabled]
        description: Flag indication if the wiki is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[jobs_enabled]
        description: Flag indication if jobs are enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[snippets_enabled]
        description: Flag indication if snippets are enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[issues_access_level]
        description: Issues access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[repository_access_level]
        description: Repository access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[merge_requests_access_level]
        description: Merge requests access level. One of `disabled`, `private` or
          `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[forking_access_level]
        description: Forks access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[wiki_access_level]
        description: Wiki access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[builds_access_level]
        description: Builds access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[snippets_access_level]
        description: Snippets access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[pages_access_level]
        description: Pages access level. One of `disabled`, `private`, `enabled` or
          `public`
        type: string
        enum:
        - disabled
        - private
        - enabled
        - public
        required: false
      - in: formData
        name: override_params[analytics_access_level]
        description: Analytics access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[container_registry_access_level]
        description: Controls visibility of the container registry. One of `disabled`,
          `private` or `enabled`. `private` will make the container registry accessible
          only to project members (reporter role and above). `enabled` will make the
          container registry accessible to everyone who has access to the project.
          `disabled` will disable the container registry
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[security_and_compliance_access_level]
        description: Security and compliance access level. One of `disabled`, `private`
          or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[releases_access_level]
        description: Releases access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[environments_access_level]
        description: Environments access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[feature_flags_access_level]
        description: Feature flags access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[infrastructure_access_level]
        description: Infrastructure access level. One of `disabled`, `private` or
          `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[monitor_access_level]
        description: Monitor access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[model_experiments_access_level]
        description: Model experiments access level. One of `disabled`, `private`
          or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[model_registry_access_level]
        description: Model registry access level. One of `disabled`, `private` or
          `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[emails_disabled]
        description: 'Deprecated: Use emails_enabled instead.'
        type: boolean
        required: false
      - in: formData
        name: override_params[emails_enabled]
        description: Enable email notifications
        type: boolean
        required: false
      - in: formData
        name: override_params[show_default_award_emojis]
        description: Show default award emojis
        type: boolean
        required: false
      - in: formData
        name: override_params[show_diff_preview_in_email]
        description: Include the code diff preview in merge request notification emails
        type: boolean
        required: false
      - in: formData
        name: override_params[warn_about_potentially_unwanted_characters]
        description: Warn about potentially unwanted characters
        type: boolean
        required: false
      - in: formData
        name: override_params[enforce_auth_checks_on_uploads]
        description: Enforce auth check on uploads
        type: boolean
        required: false
      - in: formData
        name: override_params[shared_runners_enabled]
        description: Flag indication if shared runners are enabled for that project
        type: boolean
        required: false
      - in: formData
        name: override_params[group_runners_enabled]
        description: Flag indication if group runners are enabled for that project
        type: boolean
        required: false
      - in: formData
        name: override_params[resolve_outdated_diff_discussions]
        description: Automatically resolve merge request diff threads on lines changed
          with a push
        type: boolean
        required: false
      - in: formData
        name: override_params[remove_source_branch_after_merge]
        description: Remove the source branch by default after merge
        type: boolean
        required: false
      - in: formData
        name: override_params[container_registry_enabled]
        description: 'Deprecated: Use :container_registry_access_level instead. Flag
          indication if the container registry is enabled for that project'
        type: boolean
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][cadence]
        description: Container expiration policy cadence for recurring job
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][keep_n]
        description: Container expiration policy number of images to keep
        type: integer
        format: int32
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][older_than]
        description: Container expiration policy remove images older than value
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][name_regex]
        description: Container expiration policy regex for image removal
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][name_regex_keep]
        description: Container expiration policy regex for image retention
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][enabled]
        description: Flag indication if container expiration policy is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[lfs_enabled]
        description: Flag indication if Git LFS is enabled for that project
        type: boolean
        required: false
      - in: formData
        name: override_params[visibility]
        description: The visibility of the project.
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: formData
        name: override_params[public_builds]
        description: 'Deprecated: Use public_jobs instead.'
        type: boolean
        required: false
      - in: formData
        name: override_params[public_jobs]
        description: Perform public builds
        type: boolean
        required: false
      - in: formData
        name: override_params[request_access_enabled]
        description: Allow users to request member access
        type: boolean
        required: false
      - in: formData
        name: override_params[only_allow_merge_if_pipeline_succeeds]
        description: Only allow to merge if builds succeed
        type: boolean
        required: false
      - in: formData
        name: override_params[allow_merge_on_skipped_pipeline]
        description: Allow to merge if pipeline is skipped
        type: boolean
        required: false
      - in: formData
        name: override_params[only_allow_merge_if_all_discussions_are_resolved]
        description: Only allow to merge if all threads are resolved
        type: boolean
        required: false
      - in: formData
        name: override_params[tag_list]
        description: 'Deprecated: Use :topics instead'
        type: array
        items:
          type: string
        required: false
      - in: formData
        name: override_params[topics]
        description: The list of topics for a project
        type: array
        items:
          type: string
        required: false
      - in: formData
        name: override_params[avatar]
        description: Avatar image for project
        type: file
        required: false
      - in: formData
        name: override_params[printing_merge_request_link_enabled]
        description: Show link to create/view merge request when pushing from the
          command line
        type: boolean
        required: false
      - in: formData
        name: override_params[merge_method]
        description: The merge method used when merging merge requests
        type: string
        enum:
        - ff
        - rebase_merge
        - merge
        required: false
      - in: formData
        name: override_params[suggestion_commit_message]
        description: The commit message used to apply merge request suggestions
        type: string
        required: false
      - in: formData
        name: override_params[merge_commit_template]
        description: Template used to create merge commit message
        type: string
        required: false
      - in: formData
        name: override_params[squash_commit_template]
        description: Template used to create squash commit message
        type: string
        required: false
      - in: formData
        name: override_params[issue_branch_template]
        description: Template used to create a branch from an issue
        type: string
        required: false
      - in: formData
        name: override_params[initialize_with_readme]
        description: Initialize a project with a README.md
        type: boolean
        required: false
      - in: formData
        name: override_params[auto_devops_enabled]
        description: Flag indication if Auto DevOps is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[auto_devops_deploy_strategy]
        description: Auto Deploy strategy
        type: string
        enum:
        - continuous
        - manual
        - timed_incremental
        required: false
      - in: formData
        name: override_params[autoclose_referenced_issues]
        description: Flag indication if referenced issues auto-closing is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[repository_storage]
        description: Which storage shard the repository is on. Available only to admins
        type: string
        required: false
      - in: formData
        name: override_params[packages_enabled]
        description: Enable project packages feature
        type: boolean
        required: false
      - in: formData
        name: override_params[squash_option]
        description: Squash default for project. One of `never`, `always`, `default_on`,
          or `default_off`.
        type: string
        enum:
        - never
        - always
        - default_on
        - default_off
        required: false
      - in: formData
        name: override_params[mr_default_target_self]
        description: Merge requests of this forked project targets itself by default
        type: boolean
        required: false
      - in: formData
        name: override_params[only_allow_merge_if_all_status_checks_passed]
        description: Blocks merge requests from merging unless all status checks have
          passed
        type: boolean
        required: false
      - in: formData
        name: override_params[approvals_before_merge]
        description: How many approvers should approve merge request by default
        type: integer
        format: int32
        required: false
      - in: formData
        name: override_params[mirror]
        description: Enables pull mirroring in a project
        type: boolean
        required: false
      - in: formData
        name: override_params[mirror_trigger_builds]
        description: Pull mirroring triggers builds
        type: boolean
        required: false
      - in: formData
        name: override_params[external_authorization_classification_label]
        description: The classification label for the project
        type: string
        required: false
      - in: formData
        name: override_params[requirements_access_level]
        description: Requirements feature access level. One of `disabled`, `private`
          or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[prevent_merge_without_jira_issue]
        description: Require an associated issue from Jira
        type: boolean
        required: false
      responses:
        '201':
          description: Create a new project import using a remote object storage path
          schema:
            "$ref": "#/definitions/API_Entities_ProjectImportStatus"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '400':
          description: Bad request
        '404':
          description: Not found
        '429':
          description: Too many requests
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: postApiV4ProjectsRemoteImport
  "/api/v4/projects/import-relation/authorize":
    post:
      summary: Workhorse authorize the project relation import upload
      description: This feature was introduced in GitLab 16.11
      produces:
      - application/json
      consumes:
      - application/json
      responses:
        '201':
          description: Workhorse authorize the project relation import upload
      tags:
      - project_import
      operationId: postApiV4ProjectsImportRelationAuthorize
  "/api/v4/projects/import-relation":
    post:
      summary: Re-import a relation into a project
      description: This feature was introduced in GitLab 16.11.
      produces:
      - application/json
      consumes:
      - multipart/form-data
      parameters:
      - in: formData
        name: path
        description: The project path and name
        type: string
        required: true
      - in: formData
        name: file
        description: The project export file from which to extract the relation.
        type: file
        required: true
      - in: formData
        name: relation
        description: The relation to import. Must be one of issues, merge_requests,
          ci_pipelines, or milestones.
        type: string
        required: true
      - in: formData
        name: file.path
        description: Path to locally stored body (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.name
        description: Real filename as sent in Content-Disposition (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.type
        description: Real content type as send in Content-Type (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.size
        description: Real size of file (generated by Workhorse)
        type: integer
        format: int32
        required: false
      - in: formData
        name: file.md5
        description: MD5 checksum of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.sha1
        description: SHA1 checksum of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.sha256
        description: SHA256 checksum of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.etag
        description: Etag of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.remote_id
        description: Remote_id of the file (generated by Workhorse)
        type: string
        required: false
      - in: formData
        name: file.remote_url
        description: Remote_url of the file (generated by Workhorse)
        type: string
        required: false
      responses:
        '201':
          description: Re-import a relation into a project
          schema:
            "$ref": "#/definitions/API_Entities_RelationImportTracker"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '400':
          description: Bad request
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: postApiV4ProjectsImportRelation
  "/api/v4/projects/{id}/relation-imports":
    get:
      summary: Get the statuses of relation imports for specified project
      description: This feature was introduced in GitLab 16.11.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Get the statuses of relation imports for specified project
          schema:
            "$ref": "#/definitions/API_Entities_ProjectImportStatus"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '400':
          description: Bad request
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: getApiV4ProjectsIdRelationImports
  "/api/v4/projects/remote-import-s3":
    post:
      summary: Create a new project import using a file from AWS S3
      description: This feature was introduced in GitLab 14.9.
      produces:
      - application/json
      consumes:
      - multipart/form-data
      parameters:
      - in: formData
        name: region
        description: AWS region
        type: string
        required: true
      - in: formData
        name: bucket_name
        description: Bucket name
        type: string
        required: true
      - in: formData
        name: file_key
        description: File key
        type: string
        required: true
      - in: formData
        name: access_key_id
        description: Access key id
        type: string
        required: true
      - in: formData
        name: secret_access_key
        description: Secret access key
        type: string
        required: true
      - in: formData
        name: path
        description: The new project path and name
        type: string
        required: true
      - in: formData
        name: name
        description: The name of the project to be imported. Defaults to the path
          of the project if not provided.
        type: string
        required: false
      - in: formData
        name: namespace
        description: The ID or name of the namespace that the project will be imported
          into. Defaults to the current user's namespace.
        type: string
        required: false
      - in: formData
        name: overwrite
        description: If there is a project in the same namespace and with the same
          name overwrite it
        type: boolean
        default: false
        required: false
      - in: formData
        name: override_params[description]
        description: The description of the project
        type: string
        required: false
      - in: formData
        name: override_params[build_git_strategy]
        description: The Git strategy. Defaults to `fetch`
        type: string
        enum:
        - fetch
        - clone
        required: false
      - in: formData
        name: override_params[build_timeout]
        description: Build timeout
        type: integer
        format: int32
        required: false
      - in: formData
        name: override_params[auto_cancel_pending_pipelines]
        description: Auto-cancel pending pipelines
        type: string
        enum:
        - disabled
        - enabled
        required: false
      - in: formData
        name: override_params[ci_config_path]
        description: The path to CI config file. Defaults to `.gitlab-ci.yml`
        type: string
        required: false
      - in: formData
        name: override_params[service_desk_enabled]
        description: Disable or enable the service desk
        type: boolean
        required: false
      - in: formData
        name: override_params[issues_enabled]
        description: Flag indication if the issue tracker is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[merge_requests_enabled]
        description: Flag indication if merge requests are enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[wiki_enabled]
        description: Flag indication if the wiki is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[jobs_enabled]
        description: Flag indication if jobs are enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[snippets_enabled]
        description: Flag indication if snippets are enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[issues_access_level]
        description: Issues access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[repository_access_level]
        description: Repository access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[merge_requests_access_level]
        description: Merge requests access level. One of `disabled`, `private` or
          `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[forking_access_level]
        description: Forks access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[wiki_access_level]
        description: Wiki access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[builds_access_level]
        description: Builds access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[snippets_access_level]
        description: Snippets access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[pages_access_level]
        description: Pages access level. One of `disabled`, `private`, `enabled` or
          `public`
        type: string
        enum:
        - disabled
        - private
        - enabled
        - public
        required: false
      - in: formData
        name: override_params[analytics_access_level]
        description: Analytics access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[container_registry_access_level]
        description: Controls visibility of the container registry. One of `disabled`,
          `private` or `enabled`. `private` will make the container registry accessible
          only to project members (reporter role and above). `enabled` will make the
          container registry accessible to everyone who has access to the project.
          `disabled` will disable the container registry
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[security_and_compliance_access_level]
        description: Security and compliance access level. One of `disabled`, `private`
          or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[releases_access_level]
        description: Releases access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[environments_access_level]
        description: Environments access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[feature_flags_access_level]
        description: Feature flags access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[infrastructure_access_level]
        description: Infrastructure access level. One of `disabled`, `private` or
          `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[monitor_access_level]
        description: Monitor access level. One of `disabled`, `private` or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[model_experiments_access_level]
        description: Model experiments access level. One of `disabled`, `private`
          or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[model_registry_access_level]
        description: Model registry access level. One of `disabled`, `private` or
          `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[emails_disabled]
        description: 'Deprecated: Use emails_enabled instead.'
        type: boolean
        required: false
      - in: formData
        name: override_params[emails_enabled]
        description: Enable email notifications
        type: boolean
        required: false
      - in: formData
        name: override_params[show_default_award_emojis]
        description: Show default award emojis
        type: boolean
        required: false
      - in: formData
        name: override_params[show_diff_preview_in_email]
        description: Include the code diff preview in merge request notification emails
        type: boolean
        required: false
      - in: formData
        name: override_params[warn_about_potentially_unwanted_characters]
        description: Warn about potentially unwanted characters
        type: boolean
        required: false
      - in: formData
        name: override_params[enforce_auth_checks_on_uploads]
        description: Enforce auth check on uploads
        type: boolean
        required: false
      - in: formData
        name: override_params[shared_runners_enabled]
        description: Flag indication if shared runners are enabled for that project
        type: boolean
        required: false
      - in: formData
        name: override_params[group_runners_enabled]
        description: Flag indication if group runners are enabled for that project
        type: boolean
        required: false
      - in: formData
        name: override_params[resolve_outdated_diff_discussions]
        description: Automatically resolve merge request diff threads on lines changed
          with a push
        type: boolean
        required: false
      - in: formData
        name: override_params[remove_source_branch_after_merge]
        description: Remove the source branch by default after merge
        type: boolean
        required: false
      - in: formData
        name: override_params[container_registry_enabled]
        description: 'Deprecated: Use :container_registry_access_level instead. Flag
          indication if the container registry is enabled for that project'
        type: boolean
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][cadence]
        description: Container expiration policy cadence for recurring job
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][keep_n]
        description: Container expiration policy number of images to keep
        type: integer
        format: int32
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][older_than]
        description: Container expiration policy remove images older than value
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][name_regex]
        description: Container expiration policy regex for image removal
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][name_regex_keep]
        description: Container expiration policy regex for image retention
        type: string
        required: false
      - in: formData
        name: override_params[container_expiration_policy_attributes][enabled]
        description: Flag indication if container expiration policy is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[lfs_enabled]
        description: Flag indication if Git LFS is enabled for that project
        type: boolean
        required: false
      - in: formData
        name: override_params[visibility]
        description: The visibility of the project.
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: formData
        name: override_params[public_builds]
        description: 'Deprecated: Use public_jobs instead.'
        type: boolean
        required: false
      - in: formData
        name: override_params[public_jobs]
        description: Perform public builds
        type: boolean
        required: false
      - in: formData
        name: override_params[request_access_enabled]
        description: Allow users to request member access
        type: boolean
        required: false
      - in: formData
        name: override_params[only_allow_merge_if_pipeline_succeeds]
        description: Only allow to merge if builds succeed
        type: boolean
        required: false
      - in: formData
        name: override_params[allow_merge_on_skipped_pipeline]
        description: Allow to merge if pipeline is skipped
        type: boolean
        required: false
      - in: formData
        name: override_params[only_allow_merge_if_all_discussions_are_resolved]
        description: Only allow to merge if all threads are resolved
        type: boolean
        required: false
      - in: formData
        name: override_params[tag_list]
        description: 'Deprecated: Use :topics instead'
        type: array
        items:
          type: string
        required: false
      - in: formData
        name: override_params[topics]
        description: The list of topics for a project
        type: array
        items:
          type: string
        required: false
      - in: formData
        name: override_params[avatar]
        description: Avatar image for project
        type: file
        required: false
      - in: formData
        name: override_params[printing_merge_request_link_enabled]
        description: Show link to create/view merge request when pushing from the
          command line
        type: boolean
        required: false
      - in: formData
        name: override_params[merge_method]
        description: The merge method used when merging merge requests
        type: string
        enum:
        - ff
        - rebase_merge
        - merge
        required: false
      - in: formData
        name: override_params[suggestion_commit_message]
        description: The commit message used to apply merge request suggestions
        type: string
        required: false
      - in: formData
        name: override_params[merge_commit_template]
        description: Template used to create merge commit message
        type: string
        required: false
      - in: formData
        name: override_params[squash_commit_template]
        description: Template used to create squash commit message
        type: string
        required: false
      - in: formData
        name: override_params[issue_branch_template]
        description: Template used to create a branch from an issue
        type: string
        required: false
      - in: formData
        name: override_params[initialize_with_readme]
        description: Initialize a project with a README.md
        type: boolean
        required: false
      - in: formData
        name: override_params[auto_devops_enabled]
        description: Flag indication if Auto DevOps is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[auto_devops_deploy_strategy]
        description: Auto Deploy strategy
        type: string
        enum:
        - continuous
        - manual
        - timed_incremental
        required: false
      - in: formData
        name: override_params[autoclose_referenced_issues]
        description: Flag indication if referenced issues auto-closing is enabled
        type: boolean
        required: false
      - in: formData
        name: override_params[repository_storage]
        description: Which storage shard the repository is on. Available only to admins
        type: string
        required: false
      - in: formData
        name: override_params[packages_enabled]
        description: Enable project packages feature
        type: boolean
        required: false
      - in: formData
        name: override_params[squash_option]
        description: Squash default for project. One of `never`, `always`, `default_on`,
          or `default_off`.
        type: string
        enum:
        - never
        - always
        - default_on
        - default_off
        required: false
      - in: formData
        name: override_params[mr_default_target_self]
        description: Merge requests of this forked project targets itself by default
        type: boolean
        required: false
      - in: formData
        name: override_params[only_allow_merge_if_all_status_checks_passed]
        description: Blocks merge requests from merging unless all status checks have
          passed
        type: boolean
        required: false
      - in: formData
        name: override_params[approvals_before_merge]
        description: How many approvers should approve merge request by default
        type: integer
        format: int32
        required: false
      - in: formData
        name: override_params[mirror]
        description: Enables pull mirroring in a project
        type: boolean
        required: false
      - in: formData
        name: override_params[mirror_trigger_builds]
        description: Pull mirroring triggers builds
        type: boolean
        required: false
      - in: formData
        name: override_params[external_authorization_classification_label]
        description: The classification label for the project
        type: string
        required: false
      - in: formData
        name: override_params[requirements_access_level]
        description: Requirements feature access level. One of `disabled`, `private`
          or `enabled`
        type: string
        enum:
        - disabled
        - private
        - enabled
        required: false
      - in: formData
        name: override_params[prevent_merge_without_jira_issue]
        description: Require an associated issue from Jira
        type: boolean
        required: false
      responses:
        '201':
          description: Create a new project import using a file from AWS S3
          schema:
            "$ref": "#/definitions/API_Entities_ProjectImportStatus"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '400':
          description: Bad request
        '404':
          description: Not found
        '429':
          description: Too many requests
        '503':
          description: Service unavailable
      tags:
      - project_import
      operationId: postApiV4ProjectsRemoteImportS3
  "/api/v4/projects/{id}/job_token_scope":
    get:
      description: Fetch CI_JOB_TOKEN access settings.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Fetch CI_JOB_TOKEN access settings.
          schema:
            "$ref": "#/definitions/API_Entities_ProjectJobTokenScope"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects_job_token_scope
      operationId: getApiV4ProjectsIdJobTokenScope
    patch:
      description: Patch CI_JOB_TOKEN access settings.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: patchApiV4ProjectsIdJobTokenScope
        in: body
        required: true
        schema:
          "$ref": "#/definitions/patchApiV4ProjectsIdJobTokenScope"
      responses:
        '204':
          description: Patch CI_JOB_TOKEN access settings.
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects_job_token_scope
      operationId: patchApiV4ProjectsIdJobTokenScope
  "/api/v4/projects/{id}/job_token_scope/allowlist":
    get:
      description: Fetch project inbound allowlist for CI_JOB_TOKEN access settings.
      produces:
      - application/json
      parameters:
      - 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
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Fetch project inbound allowlist for CI_JOB_TOKEN access settings.
          schema:
            "$ref": "#/definitions/API_Entities_BasicProjectDetails"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects_job_token_scope
      operationId: getApiV4ProjectsIdJobTokenScopeAllowlist
    post:
      description: Add target project to allowlist.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID of user project
        type: integer
        format: int32
        required: true
        example: 1
      - name: postApiV4ProjectsIdJobTokenScopeAllowlist
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdJobTokenScopeAllowlist"
      responses:
        '201':
          description: Add target project to allowlist.
          schema:
            "$ref": "#/definitions/API_Entities_BasicProjectDetails"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - projects_job_token_scope
      operationId: postApiV4ProjectsIdJobTokenScopeAllowlist
  "/api/v4/projects/{id}/job_token_scope/groups_allowlist":
    get:
      description: Fetch project groups allowlist for CI_JOB_TOKEN access settings.
      produces:
      - application/json
      parameters:
      - 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
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Fetch project groups allowlist for CI_JOB_TOKEN access settings.
          schema:
            "$ref": "#/definitions/API_Entities_BasicProjectDetails"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects_job_token_scope
      operationId: getApiV4ProjectsIdJobTokenScopeGroupsAllowlist
    post:
      description: Add target group to allowlist.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID of user project
        type: integer
        format: int32
        required: true
        example: 1
      - name: postApiV4ProjectsIdJobTokenScopeGroupsAllowlist
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdJobTokenScopeGroupsAllowlist"
      responses:
        '201':
          description: Add target group to allowlist.
          schema:
            "$ref": "#/definitions/API_Entities_BasicGroupDetails"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - projects_job_token_scope
      operationId: postApiV4ProjectsIdJobTokenScopeGroupsAllowlist
  "/api/v4/projects/{id}/job_token_scope/groups_allowlist/{target_group_id}":
    delete:
      description: Delete target group from allowlist.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID of user project
        type: integer
        format: int32
        required: true
        example: 1
      - in: path
        name: target_group_id
        description: ID of the group to be removed from the allowlist
        type: integer
        format: int32
        required: true
        example: 2
      responses:
        '204':
          description: Delete target group from allowlist.
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects_job_token_scope
      operationId: deleteApiV4ProjectsIdJobTokenScopeGroupsAllowlistTargetGroupId
  "/api/v4/projects/{id}/job_token_scope/allowlist/{target_project_id}":
    delete:
      description: Delete project from allowlist.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID of user project
        type: integer
        format: int32
        required: true
        example: 1
      - in: path
        name: target_project_id
        description: ID of the project to be removed from the allowlist
        type: integer
        format: int32
        required: true
        example: 2
      responses:
        '204':
          description: Delete project from allowlist.
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - projects_job_token_scope
      operationId: deleteApiV4ProjectsIdJobTokenScopeAllowlistTargetProjectId
  "/api/v4/projects/{id}/packages":
    get:
      summary: Get a list of project packages
      description: This feature was introduced in GitLab 11.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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
      - in: query
        name: order_by
        description: Return packages ordered by `created_at`, `name`, `version` or
          `type` fields.
        type: string
        default: created_at
        enum:
        - created_at
        - name
        - version
        - type
        required: false
      - in: query
        name: sort
        description: Return packages sorted in `asc` or `desc` order.
        type: string
        default: asc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: package_type
        description: Return packages of a certain type
        type: string
        enum:
        - maven
        - npm
        - conan
        - nuget
        - pypi
        - composer
        - generic
        - golang
        - debian
        - rubygems
        - helm
        - terraform_module
        - rpm
        - ml_model
        required: false
      - in: query
        name: package_name
        description: Return packages with this name
        type: string
        required: false
      - in: query
        name: package_version
        description: Return packages with this version
        type: string
        required: false
      - in: query
        name: include_versionless
        description: Returns packages without a version
        type: boolean
        required: false
      - in: query
        name: status
        description: Return packages with specified status
        type: string
        enum:
        - default
        - hidden
        - processing
        - error
        - pending_destruction
        required: false
      responses:
        '200':
          description: Get a list of project packages
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Package"
        '403':
          description: Forbidden
        '404':
          description: Project Not Found
      tags:
      - project_packages
      operationId: getApiV4ProjectsIdPackages
  "/api/v4/projects/{id}/packages/{package_id}":
    get:
      summary: Get a single project package
      description: This feature was introduced in GitLab 11.9
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_id
        description: The ID of a package
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single project package
          schema:
            "$ref": "#/definitions/API_Entities_Package"
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - project_packages
      operationId: getApiV4ProjectsIdPackagesPackageId
    delete:
      summary: Delete a project package
      description: This feature was introduced in GitLab 11.9
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_id
        description: The ID of a package
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a project package
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - project_packages
      operationId: deleteApiV4ProjectsIdPackagesPackageId
  "/api/v4/projects/{id}/packages/{package_id}/pipelines":
    get:
      summary: Get the pipelines for a single project package
      description: This feature was introduced in GitLab 16.1
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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
        minimum: 1
        maximum: 20
        required: false
        example: 20
      - in: path
        name: package_id
        description: The ID of a package
        type: integer
        format: int32
        required: true
      - in: query
        name: cursor
        description: Cursor for obtaining the next set of records
        type: string
        required: false
      responses:
        '200':
          description: Get the pipelines for a single project package
          schema:
            "$ref": "#/definitions/API_Entities_Package_Pipeline"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - project_packages
      operationId: getApiV4ProjectsIdPackagesPackageIdPipelines
  "/api/v4/projects/{id}/repository_storage_moves":
    get:
      summary: Get a list of all project repository storage moves
      description: This feature was introduced in GitLab 13.1.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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: Get a list of all project repository storage moves
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Projects_RepositoryStorageMove"
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryStorageMoves
    post:
      summary: Schedule a project repository storage move
      description: This feature was introduced in GitLab 13.1.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdRepositoryStorageMoves
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdRepositoryStorageMoves"
      responses:
        '201':
          description: Schedule a project repository storage move
          schema:
            "$ref": "#/definitions/API_Entities_Projects_RepositoryStorageMove"
      tags:
      - projects
      operationId: postApiV4ProjectsIdRepositoryStorageMoves
  "/api/v4/projects/{id}/repository_storage_moves/{repository_storage_move_id}":
    get:
      summary: Get a project repository storage move
      description: This feature was introduced in GitLab 13.1.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: repository_storage_move_id
        description: The ID of a project repository storage move
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a project repository storage move
          schema:
            "$ref": "#/definitions/API_Entities_Projects_RepositoryStorageMove"
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryStorageMovesRepositoryStorageMoveId
  "/api/v4/projects/{id}/snippets":
    get:
      description: Get all project snippets
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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: Get all project snippets
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ProjectSnippet"
        '404':
          description: Not found
      tags:
      - project_snippets
      operationId: getApiV4ProjectsIdSnippets
    post:
      description: Create a new project snippet
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdSnippets
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdSnippets"
      responses:
        '201':
          description: Create a new project snippet
          schema:
            "$ref": "#/definitions/API_Entities_ProjectSnippet"
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - project_snippets
      operationId: postApiV4ProjectsIdSnippets
  "/api/v4/projects/{id}/snippets/{snippet_id}":
    get:
      description: Get a single project snippet
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: snippet_id
        description: The ID of a project snippet
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single project snippet
          schema:
            "$ref": "#/definitions/API_Entities_ProjectSnippet"
        '404':
          description: Not found
      tags:
      - project_snippets
      operationId: getApiV4ProjectsIdSnippetsSnippetId
    put:
      description: Update an existing project snippet
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: snippet_id
        description: The ID of a project snippet
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdSnippetsSnippetId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdSnippetsSnippetId"
      responses:
        '200':
          description: Update an existing project snippet
          schema:
            "$ref": "#/definitions/API_Entities_ProjectSnippet"
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - project_snippets
      operationId: putApiV4ProjectsIdSnippetsSnippetId
    delete:
      description: Delete a project snippet
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: snippet_id
        description: The ID of a project snippet
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a project snippet
        '400':
          description: Validation error
        '404':
          description: Not found
      tags:
      - project_snippets
      operationId: deleteApiV4ProjectsIdSnippetsSnippetId
  "/api/v4/projects/{id}/snippets/{snippet_id}/raw":
    get:
      description: Get a raw project snippet
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: snippet_id
        description: The ID of a project snippet
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a raw project snippet
          schema:
            "$ref": "#/definitions/API_Entities_ProjectSnippet"
        '404':
          description: Not found
      tags:
      - project_snippets
      operationId: getApiV4ProjectsIdSnippetsSnippetIdRaw
  "/api/v4/projects/{id}/snippets/{snippet_id}/files/{ref}/{file_path}/raw":
    get:
      description: Get raw project snippet file contents from the repository
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: file_path
        description: The url encoded path to the file, e.g. lib%2Fclass%2Erb
        type: string
        required: true
      - in: path
        name: ref
        description: The name of branch, tag or commit
        type: string
        required: true
      - in: path
        name: snippet_id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get raw project snippet file contents from the repository
          schema:
            "$ref": "#/definitions/API_Entities_ProjectSnippet"
        '404':
          description: Not found
      tags:
      - project_snippets
      operationId: getApiV4ProjectsIdSnippetsSnippetIdFilesRefFilePathRaw
  "/api/v4/projects/{id}/snippets/{snippet_id}/user_agent_detail":
    get:
      description: Get the user agent details for a project snippet
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: snippet_id
        description: The ID of a project snippet
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get the user agent details for a project snippet
          schema:
            "$ref": "#/definitions/API_Entities_UserAgentDetail"
        '404':
          description: Not found
      tags:
      - project_snippets
      operationId: getApiV4ProjectsIdSnippetsSnippetIdUserAgentDetail
  "/api/v4/projects/{id}/snapshot":
    get:
      summary: Download a (possibly inconsistent) snapshot of a repository
      description: This feature was introduced in GitLab 10.7
      produces:
      - application/x-tar
      parameters:
      - in: query
        name: wiki
        description: Set to true to receive the wiki repository
        type: boolean
        required: false
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Download a (possibly inconsistent) snapshot of a repository
          schema:
            type: file
        '401':
          description: Unauthorized
      tags:
      - projects
      operationId: getApiV4ProjectsIdSnapshot
  "/api/v4/projects/{id}/statistics":
    get:
      description: Get the list of project fetch statistics for the last 30 days
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Get the list of project fetch statistics for the last 30 days
          schema:
            "$ref": "#/definitions/API_Entities_ProjectDailyStatistics"
        '404':
          description: 404 Project Not Found
        '401':
          description: 401 Unauthorized
      tags:
      - projects
      operationId: getApiV4ProjectsIdStatistics
  "/api/v4/projects/{id}/templates/{type}":
    get:
      summary: Get a list of templates available to this project
      description: This endpoint was introduced in GitLab 11.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: type
        description: The type (dockerfiles|gitignores|gitlab_ci_ymls|licenses|issues|merge_requests)
          of the template
        type: string
        enum:
        - dockerfiles
        - gitignores
        - gitlab_ci_ymls
        - licenses
        - issues
        - merge_requests
        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 a list of templates available to this project
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_TemplatesList"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdTemplatesType
  "/api/v4/projects/{id}/templates/{type}/{name}":
    get:
      summary: Download a template available to this project
      description: This endpoint was introduced in GitLab 11.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: type
        description: The type (dockerfiles|gitignores|gitlab_ci_ymls|licenses|issues|merge_requests)
          of the template
        type: string
        enum:
        - dockerfiles
        - gitignores
        - gitlab_ci_ymls
        - licenses
        - issues
        - merge_requests
        required: true
      - in: path
        name: name
        description: The key of the template, as obtained from the collection endpoint.
        type: string
        required: true
        example: MIT
      - in: query
        name: source_template_project_id
        description: The project id where a given template is being stored. This is
          useful when multiple templates from different projects have the same name
        type: integer
        format: int32
        required: false
        example: 1
      - in: query
        name: project
        description: The project name to use when expanding placeholders in the template.
          Only affects licenses
        type: string
        required: false
        example: GitLab
      - in: query
        name: fullname
        description: The full name of the copyright holder to use when expanding placeholders
          in the template. Only affects licenses
        type: string
        required: false
        example: GitLab B.V.
      responses:
        '200':
          description: Download a template available to this project
          schema:
            "$ref": "#/definitions/API_Entities_License"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdTemplatesTypeName
  "/api/v4/projects/{id}/custom_attributes":
    get:
      description: Get all custom attributes on a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get all custom attributes on a project
          schema:
            "$ref": "#/definitions/API_Entities_CustomAttribute"
      tags:
      - projects
      operationId: getApiV4ProjectsIdCustomAttributes
  "/api/v4/projects/{id}/custom_attributes/{key}":
    get:
      description: Get a custom attribute on a project
      produces:
      - application/json
      parameters:
      - in: path
        name: key
        description: The key of the custom attribute
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a custom attribute on a project
          schema:
            "$ref": "#/definitions/API_Entities_CustomAttribute"
      tags:
      - projects
      operationId: getApiV4ProjectsIdCustomAttributesKey
    put:
      description: Set a custom attribute on a project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: key
        description: The key of the custom attribute
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdCustomAttributesKey
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdCustomAttributesKey"
      responses:
        '200':
          description: Set a custom attribute on a project
      tags:
      - projects
      operationId: putApiV4ProjectsIdCustomAttributesKey
    delete:
      description: Delete a custom attribute on a project
      produces:
      - application/json
      parameters:
      - in: path
        name: key
        description: The key of the custom attribute
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a custom attribute on a project
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdCustomAttributesKey
  "/api/v4/projects":
    get:
      description: Get a list of visible projects for authenticated user
      produces:
      - application/json
      parameters:
      - in: query
        name: order_by
        description: Return projects ordered by field. storage_size, repository_size,
          wiki_size, packages_size are only available to admins. Similarity is available
          when searching and is limited to projects the user has access to.
        type: string
        default: created_at
        enum:
        - id
        - name
        - path
        - created_at
        - updated_at
        - last_activity_at
        - similarity
        - storage_size
        - repository_size
        - wiki_size
        - packages_size
        required: false
      - in: query
        name: sort
        description: Return projects sorted in ascending and descending order
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: archived
        description: Limit by archived status
        type: boolean
        required: false
      - in: query
        name: visibility
        description: Limit by visibility
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: query
        name: search
        description: Return list of projects matching the search criteria
        type: string
        required: false
      - in: query
        name: search_namespaces
        description: Include ancestor namespaces when matching search criteria
        type: boolean
        required: false
      - in: query
        name: owned
        description: Limit by owned by authenticated user
        type: boolean
        default: false
        required: false
      - in: query
        name: starred
        description: Limit by starred status
        type: boolean
        default: false
        required: false
      - in: query
        name: imported
        description: Limit by imported by authenticated user
        type: boolean
        default: false
        required: false
      - in: query
        name: membership
        description: Limit by projects that the current user is a member of
        type: boolean
        default: false
        required: false
      - in: query
        name: with_issues_enabled
        description: Limit by enabled issues feature
        type: boolean
        default: false
        required: false
      - in: query
        name: with_merge_requests_enabled
        description: Limit by enabled merge requests feature
        type: boolean
        default: false
        required: false
      - in: query
        name: with_programming_language
        description: Limit to repositories which use the given programming language
        type: string
        required: false
      - in: query
        name: min_access_level
        description: Limit by minimum access level of authenticated user
        type: integer
        format: int32
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        required: false
      - in: query
        name: id_after
        description: Limit results to projects with IDs greater than the specified
          ID
        type: integer
        format: int32
        required: false
      - in: query
        name: id_before
        description: Limit results to projects with IDs less than the specified ID
        type: integer
        format: int32
        required: false
      - in: query
        name: last_activity_after
        description: 'Limit results to projects with last_activity after specified
          time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: last_activity_before
        description: 'Limit results to projects with last_activity before specified
          time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: repository_storage
        description: Which storage shard the repository is on. Available only to admins
        type: string
        required: false
      - in: query
        name: topic
        description: Comma-separated list of topics. Limit results to projects having
          all topics
        type: array
        items:
          type: string
        required: false
      - in: query
        name: topic_id
        description: Limit results to projects with the assigned topic given by the
          topic ID
        type: integer
        format: int32
        required: false
      - in: query
        name: updated_before
        description: 'Return projects updated before the specified datetime. Format:
          ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: updated_after
        description: 'Return projects updated after the specified datetime. Format:
          ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: include_pending_delete
        description: Include projects in pending delete state. Can only be set by
          admins
        type: boolean
        required: false
      - in: query
        name: wiki_checksum_failed
        description: Limit by projects where wiki checksum is failed
        type: boolean
        default: false
        required: false
      - in: query
        name: repository_checksum_failed
        description: Limit by projects where repository checksum is failed
        type: boolean
        default: false
        required: false
      - in: query
        name: include_hidden
        description: Include hidden projects. Can only be set by admins
        type: boolean
        default: false
        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
      - in: query
        name: simple
        description: Return only the ID, URL, name, and path of each project
        type: boolean
        default: false
        required: false
      - in: query
        name: statistics
        description: Include project statistics
        type: boolean
        default: false
        required: false
      - in: query
        name: with_custom_attributes
        description: Include custom attributes in the response
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get a list of visible projects for authenticated user
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_BasicProjectDetails"
        '400':
          description: Bad request
      tags:
      - projects
      operationId: getApiV4Projects
    post:
      description: Create new project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4Projects
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4Projects"
      responses:
        '201':
          description: Create new project
          schema:
            "$ref": "#/definitions/API_Entities_Project"
        '403':
          description: Unauthenticated
        '404':
          description: Not found
        '400':
          description: Bad request
      tags:
      - projects
      operationId: postApiV4Projects
  "/api/v4/projects/user/{user_id}":
    post:
      description: Create new project for a specified user. Only available to admin
        users.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID of a user
        type: integer
        format: int32
        required: true
        example: 1
      - name: postApiV4ProjectsUserUserId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsUserUserId"
      responses:
        '201':
          description: Create new project for a specified user. Only available to
            admin users.
          schema:
            "$ref": "#/definitions/API_Entities_Project"
        '403':
          description: Unauthenticated
        '404':
          description: Not found
        '400':
          description: Bad request
      tags:
      - projects
      operationId: postApiV4ProjectsUserUserId
  "/api/v4/projects/{id}/share_locations":
    get:
      description: Returns group that can be shared with the given project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The id of the project
        type: integer
        format: int32
        required: true
      - in: query
        name: search
        description: Return list of groups matching the search criteria
        type: string
        required: false
      responses:
        '200':
          description: Returns group that can be shared with the given project
          schema:
            "$ref": "#/definitions/API_Entities_Group"
      tags:
      - projects
      operationId: getApiV4ProjectsIdShareLocations
  "/api/v4/projects/{id}":
    get:
      description: Get a single project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: statistics
        description: Include project statistics
        type: boolean
        default: false
        required: false
      - in: query
        name: with_custom_attributes
        description: Include custom attributes in the response
        type: boolean
        default: false
        required: false
      - in: query
        name: license
        description: Include project license data
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get a single project
          schema:
            "$ref": "#/definitions/API_Entities_ProjectWithAccess"
      tags:
      - projects
      operationId: getApiV4ProjectsId
    put:
      description: Update an existing project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsId"
      responses:
        '200':
          description: Update an existing project
          schema:
            "$ref": "#/definitions/API_Entities_Project"
        '400':
          description: Bad request
        '403':
          description: Unauthenticated
      tags:
      - projects
      operationId: putApiV4ProjectsId
    delete:
      description: Delete a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '202':
          description: Delete a project
        '403':
          description: Unauthenticated
        '404':
          description: Not found
      tags:
      - projects
      operationId: deleteApiV4ProjectsId
  "/api/v4/projects/{id}/fork":
    post:
      description: Fork new project for the current user or provided namespace.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdFork
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdFork"
      responses:
        '201':
          description: Fork new project for the current user or provided namespace.
          schema:
            "$ref": "#/definitions/API_Entities_Project"
        '403':
          description: Unauthenticated
        '404':
          description: Not found
        '409':
          description: Conflict
      tags:
      - projects
      operationId: postApiV4ProjectsIdFork
    delete:
      description: Remove a forked_from relationship
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '204':
          description: Remove a forked_from relationship
        '304':
          description: Not modified
        '403':
          description: Unauthenticated
        '404':
          description: Not found
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdFork
  "/api/v4/projects/{id}/forks":
    get:
      description: List forks of this project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: order_by
        description: Return projects ordered by field. storage_size, repository_size,
          wiki_size, packages_size are only available to admins. Similarity is available
          when searching and is limited to projects the user has access to.
        type: string
        default: created_at
        enum:
        - id
        - name
        - path
        - created_at
        - updated_at
        - last_activity_at
        - similarity
        - storage_size
        - repository_size
        - wiki_size
        - packages_size
        required: false
      - in: query
        name: sort
        description: Return projects sorted in ascending and descending order
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: archived
        description: Limit by archived status
        type: boolean
        required: false
      - in: query
        name: visibility
        description: Limit by visibility
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: query
        name: search
        description: Return list of projects matching the search criteria
        type: string
        required: false
      - in: query
        name: search_namespaces
        description: Include ancestor namespaces when matching search criteria
        type: boolean
        required: false
      - in: query
        name: owned
        description: Limit by owned by authenticated user
        type: boolean
        default: false
        required: false
      - in: query
        name: starred
        description: Limit by starred status
        type: boolean
        default: false
        required: false
      - in: query
        name: imported
        description: Limit by imported by authenticated user
        type: boolean
        default: false
        required: false
      - in: query
        name: membership
        description: Limit by projects that the current user is a member of
        type: boolean
        default: false
        required: false
      - in: query
        name: with_issues_enabled
        description: Limit by enabled issues feature
        type: boolean
        default: false
        required: false
      - in: query
        name: with_merge_requests_enabled
        description: Limit by enabled merge requests feature
        type: boolean
        default: false
        required: false
      - in: query
        name: with_programming_language
        description: Limit to repositories which use the given programming language
        type: string
        required: false
      - in: query
        name: min_access_level
        description: Limit by minimum access level of authenticated user
        type: integer
        format: int32
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        required: false
      - in: query
        name: id_after
        description: Limit results to projects with IDs greater than the specified
          ID
        type: integer
        format: int32
        required: false
      - in: query
        name: id_before
        description: Limit results to projects with IDs less than the specified ID
        type: integer
        format: int32
        required: false
      - in: query
        name: last_activity_after
        description: 'Limit results to projects with last_activity after specified
          time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: last_activity_before
        description: 'Limit results to projects with last_activity before specified
          time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: repository_storage
        description: Which storage shard the repository is on. Available only to admins
        type: string
        required: false
      - in: query
        name: topic
        description: Comma-separated list of topics. Limit results to projects having
          all topics
        type: array
        items:
          type: string
        required: false
      - in: query
        name: topic_id
        description: Limit results to projects with the assigned topic given by the
          topic ID
        type: integer
        format: int32
        required: false
      - in: query
        name: updated_before
        description: 'Return projects updated before the specified datetime. Format:
          ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: updated_after
        description: 'Return projects updated after the specified datetime. Format:
          ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: include_pending_delete
        description: Include projects in pending delete state. Can only be set by
          admins
        type: boolean
        required: false
      - in: query
        name: wiki_checksum_failed
        description: Limit by projects where wiki checksum is failed
        type: boolean
        default: false
        required: false
      - in: query
        name: repository_checksum_failed
        description: Limit by projects where repository checksum is failed
        type: boolean
        default: false
        required: false
      - in: query
        name: include_hidden
        description: Include hidden projects. Can only be set by admins
        type: boolean
        default: false
        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
      - in: query
        name: simple
        description: Return only the ID, URL, name, and path of each project
        type: boolean
        default: false
        required: false
      - in: query
        name: with_custom_attributes
        description: Include custom attributes in the response
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: List forks of this project
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Project"
      tags:
      - projects
      operationId: getApiV4ProjectsIdForks
  "/api/v4/projects/{id}/pages_access":
    get:
      description: Check pages access of this project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Check pages access of this project
        '403':
          description: Unauthenticated
      tags:
      - projects
      operationId: getApiV4ProjectsIdPagesAccess
  "/api/v4/projects/{id}/archive":
    post:
      description: Archive a project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '201':
          description: Archive a project
          schema:
            "$ref": "#/definitions/API_Entities_Project"
        '403':
          description: Unauthenticated
      tags:
      - projects
      operationId: postApiV4ProjectsIdArchive
  "/api/v4/projects/{id}/unarchive":
    post:
      description: Unarchive a project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '201':
          description: Unarchive a project
          schema:
            "$ref": "#/definitions/API_Entities_Project"
        '403':
          description: Unauthenticated
      tags:
      - projects
      operationId: postApiV4ProjectsIdUnarchive
  "/api/v4/projects/{id}/star":
    post:
      description: Star a project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '201':
          description: Star a project
          schema:
            "$ref": "#/definitions/API_Entities_Project"
        '304':
          description: Not modified
        '403':
          description: Unauthenticated
      tags:
      - projects
      operationId: postApiV4ProjectsIdStar
  "/api/v4/projects/{id}/unstar":
    post:
      description: Unstar a project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '201':
          description: Unstar a project
          schema:
            "$ref": "#/definitions/API_Entities_Project"
        '304':
          description: Not modified
        '403':
          description: Unauthenticated
      tags:
      - projects
      operationId: postApiV4ProjectsIdUnstar
  "/api/v4/projects/{id}/starrers":
    get:
      description: Get the users who starred a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: search
        description: Return list of users matching the search criteria
        type: string
        required: false
        example: user
      - 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 users who starred a project
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_UserBasic"
        '403':
          description: Unauthenticated
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdStarrers
  "/api/v4/projects/{id}/languages":
    get:
      description: Get languages in project repository
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Get languages in project repository
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdLanguages
  "/api/v4/projects/{id}/fork/{forked_from_id}":
    post:
      description: Mark this project as forked from another
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: forked_from_id
        description: The ID of the project it was forked from
        type: string
        required: true
        example: gitlab
      responses:
        '201':
          description: Mark this project as forked from another
          schema:
            "$ref": "#/definitions/API_Entities_Project"
        '401':
          description: Unauthorized
        '403':
          description: Unauthenticated
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdForkForkedFromId
  "/api/v4/projects/{id}/share":
    post:
      description: Share the project with a group
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdShare
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdShare"
      responses:
        '201':
          description: Share the project with a group
          schema:
            "$ref": "#/definitions/API_Entities_ProjectGroupLink"
        '400':
          description: Bad request
        '403':
          description: Unauthenticated
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdShare
  "/api/v4/projects/{id}/share/{group_id}":
    delete:
      description: Remove a group share
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: group_id
        description: The ID of the group
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Remove a group share
        '400':
          description: Bad request
        '404':
          description: Not found
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdShareGroupId
  "/api/v4/projects/{id}/import_project_members/{project_id}":
    post:
      summary: Import members from another project
      description: This feature was introduced in GitLab 14.2
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: project_id
        description: The ID of the source project to import the members from.
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Import members from another project
        '403':
          description: Unauthenticated
        '404':
          description: Project Not Found
        '422':
          description: Import failed
      tags:
      - projects
      operationId: postApiV4ProjectsIdImportProjectMembersProjectId
  "/api/v4/projects/{id}/uploads/authorize":
    post:
      summary: Workhorse authorize the file upload
      description: This feature was introduced in GitLab 13.11
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Workhorse authorize the file upload
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdUploadsAuthorize
  "/api/v4/projects/{id}/uploads":
    post:
      description: Upload a file
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdUploads
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdUploads"
      responses:
        '201':
          description: Upload a file
          schema:
            "$ref": "#/definitions/API_Entities_ProjectUpload"
        '404':
          description: Not found
      tags:
      - projects
      operationId: postApiV4ProjectsIdUploads
  "/api/v4/projects/{id}/users":
    get:
      description: Get the users list of a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: search
        description: Return list of users matching the search criteria
        type: string
        required: false
        example: user
      - in: query
        name: skip_users
        description: Filter out users with the specified IDs
        type: array
        items:
          type: integer
          format: int32
        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: Get the users list of a project
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_UserBasic"
        '403':
          description: Unauthenticated
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdUsers
  "/api/v4/projects/{id}/groups":
    get:
      description: Get ancestor and shared groups for a project
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: search
        description: Return list of groups matching the search criteria
        type: string
        required: false
        example: group
      - in: query
        name: skip_groups
        description: Array of group ids to exclude from list
        type: array
        items:
          type: integer
          format: int32
        required: false
      - in: query
        name: with_shared
        description: Include shared groups
        type: boolean
        default: false
        required: false
      - in: query
        name: shared_visible_only
        description: Limit to shared groups user has access to
        type: boolean
        default: false
        required: false
      - in: query
        name: shared_min_access_level
        description: Limit returned shared groups by minimum access level to the project
        type: integer
        format: int32
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        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: Get ancestor and shared groups for a project
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_PublicGroupDetails"
        '403':
          description: Unauthenticated
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdGroups
  "/api/v4/projects/{id}/housekeeping":
    post:
      summary: Start the housekeeping task for a project
      description: This feature was introduced in GitLab 9.0.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdHousekeeping
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdHousekeeping"
      responses:
        '201':
          description: Start the housekeeping task for a project
        '401':
          description: Unauthorized
        '403':
          description: Unauthenticated
        '409':
          description: Conflict
      tags:
      - projects
      operationId: postApiV4ProjectsIdHousekeeping
  "/api/v4/projects/{id}/repository_size":
    post:
      summary: Start a task to recalculate repository size for a project
      description: This feature was introduced in GitLab 15.0.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '201':
          description: Start a task to recalculate repository size for a project
        '401':
          description: Unauthorized
        '403':
          description: Unauthenticated
      tags:
      - projects
      operationId: postApiV4ProjectsIdRepositorySize
  "/api/v4/projects/{id}/transfer":
    put:
      description: Transfer a project to a new namespace
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdTransfer
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdTransfer"
      responses:
        '200':
          description: Transfer a project to a new namespace
          schema:
            "$ref": "#/definitions/API_Entities_Project"
        '400':
          description: Bad request
        '403':
          description: Unauthenticated
        '404':
          description: Not found
      tags:
      - projects
      operationId: putApiV4ProjectsIdTransfer
  "/api/v4/projects/{id}/transfer_locations":
    get:
      description: Get the namespaces to where the project can be transferred
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: search
        description: Return list of namespaces matching the search criteria
        type: string
        required: false
        example: search
      - 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 namespaces to where the project can be transferred
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_PublicGroupDetails"
        '403':
          description: Unauthenticated
      tags:
      - projects
      operationId: getApiV4ProjectsIdTransferLocations
  "/api/v4/projects/{id}/storage":
    get:
      description: Show the storage information
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID of a project
        type: string
        required: true
      responses:
        '200':
          description: Show the storage information
          schema:
            "$ref": "#/definitions/API_Entities_ProjectRepositoryStorage"
        '403':
          description: Unauthenticated
      tags:
      - projects
      operationId: getApiV4ProjectsIdStorage
  "/api/v4/projects/{id}/restore":
    post:
      description: Restore a project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Restore a project
          schema:
            "$ref": "#/definitions/API_Entities_Project"
      tags:
      - projects
      operationId: postApiV4ProjectsIdRestore
  "/api/v4/projects/{id}/protected_branches":
    get:
      description: Get a project's protected branches
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: gitlab-org/gitlab
      - 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
      - in: query
        name: search
        description: Search for a protected branch by name
        type: string
        required: false
        example: mai
      responses:
        '200':
          description: Get a project's protected branches
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ProtectedBranch"
        '404':
          description: 404 Project Not Found
        '401':
          description: 401 Unauthorized
      tags:
      - projects
      operationId: getApiV4ProjectsIdProtectedBranches
    post:
      description: Protect a single branch
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: gitlab-org/gitlab
      - name: postApiV4ProjectsIdProtectedBranches
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdProtectedBranches"
      responses:
        '201':
          description: Protect a single branch
          schema:
            "$ref": "#/definitions/API_Entities_ProtectedBranch"
        '422':
          description: name is missing
        '409':
          description: Protected branch 'main' already exists
        '404':
          description: 404 Project Not Found
        '401':
          description: 401 Unauthorized
      tags:
      - projects
      operationId: postApiV4ProjectsIdProtectedBranches
  "/api/v4/projects/{id}/protected_branches/{name}":
    get:
      description: Get a single protected branch
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: gitlab-org/gitlab
      - in: path
        name: name
        description: The name of the branch or wildcard
        type: string
        required: true
        example: main
      responses:
        '200':
          description: Get a single protected branch
          schema:
            "$ref": "#/definitions/API_Entities_ProtectedBranch"
        '404':
          description: 404 Project Not Found
        '401':
          description: 401 Unauthorized
      tags:
      - projects
      operationId: getApiV4ProjectsIdProtectedBranchesName
    patch:
      description: Update a protected branch
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: gitlab-org/gitlab
      - in: path
        name: name
        description: The name of the branch
        type: string
        required: true
        example: main
      - name: patchApiV4ProjectsIdProtectedBranchesName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/patchApiV4ProjectsIdProtectedBranchesName"
      responses:
        '200':
          description: Update a protected branch
          schema:
            "$ref": "#/definitions/API_Entities_ProtectedBranch"
        '422':
          description: Push access levels access level has already been taken
        '404':
          description: 404 Project Not Found
        '401':
          description: 401 Unauthorized
        '400':
          description: 400 Bad request
      tags:
      - projects
      operationId: patchApiV4ProjectsIdProtectedBranchesName
    delete:
      description: Unprotect a single branch
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: gitlab-org/gitlab
      - in: path
        name: name
        description: The name of the protected branch
        type: string
        required: true
        example: main
      responses:
        '204':
          description: Unprotect a single branch
        '404':
          description: 404 Project Not Found
        '401':
          description: 401 Unauthorized
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdProtectedBranchesName
  "/api/v4/projects/{id}/protected_tags":
    get:
      summary: Get a project's protected tags
      description: This feature was introduced in GitLab 11.3.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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: Get a project's protected tags
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ProtectedTag"
        '403':
          description: Unauthenticated
        '404':
          description: Not found
      tags:
      - protected_tags
      operationId: getApiV4ProjectsIdProtectedTags
    post:
      summary: Protect a single tag or wildcard
      description: This feature was introduced in GitLab 11.3.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdProtectedTags
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdProtectedTags"
      responses:
        '201':
          description: Protect a single tag or wildcard
          schema:
            "$ref": "#/definitions/API_Entities_ProtectedTag"
        '403':
          description: Unauthenticated
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - protected_tags
      operationId: postApiV4ProjectsIdProtectedTags
  "/api/v4/projects/{id}/protected_tags/{name}":
    get:
      summary: Get a single protected tag
      description: This feature was introduced in GitLab 11.3.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: name
        description: The name of the tag or wildcard
        type: string
        required: true
        example: release*
      responses:
        '200':
          description: Get a single protected tag
          schema:
            "$ref": "#/definitions/API_Entities_ProtectedTag"
        '403':
          description: Unauthenticated
        '404':
          description: Not found
      tags:
      - protected_tags
      operationId: getApiV4ProjectsIdProtectedTagsName
    delete:
      summary: Unprotect a single tag
      description: This feature was introduced in GitLab 11.3.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: name
        description: The name of the protected tag
        type: string
        required: true
        example: release-1-0
      responses:
        '204':
          description: Unprotect a single tag
        '403':
          description: Unauthenticated
        '404':
          description: Not found
        '412':
          description: Precondition Failed
      tags:
      - protected_tags
      operationId: deleteApiV4ProjectsIdProtectedTagsName
  "/api/v4/projects/{id}/releases":
    get:
      summary: List Releases
      description: Returns a paginated list of releases. This feature was introduced
        in GitLab 11.7.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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
      - in: query
        name: order_by
        description: The field to use as order. Either `released_at` (default) or
          `created_at`
        type: string
        default: released_at
        enum:
        - released_at
        - created_at
        required: false
      - in: query
        name: sort
        description: The direction of the order. Either `desc` (default) for descending
          order or `asc` for ascending order
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: include_html_description
        description: If `true`, a response includes HTML rendered markdown of the
          release description
        type: boolean
        required: false
      - in: query
        name: updated_before
        description: 'Return releases updated before the specified datetime. Format:
          ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: updated_after
        description: 'Return releases updated after the specified datetime. Format:
          ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      responses:
        '200':
          description: List Releases
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Release"
      tags:
      - releases
      operationId: getApiV4ProjectsIdReleases
    post:
      summary: Create a release
      description: Creates a release. Developer level access to the project is required
        to create a release. This feature was introduced in GitLab 11.7.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdReleases
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdReleases"
      responses:
        '201':
          description: Create a release
          schema:
            "$ref": "#/definitions/API_Entities_Release"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '409':
          description: Conflict
        '422':
          description: Unprocessable entity
      tags:
      - releases
      operationId: postApiV4ProjectsIdReleases
  "/api/v4/projects/{id}/releases/{tag_name}":
    get:
      summary: Get a release by a tag name
      description: Gets a release for the given tag. This feature was introduced in
        GitLab 11.7.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag_name
        description: The Git tag the release is associated with
        type: string
        required: true
      - in: query
        name: include_html_description
        description: If `true`, a response includes HTML rendered markdown of the
          release description
        type: boolean
        required: false
      responses:
        '200':
          description: Get a release by a tag name
          schema:
            "$ref": "#/definitions/API_Entities_Release"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - releases
      operationId: getApiV4ProjectsIdReleasesTagName
    put:
      summary: Update a release
      description: Updates a release. Developer level access to the project is required
        to update a release. This feature was introduced in GitLab 11.7.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag_name
        description: The Git tag the release is associated with
        type: string
        required: true
      - name: putApiV4ProjectsIdReleasesTagName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdReleasesTagName"
      responses:
        '200':
          description: Update a release
          schema:
            "$ref": "#/definitions/API_Entities_Release"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - releases
      operationId: putApiV4ProjectsIdReleasesTagName
    delete:
      summary: Delete a release
      description: Delete a release. Deleting a release doesn't delete the associated
        tag. Maintainer level access to the project is required to delete a release.
        This feature was introduced in GitLab 11.7.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag_name
        description: The Git tag the release is associated with
        type: string
        required: true
      responses:
        '400':
          description: Bad request
        '204':
          description: Delete a release
          schema:
            "$ref": "#/definitions/API_Entities_Release"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - releases
      operationId: deleteApiV4ProjectsIdReleasesTagName
  "/api/v4/projects/{id}/releases/{tag_name}/downloads/*direct_asset_path":
    get:
      summary: Download a project release asset file
      description: This feature was introduced in GitLab 15.4.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag_name
        description: The Git tag the release is associated with
        type: string
        required: true
      - in: query
        name: direct_asset_path
        description: The path to the file to download, as specified when creating
          the release asset
        type: string
        required: true
      responses:
        '200':
          description: Download a project release asset file
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - releases
      operationId: getApiV4ProjectsIdReleasesTagNameDownloads*directAssetPath
  "/api/v4/projects/{id}/releases/permalink/latest(/)(*suffix_path)":
    get:
      summary: Get the latest project release
      description: This feature was introduced in GitLab 15.4.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: suffix_path
        description: The path to be suffixed to the latest release
        type: string
        required: true
      responses:
        '200':
          description: Get the latest project release
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - releases
      operationId: getApiV4ProjectsIdReleasesPermalinkLatest()(*suffixPath)
  "/api/v4/projects/{id}/releases/{tag_name}/evidence":
    post:
      summary: Collect release evidence
      description: Creates an evidence for an existing Release. This feature was introduced
        in GitLab 12.10.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: tag_name
        description: The Git tag the release is associated with
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Collect release evidence
          schema:
            "$ref": "#/definitions/API_Entities_Release"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - releases
      operationId: postApiV4ProjectsIdReleasesTagNameEvidence
  "/api/v4/projects/{id}/remote_mirrors":
    get:
      description: List the project's remote mirrors
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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: List the project's remote mirrors
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_RemoteMirror"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - remote_mirrors
      operationId: getApiV4ProjectsIdRemoteMirrors
    post:
      description: Create remote mirror for a project
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdRemoteMirrors
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdRemoteMirrors"
      responses:
        '201':
          description: Create remote mirror for a project
          schema:
            "$ref": "#/definitions/API_Entities_RemoteMirror"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - remote_mirrors
      operationId: postApiV4ProjectsIdRemoteMirrors
  "/api/v4/projects/{id}/remote_mirrors/{mirror_id}":
    get:
      description: Get a single remote mirror
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: mirror_id
        description: The ID of a remote mirror
        type: string
        required: true
      responses:
        '200':
          description: Get a single remote mirror
          schema:
            "$ref": "#/definitions/API_Entities_RemoteMirror"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - remote_mirrors
      operationId: getApiV4ProjectsIdRemoteMirrorsMirrorId
    put:
      description: Update the attributes of a single remote mirror
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: mirror_id
        description: The ID of a remote mirror
        type: string
        required: true
      - name: putApiV4ProjectsIdRemoteMirrorsMirrorId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdRemoteMirrorsMirrorId"
      responses:
        '200':
          description: Update the attributes of a single remote mirror
          schema:
            "$ref": "#/definitions/API_Entities_RemoteMirror"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - remote_mirrors
      operationId: putApiV4ProjectsIdRemoteMirrorsMirrorId
    delete:
      summary: Delete a single remote mirror
      description: This feature was introduced in GitLab 14.10
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: mirror_id
        description: The ID of a remote mirror
        type: string
        required: true
      responses:
        '204':
          description: Delete a single remote mirror
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - remote_mirrors
      operationId: deleteApiV4ProjectsIdRemoteMirrorsMirrorId
  "/api/v4/projects/{id}/remote_mirrors/{mirror_id}/sync":
    post:
      description: Triggers a push mirror operation
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: mirror_id
        description: The ID of a remote mirror
        type: string
        required: true
      responses:
        '204':
          description: Triggers a push mirror operation
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - remote_mirrors
      operationId: postApiV4ProjectsIdRemoteMirrorsMirrorIdSync
  "/api/v4/projects/{id}/repository/tree":
    get:
      description: Get a project repository tree
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 1
      - in: query
        name: ref
        description: The name of a repository branch or tag, if not given the default
          branch is used
        type: string
        required: false
        example: main
      - in: query
        name: path
        description: The path of the tree
        type: string
        required: false
        example: files/html
      - in: query
        name: recursive
        description: Used to get a recursive tree
        type: boolean
        default: false
        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
      - in: query
        name: pagination
        description: Specify the pagination method ("none" is only valid if "recursive"
          is true)
        type: string
        default: legacy
        enum:
        - legacy
        - keyset
        - none
        required: false
      - in: query
        name: page_token
        description: Record from which to start the keyset pagination
        type: string
        required: false
        example: a1e8f8d745cc87e3a9248358d9352bb7f9a0aeba
      responses:
        '200':
          description: Get a project repository tree
          schema:
            "$ref": "#/definitions/API_Entities_TreeObject"
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryTree
  "/api/v4/projects/{id}/repository/blobs/{sha}/raw":
    get:
      description: Get raw blob contents from the repository
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 1
      - in: path
        name: sha
        description: The commit hash
        type: string
        required: true
        example: 7d70e02340bac451f281cecf0a980907974bd8be
      responses:
        '200':
          description: Get raw blob contents from the repository
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryBlobsShaRaw
  "/api/v4/projects/{id}/repository/blobs/{sha}":
    get:
      description: Get a blob from the repository
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 1
      - in: path
        name: sha
        description: The commit hash
        type: string
        required: true
        example: 7d70e02340bac451f281cecf0a980907974bd8be
      responses:
        '200':
          description: Get a blob from the repository
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryBlobsSha
  "/api/v4/projects/{id}/repository/archive":
    get:
      description: Get an archive of the repository
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 1
      - in: query
        name: sha
        description: The commit sha of the archive to be downloaded
        type: string
        required: false
        example: 7d70e02340bac451f281cecf0a980907974bd8be
      - in: query
        name: format
        description: The archive format
        type: string
        required: false
        example: tar.gz
      - in: query
        name: path
        description: Subfolder of the repository to be downloaded
        type: string
        required: false
        example: files/archives
      responses:
        '200':
          description: Get an archive of the repository
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryArchive
  "/api/v4/projects/{id}/repository/compare":
    get:
      description: Compare two branches, tags, or commits
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 1
      - in: query
        name: from
        description: The commit, branch name, or tag name to start comparison
        type: string
        required: true
        example: main
      - in: query
        name: to
        description: The commit, branch name, or tag name to stop comparison
        type: string
        required: true
        example: feature
      - in: query
        name: from_project_id
        description: The project to compare from
        type: integer
        format: int32
        required: false
        example: 1
      - in: query
        name: straight
        description: Comparison method, `true` for direct comparison between `from`
          and `to` (`from`..`to`), `false` to compare using merge base (`from`...`to`)
        type: boolean
        default: false
        required: false
      - in: query
        name: unidiff
        description: A diff in a Unified diff format
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Compare two branches, tags, or commits
          schema:
            "$ref": "#/definitions/API_Entities_Compare"
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryCompare
  "/api/v4/projects/{id}/repository/contributors":
    get:
      description: Get repository contributors
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 1
      - 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
      - in: query
        name: order_by
        description: Return contributors ordered by `name` or `email` or `commits`
        type: string
        default: commits
        enum:
        - email
        - name
        - commits
        required: false
      - in: query
        name: sort
        description: Sort by asc (ascending) or desc (descending)
        type: string
        default: asc
        enum:
        - asc
        - desc
        required: false
      responses:
        '200':
          description: Get repository contributors
          schema:
            "$ref": "#/definitions/API_Entities_Contributor"
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryContributors
  "/api/v4/projects/{id}/repository/merge_base":
    get:
      description: Get the common ancestor between commits
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 1
      - in: query
        name: refs
        description: The refs to find the common ancestor of, multiple refs can be
          passed
        type: array
        items:
          type: string
        required: true
        example: main
      responses:
        '200':
          description: Get the common ancestor between commits
          schema:
            "$ref": "#/definitions/API_Entities_Commit"
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryMergeBase
  "/api/v4/projects/{id}/repository/changelog":
    get:
      summary: Generates a changelog section for a release and returns it
      description: This feature was introduced in GitLab 14.6
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 1
      - in: query
        name: version
        description: The version of the release, using the semantic versioning format
        type: string
        required: true
        example: 1.0.0
      - in: query
        name: from
        description: The first commit in the range of commits to use for the changelog
        type: string
        required: false
        example: ed899a2f4b50b4370feeea94676502b42383c746
      - in: query
        name: to
        description: The last commit in the range of commits to use for the changelog
        type: string
        required: false
        example: 6104942438c14ec7bd21c6cd5bd995272b3faff6
      - in: query
        name: date
        description: The date and time of the release
        type: string
        format: date-time
        required: false
        example: '2021-09-20T11:50:22.001+00:00'
      - in: query
        name: trailer
        description: The Git trailer to use for determining if commits are to be included
          in the changelog
        type: string
        default: Changelog
        required: false
        example: Changelog
      - in: query
        name: config_file
        description: The file path to the configuration file as stored in the project's
          Git repository. Defaults to '.gitlab/changelog_config.yml'
        type: string
        required: false
        example: ".gitlab/changelog_config.yml"
      responses:
        '200':
          description: Generates a changelog section for a release and returns it
          schema:
            "$ref": "#/definitions/API_Entities_Changelog"
      tags:
      - projects
      operationId: getApiV4ProjectsIdRepositoryChangelog
    post:
      summary: Generates a changelog section for a release and commits it in a changelog
        file
      description: This feature was introduced in GitLab 13.9
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 1
      - name: postApiV4ProjectsIdRepositoryChangelog
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdRepositoryChangelog"
      responses:
        '200':
          description: Generates a changelog section for a release and commits it
            in a changelog file
      tags:
      - projects
      operationId: postApiV4ProjectsIdRepositoryChangelog
  "/api/v4/projects/{id}/access_tokens":
    get:
      summary: Get list of all access tokens for the specified resource
      description: This feature was introduced in GitLab 13.9.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Get list of all access tokens for the specified resource
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ResourceAccessToken"
      tags:
      - project_access_tokens
      operationId: getApiV4ProjectsIdAccessTokens
    post:
      summary: Create a resource access token
      description: This feature was introduced in GitLab 13.9.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
        example: 2
      - name: postApiV4ProjectsIdAccessTokens
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdAccessTokens"
      responses:
        '201':
          description: Create a resource access token
          schema:
            "$ref": "#/definitions/API_Entities_ResourceAccessTokenWithToken"
      tags:
      - project_access_tokens
      operationId: postApiV4ProjectsIdAccessTokens
  "/api/v4/projects/{id}/access_tokens/{token_id}":
    get:
      summary: Get an access token for the specified resource by ID
      description: This feature was introduced in GitLab 14.10.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: token_id
        description: The ID of the token
        type: string
        required: true
      responses:
        '200':
          description: Get an access token for the specified resource by ID
          schema:
            "$ref": "#/definitions/API_Entities_ResourceAccessToken"
      tags:
      - project_access_tokens
      operationId: getApiV4ProjectsIdAccessTokensTokenId
    delete:
      summary: Revoke a resource access token
      description: This feature was introduced in GitLab 13.9.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
      - in: path
        name: token_id
        description: The ID of the token
        type: string
        required: true
      responses:
        '204':
          description: Revoke a resource access token
        '400':
          description: Bad Request
        '404':
          description: Not found
      tags:
      - project_access_tokens
      operationId: deleteApiV4ProjectsIdAccessTokensTokenId
  "/api/v4/projects/{id}/access_tokens/{token_id}/rotate":
    post:
      summary: Rotate a resource access token
      description: This feature was introduced in GitLab 16.0.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID
        type: string
        required: true
      - in: path
        name: token_id
        description: The ID of the token
        type: string
        required: true
      - name: postApiV4ProjectsIdAccessTokensTokenIdRotate
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdAccessTokensTokenIdRotate"
      responses:
        '201':
          description: Rotate a resource access token
          schema:
            "$ref": "#/definitions/API_Entities_ResourceAccessTokenWithToken"
      tags:
      - project_access_tokens
      operationId: postApiV4ProjectsIdAccessTokensTokenIdRotate
  "/api/v4/projects/{id}/issues/{eventable_id}/resource_milestone_events":
    get:
      summary: List project Issue milestone events
      description: Gets a list of all milestone events for a single Issue
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: eventable_id
        description: The ID of the eventable
        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: List project Issue milestone events
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ResourceMilestoneEvent"
      tags:
      - resource_milestone_events
      operationId: getApiV4ProjectsIdIssuesEventableIdResourceMilestoneEvents
  "/api/v4/projects/{id}/issues/{eventable_id}/resource_milestone_events/{event_id}":
    get:
      summary: Get single Issue milestone event
      description: Returns a single milestone event for a specific project Issue
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: event_id
        description: The ID of a resource milestone event
        type: string
        required: true
      - in: path
        name: eventable_id
        description: The ID of the eventable
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get single Issue milestone event
          schema:
            "$ref": "#/definitions/API_Entities_ResourceMilestoneEvent"
        '404':
          description: Not found
      tags:
      - resource_milestone_events
      operationId: getApiV4ProjectsIdIssuesEventableIdResourceMilestoneEventsEventId
  "/api/v4/projects/{id}/merge_requests/{eventable_id}/resource_milestone_events":
    get:
      summary: List project Merge request milestone events
      description: Gets a list of all milestone events for a single Merge request
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: eventable_id
        description: The ID of the eventable
        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: List project Merge request milestone events
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ResourceMilestoneEvent"
      tags:
      - resource_milestone_events
      operationId: getApiV4ProjectsIdMergeRequestsEventableIdResourceMilestoneEvents
  "/api/v4/projects/{id}/merge_requests/{eventable_id}/resource_milestone_events/{event_id}":
    get:
      summary: Get single Merge request milestone event
      description: Returns a single milestone event for a specific project Merge request
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: event_id
        description: The ID of a resource milestone event
        type: string
        required: true
      - in: path
        name: eventable_id
        description: The ID of the eventable
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get single Merge request milestone event
          schema:
            "$ref": "#/definitions/API_Entities_ResourceMilestoneEvent"
        '404':
          description: Not found
      tags:
      - resource_milestone_events
      operationId: getApiV4ProjectsIdMergeRequestsEventableIdResourceMilestoneEventsEventId
  "/api/v4/projects/{id}/repository/submodules/{submodule}":
    put:
      description: Update existing submodule reference in repository
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of a project
        type: string
        required: true
        example: gitlab-org/gitlab
      - in: path
        name: submodule
        description: Url encoded full path to submodule.
        type: string
        required: true
        example: gitlab-org/gitlab-shell
      - name: putApiV4ProjectsIdRepositorySubmodulesSubmodule
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdRepositorySubmodulesSubmodule"
      responses:
        '200':
          description: Update existing submodule reference in repository
          schema:
            "$ref": "#/definitions/API_Entities_CommitDetail"
        '404':
          description: 404 Project Not Found
        '401':
          description: 401 Unauthorized
        '400':
          description: The repository is empty
      tags:
      - projects
      operationId: putApiV4ProjectsIdRepositorySubmodulesSubmodule
  "/api/v4/projects/{id}/repository/tags":
    get:
      description: Get a project repository tags
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: sort
        description: Return tags sorted in updated by `asc` or `desc` order.
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: order_by
        description: Return tags ordered by `name`, `updated`, `version` fields.
        type: string
        default: updated
        enum:
        - name
        - updated
        - version
        required: false
      - in: query
        name: search
        description: Return list of tags matching the search criteria
        type: string
        required: false
      - in: query
        name: page_token
        description: Name of tag to start the paginaition from
        type: string
        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: Get a project repository tags
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Tag"
        '403':
          description: Unauthenticated
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
        '503':
          description: Service unavailable
      tags:
      - tags
      operationId: getApiV4ProjectsIdRepositoryTags
    post:
      description: Create a new repository tag
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdRepositoryTags
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdRepositoryTags"
      responses:
        '201':
          description: Create a new repository tag
          schema:
            "$ref": "#/definitions/API_Entities_Tag"
        '400':
          description: Bad request
        '403':
          description: Unauthenticated
        '404':
          description: Not found
      tags:
      - tags
      operationId: postApiV4ProjectsIdRepositoryTags
  "/api/v4/projects/{id}/repository/tags/{tag_name}":
    get:
      description: Get a single repository tag
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag_name
        description: The name of the tag
        type: string
        required: true
      responses:
        '200':
          description: Get a single repository tag
          schema:
            "$ref": "#/definitions/API_Entities_Tag"
        '403':
          description: Unauthenticated
        '404':
          description: Not found
      tags:
      - tags
      operationId: getApiV4ProjectsIdRepositoryTagsTagName
    delete:
      description: Delete a repository tag
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag_name
        description: The name of the tag
        type: string
        required: true
      responses:
        '204':
          description: Delete a repository tag
        '403':
          description: Unauthenticated
        '404':
          description: Not found
        '412':
          description: Precondition failed
      tags:
      - tags
      operationId: deleteApiV4ProjectsIdRepositoryTagsTagName
  "/api/v4/projects/{id}/repository/tags/{tag_name}/signature":
    get:
      description: Get a tag's signature
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag_name
        description: The name of the tag
        type: string
        required: true
      responses:
        '200':
          description: Get a tag's signature
          schema:
            "$ref": "#/definitions/API_Entities_TagSignature"
        '404':
          description: Not found
      tags:
      - tags
      operationId: getApiV4ProjectsIdRepositoryTagsTagNameSignature
  "/api/v4/projects/{id}/wikis":
    get:
      description: Get a list of wiki pages
      produces:
      - application/json
      parameters:
      - in: query
        name: with_content
        description: Include pages' content
        type: boolean
        default: false
        required: false
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a list of wiki pages
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_WikiPageBasic"
        '404':
          description: Not found
      tags:
      - wikis
      operationId: getApiV4ProjectsIdWikis
    post:
      description: Create a wiki page
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdWikis
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdWikis"
      responses:
        '201':
          description: Create a wiki page
          schema:
            "$ref": "#/definitions/API_Entities_WikiPage"
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - wikis
      operationId: postApiV4ProjectsIdWikis
  "/api/v4/projects/{id}/wikis/{slug}":
    get:
      description: Get a wiki page
      produces:
      - application/json
      parameters:
      - in: path
        name: slug
        description: The slug of a wiki page
        type: string
        required: true
      - in: query
        name: version
        description: The version hash of a wiki page
        type: string
        required: false
      - in: query
        name: render_html
        description: Render content to HTML
        type: boolean
        default: false
        required: false
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a wiki page
          schema:
            "$ref": "#/definitions/API_Entities_WikiPage"
        '404':
          description: Not found
      tags:
      - wikis
      operationId: getApiV4ProjectsIdWikisSlug
    put:
      description: Update a wiki page
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - in: path
        name: slug
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdWikisSlug
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdWikisSlug"
      responses:
        '200':
          description: Update a wiki page
          schema:
            "$ref": "#/definitions/API_Entities_WikiPage"
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - wikis
      operationId: putApiV4ProjectsIdWikisSlug
    delete:
      description: Delete a wiki page
      produces:
      - application/json
      parameters:
      - in: path
        name: slug
        description: The slug of a wiki page
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a wiki page
        '400':
          description: Validation error
        '404':
          description: Not found
      tags:
      - wikis
      operationId: deleteApiV4ProjectsIdWikisSlug
  "/api/v4/projects/{id}/wikis/attachments":
    post:
      summary: Upload an attachment to the wiki repository
      description: This feature was introduced in GitLab 11.3.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdWikisAttachments
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdWikisAttachments"
      responses:
        '201':
          description: Upload an attachment to the wiki repository
          schema:
            "$ref": "#/definitions/API_Entities_WikiAttachment"
        '404':
          description: Not found
      tags:
      - wikis
      operationId: postApiV4ProjectsIdWikisAttachments
  "/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images/authorize":
    post:
      description: Workhorse authorize metric image file upload
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 17
      - in: path
        name: alert_iid
        description: The IID of the Alert
        type: integer
        format: int32
        required: true
        example: 23
      responses:
        '200':
          description: Workhorse authorize metric image file upload
        '403':
          description: Forbidden
      tags:
      - alert_management
      operationId: postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesAuthorize
  "/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images":
    post:
      description: Upload a metric image for an alert
      produces:
      - application/json
      consumes:
      - multipart/form-data
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 17
      - in: path
        name: alert_iid
        description: The IID of the Alert
        type: integer
        format: int32
        required: true
        example: 23
      - in: formData
        name: file
        description: The image file to be uploaded
        type: file
        required: true
      - in: formData
        name: url
        description: The url to view more metric info
        type: string
        required: false
        example: https://example.com/metric
      - in: formData
        name: url_text
        description: A description of the image or URL
        type: string
        required: false
        example: An example metric
      responses:
        '200':
          description: Upload a metric image for an alert
          schema:
            "$ref": "#/definitions/API_Entities_MetricImage"
        '403':
          description: Forbidden
      tags:
      - alert_management
      operationId: postApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages
    get:
      description: Metric Images for alert
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 17
      - in: path
        name: alert_iid
        description: The IID of the Alert
        type: integer
        format: int32
        required: true
        example: 23
      responses:
        '200':
          description: Metric Images for alert
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_MetricImage"
        '404':
          description: Not found
      tags:
      - alert_management
      operationId: getApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImages
  "/api/v4/projects/{id}/alert_management_alerts/{alert_iid}/metric_images/{metric_image_id}":
    put:
      description: Update a metric image for an alert
      produces:
      - application/json
      consumes:
      - multipart/form-data
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 17
      - in: path
        name: alert_iid
        description: The IID of the Alert
        type: integer
        format: int32
        required: true
        example: 23
      - in: path
        name: metric_image_id
        description: The ID of metric image
        type: integer
        format: int32
        required: true
        example: 42
      - in: formData
        name: url
        description: The url to view more metric info
        type: string
        required: false
        example: https://example.com/metric
      - in: formData
        name: url_text
        description: A description of the image or URL
        type: string
        required: false
        example: An example metric
      responses:
        '200':
          description: Update a metric image for an alert
          schema:
            "$ref": "#/definitions/API_Entities_MetricImage"
        '403':
          description: Forbidden
        '422':
          description: Unprocessable entity
      tags:
      - alert_management
      operationId: putApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesMetricImageId
    delete:
      description: Remove a metric image for an alert
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
        example: 17
      - in: path
        name: alert_iid
        description: The IID of the Alert
        type: integer
        format: int32
        required: true
        example: 23
      - in: path
        name: metric_image_id
        description: The ID of metric image
        type: integer
        format: int32
        required: true
        example: 42
      responses:
        '204':
          description: Remove a metric image for an alert
          schema:
            "$ref": "#/definitions/API_Entities_MetricImage"
        '403':
          description: Forbidden
        '422':
          description: Unprocessable entity
      tags:
      - alert_management
      operationId: deleteApiV4ProjectsIdAlertManagementAlertsAlertIidMetricImagesMetricImageId
  "/api/v4/projects/{id}/cluster_agents/{agent_id}/tokens":
    get:
      summary: List tokens for an agent
      description: This feature was introduced in GitLab 15.0. Returns a list of tokens
        for an agent.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: agent_id
        description: The ID of an agent
        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: List tokens for an agent
          schema:
            "$ref": "#/definitions/API_Entities_Clusters_AgentTokenBasic"
      tags:
      - cluster_agents
      operationId: getApiV4ProjectsIdClusterAgentsAgentIdTokens
    post:
      summary: Create an agent token
      description: This feature was introduced in GitLab 15.0. Creates a new token
        for an agent.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: agent_id
        description: The ID of an agent
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdClusterAgentsAgentIdTokens
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdClusterAgentsAgentIdTokens"
      responses:
        '201':
          description: Create an agent token
          schema:
            "$ref": "#/definitions/API_Entities_Clusters_AgentTokenWithToken"
      tags:
      - cluster_agents
      operationId: postApiV4ProjectsIdClusterAgentsAgentIdTokens
  "/api/v4/projects/{id}/cluster_agents/{agent_id}/tokens/{token_id}":
    get:
      summary: Get a single agent token
      description: This feature was introduced in GitLab 15.0. Gets a single agent
        token.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: agent_id
        description: The ID of an agent
        type: integer
        format: int32
        required: true
      - in: path
        name: token_id
        description: The ID of the agent token
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single agent token
          schema:
            "$ref": "#/definitions/API_Entities_Clusters_AgentToken"
      tags:
      - cluster_agents
      operationId: getApiV4ProjectsIdClusterAgentsAgentIdTokensTokenId
    delete:
      summary: Revoke an agent token
      description: This feature was introduced in GitLab 15.0. Revokes an agent token.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: agent_id
        description: The ID of an agent
        type: integer
        format: int32
        required: true
      - in: path
        name: token_id
        description: The ID of the agent token
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Revoke an agent token
      tags:
      - cluster_agents
      operationId: deleteApiV4ProjectsIdClusterAgentsAgentIdTokensTokenId
  "/api/v4/projects/{id}/packages/composer":
    post:
      summary: Composer packages endpoint for registering packages
      description: This feature was introduced in GitLab 13.1
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of a project
        type: string
        required: true
      - name: postApiV4ProjectsIdPackagesComposer
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdPackagesComposer"
      responses:
        '201':
          description: Composer packages endpoint for registering packages
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - composer_packages
      operationId: postApiV4ProjectsIdPackagesComposer
  "/api/v4/projects/{id}/packages/composer/archives/*package_name":
    get:
      summary: Composer package endpoint to download a package archive
      description: This feature was introduced in GitLab 13.1
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of a project
        type: string
        required: true
      - in: query
        name: sha
        description: Shasum of current json
        type: string
        required: true
        example: 673594f85a55fe3c0eb45df7bd2fa9d95a1601ab
      - in: query
        name: package_name
        description: The Composer package name
        type: string
        required: true
        example: my-composer-package
      responses:
        '200':
          description: Composer package endpoint to download a package archive
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - composer_packages
      operationId: getApiV4ProjectsIdPackagesComposerArchives*packageName
  "/api/v4/projects/{id}/packages/conan/v1/ping":
    get:
      summary: Ping the Conan API
      description: This feature was introduced in GitLab 12.2
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Ping the Conan API
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4ProjectsIdPackagesConanV1Ping
  "/api/v4/projects/{id}/packages/conan/v1/conans/search":
    get:
      summary: Search for packages
      description: This feature was introduced in GitLab 12.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: q
        description: Search query
        type: string
        required: true
        example: Hello*
      responses:
        '200':
          description: Search for packages
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4ProjectsIdPackagesConanV1ConansSearch
  "/api/v4/projects/{id}/packages/conan/v1/users/authenticate":
    get:
      summary: Authenticate user against conan CLI
      description: This feature was introduced in GitLab 12.2
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Authenticate user against conan CLI
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4ProjectsIdPackagesConanV1UsersAuthenticate
  "/api/v4/projects/{id}/packages/conan/v1/users/check_credentials":
    get:
      summary: Check for valid user credentials per conan CLI
      description: This feature was introduced in GitLab 12.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Check for valid user credentials per conan CLI
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4ProjectsIdPackagesConanV1UsersCheckCredentials
  ? "/api/v4/projects/{id}/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/packages/{conan_package_reference}"
  : get:
      summary: Package Snapshot
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: conan_package_reference
        description: Conan package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      responses:
        '200':
          description: Package Snapshot
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanPackageSnapshot"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4ProjectsIdPackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelPackagesConanPackageReference
  "/api/v4/projects/{id}/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}":
    get:
      summary: Recipe Snapshot
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      responses:
        '200':
          description: Recipe Snapshot
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanRecipeSnapshot"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4ProjectsIdPackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannel
    delete:
      summary: Delete Package
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      responses:
        '204':
          description: Delete Package
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: deleteApiV4ProjectsIdPackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannel
  ? "/api/v4/projects/{id}/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/packages/{conan_package_reference}/digest"
  : get:
      summary: Package Digest
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: conan_package_reference
        description: Conan package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      responses:
        '200':
          description: Package Digest
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanPackageManifest"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4ProjectsIdPackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelPackagesConanPackageReferenceDigest
  "/api/v4/projects/{id}/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/digest":
    get:
      summary: Recipe Digest
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      responses:
        '200':
          description: Recipe Digest
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanRecipeManifest"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4ProjectsIdPackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelDigest
  ? "/api/v4/projects/{id}/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/packages/{conan_package_reference}/download_urls"
  : get:
      summary: Package Download Urls
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: conan_package_reference
        description: Conan package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      responses:
        '200':
          description: Package Download Urls
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanPackageManifest"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4ProjectsIdPackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelPackagesConanPackageReferenceDownloadUrls
  ? "/api/v4/projects/{id}/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/download_urls"
  : get:
      summary: Recipe Download Urls
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      responses:
        '200':
          description: Recipe Download Urls
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanRecipeManifest"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4ProjectsIdPackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelDownloadUrls
  ? "/api/v4/projects/{id}/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/packages/{conan_package_reference}/upload_urls"
  : post:
      summary: Package Upload Urls
      description: This feature was introduced in GitLab 12.4
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: conan_package_reference
        description: Conan package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      responses:
        '200':
          description: Package Upload Urls
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanUploadUrls"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: postApiV4ProjectsIdPackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelPackagesConanPackageReferenceUploadUrls
  "/api/v4/projects/{id}/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/upload_urls":
    post:
      summary: Recipe Upload Urls
      description: This feature was introduced in GitLab 12.4
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      responses:
        '200':
          description: Recipe Upload Urls
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanUploadUrls"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: postApiV4ProjectsIdPackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelUploadUrls
  ? "/api/v4/projects/{id}/packages/conan/v1/files/{package_name}/{package_version}/{package_username}/{package_channel}/{recipe_revision}/export/{file_name}"
  : get:
      summary: Download recipe files
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: recipe_revision
        description: Conan Recipe Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: file_name
        description: Package file name
        type: string
        enum:
        - conanfile.py
        - conanmanifest.txt
        - conan_sources.tgz
        - conan_export.tgz
        - conaninfo.txt
        - conan_package.tgz
        required: true
        example: conanfile.py
      responses:
        '200':
          description: Download recipe files
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileName
    put:
      summary: Upload recipe package files
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: recipe_revision
        description: Conan Recipe Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: file_name
        description: Package file name
        type: string
        enum:
        - conanfile.py
        - conanmanifest.txt
        - conan_sources.tgz
        - conan_export.tgz
        - conaninfo.txt
        - conan_package.tgz
        required: true
        example: conanfile.py
      - name: putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileName"
      responses:
        '200':
          description: Upload recipe package files
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileName
  ? "/api/v4/projects/{id}/packages/conan/v1/files/{package_name}/{package_version}/{package_username}/{package_channel}/{recipe_revision}/export/{file_name}/authorize"
  : put:
      summary: Workhorse authorize the conan recipe file
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: recipe_revision
        description: Conan Recipe Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: file_name
        description: Package file name
        type: string
        enum:
        - conanfile.py
        - conanmanifest.txt
        - conan_sources.tgz
        - conan_export.tgz
        - conaninfo.txt
        - conan_package.tgz
        required: true
        example: conanfile.py
      responses:
        '200':
          description: Workhorse authorize the conan recipe file
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileNameAuthorize
  ? "/api/v4/projects/{id}/packages/conan/v1/files/{package_name}/{package_version}/{package_username}/{package_channel}/{recipe_revision}/package/{conan_package_reference}/{package_revision}/{file_name}"
  : get:
      summary: Download package files
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: recipe_revision
        description: Conan Recipe Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: conan_package_reference
        description: Conan Package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      - in: path
        name: package_revision
        description: Conan Package Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: file_name
        description: Package file name
        type: string
        enum:
        - conanfile.py
        - conanmanifest.txt
        - conan_sources.tgz
        - conan_export.tgz
        - conaninfo.txt
        - conan_package.tgz
        required: true
        example: conaninfo.txt
      responses:
        '200':
          description: Download package files
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileName
    put:
      summary: Upload package files
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: recipe_revision
        description: Conan Recipe Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: conan_package_reference
        description: Conan Package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      - in: path
        name: package_revision
        description: Conan Package Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: file_name
        description: Package file name
        type: string
        enum:
        - conanfile.py
        - conanmanifest.txt
        - conan_sources.tgz
        - conan_export.tgz
        - conaninfo.txt
        - conan_package.tgz
        required: true
        example: conaninfo.txt
      - name: putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileName"
      responses:
        '200':
          description: Upload package files
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileName
  ? "/api/v4/projects/{id}/packages/conan/v1/files/{package_name}/{package_version}/{package_username}/{package_channel}/{recipe_revision}/package/{conan_package_reference}/{package_revision}/{file_name}/authorize"
  : put:
      summary: Workhorse authorize the conan package file
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: recipe_revision
        description: Conan Recipe Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: conan_package_reference
        description: Conan Package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      - in: path
        name: package_revision
        description: Conan Package Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: file_name
        description: Package file name
        type: string
        enum:
        - conanfile.py
        - conanmanifest.txt
        - conan_sources.tgz
        - conan_export.tgz
        - conaninfo.txt
        - conan_package.tgz
        required: true
        example: conaninfo.txt
      responses:
        '200':
          description: Workhorse authorize the conan package file
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileNameAuthorize
  "/api/v4/projects/{id}/packages/debian/dists/*distribution/Release.gpg":
    get:
      summary: The Release file signature
      description: This feature was introduced in GitLab 13.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      responses:
        '200':
          description: The Release file signature
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4ProjectsIdPackagesDebianDists*distributionReleaseGpg
  "/api/v4/projects/{id}/packages/debian/dists/*distribution/Release":
    get:
      summary: The unsigned Release file
      description: This feature was introduced in GitLab 13.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      responses:
        '200':
          description: The unsigned Release file
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4ProjectsIdPackagesDebianDists*distributionRelease
  "/api/v4/projects/{id}/packages/debian/dists/*distribution/InRelease":
    get:
      summary: The signed Release file
      description: This feature was introduced in GitLab 13.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      responses:
        '200':
          description: The signed Release file
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4ProjectsIdPackagesDebianDists*distributionInrelease
  "/api/v4/projects/{id}/packages/debian/dists/*distribution/{component}/debian-installer/binary-{architecture}/Packages":
    get:
      summary: The installer (udeb) binary files index
      description: This feature was introduced in GitLab 15.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: component
        description: The Debian Component
        type: string
        required: true
        example: main
      - in: path
        name: architecture
        description: The Debian Architecture
        type: string
        required: true
        example: binary-amd64
      responses:
        '200':
          description: The installer (udeb) binary files index
        '202':
          description: The installer (udeb) binary files index
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4ProjectsIdPackagesDebianDists*distributionComponentDebianInstallerBinaryArchitecturePackages
  ? "/api/v4/projects/{id}/packages/debian/dists/*distribution/{component}/debian-installer/binary-{architecture}/by-hash/SHA256/{file_sha256}"
  : get:
      summary: The installer (udeb) binary files index by hash
      description: This feature was introduced in GitLab 15.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: component
        description: The Debian Component
        type: string
        required: true
        example: main
      - in: path
        name: architecture
        description: The Debian Architecture
        type: string
        required: true
        example: binary-amd64
      - in: path
        name: file_sha256
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: The installer (udeb) binary files index by hash
        '202':
          description: The installer (udeb) binary files index by hash
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4ProjectsIdPackagesDebianDists*distributionComponentDebianInstallerBinaryArchitectureByHashSha256FileSha256
  "/api/v4/projects/{id}/packages/debian/dists/*distribution/{component}/source/Sources":
    get:
      summary: The source files index
      description: This feature was introduced in GitLab 15.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: component
        description: The Debian Component
        type: string
        required: true
        example: main
      responses:
        '200':
          description: The source files index
        '202':
          description: The source files index
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4ProjectsIdPackagesDebianDists*distributionComponentSourceSources
  "/api/v4/projects/{id}/packages/debian/dists/*distribution/{component}/source/by-hash/SHA256/{file_sha256}":
    get:
      summary: The source files index by hash
      description: This feature was introduced in GitLab 15.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: component
        description: The Debian Component
        type: string
        required: true
        example: main
      - in: path
        name: file_sha256
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: The source files index by hash
        '202':
          description: The source files index by hash
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4ProjectsIdPackagesDebianDists*distributionComponentSourceByHashSha256FileSha256
  "/api/v4/projects/{id}/packages/debian/dists/*distribution/{component}/binary-{architecture}/Packages":
    get:
      summary: The binary files index
      description: This feature was introduced in GitLab 13.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: component
        description: The Debian Component
        type: string
        required: true
        example: main
      - in: path
        name: architecture
        description: The Debian Architecture
        type: string
        required: true
        example: binary-amd64
      responses:
        '200':
          description: The binary files index
        '202':
          description: The binary files index
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4ProjectsIdPackagesDebianDists*distributionComponentBinary-ArchitecturePackages
  "/api/v4/projects/{id}/packages/debian/dists/*distribution/{component}/binary-{architecture}/by-hash/SHA256/{file_sha256}":
    get:
      summary: The binary files index by hash
      description: This feature was introduced in GitLab 15.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: component
        description: The Debian Component
        type: string
        required: true
        example: main
      - in: path
        name: architecture
        description: The Debian Architecture
        type: string
        required: true
        example: binary-amd64
      - in: path
        name: file_sha256
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: The binary files index by hash
        '202':
          description: The binary files index by hash
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4ProjectsIdPackagesDebianDists*distributionComponentBinaryArchitectureByHashSha256FileSha256
  "/api/v4/projects/{id}/packages/debian/pool/{distribution}/{letter}/{package_name}/{package_version}/{file_name}":
    get:
      summary: Download Debian package
      description: This feature was introduced in GitLab 14.2
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: distribution
        description: The Debian Codename or Suite
        type: string
        required: true
        example: my-distro
      - in: path
        name: letter
        description: The Debian Classification (first-letter or lib-first-letter)
        type: string
        required: true
        example: a
      - in: path
        name: package_name
        description: The Debian Source Package Name
        type: string
        required: true
        example: my-pkg
      - in: path
        name: package_version
        description: The Debian Source Package Version
        type: string
        required: true
        example: 1.0.0
      - in: path
        name: file_name
        description: The Debian File Name
        type: string
        required: true
        example: example_1.0.0~alpha2_amd64.deb
      responses:
        '200':
          description: Download Debian package
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: getApiV4ProjectsIdPackagesDebianPoolDistributionLetterPackageNamePackageVersionFileName
  "/api/v4/projects/{id}/packages/debian/{file_name}":
    put:
      summary: Upload Debian package
      description: This feature was introduced in GitLab 14.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: file_name
        description: The filename
        type: string
        required: true
        example: example_1.0.0~alpha2_amd64.deb
      - name: putApiV4ProjectsIdPackagesDebianFileName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesDebianFileName"
      responses:
        '201':
          description: Upload Debian package
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: putApiV4ProjectsIdPackagesDebianFileName
  "/api/v4/projects/{id}/packages/debian/{file_name}/authorize":
    put:
      summary: Authorize Debian package upload
      description: This feature was introduced in GitLab 13.5
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: file_name
        description: The filename
        type: string
        required: true
        example: example_1.0.0~alpha2_amd64.deb
      - name: putApiV4ProjectsIdPackagesDebianFileNameAuthorize
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesDebianFileNameAuthorize"
      responses:
        '200':
          description: Authorize Debian package upload
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_packages
      operationId: putApiV4ProjectsIdPackagesDebianFileNameAuthorize
  "/api/v4/projects/{id}/error_tracking/client_keys":
    get:
      summary: List project client keys
      description: List all client keys. This feature was introduced in GitLab 14.3.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      responses:
        '200':
          description: List project client keys
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ErrorTracking_ClientKey"
      tags:
      - error_tracking_client_keys
      operationId: getApiV4ProjectsIdErrorTrackingClientKeys
    post:
      summary: Create a client key
      description: Creates a new client key for a project. The public key attribute
        is generated automatically.This feature was introduced in GitLab 14.3.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      responses:
        '201':
          description: Create a client key
          schema:
            "$ref": "#/definitions/API_Entities_ErrorTracking_ClientKey"
      tags:
      - error_tracking_client_keys
      operationId: postApiV4ProjectsIdErrorTrackingClientKeys
  "/api/v4/projects/{id}/error_tracking/client_keys/{key_id}":
    delete:
      summary: Delete a client key
      description: Removes a client key from the project. This feature was introduced
        in GitLab 14.3.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project owned by the authenticated
          user
        type: string
        required: true
      - in: path
        name: key_id
        type: integer
        format: int32
        required: true
      responses:
        '400':
          description: Bad request
        '204':
          description: Delete a client key
          schema:
            "$ref": "#/definitions/API_Entities_ErrorTracking_ClientKey"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - error_tracking_client_keys
      operationId: deleteApiV4ProjectsIdErrorTrackingClientKeysKeyId
  "/api/v4/projects/{id}/feature_flags":
    get:
      summary: List feature flags for a project
      description: Gets all feature flags of the requested project. This feature was
        introduced in GitLab 12.5.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: scope
        description: 'The scope of feature flags, one of: `enabled`, `disabled`'
        type: string
        enum:
        - enabled
        - disabled
        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: List feature flags for a project
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_FeatureFlag"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - feature_flags
      operationId: getApiV4ProjectsIdFeatureFlags
    post:
      summary: Create a new feature flag
      description: Creates a new feature flag. This feature was introduced in GitLab
        12.5.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdFeatureFlags
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdFeatureFlags"
      responses:
        '201':
          description: Create a new feature flag
          schema:
            "$ref": "#/definitions/API_Entities_FeatureFlag"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      tags:
      - feature_flags
      operationId: postApiV4ProjectsIdFeatureFlags
  "/api/v4/projects/{id}/feature_flags/{feature_flag_name}":
    get:
      summary: Get a single feature flag
      description: Gets a single feature flag. This feature was introduced in GitLab
        12.5.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: feature_flag_name
        description: The name of the feature flag
        type: string
        required: true
      responses:
        '200':
          description: Get a single feature flag
          schema:
            "$ref": "#/definitions/API_Entities_FeatureFlag"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - feature_flags
      operationId: getApiV4ProjectsIdFeatureFlagsFeatureFlagName
    put:
      summary: Update a feature flag
      description: Updates a feature flag. This feature was introduced in GitLab 13.2.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: feature_flag_name
        description: The name of the feature flag
        type: string
        required: true
      - name: putApiV4ProjectsIdFeatureFlagsFeatureFlagName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdFeatureFlagsFeatureFlagName"
      responses:
        '200':
          description: Update a feature flag
          schema:
            "$ref": "#/definitions/API_Entities_FeatureFlag"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - feature_flags
      operationId: putApiV4ProjectsIdFeatureFlagsFeatureFlagName
    delete:
      summary: Delete a feature flag
      description: Deletes a feature flag. This feature was introduced in GitLab 12.5.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: feature_flag_name
        description: The name of the feature flag
        type: string
        required: true
      responses:
        '401':
          description: Unauthorized
        '204':
          description: Delete a feature flag
          schema:
            "$ref": "#/definitions/API_Entities_FeatureFlag"
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - feature_flags
      operationId: deleteApiV4ProjectsIdFeatureFlagsFeatureFlagName
  "/api/v4/projects/{id}/feature_flags_user_lists":
    get:
      summary: List all feature flag user lists for a project
      description: Gets all feature flag user lists for the requested project. This
        feature was introduced in GitLab 12.10.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: search
        description: Return user lists matching the search criteria
        type: string
        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: List all feature flag user lists for a project
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_FeatureFlag_UserList"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - feature_flags_user_lists
      operationId: getApiV4ProjectsIdFeatureFlagsUserLists
    post:
      summary: Create a feature flag user list
      description: Creates a feature flag user list. This feature was introduced in
        GitLab 12.10.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdFeatureFlagsUserLists
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdFeatureFlagsUserLists"
      responses:
        '201':
          description: Create a feature flag user list
          schema:
            "$ref": "#/definitions/API_Entities_FeatureFlag_UserList"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - feature_flags_user_lists
      operationId: postApiV4ProjectsIdFeatureFlagsUserLists
  "/api/v4/projects/{id}/feature_flags_user_lists/{iid}":
    get:
      summary: Get a feature flag user list
      description: Gets a feature flag user list. This feature was introduced in GitLab
        12.10.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: iid
        description: The internal ID of the project's feature flag user list
        type: string
        required: true
      responses:
        '200':
          description: Get a feature flag user list
          schema:
            "$ref": "#/definitions/API_Entities_FeatureFlag_UserList"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - feature_flags_user_lists
      operationId: getApiV4ProjectsIdFeatureFlagsUserListsIid
    put:
      summary: Update a feature flag user list
      description: Updates a feature flag user list. This feature was introduced in
        GitLab 12.10.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: iid
        description: The internal ID of the project's feature flag user list
        type: string
        required: true
      - name: putApiV4ProjectsIdFeatureFlagsUserListsIid
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdFeatureFlagsUserListsIid"
      responses:
        '200':
          description: Update a feature flag user list
          schema:
            "$ref": "#/definitions/API_Entities_FeatureFlag_UserList"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - feature_flags_user_lists
      operationId: putApiV4ProjectsIdFeatureFlagsUserListsIid
    delete:
      summary: Delete feature flag user list
      description: Deletes a feature flag user list. This feature was introduced in
        GitLab 12.10.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: iid
        description: The internal ID of the project's feature flag user list
        type: string
        required: true
      responses:
        '204':
          description: Delete feature flag user list
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '409':
          description: Conflict
      tags:
      - feature_flags_user_lists
      operationId: deleteApiV4ProjectsIdFeatureFlagsUserListsIid
  "/api/v4/projects/{id}/packages/generic/{package_name}/*package_version/(*path/){file_name}/authorize":
    put:
      summary: Workhorse authorize generic package file
      description: This feature was introduced in GitLab 13.5
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
      - in: path
        name: file_name
        description: Package file name
        type: string
        required: true
      - name: putApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileNameAuthorize
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileNameAuthorize"
      responses:
        '200':
          description: Workhorse authorize generic package file
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - generic_packages
      operationId: putApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileNameAuthorize
  "/api/v4/projects/{id}/packages/generic/{package_name}/*package_version/(*path/){file_name}":
    put:
      summary: Upload package file
      description: This feature was introduced in GitLab 13.5
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
      - in: path
        name: file_name
        description: Package file name
        type: string
        required: true
      - name: putApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileName"
      responses:
        '200':
          description: Upload package file
        '201':
          description: Upload package file
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - generic_packages
      operationId: putApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileName
    get:
      summary: Download package file
      description: This feature was introduced in GitLab 13.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
      - in: query
        name: package_version
        description: Package version
        type: string
        required: true
      - in: query
        name: path
        description: File directory path
        type: string
        required: false
      - in: path
        name: file_name
        description: Package file name
        type: string
        required: true
      responses:
        '200':
          description: Download package file
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - generic_packages
      operationId: getApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileName
  "/api/v4/projects/{id}/packages/go/*module_name/@v/list":
    get:
      summary: List
      description: Get all tagged versions for a given Go module.See `go help goproxy`,
        GET $GOPROXY/<module>/@v/list. This feature was introduced in GitLab 13.1.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or full path of a project
        type: string
        required: true
      - in: query
        name: module_name
        description: The name of the Go module
        type: string
        required: true
      responses:
        '200':
          description: List
      tags:
      - go_proxy
      operationId: getApiV4ProjectsIdPackagesGo*moduleName@vList
  "/api/v4/projects/{id}/packages/go/*module_name/@v/{module_version}.info":
    get:
      summary: Version metadata
      description: Get all tagged versions for a given Go module.See `go help goproxy`,
        GET $GOPROXY/<module>/@v/<version>.info. This feature was introduced in GitLab
        13.1
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or full path of a project
        type: string
        required: true
      - in: query
        name: module_name
        description: The name of the Go module
        type: string
        required: true
      - in: path
        name: module_version
        description: The version of the Go module
        type: string
        required: true
      responses:
        '200':
          description: Version metadata
          schema:
            "$ref": "#/definitions/API_Entities_GoModuleVersion"
      tags:
      - go_proxy
      operationId: getApiV4ProjectsIdPackagesGo*moduleName@vModuleVersionInfo
  "/api/v4/projects/{id}/packages/go/*module_name/@v/{module_version}.mod":
    get:
      summary: Download module file
      description: Get the module file of a given module version.See `go help goproxy`,
        GET $GOPROXY/<module>/@v/<version>.mod. This feature was introduced in GitLab
        13.1.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or full path of a project
        type: string
        required: true
      - in: query
        name: module_name
        description: The name of the Go module
        type: string
        required: true
      - in: path
        name: module_version
        description: The version of the Go module
        type: string
        required: true
      responses:
        '200':
          description: Download module file
      tags:
      - go_proxy
      operationId: getApiV4ProjectsIdPackagesGo*moduleName@vModuleVersionMod
  "/api/v4/projects/{id}/packages/go/*module_name/@v/{module_version}.zip":
    get:
      summary: Download module source
      description: Get a zip of the source of the given module version.See `go help
        goproxy`, GET $GOPROXY/<module>/@v/<version>.zip. This feature was introduced
        in GitLab 13.1.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The project ID or full path of a project
        type: string
        required: true
      - in: query
        name: module_name
        description: The name of the Go module
        type: string
        required: true
      - in: path
        name: module_version
        description: The version of the Go module
        type: string
        required: true
      responses:
        '200':
          description: Download module source
      tags:
      - go_proxy
      operationId: getApiV4ProjectsIdPackagesGo*moduleName@vModuleVersionZip
  "/api/v4/projects/{id}/packages/helm/{channel}/index.yaml":
    get:
      summary: Download a chart index
      description: This feature was introduced in GitLab 14.0
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or full path of a project
        type: integer
        format: int32
        required: true
      - in: path
        name: channel
        description: Helm channel
        type: string
        required: true
        example: stable
      responses:
        '200':
          description: Download a chart index
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      tags:
      - helm_packages
      operationId: getApiV4ProjectsIdPackagesHelmChannelIndexYaml
  "/api/v4/projects/{id}/packages/helm/{channel}/charts/{file_name}.tgz":
    get:
      summary: Download a chart
      description: This feature was introduced in GitLab 14.0
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or full path of a project
        type: integer
        format: int32
        required: true
      - in: path
        name: channel
        description: Helm channel
        type: string
        required: true
        example: stable
      - in: path
        name: file_name
        description: Helm package file name
        type: string
        required: true
        example: mychart
      responses:
        '200':
          description: Download a chart
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - helm_packages
      operationId: getApiV4ProjectsIdPackagesHelmChannelChartsFileNameTgz
  "/api/v4/projects/{id}/packages/helm/api/{channel}/charts/authorize":
    post:
      summary: Authorize a chart upload from workhorse
      description: This feature was introduced in GitLab 14.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or full path of a project
        type: integer
        format: int32
        required: true
      - in: path
        name: channel
        description: Helm channel
        type: string
        required: true
        example: stable
      responses:
        '200':
          description: Authorize a chart upload from workhorse
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - helm_packages
      operationId: postApiV4ProjectsIdPackagesHelmApiChannelChartsAuthorize
  "/api/v4/projects/{id}/packages/helm/api/{channel}/charts":
    post:
      summary: Upload a chart
      description: This feature was introduced in GitLab 14.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or full path of a project
        type: integer
        format: int32
        required: true
      - in: path
        name: channel
        description: Helm channel
        type: string
        required: true
        example: stable
      - name: postApiV4ProjectsIdPackagesHelmApiChannelCharts
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdPackagesHelmApiChannelCharts"
      responses:
        '201':
          description: Upload a chart
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - helm_packages
      operationId: postApiV4ProjectsIdPackagesHelmApiChannelCharts
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/approvals":
    get:
      description: List approvals for merge request
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: List approvals for merge request
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequestApprovals"
        '404':
          description: Not found
      tags:
      - projects
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals
    post:
      summary: 'Deprecated in 16.0: Use the merge request approvals API instead. Change
        approval-related configuration'
      description: This feature was introduced in 10.6 and deprecated in 16.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The IID of a merge request
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals"
      responses:
        '201':
          description: 'Deprecated in 16.0: Use the merge request approvals API instead.
            Change approval-related configuration'
          schema:
            "$ref": "#/definitions/EE_API_Entities_ApprovalState"
      tags:
      - projects
      operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals
      deprecated: true
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/approve":
    post:
      description: Approve a merge request
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove"
      responses:
        '201':
          description: Approve a merge request
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequestApprovals"
        '404':
          description: Not found
        '401':
          description: Unauthorized
      tags:
      - projects
      operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/unapprove":
    post:
      description: Remove an approval from a merge request
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Remove an approval from a merge request
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequestApprovals"
        '404':
          description: Not found
        '401':
          description: Unauthorized
      tags:
      - projects
      operationId: postApiV4ProjectsIdMergeRequestsMergeRequestIidUnapprove
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/reset_approvals":
    put:
      summary: Remove all merge request approvals
      description: Clear all approvals of merge request. This feature was added in
        GitLab 15.4
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - in: path
        name: merge_request_iid
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Remove all merge request approvals
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - merge_requests
      operationId: putApiV4ProjectsIdMergeRequestsMergeRequestIidResetApprovals
  "/api/v4/projects/{id}/merge_requests/{merge_request_iid}/approval_state":
    get:
      description: Get approval state of merge request
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: merge_request_iid
        description: The IID of a merge request
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get approval state of merge request
          schema:
            "$ref": "#/definitions/EE_API_Entities_MergeRequestApprovalState"
      tags:
      - projects
      operationId: getApiV4ProjectsIdMergeRequestsMergeRequestIidApprovalState
  "/api/v4/projects/{id}/packages/ml_models/{model_version_id}/files/(*path/){file_name}/authorize":
    put:
      summary: Workhorse authorize model package file
      description: Introduced in GitLab 16.8
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: model_version_id
        description: Model version id
        type: integer
        format: int32
        required: true
      - in: path
        name: file_name
        description: File name
        type: string
        required: true
      - name: putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileNameAuthorize
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileNameAuthorize"
      responses:
        '200':
          description: Workhorse authorize model package file
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - ml_model_registry
      operationId: putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileNameAuthorize
  "/api/v4/projects/{id}/packages/ml_models/{model_version_id}/files/(*path/){file_name}":
    put:
      summary: Workhorse upload model package file
      description: Introduced in GitLab 16.8
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: model_version_id
        description: Model version id
        type: integer
        format: int32
        required: true
      - in: path
        name: file_name
        description: File name
        type: string
        required: true
      - name: putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName"
      responses:
        '201':
          description: Workhorse upload model package file
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - ml_model_registry
      operationId: putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName
    get:
      summary: Download an ml_model package file
      description: This feature was introduced in GitLab 16.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: model_version_id
        description: Model version id
        type: integer
        format: int32
        required: true
      - in: path
        name: file_name
        description: File name
        type: string
        required: true
      - in: query
        name: path
        description: File directory path
        type: string
        required: false
      - in: query
        name: status
        description: Package status
        type: string
        enum:
        - default
        - hidden
        required: false
      responses:
        '200':
          description: Download an ml_model package file
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - ml_model_registry
      operationId: getApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName
  "/api/v4/projects/{id}/packages/npm/*package_name/-/*file_name":
    get:
      summary: Download the NPM tarball
      description: This feature was introduced in GitLab 11.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: package_name
        description: Package name
        type: string
        required: true
      - in: query
        name: file_name
        description: Package file name
        type: string
        required: true
      responses:
        '200':
          description: Download the NPM tarball
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: getApiV4ProjectsIdPackagesNpm*packageName-*fileName
  "/api/v4/projects/{id}/packages/npm/{package_name}":
    put:
      summary: Create or deprecate NPM package
      description: Create was introduced in GitLab 11.8 & deprecate suppport was added
        in 16.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
      - name: putApiV4ProjectsIdPackagesNpmPackageName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesNpmPackageName"
      responses:
        '200':
          description: Create or deprecate NPM package
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: putApiV4ProjectsIdPackagesNpmPackageName
  "/api/v4/projects/{id}/packages/npm/*package_name":
    get:
      summary: NPM registry metadata endpoint
      description: This feature was introduced in GitLab 11.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: package_name
        description: Package name
        type: string
        required: true
        example: mypackage
      responses:
        '200':
          description: Ok
          schema:
            "$ref": "#/definitions/API_Entities_NpmPackage"
        '302':
          description: Found (redirect)
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: getApiV4ProjectsIdPackagesNpm*packageName
  "/api/v4/projects/{id}/packages/npm/-/npm/v1/security/advisories/bulk":
    post:
      summary: NPM registry bulk advisory endpoint
      description: This feature was introduced in GitLab 15.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Ok
        '307':
          description: Temporary Redirect
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: postApiV4ProjectsIdPackagesNpmNpmV1SecurityAdvisoriesBulk
  "/api/v4/projects/{id}/packages/npm/-/npm/v1/security/audits/quick":
    post:
      summary: NPM registry quick audit endpoint
      description: This feature was introduced in GitLab 15.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Ok
        '307':
          description: Temporary Redirect
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: postApiV4ProjectsIdPackagesNpmNpmV1SecurityAuditsQuick
  "/api/v4/projects/{id}/packages/npm/-/package/*package_name/dist-tags":
    get:
      summary: Get all tags for a given an NPM package
      description: This feature was introduced in GitLab 12.7
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: package_name
        description: Package name
        type: string
        required: true
      responses:
        '200':
          description: Get all tags for a given an NPM package
          schema:
            "$ref": "#/definitions/API_Entities_NpmPackageTag"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: getApiV4ProjectsIdPackagesNpmPackage*packageNameDistTags
  "/api/v4/projects/{id}/packages/npm/-/package/*package_name/dist-tags/{tag}":
    put:
      summary: Create or Update the given tag for the given NPM package and version
      description: This feature was introduced in GitLab 12.7
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag
        description: Package dist-tag
        type: string
        required: true
      - name: putApiV4ProjectsIdPackagesNpmPackage*packageNameDistTagsTag
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesNpmPackage*packageNameDistTagsTag"
      responses:
        '204':
          description: Create or Update the given tag for the given NPM package and
            version
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: putApiV4ProjectsIdPackagesNpmPackage*packageNameDistTagsTag
    delete:
      summary: Deletes the given tag
      description: This feature was introduced in GitLab 12.7
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: package_name
        description: Package name
        type: string
        required: true
      - in: path
        name: tag
        description: Package dist-tag
        type: string
        required: true
      responses:
        '204':
          description: Deletes the given tag
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: deleteApiV4ProjectsIdPackagesNpmPackage*packageNameDistTagsTag
  "/api/v4/projects/{id}/packages/nuget/index":
    get:
      summary: The NuGet V3 Feed Service Index
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: The NuGet V3 Feed Service Index
          schema:
            "$ref": "#/definitions/API_Entities_Nuget_ServiceIndex"
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4ProjectsIdPackagesNugetIndex
  "/api/v4/projects/{id}/packages/nuget":
    put:
      summary: The NuGet V3 Feed Package Publish endpoint
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdPackagesNuget
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesNuget"
      responses:
        '201':
          description: The NuGet V3 Feed Package Publish endpoint
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: putApiV4ProjectsIdPackagesNuget
  "/api/v4/projects/{id}/packages/nuget/authorize":
    put:
      summary: The NuGet Package Authorize endpoint
      description: This feature was introduced in GitLab 14.1
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: The NuGet Package Authorize endpoint
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: putApiV4ProjectsIdPackagesNugetAuthorize
  "/api/v4/projects/{id}/packages/nuget/symbolpackage":
    put:
      summary: The NuGet Symbol Package Publish endpoint
      description: This feature was introduced in GitLab 14.1
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdPackagesNugetSymbolpackage
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesNugetSymbolpackage"
      responses:
        '201':
          description: The NuGet Symbol Package Publish endpoint
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: putApiV4ProjectsIdPackagesNugetSymbolpackage
  "/api/v4/projects/{id}/packages/nuget/symbolpackage/authorize":
    put:
      summary: The NuGet Symbol Package Authorize endpoint
      description: This feature was introduced in GitLab 14.1
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: The NuGet Symbol Package Authorize endpoint
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: putApiV4ProjectsIdPackagesNugetSymbolpackageAuthorize
  "/api/v4/projects/{id}/packages/nuget/*package_name/*package_version":
    delete:
      summary: The NuGet Package Delete endpoint
      description: This feature was introduced in GitLab 16.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: package_name
        description: The NuGet package name
        type: string
        required: true
        example: mynugetpkg
      - in: query
        name: package_version
        description: The NuGet package version
        type: string
        required: true
        example: 1.0.1
      responses:
        '204':
          description: The NuGet Package Delete endpoint
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: deleteApiV4ProjectsIdPackagesNuget*packageName*packageVersion
  "/api/v4/projects/{id}/packages/nuget/symbolfiles/*file_name/*signature/*same_file_name":
    get:
      summary: The NuGet Symbol File Download Endpoint
      description: This feature was introduced in GitLab 16.7
      produces:
      - application/json
      parameters:
      - in: header
        name: Symbolchecksum
        type: string
        required: true
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: file_name
        description: The symbol file name
        type: string
        required: true
        example: mynugetpkg.pdb
      - in: query
        name: signature
        description: The symbol file signature
        type: string
        required: true
        example: k813f89485474661234z7109cve5709eFFFFFFFF
      - in: query
        name: same_file_name
        type: string
        required: true
      responses:
        '200':
          description: The NuGet Symbol File Download Endpoint
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4ProjectsIdPackagesNugetSymbolfiles*fileName*signature*sameFileName
  "/api/v4/projects/{id}/packages/nuget/v2":
    get:
      summary: The NuGet V2 Feed Service Index
      description: This feature was introduced in GitLab 16.2
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: The NuGet V2 Feed Service Index
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4ProjectsIdPackagesNugetV2
    put:
      summary: The NuGet V2 Feed Package Publish endpoint
      description: This feature was introduced in GitLab 16.2
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: putApiV4ProjectsIdPackagesNugetV2
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesNugetV2"
      responses:
        '201':
          description: The NuGet V2 Feed Package Publish endpoint
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: putApiV4ProjectsIdPackagesNugetV2
  "/api/v4/projects/{id}/packages/nuget/v2/$metadata":
    get:
      summary: The NuGet V2 Feed Package $metadata endpoint
      description: This feature was introduced in GitLab 16.3
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: The NuGet V2 Feed Package $metadata endpoint
      tags:
      - nuget_packages
      operationId: getApiV4ProjectsIdPackagesNugetV2$metadata
  "/api/v4/projects/{id}/packages/nuget/v2/authorize":
    put:
      summary: The NuGet V2 Feed Package Authorize endpoint
      description: This feature was introduced in GitLab 16.2
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: The NuGet V2 Feed Package Authorize endpoint
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: putApiV4ProjectsIdPackagesNugetV2Authorize
  "/api/v4/projects/{id}/packages/nuget/metadata/*package_name/index":
    get:
      summary: The NuGet Metadata Service - Package name level
      description: This feature was introduced in GitLab 12.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: package_name
        description: The NuGet package name
        type: string
        required: true
        example: MyNuGetPkg
      responses:
        '200':
          description: The NuGet Metadata Service - Package name level
          schema:
            "$ref": "#/definitions/API_Entities_Nuget_PackagesMetadata"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4ProjectsIdPackagesNugetMetadata*packageNameIndex
  "/api/v4/projects/{id}/packages/nuget/metadata/*package_name/*package_version":
    get:
      summary: The NuGet Metadata Service - Package name and version level
      description: This feature was introduced in GitLab 12.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: package_name
        description: The NuGet package name
        type: string
        required: true
        example: MyNuGetPkg
      - in: query
        name: package_version
        description: The NuGet package version
        type: string
        required: true
        example: 1.0.0
      responses:
        '200':
          description: The NuGet Metadata Service - Package name and version level
          schema:
            "$ref": "#/definitions/API_Entities_Nuget_PackageMetadata"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4ProjectsIdPackagesNugetMetadata*packageName*packageVersion
  "/api/v4/projects/{id}/packages/nuget/query":
    get:
      summary: The NuGet Search Service
      description: This feature was introduced in GitLab 12.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: q
        description: The search term
        type: string
        required: false
        example: MyNuGet
      - in: query
        name: skip
        description: The number of results to skip
        type: integer
        format: int32
        default: 0
        required: false
        example: 1
      - in: query
        name: take
        description: The number of results to return
        type: integer
        format: int32
        default: 20
        required: false
        example: 1
      - in: query
        name: prerelease
        description: Include prerelease versions
        type: boolean
        default: true
        required: false
      responses:
        '200':
          description: The NuGet Search Service
          schema:
            "$ref": "#/definitions/API_Entities_Nuget_SearchResults"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4ProjectsIdPackagesNugetQuery
  "/api/v4/projects/{id}/packages/nuget/download/*package_name/index":
    get:
      summary: The NuGet Content Service - index request
      description: This feature was introduced in GitLab 12.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: package_name
        description: The NuGet package name
        type: string
        required: true
        example: mynugetpkg.1.3.0.17.nupkg
      responses:
        '200':
          description: The NuGet Content Service - index request
          schema:
            "$ref": "#/definitions/API_Entities_Nuget_PackagesVersions"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4ProjectsIdPackagesNugetDownload*packageNameIndex
  "/api/v4/projects/{id}/packages/nuget/download/*package_name/*package_version/*package_filename":
    get:
      summary: The NuGet Content Service - content request
      description: This feature was introduced in GitLab 12.8
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: package_name
        description: The NuGet package name
        type: string
        required: true
        example: mynugetpkg.1.3.0.17.nupkg
      - in: query
        name: package_version
        description: The NuGet package version
        type: string
        required: true
        example: 1.3.0.17
      - in: query
        name: package_filename
        description: The NuGet package filename
        type: string
        required: true
        example: mynugetpkg.1.3.0.17.nupkg
      responses:
        '200':
          description: The NuGet Content Service - content request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - nuget_packages
      operationId: getApiV4ProjectsIdPackagesNugetDownload*packageName*packageVersion*packageFilename
  "/api/v4/projects/{project_id}/packages/nuget/v2/FindPackagesById\\(\\)":
    get:
      summary: The NuGet V2 Feed Find Packages by ID endpoint
      description: This feature was introduced in GitLab 16.4
      produces:
      - application/json
      parameters:
      - in: path
        name: project_id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: id
        description: The NuGet package name
        type: string
        required: true
        example: mynugetpkg
      responses:
        '200':
          description: The NuGet V2 Feed Find Packages by ID endpoint
        '404':
          description: Not Found
        '400':
          description: Bad Request
      tags:
      - nuget_packages
      operationId: getApiV4ProjectsProjectIdPackagesNugetV2Findpackagesbyid\(\)
  "/api/v4/projects/{project_id}/packages/nuget/v2/Packages\\(\\)":
    get:
      summary: The NuGet V2 Feed Enumerate Packages endpoint
      description: This feature was introduced in GitLab 16.4
      produces:
      - application/json
      parameters:
      - in: path
        name: project_id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: "$filter"
        description: The NuGet package name
        type: string
        required: true
        example: mynugetpkg
      responses:
        '200':
          description: The NuGet V2 Feed Enumerate Packages endpoint
        '404':
          description: Not Found
        '400':
          description: Bad Request
      tags:
      - nuget_packages
      operationId: getApiV4ProjectsProjectIdPackagesNugetV2Packages\(\)
  "/api/v4/projects/{project_id}/packages/nuget/v2/Packages\\(Id='*package_name',Version='*package_version'\\)":
    get:
      summary: The NuGet V2 Feed Single Package Metadata endpoint
      description: This feature was introduced in GitLab 16.4
      produces:
      - application/json
      parameters:
      - in: path
        name: project_id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: package_name
        description: The NuGet package name
        type: string
        required: true
        example: mynugetpkg
      - in: query
        name: package_version
        description: The NuGet package version
        type: string
        required: true
        example: 1.3.0.17
      responses:
        '200':
          description: The NuGet V2 Feed Single Package Metadata endpoint
        '404':
          description: Not Found
        '400':
          description: Bad Request
      tags:
      - nuget_packages
      operationId: getApiV4ProjectsProjectIdPackagesNugetV2Packages\(id='*packageName',version='*packageVersion'\)
  "/api/v4/projects/{id}/debian_distributions":
    post:
      summary: Create a Debian Distribution
      description: This feature was introduced in 14.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdDebianDistributions
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdDebianDistributions"
      responses:
        '201':
          description: Create a Debian Distribution
          schema:
            "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_distribution
      operationId: postApiV4ProjectsIdDebianDistributions
    get:
      summary: Get a list of Debian Distributions
      description: This feature was introduced in 14.0
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        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
      - in: query
        name: codename
        description: The Debian Codename
        type: string
        required: false
        example: sid
      - in: query
        name: suite
        description: The Debian Suite
        type: string
        required: false
        example: unstable
      - in: query
        name: origin
        description: The Debian Origin
        type: string
        required: false
        example: Grep
      - in: query
        name: label
        description: The Debian Label
        type: string
        required: false
        example: grep.be
      - in: query
        name: version
        description: The Debian Version
        type: string
        required: false
        example: '12'
      - in: query
        name: description
        description: The Debian Description
        type: string
        required: false
        example: My description
      - in: query
        name: valid_time_duration_seconds
        description: The duration before the Release file should be considered expired
          by the client
        type: integer
        format: int32
        required: false
        example: 604800
      - in: query
        name: components
        description: The list of Components
        type: array
        items:
          type: string
        required: false
        example: main
      - in: query
        name: architectures
        description: The list of Architectures
        type: array
        items:
          type: string
        required: false
        example: amd64
      responses:
        '200':
          description: Get a list of Debian Distributions
          schema:
            "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_distribution
      operationId: getApiV4ProjectsIdDebianDistributions
  "/api/v4/projects/{id}/debian_distributions/{codename}":
    get:
      summary: Get a Debian Distribution
      description: This feature was introduced in 14.0
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: codename
        description: The Debian Codename
        type: string
        required: true
        example: sid
      responses:
        '200':
          description: Get a Debian Distribution
          schema:
            "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_distribution
      operationId: getApiV4ProjectsIdDebianDistributionsCodename
    put:
      summary: Update a Debian Distribution
      description: This feature was introduced in 14.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: codename
        description: The Debian Codename
        type: string
        required: true
        example: sid
      - name: putApiV4ProjectsIdDebianDistributionsCodename
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdDebianDistributionsCodename"
      responses:
        '200':
          description: Update a Debian Distribution
          schema:
            "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_distribution
      operationId: putApiV4ProjectsIdDebianDistributionsCodename
    delete:
      summary: Delete a Debian Distribution
      description: This feature was introduced in 14.0
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: codename
        description: The Debian Codename
        type: string
        required: true
        example: sid
      - in: query
        name: suite
        description: The Debian Suite
        type: string
        required: false
        example: unstable
      - in: query
        name: origin
        description: The Debian Origin
        type: string
        required: false
        example: Grep
      - in: query
        name: label
        description: The Debian Label
        type: string
        required: false
        example: grep.be
      - in: query
        name: version
        description: The Debian Version
        type: string
        required: false
        example: '12'
      - in: query
        name: description
        description: The Debian Description
        type: string
        required: false
        example: My description
      - in: query
        name: valid_time_duration_seconds
        description: The duration before the Release file should be considered expired
          by the client
        type: integer
        format: int32
        required: false
        example: 604800
      - in: query
        name: components
        description: The list of Components
        type: array
        items:
          type: string
        required: false
        example: main
      - in: query
        name: architectures
        description: The list of Architectures
        type: array
        items:
          type: string
        required: false
        example: amd64
      responses:
        '202':
          description: Delete a Debian Distribution
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_distribution
      operationId: deleteApiV4ProjectsIdDebianDistributionsCodename
  "/api/v4/projects/{id}/debian_distributions/{codename}/key.asc":
    get:
      summary: Get a Debian Distribution Key
      description: This feature was introduced in 14.4
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: codename
        description: The Debian Codename
        type: string
        required: true
        example: sid
      responses:
        '200':
          description: Get a Debian Distribution Key
          schema:
            "$ref": "#/definitions/API_Entities_Packages_Debian_Distribution"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - debian_distribution
      operationId: getApiV4ProjectsIdDebianDistributionsCodenameKeyAsc
  "/api/v4/projects/{id}/hooks/{hook_id}/test/{trigger}":
    post:
      summary: Triggers a hook test
      description: Triggers a hook test
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        type: integer
        format: int32
        required: true
      - in: path
        name: trigger
        description: The type of trigger hook
        type: string
        enum:
        - push_events
        - tag_push_events
        - issues_events
        - confidential_issues_events
        - note_events
        - confidential_note_events
        - merge_requests_events
        - job_events
        - pipeline_events
        - wiki_page_events
        - deployment_events
        - feature_flag_events
        - releases_events
        - emoji_events
        - resource_access_token_events
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Triggers a hook test
        '400':
          description: Bad request
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
        '429':
          description: Too many requests
      tags:
      - projects
      operationId: postApiV4ProjectsIdHooksHookIdTestTrigger
  "/api/v4/projects/{id}/audit_events":
    get:
      description: Get a list of audit events in this project.
      produces:
      - application/json
      parameters:
      - in: query
        name: created_after
        description: Return audit events created after the specified time
        type: string
        format: date-time
        required: false
        example: '2016-01-19T09:05:50.355Z'
      - in: query
        name: created_before
        description: Return audit events created before the specified time
        type: string
        format: date-time
        required: false
        example: '2016-01-19T09:05:50.355Z'
      - 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
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a list of audit events in this project.
          schema:
            type: array
            items:
              "$ref": "#/definitions/EE_API_Entities_AuditEvent"
      tags:
      - projects
      operationId: getApiV4ProjectsIdAuditEvents
  "/api/v4/projects/{id}/audit_events/{audit_event_id}":
    get:
      description: Get a specific audit event in this project.
      produces:
      - application/json
      parameters:
      - in: path
        name: audit_event_id
        description: The ID of the audit event
        type: integer
        format: int32
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a specific audit event in this project.
          schema:
            "$ref": "#/definitions/EE_API_Entities_AuditEvent"
      tags:
      - projects
      operationId: getApiV4ProjectsIdAuditEventsAuditEventId
  "/api/v4/projects/{id}/packages/pypi/files/{sha256}/*file_identifier":
    get:
      summary: The PyPi package download endpoint
      description: This feature was introduced in GitLab 12.10
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: file_identifier
        description: The PyPi package file identifier
        type: string
        required: true
        example: my.pypi.package-0.0.1.tar.gz
      - in: path
        name: sha256
        description: The PyPi package sha256 check sum
        type: string
        required: true
        example: 5y57017232013c8ac80647f4ca153k3726f6cba62d055cd747844ed95b3c65ff
      responses:
        '200':
          description: The PyPi package download endpoint
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - pypi_packages
      operationId: getApiV4ProjectsIdPackagesPypiFilesSha256*fileIdentifier
  "/api/v4/projects/{id}/packages/pypi/simple":
    get:
      summary: The PyPi Simple Project Index Endpoint
      description: This feature was introduced in GitLab 15.1
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: The PyPi Simple Project Index Endpoint
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - pypi_packages
      operationId: getApiV4ProjectsIdPackagesPypiSimple
  "/api/v4/projects/{id}/packages/pypi/simple/*package_name":
    get:
      summary: The PyPi Simple Project Package Endpoint
      description: This feature was introduced in GitLab 12.10
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: package_name
        description: The PyPi package name
        type: string
        required: true
        example: my.pypi.package
      responses:
        '200':
          description: The PyPi Simple Project Package Endpoint
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - pypi_packages
      operationId: getApiV4ProjectsIdPackagesPypiSimple*packageName
  "/api/v4/projects/{id}/packages/pypi":
    post:
      summary: The PyPi Package upload endpoint
      description: This feature was introduced in GitLab 12.10
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - name: postApiV4ProjectsIdPackagesPypi
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdPackagesPypi"
      responses:
        '201':
          description: The PyPi Package upload endpoint
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
        '422':
          description: Unprocessable Entity
      tags:
      - pypi_packages
      operationId: postApiV4ProjectsIdPackagesPypi
  "/api/v4/projects/{id}/packages/pypi/authorize":
    post:
      summary: Authorize the PyPi package upload from workhorse
      description: This feature was introduced in GitLab 12.10
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '200':
          description: Authorize the PyPi package upload from workhorse
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - pypi_packages
      operationId: postApiV4ProjectsIdPackagesPypiAuthorize
  "/api/v4/projects/{id}/releases/{tag_name}/assets/links":
    get:
      summary: List links of a release
      description: Get assets as links from a release. This feature was introduced
        in GitLab 11.7.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag_name
        description: The tag associated with the release
        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: List links of a release
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Releases_Link"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - release_links
      operationId: getApiV4ProjectsIdReleasesTagNameAssetsLinks
    post:
      summary: Create a release link
      description: Create an asset as a link from a release. This feature was introduced
        in GitLab 11.7.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag_name
        description: The tag associated with the release
        type: string
        required: true
      - name: postApiV4ProjectsIdReleasesTagNameAssetsLinks
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdReleasesTagNameAssetsLinks"
      responses:
        '201':
          description: Create a release link
          schema:
            "$ref": "#/definitions/API_Entities_Releases_Link"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      tags:
      - release_links
      operationId: postApiV4ProjectsIdReleasesTagNameAssetsLinks
  "/api/v4/projects/{id}/releases/{tag_name}/assets/links/{link_id}":
    get:
      summary: Get a release link
      description: Get an asset as a link from a release. This feature was introduced
        in GitLab 11.7.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag_name
        description: The tag associated with the release
        type: string
        required: true
      - in: path
        name: link_id
        description: The ID of the link
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a release link
          schema:
            "$ref": "#/definitions/API_Entities_Releases_Link"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - release_links
      operationId: getApiV4ProjectsIdReleasesTagNameAssetsLinksLinkId
    put:
      summary: Update a release link
      description: Update an asset as a link from a release. This feature was introduced
        in GitLab 11.7.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag_name
        description: The tag associated with the release
        type: string
        required: true
      - in: path
        name: link_id
        description: The ID of the link
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdReleasesTagNameAssetsLinksLinkId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdReleasesTagNameAssetsLinksLinkId"
      responses:
        '200':
          description: Update a release link
          schema:
            "$ref": "#/definitions/API_Entities_Releases_Link"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      tags:
      - release_links
      operationId: putApiV4ProjectsIdReleasesTagNameAssetsLinksLinkId
    delete:
      summary: Delete a release link
      description: Deletes an asset as a link from a release. This feature was introduced
        in GitLab 11.7.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: tag_name
        description: The tag associated with the release
        type: string
        required: true
      - in: path
        name: link_id
        description: The ID of the link
        type: integer
        format: int32
        required: true
      responses:
        '400':
          description: Bad request
        '204':
          description: Delete a release link
          schema:
            "$ref": "#/definitions/API_Entities_Releases_Link"
        '401':
          description: Unauthorized
      tags:
      - release_links
      operationId: deleteApiV4ProjectsIdReleasesTagNameAssetsLinksLinkId
  "/api/v4/projects/{id}/packages/rpm/repodata/*file_name":
    get:
      summary: Download repository metadata files
      description: This feature was introduced in GitLab 15.7
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: file_name
        description: Repository metadata file name
        type: string
        required: true
      responses:
        '200':
          description: Download repository metadata files
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - rpm_packages
      operationId: getApiV4ProjectsIdPackagesRpmRepodata*fileName
  "/api/v4/projects/{id}/packages/rpm/*package_file_id/*file_name":
    get:
      summary: Download RPM package files
      description: This feature was introduced in GitLab 15.7
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: package_file_id
        description: RPM package file id
        type: integer
        format: int32
        required: true
      - in: query
        name: file_name
        description: RPM package file name
        type: string
        required: true
      responses:
        '200':
          description: Download RPM package files
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - rpm_packages
      operationId: getApiV4ProjectsIdPackagesRpm*packageFileId*fileName
  "/api/v4/projects/{id}/packages/rpm":
    post:
      summary: Upload a RPM package
      description: This feature was introduced in GitLab 15.7
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '201':
          description: Upload a RPM package
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - rpm_packages
      operationId: postApiV4ProjectsIdPackagesRpm
  "/api/v4/projects/{id}/packages/rpm/authorize":
    post:
      summary: Authorize package upload from workhorse
      description: This feature was introduced in GitLab 15.7
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      responses:
        '201':
          description: Authorize package upload from workhorse
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - rpm_packages
      operationId: postApiV4ProjectsIdPackagesRpmAuthorize
  "/api/v4/projects/{id}/packages/rubygems/{file_name}":
    get:
      summary: Download the spec index file
      description: This feature was introduced in GitLab 13.9
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: integer
        format: int32
        required: true
      - in: path
        name: file_name
        description: Spec file name
        type: file
        required: true
      responses:
        '200':
          description: Download the spec index file
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - rubygem_packages
      operationId: getApiV4ProjectsIdPackagesRubygemsFileName
  "/api/v4/projects/{id}/packages/rubygems/quick/Marshal.4.8/{file_name}":
    get:
      summary: Download the gemspec file
      description: This feature was introduced in GitLab 13.9
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: integer
        format: int32
        required: true
      - in: path
        name: file_name
        description: Gemspec file name
        type: file
        required: true
      responses:
        '200':
          description: Download the gemspec file
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - rubygem_packages
      operationId: getApiV4ProjectsIdPackagesRubygemsQuickMarshal48FileName
  "/api/v4/projects/{id}/packages/rubygems/gems/{file_name}":
    get:
      summary: Download the .gem package
      description: This feature was introduced in GitLab 13.9
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: integer
        format: int32
        required: true
      - in: path
        name: file_name
        description: Package file name
        type: file
        required: true
      responses:
        '200':
          description: Download the .gem package
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - rubygem_packages
      operationId: getApiV4ProjectsIdPackagesRubygemsGemsFileName
  "/api/v4/projects/{id}/packages/rubygems/api/v1/gems/authorize":
    post:
      summary: Authorize a gem upload from workhorse
      description: This feature was introduced in GitLab 13.9
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Authorize a gem upload from workhorse
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      tags:
      - rubygem_packages
      operationId: postApiV4ProjectsIdPackagesRubygemsApiV1GemsAuthorize
  "/api/v4/projects/{id}/packages/rubygems/api/v1/gems":
    post:
      summary: Upload a gem
      description: This feature was introduced in GitLab 13.9
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdPackagesRubygemsApiV1Gems
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdPackagesRubygemsApiV1Gems"
      responses:
        '201':
          description: Upload a gem
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - rubygem_packages
      operationId: postApiV4ProjectsIdPackagesRubygemsApiV1Gems
  "/api/v4/projects/{id}/packages/rubygems/api/v1/dependencies":
    get:
      summary: Fetch a list of dependencies
      description: This feature was introduced in GitLab 13.9
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: integer
        format: int32
        required: true
      - in: query
        name: gems
        description: Comma delimited gem names
        type: array
        items:
          type: string
        required: false
      responses:
        '200':
          description: Fetch a list of dependencies
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - rubygem_packages
      operationId: getApiV4ProjectsIdPackagesRubygemsApiV1Dependencies
  "/api/v4/projects/{id}/packages/terraform/modules/{module_name}/{module_system}":
    get:
      summary: Download the latest version of a module
      description: This feature was introduced in GitLab 16.7
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or full path of a project
        type: string
        required: true
      - in: path
        name: module_name
        description: Module name
        type: string
        required: true
        example: infra-registry
      - in: path
        name: module_system
        description: Module system
        type: string
        required: true
        example: aws
      - in: query
        name: terraform-get
        description: Terraform get redirection flag
        type: string
        enum:
        - '1'
        required: false
      responses:
        '204':
          description: Download the latest version of a module
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - terraform_registry
      operationId: getApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem
  "/api/v4/projects/{id}/packages/terraform/modules/{module_name}/{module_system}/*module_version":
    get:
      summary: Download a specific version of a module
      description: This feature was introduced in GitLab 16.7
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or full path of a project
        type: string
        required: true
      - in: path
        name: module_name
        description: Module name
        type: string
        required: true
        example: infra-registry
      - in: path
        name: module_system
        description: Module system
        type: string
        required: true
        example: aws
      - in: query
        name: module_version
        description: Module version
        type: string
        required: true
      - in: query
        name: terraform-get
        description: Terraform get redirection flag
        type: string
        enum:
        - '1'
        required: false
      responses:
        '204':
          description: Download a specific version of a module
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - terraform_registry
      operationId: getApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersion
  "/api/v4/projects/{id}/packages/terraform/modules/{module_name}/{module_system}/*module_version/file/authorize":
    put:
      summary: Workhorse authorize Terraform Module package file
      description: This feature was introduced in GitLab 13.11
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or full path of a project
        type: string
        required: true
      - in: path
        name: module_name
        description: Module name
        type: string
        required: true
        example: infra-registry
      - in: path
        name: module_system
        description: Module system
        type: string
        required: true
        example: aws
      - name: putApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersionFileAuthorize
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersionFileAuthorize"
      responses:
        '200':
          description: Workhorse authorize Terraform Module package file
        '403':
          description: Forbidden
      tags:
      - terraform_registry
      operationId: putApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersionFileAuthorize
  "/api/v4/projects/{id}/packages/terraform/modules/{module_name}/{module_system}/*module_version/file":
    put:
      summary: Upload Terraform Module package file
      description: This feature was introduced in GitLab 13.11
      produces:
      - application/json
      consumes:
      - multipart/form-data
      parameters:
      - in: path
        name: id
        description: The ID or full path of a project
        type: string
        required: true
      - in: path
        name: module_name
        description: Module name
        type: string
        required: true
        example: infra-registry
      - in: path
        name: module_system
        description: Module system
        type: string
        required: true
        example: aws
      - in: formData
        name: module_version
        description: Module version
        type: string
        required: true
      - in: formData
        name: file
        description: The package file to be published (generated by Multipart middleware)
        type: file
        required: true
      responses:
        '201':
          description: Upload Terraform Module package file
        '400':
          description: Invalid file
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - terraform_registry
      operationId: putApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersionFile
  "/api/v4/projects/{id}/terraform/state/{name}":
    get:
      summary: Get a Terraform state by its name
      description: Get a Terraform state by its name
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: name
        description: The name of a Terraform state
        type: string
        required: true
      - in: query
        name: ID
        description: Terraform state lock ID
        type: string
        required: false
      responses:
        '200':
          description: Get a Terraform state by its name
        '204':
          description: Empty state
        '403':
          description: Forbidden
        '404':
          description: Not found
        '422':
          description: Validation failure
      tags:
      - terraform_state
      operationId: getApiV4ProjectsIdTerraformStateName
    post:
      summary: Add a new Terraform state or update an existing one
      description: Add a new Terraform state or update an existing one
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: name
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Add a new Terraform state or update an existing one
        '204':
          description: No data provided
        '403':
          description: Forbidden
        '422':
          description: Validation failure
        '413':
          description: Request Entity Too Large
      tags:
      - terraform_state
      operationId: postApiV4ProjectsIdTerraformStateName
    delete:
      summary: Delete a Terraform state of a certain name
      description: Delete a Terraform state of a certain name
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: name
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a Terraform state of a certain name
        '403':
          description: Forbidden
        '404':
          description: Not found
        '422':
          description: Validation failure
      tags:
      - terraform_state
      operationId: deleteApiV4ProjectsIdTerraformStateName
  "/api/v4/projects/{id}/terraform/state/{name}/lock":
    post:
      summary: Lock a Terraform state of a certain name
      description: Lock a Terraform state of a certain name
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: name
        type: integer
        format: int32
        required: true
      - name: postApiV4ProjectsIdTerraformStateNameLock
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectsIdTerraformStateNameLock"
      responses:
        '200':
          description: Lock a Terraform state of a certain name
        '403':
          description: Forbidden
        '404':
          description: Not found
        '409':
          description: Conflict
        '422':
          description: Validation failure
      tags:
      - terraform_state
      operationId: postApiV4ProjectsIdTerraformStateNameLock
    delete:
      summary: Unlock a Terraform state of a certain name
      description: Unlock a Terraform state of a certain name
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: query
        name: ID
        description: Terraform state lock ID
        type: string
        required: false
      - in: path
        name: name
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Unlock a Terraform state of a certain name
        '403':
          description: Forbidden
        '404':
          description: Not found
        '409':
          description: Conflict
        '422':
          description: Validation failure
      tags:
      - terraform_state
      operationId: deleteApiV4ProjectsIdTerraformStateNameLock
  "/api/v4/projects/{id}/terraform/state/{name}/versions/{serial}":
    get:
      summary: Get a Terraform state version
      description: Get a Terraform state version
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: name
        description: The name of a Terraform state
        type: string
        required: true
      - in: path
        name: serial
        description: The version number of the state
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a Terraform state version
          schema:
            type: file
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - terraform_state
      operationId: getApiV4ProjectsIdTerraformStateNameVersionsSerial
    delete:
      summary: Delete a Terraform state version
      description: Delete a Terraform state version
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of the project
        type: string
        required: true
      - in: path
        name: name
        type: integer
        format: int32
        required: true
      - in: path
        name: serial
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a Terraform state version
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - terraform_state
      operationId: deleteApiV4ProjectsIdTerraformStateNameVersionsSerial
  "/api/v4/projects/{id}/hooks/{hook_id}/url_variables/{key}":
    put:
      description: Set a url variable
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        type: integer
        format: int32
        required: true
      - in: path
        name: key
        description: The key of the variable
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: putApiV4ProjectsIdHooksHookIdUrlVariablesKey
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ProjectsIdHooksHookIdUrlVariablesKey"
      responses:
        '200':
          description: Set a url variable
      tags:
      - projects
      operationId: putApiV4ProjectsIdHooksHookIdUrlVariablesKey
    delete:
      description: Un-Set a url variable
      produces:
      - application/json
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        type: integer
        format: int32
        required: true
      - in: path
        name: key
        description: The key of the variable
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Un-Set a url variable
      tags:
      - projects
      operationId: deleteApiV4ProjectsIdHooksHookIdUrlVariablesKey
  "/api/v4/admin/batched_background_migrations/{id}":
    get:
      description: Retrieve a batched background migration
      produces:
      - application/json
      parameters:
      - in: query
        name: database
        description: The name of the database
        type: string
        default: main
        enum:
        - main
        - ci
        - main_clusterwide
        - embedding
        - geo
        required: false
      - in: path
        name: id
        description: The batched background migration id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Retrieve a batched background migration
          schema:
            "$ref": "#/definitions/API_Entities_BatchedBackgroundMigration"
        '401':
          description: 401 Unauthorized
        '403':
          description: 403 Forbidden
        '404':
          description: 404 Not found
      tags:
      - batched_background_migrations
      operationId: getApiV4AdminBatchedBackgroundMigrationsId
  "/api/v4/admin/batched_background_migrations":
    get:
      description: Get the list of batched background migrations
      produces:
      - application/json
      parameters:
      - in: query
        name: database
        description: The name of the database, the default `main`
        type: string
        default: main
        enum:
        - main
        - ci
        - main_clusterwide
        - embedding
        - geo
        required: false
      responses:
        '200':
          description: Get the list of batched background migrations
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_BatchedBackgroundMigration"
        '401':
          description: 401 Unauthorized
        '403':
          description: 403 Forbidden
      tags:
      - batched_background_migrations
      operationId: getApiV4AdminBatchedBackgroundMigrations
  "/api/v4/admin/batched_background_migrations/{id}/resume":
    put:
      description: Resume a batched background migration
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The batched background migration id
        type: integer
        format: int32
        required: true
      - name: putApiV4AdminBatchedBackgroundMigrationsIdResume
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4AdminBatchedBackgroundMigrationsIdResume"
      responses:
        '200':
          description: Resume a batched background migration
          schema:
            "$ref": "#/definitions/API_Entities_BatchedBackgroundMigration"
        '401':
          description: 401 Unauthorized
        '403':
          description: 403 Forbidden
        '404':
          description: 404 Not found
        '422':
          description: You can resume only `paused` batched background migrations.
      tags:
      - batched_background_migrations
      operationId: putApiV4AdminBatchedBackgroundMigrationsIdResume
  "/api/v4/admin/batched_background_migrations/{id}/pause":
    put:
      description: Pause a batched background migration
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The batched background migration id
        type: integer
        format: int32
        required: true
      - name: putApiV4AdminBatchedBackgroundMigrationsIdPause
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4AdminBatchedBackgroundMigrationsIdPause"
      responses:
        '200':
          description: Pause a batched background migration
          schema:
            "$ref": "#/definitions/API_Entities_BatchedBackgroundMigration"
        '401':
          description: 401 Unauthorized
        '403':
          description: 403 Forbidden
        '404':
          description: 404 Not found
        '422':
          description: You can pause only `active` batched background migrations.
      tags:
      - batched_background_migrations
      operationId: putApiV4AdminBatchedBackgroundMigrationsIdPause
  "/api/v4/admin/ci/variables":
    get:
      description: List all instance-level variables
      produces:
      - application/json
      parameters:
      - 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: List all instance-level variables
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
      tags:
      - ci_variables
      operationId: getApiV4AdminCiVariables
    post:
      description: Create a new instance-level variable
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4AdminCiVariables
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4AdminCiVariables"
      responses:
        '201':
          description: Create a new instance-level variable
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
        '400':
          description: 400 Bad Request
      tags:
      - ci_variables
      operationId: postApiV4AdminCiVariables
  "/api/v4/admin/ci/variables/{key}":
    get:
      description: Get the details of a specific instance-level variable
      produces:
      - application/json
      parameters:
      - in: path
        name: key
        description: The key of a variable
        type: string
        required: true
      responses:
        '200':
          description: Get the details of a specific instance-level variable
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
        '404':
          description: Instance Variable Not Found
      tags:
      - ci_variables
      operationId: getApiV4AdminCiVariablesKey
    put:
      description: Update an instance-level variable
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: key
        description: The key of a variable
        type: string
        required: true
      - name: putApiV4AdminCiVariablesKey
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4AdminCiVariablesKey"
      responses:
        '200':
          description: Update an instance-level variable
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
        '404':
          description: Instance Variable Not Found
      tags:
      - ci_variables
      operationId: putApiV4AdminCiVariablesKey
    delete:
      description: Delete an existing instance-level variable
      produces:
      - application/json
      parameters:
      - in: path
        name: key
        description: The key of a variable
        type: string
        required: true
      responses:
        '404':
          description: Instance Variable Not Found
        '204':
          description: Delete an existing instance-level variable
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Variable"
      tags:
      - ci_variables
      operationId: deleteApiV4AdminCiVariablesKey
  "/api/v4/admin/databases/{database_name}/dictionary/tables/{table_name}":
    get:
      description: Retrieve dictionary details
      produces:
      - application/json
      parameters:
      - in: path
        name: database_name
        description: The database name
        type: string
        enum:
        - main
        - ci
        required: true
      - in: path
        name: table_name
        description: The table name
        type: string
        required: true
      responses:
        '200':
          description: Retrieve dictionary details
          schema:
            "$ref": "#/definitions/API_Entities_Dictionary_Table"
        '401':
          description: 401 Unauthorized
        '403':
          description: 403 Forbidden
        '404':
          description: 404 Not found
      tags:
      - admin
      operationId: getApiV4AdminDatabasesDatabaseNameDictionaryTablesTableName
  "/api/v4/admin/clusters":
    get:
      summary: List instance clusters
      description: This feature was introduced in GitLab 13.2. Returns a list of instance
        clusters.
      produces:
      - application/json
      responses:
        '200':
          description: List instance clusters
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Cluster"
        '403':
          description: Forbidden
      tags:
      - clusters
      operationId: getApiV4AdminClusters
  "/api/v4/admin/clusters/{cluster_id}":
    get:
      summary: Get a single instance cluster
      description: This feature was introduced in GitLab 13.2. Returns a single instance
        cluster.
      produces:
      - application/json
      parameters:
      - in: path
        name: cluster_id
        description: The cluster ID
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single instance cluster
          schema:
            "$ref": "#/definitions/API_Entities_Cluster"
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - clusters
      operationId: getApiV4AdminClustersClusterId
    put:
      summary: Edit instance cluster
      description: This feature was introduced in GitLab 13.2. Updates an existing
        instance cluster.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: cluster_id
        description: The cluster ID
        type: integer
        format: int32
        required: true
      - name: putApiV4AdminClustersClusterId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4AdminClustersClusterId"
      responses:
        '200':
          description: Edit instance cluster
          schema:
            "$ref": "#/definitions/API_Entities_Cluster"
        '400':
          description: Validation error
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - clusters
      operationId: putApiV4AdminClustersClusterId
    delete:
      summary: Delete instance cluster
      description: This feature was introduced in GitLab 13.2. Deletes an existing
        instance cluster. Does not remove existing resources within the connected
        Kubernetes cluster.
      produces:
      - application/json
      parameters:
      - in: path
        name: cluster_id
        description: The cluster ID
        type: integer
        format: int32
        required: true
      responses:
        '403':
          description: Forbidden
        '204':
          description: Delete instance cluster
          schema:
            "$ref": "#/definitions/API_Entities_Cluster"
        '404':
          description: Not found
      tags:
      - clusters
      operationId: deleteApiV4AdminClustersClusterId
  "/api/v4/admin/clusters/add":
    post:
      summary: Add existing instance cluster
      description: This feature was introduced in GitLab 13.2. Adds an existing Kubernetes
        instance cluster.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4AdminClustersAdd
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4AdminClustersAdd"
      responses:
        '201':
          description: Add existing instance cluster
          schema:
            "$ref": "#/definitions/API_Entities_Cluster"
        '400':
          description: Validation error
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - clusters
      operationId: postApiV4AdminClustersAdd
  "/api/v4/admin/migrations/{timestamp}/mark":
    post:
      description: Mark the migration as successfully executed
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: timestamp
        description: The migration version timestamp
        type: integer
        format: int32
        required: true
      - name: postApiV4AdminMigrationsTimestampMark
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4AdminMigrationsTimestampMark"
      responses:
        '201':
          description: 201 Created
        '401':
          description: 401 Unauthorized
        '403':
          description: 403 Forbidden
        '404':
          description: 404 Not found
        '422':
          description: You can mark only pending migrations
      tags:
      - migrations
      operationId: postApiV4AdminMigrationsTimestampMark
  "/api/v4/broadcast_messages":
    get:
      summary: Get all broadcast messages
      description: This feature was introduced in GitLab 8.12.
      produces:
      - application/json
      parameters:
      - 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 all broadcast messages
          schema:
            "$ref": "#/definitions/API_Entities_System_BroadcastMessage"
      tags:
      - broadcast_messages
      operationId: getApiV4BroadcastMessages
    post:
      summary: Create a broadcast message
      description: This feature was introduced in GitLab 8.12.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4BroadcastMessages
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4BroadcastMessages"
      responses:
        '201':
          description: Create a broadcast message
          schema:
            "$ref": "#/definitions/API_Entities_System_BroadcastMessage"
      tags:
      - broadcast_messages
      operationId: postApiV4BroadcastMessages
  "/api/v4/broadcast_messages/{id}":
    get:
      summary: Get a specific broadcast message
      description: This feature was introduced in GitLab 8.12.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: Broadcast message ID
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a specific broadcast message
          schema:
            "$ref": "#/definitions/API_Entities_System_BroadcastMessage"
      tags:
      - broadcast_messages
      operationId: getApiV4BroadcastMessagesId
    put:
      summary: Update a broadcast message
      description: This feature was introduced in GitLab 8.12.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: Broadcast message ID
        type: integer
        format: int32
        required: true
      - name: putApiV4BroadcastMessagesId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4BroadcastMessagesId"
      responses:
        '200':
          description: Update a broadcast message
          schema:
            "$ref": "#/definitions/API_Entities_System_BroadcastMessage"
      tags:
      - broadcast_messages
      operationId: putApiV4BroadcastMessagesId
    delete:
      summary: Delete a broadcast message
      description: This feature was introduced in GitLab 8.12.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: Broadcast message ID
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Delete a broadcast message
          schema:
            "$ref": "#/definitions/API_Entities_System_BroadcastMessage"
      tags:
      - broadcast_messages
      operationId: deleteApiV4BroadcastMessagesId
  "/api/v4/applications":
    post:
      summary: Create a new application
      description: This feature was introduced in GitLab 10.5
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4Applications
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4Applications"
      responses:
        '200':
          description: Create a new application
          schema:
            "$ref": "#/definitions/API_Entities_ApplicationWithSecret"
      tags:
      - applications
      operationId: postApiV4Applications
    get:
      summary: Get applications
      description: List all registered applications
      produces:
      - application/json
      responses:
        '200':
          description: Get applications
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Application"
      tags:
      - applications
      operationId: getApiV4Applications
  "/api/v4/applications/{id}":
    delete:
      summary: Delete an application
      description: Delete a specific application
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the application (not the application_id)
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete an application
      tags:
      - applications
      operationId: deleteApiV4ApplicationsId
  "/api/v4/applications/{id}/renew-secret":
    post:
      summary: Renew an application secret
      description: Renew the secret of a specific application
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the application (not the application_id)
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Renew an application secret
          schema:
            "$ref": "#/definitions/API_Entities_ApplicationWithSecret"
      tags:
      - applications
      operationId: postApiV4ApplicationsIdRenewSecret
  "/api/v4/avatar":
    get:
      description: Return avatar url for a user
      produces:
      - application/json
      parameters:
      - in: query
        name: email
        description: Public email address of the user
        type: string
        required: true
      - in: query
        name: size
        description: Single pixel dimension for Gravatar images
        type: integer
        format: int32
        required: false
      responses:
        '200':
          description: Return avatar url for a user
          schema:
            "$ref": "#/definitions/API_Entities_Avatar"
      tags:
      - avatar
      operationId: getApiV4Avatar
  "/api/v4/bulk_imports":
    post:
      summary: Start a new GitLab Migration
      description: This feature was introduced in GitLab 14.2.
      produces:
      - application/json
      consumes:
      - application/x-www-form-urlencoded
      parameters:
      - in: formData
        name: configuration[url]
        description: Source GitLab instance URL
        type: string
        required: true
      - in: formData
        name: configuration[access_token]
        description: Access token to the source GitLab instance
        type: string
        required: true
      - in: formData
        name: entities[source_type]
        description: Source entity type
        type: array
        required: true
        items:
          type: string
          enum:
          - group_entity
          - project_entity
      - in: formData
        name: entities[source_full_path]
        description: Relative path of the source entity to import
        type: array
        required: true
        example: "'source/full/path' not 'https://example.com/source/full/path'"
        items:
          type: string
      - in: formData
        name: entities[destination_namespace]
        description: Destination namespace for the entity
        type: array
        required: true
        example: "'destination_namespace' or 'destination/namespace'"
        items:
          type: string
      - in: formData
        name: entities[destination_slug]
        description: Destination slug for the entity
        type: array
        required: false
        example: "'destination_slug' not 'destination/slug'"
        items:
          type: string
      - in: formData
        name: entities[destination_name]
        description: 'Deprecated: Use :destination_slug instead. Destination slug
          for the entity'
        type: array
        required: false
        example: "'destination_slug' not 'destination/slug'"
        items:
          type: string
      - in: formData
        name: entities[migrate_projects]
        description: Indicates group migration should include nested projects
        type: array
        default: true
        required: false
        items:
          type: boolean
      responses:
        '200':
          description: Start a new GitLab Migration
          schema:
            "$ref": "#/definitions/API_Entities_BulkImport"
        '401':
          description: Unauthorized
        '400':
          description: Bad request
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
        '503':
          description: Service unavailable
      tags:
      - bulk_imports
      operationId: postApiV4BulkImports
    get:
      summary: List all GitLab Migrations
      description: This feature was introduced in GitLab 14.1.
      produces:
      - application/json
      parameters:
      - 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
      - in: query
        name: sort
        description: Return GitLab Migrations sorted in created by `asc` or `desc`
          order.
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: status
        description: Return GitLab Migrations with specified status
        type: string
        enum:
        - created
        - started
        - finished
        - timeout
        - failed
        - canceled
        required: false
      responses:
        '200':
          description: List all GitLab Migrations
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_BulkImport"
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - bulk_imports
      operationId: getApiV4BulkImports
  "/api/v4/bulk_imports/entities":
    get:
      summary: List all GitLab Migrations' entities
      description: This feature was introduced in GitLab 14.1.
      produces:
      - application/json
      parameters:
      - 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
      - in: query
        name: sort
        description: Return GitLab Migrations sorted in created by `asc` or `desc`
          order.
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: status
        description: Return all GitLab Migrations' entities with specified status
        type: string
        enum:
        - created
        - started
        - finished
        - timeout
        - failed
        - canceled
        required: false
      responses:
        '200':
          description: List all GitLab Migrations' entities
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_BulkImports"
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - bulk_imports
      operationId: getApiV4BulkImportsEntities
  "/api/v4/bulk_imports/{import_id}":
    get:
      summary: Get GitLab Migration details
      description: This feature was introduced in GitLab 14.1.
      produces:
      - application/json
      parameters:
      - in: path
        name: import_id
        description: The ID of user's GitLab Migration
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get GitLab Migration details
          schema:
            "$ref": "#/definitions/API_Entities_BulkImport"
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - bulk_imports
      operationId: getApiV4BulkImportsImportId
  "/api/v4/bulk_imports/{import_id}/entities":
    get:
      summary: List GitLab Migration entities
      description: This feature was introduced in GitLab 14.1.
      produces:
      - application/json
      parameters:
      - in: path
        name: import_id
        description: The ID of user's GitLab Migration
        type: integer
        format: int32
        required: true
      - in: query
        name: status
        description: Return import entities with specified status
        type: string
        enum:
        - created
        - started
        - finished
        - timeout
        - failed
        - canceled
        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: List GitLab Migration entities
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_BulkImports"
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - bulk_imports
      operationId: getApiV4BulkImportsImportIdEntities
  "/api/v4/bulk_imports/{import_id}/entities/{entity_id}":
    get:
      summary: Get GitLab Migration entity details
      description: This feature was introduced in GitLab 14.1.
      produces:
      - application/json
      parameters:
      - in: path
        name: import_id
        description: The ID of user's GitLab Migration
        type: integer
        format: int32
        required: true
      - in: path
        name: entity_id
        description: The ID of GitLab Migration entity
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get GitLab Migration entity details
          schema:
            "$ref": "#/definitions/API_Entities_BulkImports"
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - bulk_imports
      operationId: getApiV4BulkImportsImportIdEntitiesEntityId
  "/api/v4/bulk_imports/{import_id}/entities/{entity_id}/failures":
    get:
      summary: Get GitLab Migration entity failures
      description: This feature was introduced in GitLab 16.6
      produces:
      - application/json
      parameters:
      - in: path
        name: import_id
        description: The ID of user's GitLab Migration
        type: integer
        format: int32
        required: true
      - in: path
        name: entity_id
        description: The ID of GitLab Migration entity
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get GitLab Migration entity failures
          schema:
            "$ref": "#/definitions/API_Entities_BulkImports_EntityFailure"
        '401':
          description: Unauthorized
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - bulk_imports
      operationId: getApiV4BulkImportsImportIdEntitiesEntityIdFailures
  "/api/v4/bulk_imports/{import_id}/cancel":
    post:
      summary: Cancel GitLab Migration
      description: This feature was introduced in GitLab 17.1
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: import_id
        description: The ID of user's GitLab Migration
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Cancel GitLab Migration
          schema:
            "$ref": "#/definitions/API_Entities_BulkImport"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - bulk_imports
      operationId: postApiV4BulkImportsImportIdCancel
  "/api/v4/job":
    get:
      description: Get current job using job token
      produces:
      - application/json
      responses:
        '200':
          description: Get current job using job token
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Job"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - job
      operationId: getApiV4Job
  "/api/v4/job/allowed_agents":
    get:
      summary: Get current agents
      description: Retrieves a list of agents for the given job token
      produces:
      - application/json
      responses:
        '200':
          description: Get current agents
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Job"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - job
      operationId: getApiV4JobAllowedAgents
  "/api/v4/runners":
    post:
      summary: Register a new runner
      description: Register a new runner for the instance
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4Runners
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4Runners"
      responses:
        '201':
          description: Register a new runner
          schema:
            "$ref": "#/definitions/API_Entities_Ci_RunnerRegistrationDetails"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '410':
          description: Gone
      tags:
      - runners
      operationId: postApiV4Runners
    delete:
      summary: Delete a runner by authentication token
      description: Delete a registered runner
      produces:
      - application/json
      parameters:
      - in: query
        name: token
        description: The runner's authentication token
        type: string
        required: true
      responses:
        '204':
          description: Delete a registered runner
        '403':
          description: Forbidden
      tags:
      - runners
      operationId: deleteApiV4Runners
    get:
      summary: List owned runners
      description: Get runners available for user
      produces:
      - application/json
      parameters:
      - in: query
        name: scope
        description: 'Deprecated: Use `type` or `status` instead. The scope of runners
          to return'
        type: string
        enum:
        - specific
        - shared
        - instance_type
        - group_type
        - project_type
        - active
        - paused
        - online
        - offline
        - never_contacted
        - stale
        required: false
      - in: query
        name: type
        description: The type of runners to return
        type: string
        enum:
        - instance_type
        - group_type
        - project_type
        required: false
      - in: query
        name: paused
        description: Whether to include only runners that are accepting or ignoring
          new jobs
        type: boolean
        required: false
      - in: query
        name: status
        description: The status of runners to return
        type: string
        enum:
        - active
        - paused
        - online
        - offline
        - never_contacted
        - stale
        required: false
      - in: query
        name: tag_list
        description: A list of runner tags
        type: array
        items:
          type: string
        required: false
        example: "['macos', 'shell']"
      - in: query
        name: version_prefix
        description: The version prefix of runners to return
        type: string
        required: false
        example: "'15.1.' or '16.'"
      - 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 runners available for user
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Runner"
        '400':
          description: Scope contains invalid value
        '401':
          description: Unauthorized
      tags:
      - runners
      operationId: getApiV4Runners
  "/api/v4/runners/managers":
    delete:
      summary: Internal endpoint that deletes a runner manager by authentication token
        and system ID.
      description: Delete a registered runner manager
      produces:
      - application/json
      parameters:
      - in: query
        name: token
        description: The runner's authentication token
        type: string
        required: true
      - in: query
        name: system_id
        description: The runner's system identifier.
        type: string
        required: true
      responses:
        '204':
          description: Runner manager was deleted
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - runners
      operationId: deleteApiV4RunnersManagers
  "/api/v4/runners/verify":
    post:
      summary: Verify authentication for a registered runner
      description: Validate authentication credentials
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4RunnersVerify
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4RunnersVerify"
      responses:
        '200':
          description: Credentials are valid
        '403':
          description: Forbidden
      tags:
      - runners
      operationId: postApiV4RunnersVerify
  "/api/v4/runners/reset_authentication_token":
    post:
      description: Reset runner authentication token with current token
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4RunnersResetAuthenticationToken
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4RunnersResetAuthenticationToken"
      responses:
        '201':
          description: Reset runner authentication token with current token
          schema:
            "$ref": "#/definitions/API_Entities_Ci_ResetTokenResult"
        '403':
          description: Forbidden
      tags:
      - runners
      operationId: postApiV4RunnersResetAuthenticationToken
  "/api/v4/runners/all":
    get:
      summary: List all runners
      description: Get a list of all runners in the GitLab instance (shared and project).
        Access is restricted to users with administrator access.
      produces:
      - application/json
      parameters:
      - in: query
        name: scope
        description: 'Deprecated: Use `type` or `status` instead. The scope of runners
          to return'
        type: string
        enum:
        - specific
        - shared
        - instance_type
        - group_type
        - project_type
        - active
        - paused
        - online
        - offline
        - never_contacted
        - stale
        required: false
      - in: query
        name: type
        description: The type of runners to return
        type: string
        enum:
        - instance_type
        - group_type
        - project_type
        required: false
      - in: query
        name: paused
        description: Whether to include only runners that are accepting or ignoring
          new jobs
        type: boolean
        required: false
      - in: query
        name: status
        description: The status of runners to return
        type: string
        enum:
        - active
        - paused
        - online
        - offline
        - never_contacted
        - stale
        required: false
      - in: query
        name: tag_list
        description: A list of runner tags
        type: array
        items:
          type: string
        required: false
        example: "['macos', 'shell']"
      - in: query
        name: version_prefix
        description: The version prefix of runners to return
        type: string
        required: false
        example: "'15.1.' or '16.'"
      - 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 all runners - shared and project
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Runner"
        '400':
          description: Scope contains invalid value
        '401':
          description: Unauthorized
      tags:
      - runners
      operationId: getApiV4RunnersAll
  "/api/v4/runners/{id}":
    get:
      summary: Get runner's details
      description: At least the Maintainer role is required to get runner details
        at the project and group level. Instance-level runner details via this endpoint
        are available to all signed in users.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a runner
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get runner's details
          schema:
            "$ref": "#/definitions/API_Entities_Ci_RunnerDetails"
        '401':
          description: Unauthorized
        '403':
          description: No access granted
        '404':
          description: Runner not found
      tags:
      - runners
      operationId: getApiV4RunnersId
    put:
      summary: Update details of a runner
      description: Update runner's details
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a runner
        type: integer
        format: int32
        required: true
      - name: putApiV4RunnersId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4RunnersId"
      responses:
        '200':
          description: Update runner's details
          schema:
            "$ref": "#/definitions/API_Entities_Ci_RunnerDetails"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: No access granted
        '404':
          description: Runner not found
      tags:
      - runners
      operationId: putApiV4RunnersId
    delete:
      summary: Delete a runner
      description: Remove a runner
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a runner
        type: integer
        format: int32
        required: true
      responses:
        '401':
          description: Unauthorized
        '204':
          description: Remove a runner
          schema:
            "$ref": "#/definitions/API_Entities_Ci_Runner"
        '403':
          description: No access granted
        '404':
          description: Runner not found
        '412':
          description: Precondition Failed
      tags:
      - runners
      operationId: deleteApiV4RunnersId
  "/api/v4/runners/{id}/jobs":
    get:
      summary: List runner's jobs
      description: List jobs that are being processed or were processed by the specified
        runner. The list of jobs is limited to projects where the user has at least
        the Reporter role.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a runner
        type: integer
        format: int32
        required: true
      - in: query
        name: system_id
        description: System ID associated with the runner manager
        type: string
        required: false
      - in: query
        name: status
        description: Status of the job
        type: string
        enum:
        - created
        - waiting_for_resource
        - preparing
        - waiting_for_callback
        - pending
        - running
        - success
        - failed
        - canceling
        - canceled
        - skipped
        - manual
        - scheduled
        required: false
      - in: query
        name: order_by
        description: Order by `id`
        type: string
        enum:
        - id
        required: false
      - in: query
        name: sort
        description: Sort by `asc` or `desc` order. Specify `order_by` as well, including
          for `id`
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: cursor
        description: Cursor for obtaining the next set of records
        type: string
        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: List jobs running on a runner
          schema:
            "$ref": "#/definitions/API_Entities_Ci_JobBasicWithProject"
        '401':
          description: Unauthorized
        '403':
          description: No access granted
        '404':
          description: Runner not found
      tags:
      - runners
      - jobs
      operationId: getApiV4RunnersIdJobs
  "/api/v4/runners/{id}/reset_authentication_token":
    post:
      summary: Reset runner's authentication token
      description: Reset runner authentication token
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the runner
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Reset runner authentication token
          schema:
            "$ref": "#/definitions/API_Entities_Ci_ResetTokenResult"
        '403':
          description: No access granted
        '404':
          description: Runner not found
      tags:
      - runners
      operationId: postApiV4RunnersIdResetAuthenticationToken
  "/api/v4/runners/reset_registration_token":
    post:
      summary: Reset instance's runner registration token
      description: Reset runner registration token
      produces:
      - application/json
      consumes:
      - application/json
      responses:
        '201':
          description: Reset runner registration token
          schema:
            "$ref": "#/definitions/API_Entities_Ci_ResetTokenResult"
        '403':
          description: Forbidden
      tags:
      - runners
      - groups
      operationId: postApiV4RunnersResetRegistrationToken
  "/api/v4/jobs/request":
    post:
      description: Request a job
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4JobsRequest
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4JobsRequest"
      responses:
        '201':
          description: Job was scheduled
        '204':
          description: No job for Runner
        '403':
          description: Forbidden
        '409':
          description: Conflict
      tags:
      - jobs
      operationId: postApiV4JobsRequest
  "/api/v4/jobs/{id}":
    put:
      description: Update a job
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: Job's ID
        type: integer
        format: int32
        required: true
      - name: putApiV4JobsId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4JobsId"
      responses:
        '200':
          description: Job was updated
        '202':
          description: Update accepted
        '400':
          description: Unknown parameters
        '403':
          description: Forbidden
      tags:
      - jobs
      operationId: putApiV4JobsId
  "/api/v4/jobs/{id}/trace":
    patch:
      description: Append a patch to the job trace
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: Job's ID
        type: integer
        format: int32
        required: true
      - name: patchApiV4JobsIdTrace
        in: body
        required: true
        schema:
          "$ref": "#/definitions/patchApiV4JobsIdTrace"
      responses:
        '202':
          description: Trace was patched
        '400':
          description: Missing Content-Range header
        '403':
          description: Forbidden
        '416':
          description: Range not satisfiable
      tags:
      - jobs
      operationId: patchApiV4JobsIdTrace
  "/api/v4/jobs/{id}/artifacts/authorize":
    post:
      description: Authorize uploading job artifact
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: Job's ID
        type: integer
        format: int32
        required: true
      - name: postApiV4JobsIdArtifactsAuthorize
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4JobsIdArtifactsAuthorize"
      responses:
        '200':
          description: Upload allowed
        '403':
          description: Forbidden
        '405':
          description: Artifacts support not enabled
        '413':
          description: File too large
      tags:
      - jobs
      operationId: postApiV4JobsIdArtifactsAuthorize
  "/api/v4/jobs/{id}/artifacts":
    post:
      description: Upload a job artifact
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: Job's ID
        type: integer
        format: int32
        required: true
      - name: postApiV4JobsIdArtifacts
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4JobsIdArtifacts"
      responses:
        '201':
          description: Artifact uploaded
        '400':
          description: Bad request
        '403':
          description: Forbidden
        '405':
          description: Artifacts support not enabled
        '413':
          description: File too large
      tags:
      - jobs
      operationId: postApiV4JobsIdArtifacts
    get:
      description: Download the artifacts file for job
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: Job's ID
        type: integer
        format: int32
        required: true
      - in: query
        name: token
        description: Job's authentication token
        type: string
        required: false
      - in: query
        name: direct_download
        description: Perform direct download from remote storage instead of proxying
          artifacts
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Download allowed
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Artifact not found
      tags:
      - jobs
      operationId: getApiV4JobsIdArtifacts
  "/api/v4/group/{id}/-/packages/composer/packages":
    get:
      summary: Composer packages endpoint at group level
      description: This feature was introduced in GitLab 13.1
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of a group
        type: string
        required: true
      responses:
        '200':
          description: Composer packages endpoint at group level
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - composer_packages
      operationId: getApiV4GroupIdPackagesComposerPackages
  "/api/v4/group/{id}/-/packages/composer/p/{sha}":
    get:
      summary: Composer packages endpoint at group level for packages list
      description: This feature was introduced in GitLab 13.1
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of a group
        type: string
        required: true
      - in: path
        name: sha
        description: Shasum of current json
        type: string
        required: true
        example: 673594f85a55fe3c0eb45df7bd2fa9d95a1601ab
      responses:
        '200':
          description: Composer packages endpoint at group level for packages list
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - composer_packages
      operationId: getApiV4GroupIdPackagesComposerPSha
  "/api/v4/group/{id}/-/packages/composer/p2/*package_name":
    get:
      summary: Composer v2 packages p2 endpoint at group level for package versions
        metadata
      description: This feature was introduced in GitLab 13.1
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of a group
        type: string
        required: true
      - in: query
        name: package_name
        description: The Composer package name
        type: string
        required: true
        example: my-composer-package
      responses:
        '200':
          description: Composer v2 packages p2 endpoint at group level for package
            versions metadata
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - composer_packages
      operationId: getApiV4GroupIdPackagesComposerP2*packageName
  "/api/v4/group/{id}/-/packages/composer/*package_name":
    get:
      summary: Composer packages endpoint at group level for package versions metadata
      description: This feature was introduced in GitLab 12.1
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or URL-encoded path of a group
        type: string
        required: true
      - in: query
        name: package_name
        description: The Composer package name
        type: string
        required: true
        example: my-composer-package
      responses:
        '200':
          description: Composer packages endpoint at group level for package versions
            metadata
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - composer_packages
      operationId: getApiV4GroupIdPackagesComposer*packageName
  "/api/v4/packages/conan/v1/ping":
    get:
      summary: Ping the Conan API
      description: This feature was introduced in GitLab 12.2
      produces:
      - application/json
      responses:
        '200':
          description: Ping the Conan API
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4PackagesConanV1Ping
  "/api/v4/packages/conan/v1/conans/search":
    get:
      summary: Search for packages
      description: This feature was introduced in GitLab 12.4
      produces:
      - application/json
      parameters:
      - in: query
        name: q
        description: Search query
        type: string
        required: true
        example: Hello*
      responses:
        '200':
          description: Search for packages
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4PackagesConanV1ConansSearch
  "/api/v4/packages/conan/v1/users/authenticate":
    get:
      summary: Authenticate user against conan CLI
      description: This feature was introduced in GitLab 12.2
      produces:
      - application/json
      responses:
        '200':
          description: Authenticate user against conan CLI
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4PackagesConanV1UsersAuthenticate
  "/api/v4/packages/conan/v1/users/check_credentials":
    get:
      summary: Check for valid user credentials per conan CLI
      description: This feature was introduced in GitLab 12.4
      produces:
      - application/json
      responses:
        '200':
          description: Check for valid user credentials per conan CLI
        '401':
          description: Unauthorized
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4PackagesConanV1UsersCheckCredentials
  ? "/api/v4/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/packages/{conan_package_reference}"
  : get:
      summary: Package Snapshot
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: conan_package_reference
        description: Conan package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      responses:
        '200':
          description: Package Snapshot
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanPackageSnapshot"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4PackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelPackagesConanPackageReference
  "/api/v4/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}":
    get:
      summary: Recipe Snapshot
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      responses:
        '200':
          description: Recipe Snapshot
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanRecipeSnapshot"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4PackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannel
    delete:
      summary: Delete Package
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      responses:
        '204':
          description: Delete Package
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: deleteApiV4PackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannel
  ? "/api/v4/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/packages/{conan_package_reference}/digest"
  : get:
      summary: Package Digest
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: conan_package_reference
        description: Conan package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      responses:
        '200':
          description: Package Digest
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanPackageManifest"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4PackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelPackagesConanPackageReferenceDigest
  "/api/v4/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/digest":
    get:
      summary: Recipe Digest
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      responses:
        '200':
          description: Recipe Digest
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanRecipeManifest"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4PackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelDigest
  ? "/api/v4/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/packages/{conan_package_reference}/download_urls"
  : get:
      summary: Package Download Urls
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: conan_package_reference
        description: Conan package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      responses:
        '200':
          description: Package Download Urls
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanPackageManifest"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4PackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelPackagesConanPackageReferenceDownloadUrls
  "/api/v4/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/download_urls":
    get:
      summary: Recipe Download Urls
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      responses:
        '200':
          description: Recipe Download Urls
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanRecipeManifest"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4PackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelDownloadUrls
  ? "/api/v4/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/packages/{conan_package_reference}/upload_urls"
  : post:
      summary: Package Upload Urls
      description: This feature was introduced in GitLab 12.4
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: conan_package_reference
        description: Conan package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      responses:
        '200':
          description: Package Upload Urls
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanUploadUrls"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: postApiV4PackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelPackagesConanPackageReferenceUploadUrls
  "/api/v4/packages/conan/v1/conans/{package_name}/{package_version}/{package_username}/{package_channel}/upload_urls":
    post:
      summary: Recipe Upload Urls
      description: This feature was introduced in GitLab 12.4
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      responses:
        '200':
          description: Recipe Upload Urls
          schema:
            "$ref": "#/definitions/API_Entities_ConanPackage_ConanUploadUrls"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: postApiV4PackagesConanV1ConansPackageNamePackageVersionPackageUsernamePackageChannelUploadUrls
  ? "/api/v4/packages/conan/v1/files/{package_name}/{package_version}/{package_username}/{package_channel}/{recipe_revision}/export/{file_name}"
  : get:
      summary: Download recipe files
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: recipe_revision
        description: Conan Recipe Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: file_name
        description: Package file name
        type: string
        enum:
        - conanfile.py
        - conanmanifest.txt
        - conan_sources.tgz
        - conan_export.tgz
        - conaninfo.txt
        - conan_package.tgz
        required: true
        example: conanfile.py
      responses:
        '200':
          description: Download recipe files
        '400':
          description: Bad Request
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4PackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileName
    put:
      summary: Upload recipe package files
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: recipe_revision
        description: Conan Recipe Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: file_name
        description: Package file name
        type: string
        enum:
        - conanfile.py
        - conanmanifest.txt
        - conan_sources.tgz
        - conan_export.tgz
        - conaninfo.txt
        - conan_package.tgz
        required: true
        example: conanfile.py
      - name: putApiV4PackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4PackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileName"
      responses:
        '200':
          description: Upload recipe package files
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: putApiV4PackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileName
  ? "/api/v4/packages/conan/v1/files/{package_name}/{package_version}/{package_username}/{package_channel}/{recipe_revision}/export/{file_name}/authorize"
  : put:
      summary: Workhorse authorize the conan recipe file
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: recipe_revision
        description: Conan Recipe Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: file_name
        description: Package file name
        type: string
        enum:
        - conanfile.py
        - conanmanifest.txt
        - conan_sources.tgz
        - conan_export.tgz
        - conaninfo.txt
        - conan_package.tgz
        required: true
        example: conanfile.py
      responses:
        '200':
          description: Workhorse authorize the conan recipe file
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: putApiV4PackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileNameAuthorize
  ? "/api/v4/packages/conan/v1/files/{package_name}/{package_version}/{package_username}/{package_channel}/{recipe_revision}/package/{conan_package_reference}/{package_revision}/{file_name}"
  : get:
      summary: Download package files
      description: This feature was introduced in GitLab 12.5
      produces:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: recipe_revision
        description: Conan Recipe Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: conan_package_reference
        description: Conan Package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      - in: path
        name: package_revision
        description: Conan Package Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: file_name
        description: Package file name
        type: string
        enum:
        - conanfile.py
        - conanmanifest.txt
        - conan_sources.tgz
        - conan_export.tgz
        - conaninfo.txt
        - conan_package.tgz
        required: true
        example: conaninfo.txt
      responses:
        '200':
          description: Download package files
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: getApiV4PackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileName
    put:
      summary: Upload package files
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: recipe_revision
        description: Conan Recipe Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: conan_package_reference
        description: Conan Package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      - in: path
        name: package_revision
        description: Conan Package Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: file_name
        description: Package file name
        type: string
        enum:
        - conanfile.py
        - conanmanifest.txt
        - conan_sources.tgz
        - conan_export.tgz
        - conaninfo.txt
        - conan_package.tgz
        required: true
        example: conaninfo.txt
      - name: putApiV4PackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4PackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileName"
      responses:
        '200':
          description: Upload package files
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: putApiV4PackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileName
  ? "/api/v4/packages/conan/v1/files/{package_name}/{package_version}/{package_username}/{package_channel}/{recipe_revision}/package/{conan_package_reference}/{package_revision}/{file_name}/authorize"
  : put:
      summary: Workhorse authorize the conan package file
      description: This feature was introduced in GitLab 12.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: package_name
        description: Package name
        type: string
        required: true
        example: my-package
      - in: path
        name: package_version
        description: Package version
        type: string
        required: true
        example: '1.0'
      - in: path
        name: package_username
        description: Package username
        type: string
        required: true
        example: my-group+my-project
      - in: path
        name: package_channel
        description: Package channel
        type: string
        required: true
        example: stable
      - in: path
        name: recipe_revision
        description: Conan Recipe Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: conan_package_reference
        description: Conan Package ID
        type: string
        required: true
        example: 103f6067a947f366ef91fc1b7da351c588d1827f
      - in: path
        name: package_revision
        description: Conan Package Revision
        type: string
        required: true
        example: '0'
      - in: path
        name: file_name
        description: Package file name
        type: string
        enum:
        - conanfile.py
        - conanmanifest.txt
        - conan_sources.tgz
        - conan_export.tgz
        - conaninfo.txt
        - conan_package.tgz
        required: true
        example: conaninfo.txt
      responses:
        '200':
          description: Workhorse authorize the conan package file
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - conan_packages
      operationId: putApiV4PackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileNameAuthorize
  "/api/v4/packages/maven/*path/{file_name}":
    get:
      summary: Download the maven package file at instance level
      description: This feature was introduced in GitLab 11.6
      produces:
      - application/json
      parameters:
      - in: query
        name: path
        description: Package path
        type: string
        required: true
        example: foo/bar/mypkg/1.0-SNAPSHOT
      - in: path
        name: file_name
        description: Package file name
        type: string
        required: true
        example: mypkg-1.0-SNAPSHOT.jar
      responses:
        '200':
          description: Download the maven package file at instance level
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - maven_packages
      operationId: getApiV4PackagesMaven*pathFileName
  "/api/v4/packages/npm/-/package/*package_name/dist-tags":
    get:
      summary: Get all tags for a given an NPM package
      description: This feature was introduced in GitLab 12.7
      produces:
      - application/json
      parameters:
      - in: query
        name: package_name
        description: Package name
        type: string
        required: true
      responses:
        '200':
          description: Get all tags for a given an NPM package
          schema:
            "$ref": "#/definitions/API_Entities_NpmPackageTag"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: getApiV4PackagesNpmPackage*packageNameDistTags
  "/api/v4/packages/npm/-/package/*package_name/dist-tags/{tag}":
    put:
      summary: Create or Update the given tag for the given NPM package and version
      description: This feature was introduced in GitLab 12.7
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: tag
        description: Package dist-tag
        type: string
        required: true
      - name: putApiV4PackagesNpmPackage*packageNameDistTagsTag
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4PackagesNpmPackage*packageNameDistTagsTag"
      responses:
        '204':
          description: Create or Update the given tag for the given NPM package and
            version
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: putApiV4PackagesNpmPackage*packageNameDistTagsTag
    delete:
      summary: Deletes the given tag
      description: This feature was introduced in GitLab 12.7
      produces:
      - application/json
      parameters:
      - in: query
        name: package_name
        description: Package name
        type: string
        required: true
      - in: path
        name: tag
        description: Package dist-tag
        type: string
        required: true
      responses:
        '204':
          description: Deletes the given tag
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: deleteApiV4PackagesNpmPackage*packageNameDistTagsTag
  "/api/v4/packages/npm/*package_name":
    get:
      summary: NPM registry metadata endpoint
      description: This feature was introduced in GitLab 11.8
      produces:
      - application/json
      parameters:
      - in: query
        name: package_name
        description: Package name
        type: string
        required: true
        example: mypackage
      responses:
        '200':
          description: Ok
          schema:
            "$ref": "#/definitions/API_Entities_NpmPackage"
        '302':
          description: Found (redirect)
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: getApiV4PackagesNpm*packageName
  "/api/v4/packages/npm/-/npm/v1/security/advisories/bulk":
    post:
      summary: NPM registry bulk advisory endpoint
      description: This feature was introduced in GitLab 15.6
      produces:
      - application/json
      consumes:
      - application/json
      responses:
        '200':
          description: Ok
        '307':
          description: Temporary Redirect
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: postApiV4PackagesNpmNpmV1SecurityAdvisoriesBulk
  "/api/v4/packages/npm/-/npm/v1/security/audits/quick":
    post:
      summary: NPM registry quick audit endpoint
      description: This feature was introduced in GitLab 15.6
      produces:
      - application/json
      consumes:
      - application/json
      responses:
        '200':
          description: Ok
        '307':
          description: Temporary Redirect
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - npm_packages
      operationId: postApiV4PackagesNpmNpmV1SecurityAuditsQuick
  "/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}/versions":
    get:
      summary: List versions for a module
      description: List versions for a module
      produces:
      - application/json
      parameters:
      - in: path
        name: module_namespace
        description: Group's ID or slug
        type: string
        required: true
      - in: path
        name: module_name
        description: ''
        type: string
        required: true
      - in: path
        name: module_system
        type: string
        required: true
      responses:
        '200':
          description: List versions for a module
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Terraform_ModuleVersions"
        '403':
          description: Forbidden
      tags:
      - terraform_registry
      operationId: getApiV4PackagesTerraformModulesV1ModuleNamespaceModuleNameModuleSystemVersions
  "/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}/download":
    get:
      summary: Get download location for the latest version of a module
      description: Download the latest version of a module
      produces:
      - application/json
      parameters:
      - in: path
        name: module_namespace
        description: Group's ID or slug
        type: string
        required: true
      - in: path
        name: module_name
        description: ''
        type: string
        required: true
      - in: path
        name: module_system
        type: string
        required: true
      responses:
        '302':
          description: Get download location for the latest version of a module
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - terraform_registry
      operationId: getApiV4PackagesTerraformModulesV1ModuleNamespaceModuleNameModuleSystemDownload
  "/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}":
    get:
      summary: Get details about the latest version of a module
      description: Get details about the latest version of a module
      produces:
      - application/json
      parameters:
      - in: path
        name: module_namespace
        description: Group's ID or slug
        type: string
        required: true
      - in: path
        name: module_name
        description: ''
        type: string
        required: true
      - in: path
        name: module_system
        type: string
        required: true
      responses:
        '200':
          description: Get details about the latest version of a module
          schema:
            "$ref": "#/definitions/API_Entities_Terraform_ModuleVersion"
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - terraform_registry
      operationId: getApiV4PackagesTerraformModulesV1ModuleNamespaceModuleNameModuleSystem
  "/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}/*module_version/download":
    get:
      summary: Get download location for specific version of a module
      description: Download specific version of a module
      produces:
      - application/json
      parameters:
      - in: path
        name: module_namespace
        description: Group's ID or slug
        type: string
        required: true
      - in: path
        name: module_name
        description: ''
        type: string
        required: true
      - in: path
        name: module_system
        type: string
        required: true
      - in: query
        name: module_version
        description: Module version
        type: string
        required: true
      responses:
        '204':
          description: Get download location for specific version of a module
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - terraform_registry
      operationId: getApiV4PackagesTerraformModulesV1ModuleNamespaceModuleNameModuleSystem*moduleVersionDownload
  "/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}/*module_version/file":
    get:
      summary: Download specific version of a module
      description: Download specific version of a module
      produces:
      - application/json
      parameters:
      - in: path
        name: module_namespace
        description: Group's ID or slug
        type: string
        required: true
      - in: path
        name: module_name
        description: ''
        type: string
        required: true
      - in: path
        name: module_system
        type: string
        required: true
      - in: query
        name: module_version
        description: Module version
        type: string
        required: true
      responses:
        '200':
          description: Download specific version of a module
          schema:
            type: file
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - terraform_registry
      operationId: getApiV4PackagesTerraformModulesV1ModuleNamespaceModuleNameModuleSystem*moduleVersionFile
  "/api/v4/packages/terraform/modules/v1/{module_namespace}/{module_name}/{module_system}/*module_version":
    get:
      summary: Get details about specific version of a module
      description: Get details about specific version of a module
      produces:
      - application/json
      parameters:
      - in: path
        name: module_namespace
        description: Group's ID or slug
        type: string
        required: true
      - in: path
        name: module_name
        description: ''
        type: string
        required: true
      - in: path
        name: module_system
        type: string
        required: true
      - in: query
        name: module_version
        description: Module version
        type: string
        required: true
      responses:
        '200':
          description: Get details about specific version of a module
          schema:
            "$ref": "#/definitions/API_Entities_Terraform_ModuleVersion"
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - terraform_registry
      operationId: getApiV4PackagesTerraformModulesV1ModuleNamespaceModuleNameModuleSystem*moduleVersion
  "/api/v4/container_registry_event/events":
    post:
      summary: Receives notifications from the container registry when an operation
        occurs
      description: This feature was introduced in GitLab 12.10
      produces:
      - application/json
      consumes:
      - application/json
      - application/vnd.docker.distribution.events.v1+json
      responses:
        '200':
          description: Success
        '401':
          description: Invalid Token
      tags:
      - container_registry_event
      operationId: postApiV4ContainerRegistryEventEvents
  "/api/v4/registry/repositories/{id}":
    get:
      summary: Get a container repository
      description: This feature was introduced in GitLab 13.6.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the repository
        type: string
        required: true
      - in: query
        name: tags
        description: Determines if tags should be included
        type: boolean
        default: false
        required: false
      - in: query
        name: tags_count
        description: Determines if the tags count should be included
        type: boolean
        default: false
        required: false
      - in: query
        name: size
        description: Determines if the size should be included
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get a container repository
          schema:
            "$ref": "#/definitions/API_Entities_ContainerRegistry_Repository"
        '401':
          description: Unauthorized
        '404':
          description: Repository Not Found
      tags:
      - container_registry
      operationId: getApiV4RegistryRepositoriesId
  "/api/v4/events":
    get:
      summary: List currently authenticated user's events
      description: This feature was introduced in GitLab 9.3.
      produces:
      - application/json
      parameters:
      - in: query
        name: scope
        description: Include all events across a user’s projects
        type: string
        required: false
        example: all
      - 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
      - in: query
        name: action
        description: Event action to filter on
        type: string
        required: false
      - in: query
        name: target_type
        description: Event target type to filter on
        type: string
        enum:
        - issue
        - milestone
        - merge_request
        - note
        - project
        - snippet
        - user
        - wiki
        - design
        required: false
      - in: query
        name: before
        description: Include only events created before this date
        type: string
        format: date
        required: false
      - in: query
        name: after
        description: Include only events created after this date
        type: string
        format: date
        required: false
      - in: query
        name: sort
        description: Return events sorted in ascending and descending order
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      responses:
        '200':
          description: List currently authenticated user's events
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Event"
        '401':
          description: Unauthorized
      tags:
      - events
      operationId: getApiV4Events
  "/api/v4/users/{id}/events":
    get:
      summary: Get the contribution events of a specified user
      description: This feature was introduced in GitLab 8.13.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID or username of the user
        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
      - in: query
        name: action
        description: Event action to filter on
        type: string
        required: false
      - in: query
        name: target_type
        description: Event target type to filter on
        type: string
        enum:
        - issue
        - milestone
        - merge_request
        - note
        - project
        - snippet
        - user
        - wiki
        - design
        required: false
      - in: query
        name: before
        description: Include only events created before this date
        type: string
        format: date
        required: false
      - in: query
        name: after
        description: Include only events created after this date
        type: string
        format: date
        required: false
      - in: query
        name: sort
        description: Return events sorted in ascending and descending order
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      responses:
        '200':
          description: Get the contribution events of a specified user
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Event"
        '404':
          description: Not found
      tags:
      - events
      operationId: getApiV4UsersIdEvents
  "/api/v4/users/{user_id}/projects":
    get:
      description: Get a user projects
      produces:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID or username of the user
        type: string
        required: true
      - in: query
        name: order_by
        description: Return projects ordered by field. storage_size, repository_size,
          wiki_size, packages_size are only available to admins. Similarity is available
          when searching and is limited to projects the user has access to.
        type: string
        default: created_at
        enum:
        - id
        - name
        - path
        - created_at
        - updated_at
        - last_activity_at
        - similarity
        - storage_size
        - repository_size
        - wiki_size
        - packages_size
        required: false
      - in: query
        name: sort
        description: Return projects sorted in ascending and descending order
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: archived
        description: Limit by archived status
        type: boolean
        required: false
      - in: query
        name: visibility
        description: Limit by visibility
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: query
        name: search
        description: Return list of projects matching the search criteria
        type: string
        required: false
      - in: query
        name: search_namespaces
        description: Include ancestor namespaces when matching search criteria
        type: boolean
        required: false
      - in: query
        name: owned
        description: Limit by owned by authenticated user
        type: boolean
        default: false
        required: false
      - in: query
        name: starred
        description: Limit by starred status
        type: boolean
        default: false
        required: false
      - in: query
        name: imported
        description: Limit by imported by authenticated user
        type: boolean
        default: false
        required: false
      - in: query
        name: membership
        description: Limit by projects that the current user is a member of
        type: boolean
        default: false
        required: false
      - in: query
        name: with_issues_enabled
        description: Limit by enabled issues feature
        type: boolean
        default: false
        required: false
      - in: query
        name: with_merge_requests_enabled
        description: Limit by enabled merge requests feature
        type: boolean
        default: false
        required: false
      - in: query
        name: with_programming_language
        description: Limit to repositories which use the given programming language
        type: string
        required: false
      - in: query
        name: min_access_level
        description: Limit by minimum access level of authenticated user
        type: integer
        format: int32
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        required: false
      - in: query
        name: id_after
        description: Limit results to projects with IDs greater than the specified
          ID
        type: integer
        format: int32
        required: false
      - in: query
        name: id_before
        description: Limit results to projects with IDs less than the specified ID
        type: integer
        format: int32
        required: false
      - in: query
        name: last_activity_after
        description: 'Limit results to projects with last_activity after specified
          time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: last_activity_before
        description: 'Limit results to projects with last_activity before specified
          time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: repository_storage
        description: Which storage shard the repository is on. Available only to admins
        type: string
        required: false
      - in: query
        name: topic
        description: Comma-separated list of topics. Limit results to projects having
          all topics
        type: array
        items:
          type: string
        required: false
      - in: query
        name: topic_id
        description: Limit results to projects with the assigned topic given by the
          topic ID
        type: integer
        format: int32
        required: false
      - in: query
        name: updated_before
        description: 'Return projects updated before the specified datetime. Format:
          ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: updated_after
        description: 'Return projects updated after the specified datetime. Format:
          ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: include_pending_delete
        description: Include projects in pending delete state. Can only be set by
          admins
        type: boolean
        required: false
      - in: query
        name: wiki_checksum_failed
        description: Limit by projects where wiki checksum is failed
        type: boolean
        default: false
        required: false
      - in: query
        name: repository_checksum_failed
        description: Limit by projects where repository checksum is failed
        type: boolean
        default: false
        required: false
      - in: query
        name: include_hidden
        description: Include hidden projects. Can only be set by admins
        type: boolean
        default: false
        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
      - in: query
        name: simple
        description: Return only the ID, URL, name, and path of each project
        type: boolean
        default: false
        required: false
      - in: query
        name: statistics
        description: Include project statistics
        type: boolean
        default: false
        required: false
      - in: query
        name: with_custom_attributes
        description: Include custom attributes in the response
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get a user projects
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_BasicProjectDetails"
        '404':
          description: 404 User Not Found
      tags:
      - projects
      operationId: getApiV4UsersUserIdProjects
  "/api/v4/users/{user_id}/contributed_projects":
    get:
      description: Get projects that a user has contributed to
      produces:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID or username of the user
        type: string
        required: true
      - in: query
        name: order_by
        description: Return projects ordered by field. storage_size, repository_size,
          wiki_size, packages_size are only available to admins. Similarity is available
          when searching and is limited to projects the user has access to.
        type: string
        default: created_at
        enum:
        - id
        - name
        - path
        - created_at
        - updated_at
        - last_activity_at
        - similarity
        - storage_size
        - repository_size
        - wiki_size
        - packages_size
        required: false
      - in: query
        name: sort
        description: Return projects sorted in ascending and descending order
        type: string
        default: desc
        enum:
        - asc
        - desc
        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
      - in: query
        name: simple
        description: Return only the ID, URL, name, and path of each project
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get projects that a user has contributed to
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_BasicProjectDetails"
        '404':
          description: 404 User Not Found
      tags:
      - projects
      operationId: getApiV4UsersUserIdContributedProjects
  "/api/v4/users/{user_id}/starred_projects":
    get:
      description: Get projects starred by a user
      produces:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID or username of the user
        type: string
        required: true
      - in: query
        name: order_by
        description: Return projects ordered by field. storage_size, repository_size,
          wiki_size, packages_size are only available to admins. Similarity is available
          when searching and is limited to projects the user has access to.
        type: string
        default: created_at
        enum:
        - id
        - name
        - path
        - created_at
        - updated_at
        - last_activity_at
        - similarity
        - storage_size
        - repository_size
        - wiki_size
        - packages_size
        required: false
      - in: query
        name: sort
        description: Return projects sorted in ascending and descending order
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: archived
        description: Limit by archived status
        type: boolean
        required: false
      - in: query
        name: visibility
        description: Limit by visibility
        type: string
        enum:
        - private
        - internal
        - public
        required: false
      - in: query
        name: search
        description: Return list of projects matching the search criteria
        type: string
        required: false
      - in: query
        name: search_namespaces
        description: Include ancestor namespaces when matching search criteria
        type: boolean
        required: false
      - in: query
        name: owned
        description: Limit by owned by authenticated user
        type: boolean
        default: false
        required: false
      - in: query
        name: starred
        description: Limit by starred status
        type: boolean
        default: false
        required: false
      - in: query
        name: imported
        description: Limit by imported by authenticated user
        type: boolean
        default: false
        required: false
      - in: query
        name: membership
        description: Limit by projects that the current user is a member of
        type: boolean
        default: false
        required: false
      - in: query
        name: with_issues_enabled
        description: Limit by enabled issues feature
        type: boolean
        default: false
        required: false
      - in: query
        name: with_merge_requests_enabled
        description: Limit by enabled merge requests feature
        type: boolean
        default: false
        required: false
      - in: query
        name: with_programming_language
        description: Limit to repositories which use the given programming language
        type: string
        required: false
      - in: query
        name: min_access_level
        description: Limit by minimum access level of authenticated user
        type: integer
        format: int32
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        required: false
      - in: query
        name: id_after
        description: Limit results to projects with IDs greater than the specified
          ID
        type: integer
        format: int32
        required: false
      - in: query
        name: id_before
        description: Limit results to projects with IDs less than the specified ID
        type: integer
        format: int32
        required: false
      - in: query
        name: last_activity_after
        description: 'Limit results to projects with last_activity after specified
          time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: last_activity_before
        description: 'Limit results to projects with last_activity before specified
          time. Format: ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: repository_storage
        description: Which storage shard the repository is on. Available only to admins
        type: string
        required: false
      - in: query
        name: topic
        description: Comma-separated list of topics. Limit results to projects having
          all topics
        type: array
        items:
          type: string
        required: false
      - in: query
        name: topic_id
        description: Limit results to projects with the assigned topic given by the
          topic ID
        type: integer
        format: int32
        required: false
      - in: query
        name: updated_before
        description: 'Return projects updated before the specified datetime. Format:
          ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: updated_after
        description: 'Return projects updated after the specified datetime. Format:
          ISO 8601 YYYY-MM-DDTHH:MM:SSZ'
        type: string
        format: date-time
        required: false
      - in: query
        name: include_pending_delete
        description: Include projects in pending delete state. Can only be set by
          admins
        type: boolean
        required: false
      - in: query
        name: wiki_checksum_failed
        description: Limit by projects where wiki checksum is failed
        type: boolean
        default: false
        required: false
      - in: query
        name: repository_checksum_failed
        description: Limit by projects where repository checksum is failed
        type: boolean
        default: false
        required: false
      - in: query
        name: include_hidden
        description: Include hidden projects. Can only be set by admins
        type: boolean
        default: false
        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
      - in: query
        name: simple
        description: Return only the ID, URL, name, and path of each project
        type: boolean
        default: false
        required: false
      - in: query
        name: statistics
        description: Include project statistics
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get projects starred by a user
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_BasicProjectDetails"
        '404':
          description: 404 User Not Found
      tags:
      - projects
      operationId: getApiV4UsersUserIdStarredProjects
  "/api/v4/users/{id}/custom_attributes":
    get:
      description: Get all custom attributes on a user
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get all custom attributes on a user
          schema:
            "$ref": "#/definitions/API_Entities_CustomAttribute"
      tags:
      - users
      operationId: getApiV4UsersIdCustomAttributes
  "/api/v4/users/{id}/custom_attributes/{key}":
    get:
      description: Get a custom attribute on a user
      produces:
      - application/json
      parameters:
      - in: path
        name: key
        description: The key of the custom attribute
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a custom attribute on a user
          schema:
            "$ref": "#/definitions/API_Entities_CustomAttribute"
      tags:
      - users
      operationId: getApiV4UsersIdCustomAttributesKey
    put:
      description: Set a custom attribute on a user
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: key
        description: The key of the custom attribute
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: putApiV4UsersIdCustomAttributesKey
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4UsersIdCustomAttributesKey"
      responses:
        '200':
          description: Set a custom attribute on a user
      tags:
      - users
      operationId: putApiV4UsersIdCustomAttributesKey
    delete:
      description: Delete a custom attribute on a user
      produces:
      - application/json
      parameters:
      - in: path
        name: key
        description: The key of the custom attribute
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a custom attribute on a user
      tags:
      - users
      operationId: deleteApiV4UsersIdCustomAttributesKey
  "/api/v4/users":
    get:
      description: Get the list of users
      produces:
      - application/json
      parameters:
      - in: query
        name: username
        description: Get a single user with a specific username
        type: string
        required: false
      - in: query
        name: extern_uid
        description: Get a single user with a specific external authentication provider
          UID
        type: string
        required: false
      - in: query
        name: provider
        description: The external provider
        type: string
        required: false
      - in: query
        name: search
        description: Search for a username
        type: string
        required: false
      - in: query
        name: active
        description: Filters only active users
        type: boolean
        default: false
        required: false
      - in: query
        name: external
        description: Filters only external users
        type: boolean
        default: false
        required: false
      - in: query
        name: exclude_external
        description: Filters only non external users
        type: boolean
        default: false
        required: false
      - in: query
        name: blocked
        description: Filters only blocked users
        type: boolean
        default: false
        required: false
      - in: query
        name: created_after
        description: Return users created after the specified time
        type: string
        format: date-time
        required: false
      - in: query
        name: created_before
        description: Return users created before the specified time
        type: string
        format: date-time
        required: false
      - in: query
        name: without_projects
        description: Filters only users without projects
        type: boolean
        default: false
        required: false
      - in: query
        name: exclude_internal
        description: Filters only non internal users
        type: boolean
        default: false
        required: false
      - in: query
        name: without_project_bots
        description: Filters users without project bots
        type: boolean
        default: false
        required: false
      - in: query
        name: admins
        description: Filters only admin users
        type: boolean
        default: false
        required: false
      - in: query
        name: two_factor
        description: Filter users by Two-factor authentication.
        type: string
        required: false
      - in: query
        name: order_by
        description: Return users ordered by a field
        type: string
        enum:
        - id
        - name
        - username
        - created_at
        - updated_at
        required: false
      - in: query
        name: sort
        description: Return users sorted in ascending and descending order
        type: string
        enum:
        - asc
        - desc
        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
      - in: query
        name: with_custom_attributes
        description: Include custom attributes in the response
        type: boolean
        default: false
        required: false
      - in: query
        name: skip_ldap
        description: Skip LDAP users
        type: boolean
        default: false
        required: false
      - in: query
        name: saml_provider_id
        description: Return only users from the specified SAML provider Id
        type: integer
        format: int32
        required: false
      - in: query
        name: auditors
        description: Filters only auditor users
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get the list of users
          schema:
            "$ref": "#/definitions/API_Entities_UserBasic"
      tags:
      - users
      operationId: getApiV4Users
    post:
      description: Create a user. Available only for admins.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4Users
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4Users"
      responses:
        '201':
          description: Create a user. Available only for admins.
          schema:
            "$ref": "#/definitions/API_Entities_UserWithAdmin"
      tags:
      - users
      operationId: postApiV4Users
  "/api/v4/users/{id}":
    get:
      description: Get a single user
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - in: query
        name: with_custom_attributes
        description: Include custom attributes in the response
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: Get a single user
          schema:
            "$ref": "#/definitions/API_Entities_User"
      tags:
      - users
      operationId: getApiV4UsersId
    put:
      description: Update a user. Available only for admins.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - name: putApiV4UsersId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4UsersId"
      responses:
        '200':
          description: Update a user. Available only for admins.
          schema:
            "$ref": "#/definitions/API_Entities_UserWithAdmin"
      tags:
      - users
      operationId: putApiV4UsersId
    delete:
      description: Delete a user. Available only for admins.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - in: query
        name: hard_delete
        description: Whether to remove a user's contributions
        type: boolean
        required: false
      responses:
        '200':
          description: Delete a user. Available only for admins.
          schema:
            "$ref": "#/definitions/API_Entities_Email"
      tags:
      - users
      operationId: deleteApiV4UsersId
  "/api/v4/users/{user_id}/status":
    get:
      description: Get the status of a user
      produces:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID or username of the user
        type: string
        required: true
      responses:
        '200':
          description: Get the status of a user
      tags:
      - users
      operationId: getApiV4UsersUserIdStatus
  "/api/v4/users/{id}/follow":
    post:
      description: Follow a user
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Follow a user
          schema:
            "$ref": "#/definitions/API_Entities_User"
      tags:
      - users
      operationId: postApiV4UsersIdFollow
  "/api/v4/users/{id}/unfollow":
    post:
      description: Unfollow a user
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Unfollow a user
          schema:
            "$ref": "#/definitions/API_Entities_User"
      tags:
      - users
      operationId: postApiV4UsersIdUnfollow
  "/api/v4/users/{id}/following":
    get:
      description: Get the users who follow a user
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        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 users who follow a user
          schema:
            "$ref": "#/definitions/API_Entities_UserBasic"
      tags:
      - users
      operationId: getApiV4UsersIdFollowing
  "/api/v4/users/{id}/followers":
    get:
      description: Get the followers of a user
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        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 followers of a user
          schema:
            "$ref": "#/definitions/API_Entities_UserBasic"
      tags:
      - users
      operationId: getApiV4UsersIdFollowers
  "/api/v4/users/{id}/disable_two_factor":
    patch:
      summary: Disable two factor authentication for a user. Available only for admins
      description: This feature was added in GitLab 15.2
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Disable two factor authentication for a user. Available only
            for admins
          schema:
            "$ref": "#/definitions/API_Entities_UserWithAdmin"
      tags:
      - users
      operationId: patchApiV4UsersIdDisableTwoFactor
  "/api/v4/users/{id}/identities/{provider}":
    delete:
      description: Delete a user's identity. Available only for admins
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - in: path
        name: provider
        description: The external provider
        type: string
        required: true
      responses:
        '200':
          description: Delete a user's identity. Available only for admins
          schema:
            "$ref": "#/definitions/API_Entities_UserWithAdmin"
      tags:
      - users
      operationId: deleteApiV4UsersIdIdentitiesProvider
  "/api/v4/users/{user_id}/project_deploy_keys":
    get:
      description: Get the project-level Deploy keys that a specified user can access
        to.
      produces:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID or username of the user
        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: Get the project-level Deploy keys that a specified user can
            access to.
          schema:
            "$ref": "#/definitions/API_Entities_DeployKey"
      tags:
      - users
      operationId: getApiV4UsersUserIdProjectDeployKeys
  "/api/v4/users/{user_id}/keys":
    post:
      description: Add an SSH key to a specified user. Available only for admins.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - name: postApiV4UsersUserIdKeys
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UsersUserIdKeys"
      responses:
        '201':
          description: Add an SSH key to a specified user. Available only for admins.
          schema:
            "$ref": "#/definitions/API_Entities_SSHKey"
      tags:
      - users
      operationId: postApiV4UsersUserIdKeys
    get:
      description: Get the SSH keys of a specified user.
      produces:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID or username of the user
        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: Get the SSH keys of a specified user.
          schema:
            "$ref": "#/definitions/API_Entities_SSHKey"
      tags:
      - users
      operationId: getApiV4UsersUserIdKeys
  "/api/v4/users/{id}/keys/{key_id}":
    get:
      description: Get a SSH key of a specified user.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - in: path
        name: key_id
        description: The ID of the SSH key
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a SSH key of a specified user.
          schema:
            "$ref": "#/definitions/API_Entities_SSHKey"
      tags:
      - users
      operationId: getApiV4UsersIdKeysKeyId
    delete:
      description: Delete an existing SSH key from a specified user. Available only
        for admins.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - in: path
        name: key_id
        description: The ID of the SSH key
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Delete an existing SSH key from a specified user. Available
            only for admins.
          schema:
            "$ref": "#/definitions/API_Entities_SSHKey"
      tags:
      - users
      operationId: deleteApiV4UsersIdKeysKeyId
  "/api/v4/users/{id}/gpg_keys":
    post:
      summary: Add a GPG key to a specified user. Available only for admins.
      description: This feature was added in GitLab 10.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - name: postApiV4UsersIdGpgKeys
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UsersIdGpgKeys"
      responses:
        '201':
          description: Add a GPG key to a specified user. Available only for admins.
          schema:
            "$ref": "#/definitions/API_Entities_GpgKey"
      tags:
      - users
      operationId: postApiV4UsersIdGpgKeys
    get:
      summary: Get the GPG keys of a specified user.
      description: This feature was added in GitLab 10.0
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        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 GPG keys of a specified user.
          schema:
            "$ref": "#/definitions/API_Entities_GpgKey"
      tags:
      - users
      operationId: getApiV4UsersIdGpgKeys
  "/api/v4/users/{id}/gpg_keys/{key_id}":
    get:
      summary: Get a specific GPG key for a given user.
      description: This feature was added in GitLab 13.5
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - in: path
        name: key_id
        description: The ID of the GPG key
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a specific GPG key for a given user.
          schema:
            "$ref": "#/definitions/API_Entities_GpgKey"
      tags:
      - users
      operationId: getApiV4UsersIdGpgKeysKeyId
    delete:
      summary: Delete an existing GPG key from a specified user. Available only for
        admins.
      description: This feature was added in GitLab 10.0
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - in: path
        name: key_id
        description: The ID of the GPG key
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete an existing GPG key from a specified user. Available
            only for admins.
      tags:
      - users
      operationId: deleteApiV4UsersIdGpgKeysKeyId
  "/api/v4/users/{id}/gpg_keys/{key_id}/revoke":
    post:
      summary: Revokes an existing GPG key from a specified user. Available only for
        admins.
      description: This feature was added in GitLab 10.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - in: path
        name: key_id
        description: The ID of the GPG key
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Revokes an existing GPG key from a specified user. Available
            only for admins.
      tags:
      - users
      operationId: postApiV4UsersIdGpgKeysKeyIdRevoke
  "/api/v4/users/{id}/emails":
    post:
      description: Add an email address to a specified user. Available only for admins.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - name: postApiV4UsersIdEmails
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UsersIdEmails"
      responses:
        '201':
          description: Add an email address to a specified user. Available only for
            admins.
          schema:
            "$ref": "#/definitions/API_Entities_Email"
      tags:
      - users
      operationId: postApiV4UsersIdEmails
    get:
      description: Get the emails addresses of a specified user. Available only for
        admins.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        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 emails addresses of a specified user. Available only
            for admins.
          schema:
            "$ref": "#/definitions/API_Entities_Email"
      tags:
      - users
      operationId: getApiV4UsersIdEmails
  "/api/v4/users/{id}/emails/{email_id}":
    delete:
      description: Delete an email address of a specified user. Available only for
        admins.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - in: path
        name: email_id
        description: The ID of the email
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Delete an email address of a specified user. Available only
            for admins.
          schema:
            "$ref": "#/definitions/API_Entities_Email"
      tags:
      - users
      operationId: deleteApiV4UsersIdEmailsEmailId
  "/api/v4/users/{id}/activate":
    post:
      description: Activate a deactivated user. Available only for admins.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Activate a deactivated user. Available only for admins.
      tags:
      - users
      operationId: postApiV4UsersIdActivate
  "/api/v4/users/{id}/approve":
    post:
      description: Approve a pending user. Available only for admins.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Approve a pending user. Available only for admins.
      tags:
      - users
      operationId: postApiV4UsersIdApprove
  "/api/v4/users/{id}/reject":
    post:
      description: Reject a pending user. Available only for admins.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Reject a pending user. Available only for admins.
      tags:
      - users
      operationId: postApiV4UsersIdReject
  "/api/v4/users/{id}/deactivate":
    post:
      description: Deactivate an active user. Available only for admins.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Deactivate an active user. Available only for admins.
      tags:
      - users
      operationId: postApiV4UsersIdDeactivate
  "/api/v4/users/{id}/block":
    post:
      description: Block a user. Available only for admins.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Block a user. Available only for admins.
      tags:
      - users
      operationId: postApiV4UsersIdBlock
  "/api/v4/users/{id}/unblock":
    post:
      description: Unblock a user. Available only for admins.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Unblock a user. Available only for admins.
      tags:
      - users
      operationId: postApiV4UsersIdUnblock
  "/api/v4/users/{id}/ban":
    post:
      description: Ban a user. Available only for admins.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Ban a user. Available only for admins.
      tags:
      - users
      operationId: postApiV4UsersIdBan
  "/api/v4/users/{id}/unban":
    post:
      description: Unban a user. Available only for admins.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Unban a user. Available only for admins.
      tags:
      - users
      operationId: postApiV4UsersIdUnban
  "/api/v4/users/{user_id}/memberships":
    get:
      description: Get memberships
      produces:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - in: query
        name: type
        type: string
        enum:
        - Project
        - Namespace
        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: Get memberships
          schema:
            "$ref": "#/definitions/API_Entities_Membership"
      tags:
      - users
      operationId: getApiV4UsersUserIdMemberships
  "/api/v4/users/{id}/associations_count":
    get:
      description: Returns a list of a specified user's count of projects, groups,
        issues and merge requests.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID of the user to query.
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Returns a list of a specified user's count of projects, groups,
            issues and merge requests.
      tags:
      - users
      operationId: getApiV4UsersIdAssociationsCount
  "/api/v4/users/{user_id}/impersonation_tokens":
    get:
      summary: Retrieve impersonation tokens. Available only for admins.
      description: This feature was introduced in GitLab 9.0
      produces:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID of the user
        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
      - in: query
        name: state
        description: Filters (all|active|inactive) impersonation_tokens
        type: string
        default: all
        enum:
        - all
        - active
        - inactive
        required: false
      responses:
        '200':
          description: Retrieve impersonation tokens. Available only for admins.
          schema:
            "$ref": "#/definitions/API_Entities_ImpersonationToken"
      tags:
      - users
      operationId: getApiV4UsersUserIdImpersonationTokens
    post:
      summary: Create a impersonation token. Available only for admins.
      description: This feature was introduced in GitLab 9.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - name: postApiV4UsersUserIdImpersonationTokens
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UsersUserIdImpersonationTokens"
      responses:
        '201':
          description: Create a impersonation token. Available only for admins.
          schema:
            "$ref": "#/definitions/API_Entities_ImpersonationTokenWithToken"
      tags:
      - users
      operationId: postApiV4UsersUserIdImpersonationTokens
  "/api/v4/users/{user_id}/impersonation_tokens/{impersonation_token_id}":
    get:
      summary: Retrieve impersonation token. Available only for admins.
      description: This feature was introduced in GitLab 9.0
      produces:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - in: path
        name: impersonation_token_id
        description: The ID of the impersonation token
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Retrieve impersonation token. Available only for admins.
          schema:
            "$ref": "#/definitions/API_Entities_ImpersonationToken"
      tags:
      - users
      operationId: getApiV4UsersUserIdImpersonationTokensImpersonationTokenId
    delete:
      summary: Revoke a impersonation token. Available only for admins.
      description: This feature was introduced in GitLab 9.0
      produces:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - in: path
        name: impersonation_token_id
        description: The ID of the impersonation token
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Revoke a impersonation token. Available only for admins.
      tags:
      - users
      operationId: deleteApiV4UsersUserIdImpersonationTokensImpersonationTokenId
  "/api/v4/users/{user_id}/personal_access_tokens":
    post:
      summary: Create a personal access token. Available only for admins.
      description: This feature was introduced in GitLab 13.6
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID of the user
        type: integer
        format: int32
        required: true
      - name: postApiV4UsersUserIdPersonalAccessTokens
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UsersUserIdPersonalAccessTokens"
      responses:
        '201':
          description: Create a personal access token. Available only for admins.
          schema:
            "$ref": "#/definitions/API_Entities_PersonalAccessTokenWithToken"
      tags:
      - users
      operationId: postApiV4UsersUserIdPersonalAccessTokens
  "/api/v4/features":
    get:
      summary: List all features
      description: Get a list of all persisted features, with its gate values.
      produces:
      - application/json
      responses:
        '200':
          description: List all features
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Feature"
      tags:
      - features
      operationId: getApiV4Features
  "/api/v4/features/definitions":
    get:
      summary: List all feature definitions
      description: Get a list of all feature definitions.
      produces:
      - application/json
      responses:
        '200':
          description: List all feature definitions
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Feature_Definition"
      tags:
      - features
      operationId: getApiV4FeaturesDefinitions
  "/api/v4/features/{name}":
    post:
      summary: Set or create a feature
      description: Set a feature's gate value. If a feature with the given name doesn't
        exist yet, it's created. The value can be a boolean, or an integer to indicate
        percentage of time.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: name
        type: integer
        format: int32
        required: true
      - name: postApiV4FeaturesName
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4FeaturesName"
      responses:
        '201':
          description: Set or create a feature
          schema:
            "$ref": "#/definitions/API_Entities_Feature"
        '400':
          description: Bad request
      tags:
      - features
      operationId: postApiV4FeaturesName
    delete:
      summary: Delete a feature
      description: Removes a feature gate. Response is equal when the gate exists,
        or doesn't.
      produces:
      - application/json
      parameters:
      - in: path
        name: name
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a feature
      tags:
      - features
      operationId: deleteApiV4FeaturesName
  "/api/v4/geo/proxy":
    get:
      summary: Determine if a Geo site should proxy requests
      description: Returns a Geo proxy response
      produces:
      - application/json
      responses:
        '200':
          description: Returns a Geo proxy response
        '403':
          description: Forbidden
      tags:
      - geo
      operationId: getApiV4GeoProxy
  "/api/v4/geo/retrieve/{replicable_name}/{replicable_id}":
    get:
      summary: Internal endpoint that returns a replicable file
      description: Returns a replicable file from store (via CDN or sendfile)
      produces:
      - application/json
      parameters:
      - in: path
        name: replicable_name
        description: The replicable name of a replicator instance
        type: string
        required: true
        example: package_file
      - in: path
        name: replicable_id
        description: The replicable ID of a replicable instance
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Returns a replicable file from store (via CDN or sendfile)
        '401':
          description: 401 Unauthorized
        '404':
          description: 404 Not found
      tags:
      - geo
      operationId: getApiV4GeoRetrieveReplicableNameReplicableId
  "/api/v4/geo/repositories/{gl_repository}/pipeline_refs":
    get:
      summary: Used by secondary runners to verify the secondary instance has the
        very latest version
      description: Returns the list of pipeline refs for the project
      produces:
      - application/json
      parameters:
      - in: path
        name: gl_repository
        description: The repository to check
        type: string
        required: true
      responses:
        '200':
          description: Returns the list of pipeline refs for the project
          schema:
            type: array
            items:
              "$ref": "#/definitions/EE_API_Entities_Geo_PipelineRefs"
        '401':
          description: 401 Unauthorized
        '404':
          description: 404 Not found
      tags:
      - geo
      operationId: getApiV4GeoRepositoriesGlRepositoryPipelineRefs
  "/api/v4/geo/status":
    post:
      summary: Internal endpoint that posts the current node status
      description: Posts the current node status to the primary site
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4GeoStatus
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GeoStatus"
      responses:
        '200':
          description: Posts the current node status to the primary site
          schema:
            "$ref": "#/definitions/EE_API_Entities_GeoNodeStatus"
        '400':
          description: 400 Bad Request
        '401':
          description: 401 Unauthorized
      tags:
      - geo
      operationId: postApiV4GeoStatus
  "/api/v4/geo/proxy_git_ssh/info_refs_upload_pack":
    post:
      summary: Internal endpoint that returns info refs upload pack for git clone/pull
      description: |-
        Responsible for making HTTP GET /repo.git/info/refs?service=git-upload-pack
                          request from secondary gitlab-shell to primary
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4GeoProxyGitSshInfoRefsUploadPack
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GeoProxyGitSshInfoRefsUploadPack"
      responses:
        '200':
          description: |-
            Responsible for making HTTP GET /repo.git/info/refs?service=git-upload-pack
                              request from secondary gitlab-shell to primary
        '401':
          description: 401 Unauthorized
      tags:
      - geo
      operationId: postApiV4GeoProxyGitSshInfoRefsUploadPack
  "/api/v4/geo/proxy_git_ssh/upload_pack":
    post:
      summary: Internal endpoint that posts git-upload-pack for git clone/pull
      description: |-
        Responsible for making HTTP POST /repo.git/git-upload-pack
                          request from secondary gitlab-shell to primary
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4GeoProxyGitSshUploadPack
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GeoProxyGitSshUploadPack"
      responses:
        '200':
          description: |-
            Responsible for making HTTP POST /repo.git/git-upload-pack
                              request from secondary gitlab-shell to primary
        '401':
          description: 401 Unauthorized
      tags:
      - geo
      operationId: postApiV4GeoProxyGitSshUploadPack
  "/api/v4/geo/proxy_git_ssh/info_refs_receive_pack":
    post:
      summary: Internal endpoint that returns git-received-pack output for git push
      description: |-
        Responsible for making HTTP GET /repo.git/info/refs?service=git-receive-pack
                          request from secondary gitlab-shell to primary
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4GeoProxyGitSshInfoRefsReceivePack
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GeoProxyGitSshInfoRefsReceivePack"
      responses:
        '200':
          description: |-
            Responsible for making HTTP GET /repo.git/info/refs?service=git-receive-pack
                              request from secondary gitlab-shell to primary
        '401':
          description: 401 Unauthorized
      tags:
      - geo
      operationId: postApiV4GeoProxyGitSshInfoRefsReceivePack
  "/api/v4/geo/proxy_git_ssh/receive_pack":
    post:
      summary: Internal endpoint that posts git-receive-pack for git push
      description: |-
        Responsible for making HTTP POST /repo.git/info/refs?service=git-receive-pack
                          request from secondary gitlab-shell to primary
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4GeoProxyGitSshReceivePack
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4GeoProxyGitSshReceivePack"
      responses:
        '200':
          description: |-
            Responsible for making HTTP POST /repo.git/info/refs?service=git-receive-pack
                              request from secondary gitlab-shell to primary
        '401':
          description: 401 Unauthorized
      tags:
      - geo
      operationId: postApiV4GeoProxyGitSshReceivePack
  "/api/v4/geo/node_proxy/{id}/graphql":
    post:
      summary: Query the GraphQL endpoint of an existing Geo node
      description: Query the GraphQL endpoint of an existing Geo node
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the Geo node
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Query the GraphQL endpoint of an existing Geo node
        '404':
          description: 404 GeoNode Not Found
      tags:
      - geo
      operationId: postApiV4GeoNodeProxyIdGraphql
  "/api/v4/integrations/slack/events":
    post:
      description: Receive Slack events
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4IntegrationsSlackEvents
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4IntegrationsSlackEvents"
      responses:
        '200':
          description: Successfully processed event
        '204':
          description: Failed to process event
        '401':
          description: Unauthorized
      tags:
      - integrations
      operationId: postApiV4IntegrationsSlackEvents
  "/api/v4/integrations/slack/interactions":
    post:
      produces:
      - application/json
      consumes:
      - application/json
      responses:
        '201':
          description: created Interaction
      tags:
      - integrations
      operationId: postApiV4IntegrationsSlackInteractions
  "/api/v4/integrations/slack/options":
    post:
      produces:
      - application/json
      consumes:
      - application/json
      responses:
        '201':
          description: created Option
      tags:
      - integrations
      operationId: postApiV4IntegrationsSlackOptions
  "/api/v4/integrations/jira_connect/subscriptions":
    post:
      summary: Subscribe a namespace to a JiraConnectInstallation
      description: Subscribes the namespace to the JiraConnectInstallation
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4IntegrationsJiraConnectSubscriptions
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4IntegrationsJiraConnectSubscriptions"
      responses:
        '201':
          description: Subscribe a namespace to a JiraConnectInstallation
          schema:
            "$ref": "#/definitions/API_Entities_BasicSuccess"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - jira_connect_subscriptions
      operationId: postApiV4IntegrationsJiraConnectSubscriptions
  "/api/v4/keys/{id}":
    get:
      summary: Get single ssh key by id. Only available to admin users
      description: |-
        Get SSH key with user by ID of an SSH key. Note only administrators can lookup SSH key with user by ID\
                of an SSH key
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of an SSH key
        type: string
        required: true
        example: '2'
      responses:
        '200':
          description: Get single ssh key by id. Only available to admin users
          schema:
            "$ref": "#/definitions/API_Entities_SSHKeyWithUser"
      tags:
      - keys
      operationId: getApiV4KeysId
  "/api/v4/keys":
    get:
      summary: Get user by fingerprint of SSH key
      description: |-
        You can search for a user that owns a specific SSH key. Note only administrators can lookup SSH key\
                with the fingerprint of an SSH key
      produces:
      - application/json
      parameters:
      - in: query
        name: fingerprint
        description: The fingerprint of an SSH key
        type: string
        required: true
        example: ba:81:59:68:d7:6c:cd:02:02:bf:6a:9b:55:4e:af:d1
      responses:
        '200':
          description: Get user by fingerprint of SSH key
          schema:
            "$ref": "#/definitions/API_Entities_UserWithAdmin"
      tags:
      - keys
      operationId: getApiV4Keys
  "/api/v4/markdown":
    post:
      summary: Render an arbitrary Markdown document
      description: This feature was introduced in GitLab 11.0.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4Markdown
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4Markdown"
      responses:
        '201':
          description: Render an arbitrary Markdown document
          schema:
            "$ref": "#/definitions/API_Entities_Markdown"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
      tags:
      - markdown
      operationId: postApiV4Markdown
  "/api/v4/merge_requests":
    get:
      summary: List merge requests
      description: Get all merge requests the authenticated user has access to. By
        default it returns only merge requests created by the current user. To get
        all merge requests, use parameter `scope=all`.
      produces:
      - application/json
      parameters:
      - in: query
        name: author_id
        description: Returns merge requests created by the given user `id`. Mutually
          exclusive with `author_username`. Combine with `scope=all` or `scope=assigned_to_me`.
        type: integer
        format: int32
        required: false
      - in: query
        name: author_username
        description: Returns merge requests created by the given `username`. Mutually
          exclusive with `author_id`.
        type: string
        required: false
      - in: query
        name: assignee_id
        description: Returns merge requests assigned to the given user `id`. `None`
          returns unassigned merge requests. `Any` returns merge requests with an
          assignee.
        type: integer
        format: int32
        required: false
      - in: query
        name: assignee_username
        description: Returns merge requests created by the given `username`. Mutually
          exclusive with `author_id`.
        type: array
        items:
          type: string
        required: false
      - in: query
        name: reviewer_username
        description: Returns merge requests which have the user as a reviewer with
          the given `username`. `None` returns merge requests with no reviewers. `Any`
          returns merge requests with any reviewer. Mutually exclusive with `reviewer_id`.
          Introduced in GitLab 13.8.
        type: string
        required: false
      - in: query
        name: labels
        description: Returns merge requests matching a comma-separated list of labels.
          `None` lists all merge requests with no labels. `Any` lists all merge requests
          with at least one label. Predefined names are case-insensitive.
        type: array
        items:
          type: string
        required: false
      - in: query
        name: milestone
        description: Returns merge requests for a specific milestone. `None` returns
          merge requests with no milestone. `Any` returns merge requests that have
          an assigned milestone.
        type: string
        required: false
      - in: query
        name: my_reaction_emoji
        description: Returns merge requests reacted by the authenticated user by the
          given `emoji`. `None` returns issues not given a reaction. `Any` returns
          issues given at least one reaction.
        type: string
        required: false
      - in: query
        name: reviewer_id
        description: Returns merge requests which have the user as a reviewer with
          the given user `id`. `None` returns merge requests with no reviewers. `Any`
          returns merge requests with any reviewer. Mutually exclusive with `reviewer_username`.
        type: integer
        format: int32
        required: false
      - in: query
        name: state
        description: Returns `all` merge requests or just those that are `opened`,
          `closed`, `locked`, or `merged`.
        type: string
        default: all
        enum:
        - opened
        - closed
        - locked
        - merged
        - all
        required: false
      - in: query
        name: order_by
        description: Returns merge requests ordered by `created_at`, `label_priority`,
          `milestone_due`, `popularity`, `priority`, `title` or `updated_at` fields.
          Introduced in GitLab 14.8.
        type: string
        default: created_at
        enum:
        - created_at
        - label_priority
        - milestone_due
        - popularity
        - priority
        - title
        - updated_at
        required: false
      - in: query
        name: sort
        description: Returns merge requests sorted in `asc` or `desc` order.
        type: string
        default: desc
        enum:
        - asc
        - desc
        required: false
      - in: query
        name: with_labels_details
        description: 'If `true`, response returns more details for each label in labels
          field: `:name`,`:color`, `:description`, `:description_html`, `:text_color`'
        type: boolean
        default: false
        required: false
      - in: query
        name: with_merge_status_recheck
        description: If `true`, this projection requests (but does not guarantee)
          that the `merge_status` field be recalculated asynchronously. Introduced
          in GitLab 13.0.
        type: boolean
        default: false
        required: false
      - in: query
        name: created_after
        description: Returns merge requests created on or after the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: created_before
        description: Returns merge requests created on or before the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: updated_after
        description: Returns merge requests updated on or after the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: updated_before
        description: Returns merge requests updated on or before the given time. Expected
          in ISO 8601 format.
        type: string
        format: date-time
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: view
        description: If simple, returns the `iid`, URL, title, description, and basic
          state of merge request
        type: string
        enum:
        - simple
        required: false
      - in: query
        name: scope
        description: 'Returns merge requests for the given scope: `created_by_me`,
          `assigned_to_me` or `all`'
        type: string
        default: created_by_me
        enum:
        - created-by-me
        - assigned-to-me
        - created_by_me
        - assigned_to_me
        - all
        required: false
      - in: query
        name: source_branch
        description: Returns merge requests with the given source branch
        type: string
        required: false
      - in: query
        name: source_project_id
        description: Returns merge requests with the given source project id
        type: integer
        format: int32
        required: false
      - in: query
        name: target_branch
        description: Returns merge requests with the given target branch
        type: string
        required: false
      - in: query
        name: search
        description: Search merge requests against their `title` and `description`.
        type: string
        required: false
      - in: query
        name: in
        description: Modify the scope of the search attribute. `title`, `description`,
          or a string joining them with comma.
        type: string
        required: false
        example: title,description
      - in: query
        name: wip
        description: Filter merge requests against their `wip` status. `yes` to return
          only draft merge requests, `no` to return non-draft merge requests.
        type: string
        enum:
        - 'yes'
        - 'no'
        required: false
      - in: query
        name: not[author_id]
        description: "`<Negated>` Returns merge requests created by the given user
          `id`. Mutually exclusive with `author_username`. Combine with `scope=all`
          or `scope=assigned_to_me`."
        type: integer
        format: int32
        required: false
      - in: query
        name: not[author_username]
        description: "`<Negated>` Returns merge requests created by the given `username`.
          Mutually exclusive with `author_id`."
        type: string
        required: false
      - in: query
        name: not[assignee_id]
        description: "`<Negated>` Returns merge requests assigned to the given user
          `id`. `None` returns unassigned merge requests. `Any` returns merge requests
          with an assignee."
        type: integer
        format: int32
        required: false
      - in: query
        name: not[assignee_username]
        description: "`<Negated>` Returns merge requests created by the given `username`.
          Mutually exclusive with `author_id`."
        type: array
        items:
          type: string
        required: false
      - in: query
        name: not[reviewer_username]
        description: "`<Negated>` Returns merge requests which have the user as a
          reviewer with the given `username`. `None` returns merge requests with no
          reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive
          with `reviewer_id`. Introduced in GitLab 13.8."
        type: string
        required: false
      - in: query
        name: not[labels]
        description: "`<Negated>` Returns merge requests matching a comma-separated
          list of labels. `None` lists all merge requests with no labels. `Any` lists
          all merge requests with at least one label. Predefined names are case-insensitive."
        type: array
        items:
          type: string
        required: false
      - in: query
        name: not[milestone]
        description: "`<Negated>` Returns merge requests for a specific milestone.
          `None` returns merge requests with no milestone. `Any` returns merge requests
          that have an assigned milestone."
        type: string
        required: false
      - in: query
        name: not[my_reaction_emoji]
        description: "`<Negated>` Returns merge requests reacted by the authenticated
          user by the given `emoji`. `None` returns issues not given a reaction. `Any`
          returns issues given at least one reaction."
        type: string
        required: false
      - in: query
        name: not[reviewer_id]
        description: "`<Negated>` Returns merge requests which have the user as a
          reviewer with the given user `id`. `None` returns merge requests with no
          reviewers. `Any` returns merge requests with any reviewer. Mutually exclusive
          with `reviewer_username`."
        type: integer
        format: int32
        required: false
      - in: query
        name: deployed_before
        description: Returns merge requests deployed before the given date/time. Expected
          in ISO 8601 format.
        type: string
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: deployed_after
        description: Returns merge requests deployed after the given date/time. Expected
          in ISO 8601 format
        type: string
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: environment
        description: Returns merge requests deployed to the given environment
        type: string
        required: false
        example: '2019-03-15T08:00:00Z'
      - in: query
        name: approved
        description: Filters merge requests by their `approved` status. `yes` returns
          only approved merge requests. `no` returns only non-approved merge requests.
        type: string
        enum:
        - 'yes'
        - 'no'
        required: false
      - in: query
        name: merge_user_id
        description: Returns merge requests which have been merged by the user with
          the given user `id`. Mutually exclusive with `merge_user_username`.
        type: integer
        format: int32
        required: false
      - in: query
        name: merge_user_username
        description: Returns merge requests which have been merged by the user with
          the given `username`. Mutually exclusive with `merge_user_id`.
        type: string
        required: false
      - in: query
        name: approver_ids
        description: Return merge requests which have specified the users with the
          given IDs as an individual approver
        type: string
        required: false
      - in: query
        name: approved_by_ids
        description: Return merge requests which have been approved by the specified
          users with the given IDs
        type: string
        required: false
      - in: query
        name: approved_by_usernames
        description: |-
          Return merge requests which have been approved by the specified users with the given
                      usernames
        type: string
        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: List merge requests
          schema:
            "$ref": "#/definitions/API_Entities_MergeRequestBasic"
        '401':
          description: Unauthorized
        '422':
          description: Unprocessable entity
      tags:
      - merge_requests
      operationId: getApiV4MergeRequests
  "/api/v4/namespaces/{id}":
    put:
      description: Update a namespace
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: putApiV4NamespacesId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4NamespacesId"
      responses:
        '200':
          description: Update a namespace
          schema:
            "$ref": "#/definitions/API_Entities_Namespace"
      tags:
      - namespaces
      operationId: putApiV4NamespacesId
    get:
      summary: Get namespace by ID
      description: Get a namespace by ID
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID or URL-encoded path of the namespace
        type: string
        required: true
      responses:
        '200':
          description: Get namespace by ID
          schema:
            "$ref": "#/definitions/API_Entities_Namespace"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - namespaces
      operationId: getApiV4NamespacesId
  "/api/v4/namespaces/{id}/gitlab_subscription":
    post:
      description: Create a subscription for the namespace
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: postApiV4NamespacesIdGitlabSubscription
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4NamespacesIdGitlabSubscription"
      responses:
        '201':
          description: Create a subscription for the namespace
          schema:
            "$ref": "#/definitions/API_Entities_GitlabSubscription"
      tags:
      - namespaces
      operationId: postApiV4NamespacesIdGitlabSubscription
    get:
      description: Returns the subscription for the namespace
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Returns the subscription for the namespace
          schema:
            "$ref": "#/definitions/API_Entities_GitlabSubscription"
      tags:
      - namespaces
      operationId: getApiV4NamespacesIdGitlabSubscription
    put:
      description: Update the subscription for the namespace
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: putApiV4NamespacesIdGitlabSubscription
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4NamespacesIdGitlabSubscription"
      responses:
        '200':
          description: Update the subscription for the namespace
          schema:
            "$ref": "#/definitions/API_Entities_GitlabSubscription"
      tags:
      - namespaces
      operationId: putApiV4NamespacesIdGitlabSubscription
  "/api/v4/namespaces/{id}/storage/limit_exclusion":
    post:
      summary: Creates a storage limit exclusion for a Namespace
      description: Creates a Namespaces::Storage::LimitExclusion
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: postApiV4NamespacesIdStorageLimitExclusion
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4NamespacesIdStorageLimitExclusion"
      responses:
        '201':
          description: Creates a storage limit exclusion for a Namespace
          schema:
            "$ref": "#/definitions/API_Entities_Namespaces_Storage_LimitExclusion"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - namespaces
      operationId: postApiV4NamespacesIdStorageLimitExclusion
    delete:
      summary: Removes a storage limit exclusion for a Namespace
      description: Removes a Namespaces::Storage::LimitExclusion
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Removes a storage limit exclusion for a Namespace
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable entity
      tags:
      - namespaces
      operationId: deleteApiV4NamespacesIdStorageLimitExclusion
  "/api/v4/namespaces/storage/limit_exclusions":
    get:
      summary: Retrieve all limit exclusions
      description: Gets all records for namespaces that have been excluded
      produces:
      - application/json
      parameters:
      - 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: Retrieve all limit exclusions
          schema:
            "$ref": "#/definitions/API_Entities_Namespaces_Storage_LimitExclusion"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      tags:
      - namespaces
      operationId: getApiV4NamespacesStorageLimitExclusions
  "/api/v4/namespaces":
    get:
      summary: List namespaces
      description: Get a list of the namespaces of the authenticated user. If the
        user is an administrator, a list of all namespaces in the GitLab instance
        is shown.
      produces:
      - application/json
      parameters:
      - in: query
        name: search
        description: Returns a list of namespaces the user is authorized to view based
          on the search criteria
        type: string
        required: false
      - in: query
        name: owned_only
        description: In GitLab 14.2 and later, returns a list of owned namespaces
          only
        type: boolean
        required: false
      - in: query
        name: top_level_only
        description: Only include top level namespaces
        type: boolean
        default: false
        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
      - in: query
        name: requested_hosted_plan
        description: Name of the hosted plan requested by the customer
        type: string
        required: false
      responses:
        '200':
          description: List namespaces
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Namespace"
        '401':
          description: Unauthorized
      tags:
      - namespaces
      operationId: getApiV4Namespaces
  "/api/v4/namespaces/{id}/exists":
    get:
      summary: Get existence of a namespace
      description: Get existence of a namespace by path. Suggests a new namespace
        path that does not already exist.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: Namespace’s path
        type: string
        required: true
      - in: query
        name: parent_id
        description: The ID of the parent namespace. If no ID is specified, only top-level
          namespaces are considered.
        type: integer
        format: int32
        required: false
      responses:
        '200':
          description: Get existence of a namespace
          schema:
            "$ref": "#/definitions/API_Entities_NamespaceExistence"
        '401':
          description: Unauthorized
      tags:
      - namespaces
      operationId: getApiV4NamespacesIdExists
  "/api/v4/pages/domains":
    get:
      description: Get all pages domains
      produces:
      - application/json
      parameters:
      - 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 all pages domains
          schema:
            "$ref": "#/definitions/API_Entities_PagesDomainBasic"
      tags:
      - pages
      operationId: getApiV4PagesDomains
  "/api/v4/personal_access_tokens/self":
    get:
      summary: Get single personal access token
      description: Get the details of a personal access token by passing it to the
        API in a header
      produces:
      - application/json
      responses:
        '200':
          description: Get single personal access token
          schema:
            "$ref": "#/definitions/API_Entities_PersonalAccessToken"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - personal_access_tokens
      operationId: getApiV4PersonalAccessTokensSelf
    delete:
      summary: Revoke a personal access token
      description: Revoke a personal access token by passing it to the API in a header
      produces:
      - application/json
      responses:
        '204':
          description: Revoke a personal access token
        '400':
          description: Bad Request
      tags:
      - personal_access_tokens
      operationId: deleteApiV4PersonalAccessTokensSelf
  "/api/v4/personal_access_tokens/self/rotate":
    post:
      summary: Rotate a personal access token
      description: Rotates a personal access token by passing it to the API in a header
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4PersonalAccessTokensSelfRotate
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4PersonalAccessTokensSelfRotate"
      responses:
        '200':
          description: Rotate a personal access token
          schema:
            "$ref": "#/definitions/API_Entities_PersonalAccessTokenWithToken"
        '400':
          description: Bad Request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '405':
          description: Method not allowed
      tags:
      - personal_access_tokens
      operationId: postApiV4PersonalAccessTokensSelfRotate
  "/api/v4/personal_access_tokens":
    get:
      summary: List personal access tokens
      description: Get all personal access tokens the authenticated user has access
        to.
      produces:
      - application/json
      parameters:
      - in: query
        name: user_id
        description: Filter PATs by User ID
        type: integer
        format: int32
        required: false
        example: 2
      - in: query
        name: revoked
        description: Filter PATs where revoked state matches parameter
        type: boolean
        required: false
      - in: query
        name: state
        description: Filter PATs which are either active or not
        type: string
        enum:
        - active
        - inactive
        required: false
        example: active
      - in: query
        name: created_before
        description: Filter PATs which were created before given datetime
        type: string
        format: date-time
        required: false
        example: '2022-01-01'
      - in: query
        name: created_after
        description: Filter PATs which were created after given datetime
        type: string
        format: date-time
        required: false
        example: '2021-01-01'
      - in: query
        name: last_used_before
        description: Filter PATs which were used before given datetime
        type: string
        format: date-time
        required: false
        example: '2021-01-01'
      - in: query
        name: last_used_after
        description: Filter PATs which were used after given datetime
        type: string
        format: date-time
        required: false
        example: '2022-01-01'
      - in: query
        name: search
        description: Filters PATs by its name
        type: string
        required: false
        example: token
      - 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: List personal access tokens
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_PersonalAccessToken"
        '401':
          description: Unauthorized
      tags:
      - personal_access_tokens
      operationId: getApiV4PersonalAccessTokens
  "/api/v4/personal_access_tokens/{id}":
    get:
      summary: Get single personal access token
      description: Get a personal access token by using the ID of the personal access
        token.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get single personal access token
          schema:
            "$ref": "#/definitions/API_Entities_PersonalAccessToken"
        '401':
          description: Unauthorized
        '404':
          description: Not found
      tags:
      - personal_access_tokens
      operationId: getApiV4PersonalAccessTokensId
    delete:
      summary: Revoke a personal access token
      description: Revoke a personal access token by using the ID of the personal
        access token.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Revoke a personal access token
        '400':
          description: Bad Request
      tags:
      - personal_access_tokens
      operationId: deleteApiV4PersonalAccessTokensId
  "/api/v4/personal_access_tokens/{id}/rotate":
    post:
      summary: Rotate personal access token
      description: Roates a personal access token.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      - name: postApiV4PersonalAccessTokensIdRotate
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4PersonalAccessTokensIdRotate"
      responses:
        '201':
          description: Rotate personal access token
          schema:
            "$ref": "#/definitions/API_Entities_PersonalAccessTokenWithToken"
      tags:
      - personal_access_tokens
      operationId: postApiV4PersonalAccessTokensIdRotate
  "/api/v4/project_repository_storage_moves":
    get:
      summary: Get a list of all project repository storage moves
      description: This feature was introduced in GitLab 13.0.
      produces:
      - application/json
      parameters:
      - 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 a list of all project repository storage moves
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Projects_RepositoryStorageMove"
      tags:
      - project_repository_storage_moves
      operationId: getApiV4ProjectRepositoryStorageMoves
    post:
      summary: Schedule bulk project repository storage moves
      description: This feature was introduced in GitLab 13.7.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4ProjectRepositoryStorageMoves
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ProjectRepositoryStorageMoves"
      responses:
        '202':
          description: Schedule bulk project repository storage moves
      tags:
      - project_repository_storage_moves
      operationId: postApiV4ProjectRepositoryStorageMoves
  "/api/v4/project_repository_storage_moves/{repository_storage_move_id}":
    get:
      summary: Get a project repository storage move
      description: This feature was introduced in GitLab 13.0.
      produces:
      - application/json
      parameters:
      - in: path
        name: repository_storage_move_id
        description: The ID of a project repository storage move
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a project repository storage move
          schema:
            "$ref": "#/definitions/API_Entities_Projects_RepositoryStorageMove"
      tags:
      - project_repository_storage_moves
      operationId: getApiV4ProjectRepositoryStorageMovesRepositoryStorageMoveId
  "/api/v4/snippets":
    get:
      summary: Get a snippets list for an authenticated user
      description: This feature was introduced in GitLab 8.15.
      produces:
      - application/json
      parameters:
      - in: query
        name: created_after
        description: Return snippets created after the specified time
        type: string
        format: date-time
        required: false
      - in: query
        name: created_before
        description: Return snippets created before the specified time
        type: string
        format: date-time
        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: Get a snippets list for an authenticated user
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Snippet"
        '404':
          description: Not found
      tags:
      - snippets
      operationId: getApiV4Snippets
    post:
      summary: Create new snippet
      description: This feature was introduced in GitLab 8.15.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4Snippets
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4Snippets"
      responses:
        '201':
          description: Create new snippet
          schema:
            "$ref": "#/definitions/API_Entities_PersonalSnippet"
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - snippets
      operationId: postApiV4Snippets
  "/api/v4/snippets/public":
    get:
      summary: List all public personal snippets current_user has access to
      description: This feature was introduced in GitLab 8.15.
      produces:
      - application/json
      parameters:
      - in: query
        name: created_after
        description: Return snippets created after the specified time
        type: string
        format: date-time
        required: false
      - in: query
        name: created_before
        description: Return snippets created before the specified time
        type: string
        format: date-time
        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: List all public personal snippets current_user has access to
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_PersonalSnippet"
        '404':
          description: Not found
      tags:
      - snippets
      operationId: getApiV4SnippetsPublic
  "/api/v4/snippets/all":
    get:
      summary: List all snippets current_user has access to
      description: This feature was introduced in GitLab 16.3.
      produces:
      - application/json
      parameters:
      - in: query
        name: created_after
        description: Return snippets created after the specified time
        type: string
        format: date-time
        required: false
      - in: query
        name: created_before
        description: Return snippets created before the specified time
        type: string
        format: date-time
        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
      - in: query
        name: repository_storage
        description: Filter by repository storage used by the snippet
        type: string
        required: false
      responses:
        '200':
          description: List all snippets current_user has access to
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Snippet"
        '404':
          description: Not found
      tags:
      - snippets
      operationId: getApiV4SnippetsAll
  "/api/v4/snippets/{id}":
    get:
      summary: Get a single snippet
      description: This feature was introduced in GitLab 8.15.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a snippet
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single snippet
          schema:
            "$ref": "#/definitions/API_Entities_PersonalSnippet"
        '404':
          description: Not found
      tags:
      - snippets
      operationId: getApiV4SnippetsId
    put:
      summary: Update an existing snippet
      description: This feature was introduced in GitLab 8.15.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a snippet
        type: integer
        format: int32
        required: true
      - name: putApiV4SnippetsId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4SnippetsId"
      responses:
        '200':
          description: Update an existing snippet
          schema:
            "$ref": "#/definitions/API_Entities_PersonalSnippet"
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - snippets
      operationId: putApiV4SnippetsId
    delete:
      summary: Remove snippet
      description: This feature was introduced in GitLab 8.15.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a snippet
        type: integer
        format: int32
        required: true
      responses:
        '400':
          description: Validation error
        '204':
          description: Remove snippet
          schema:
            "$ref": "#/definitions/API_Entities_PersonalSnippet"
        '404':
          description: Not found
      tags:
      - snippets
      operationId: deleteApiV4SnippetsId
  "/api/v4/snippets/{id}/raw":
    get:
      summary: Get a raw snippet
      description: This feature was introduced in GitLab 8.15.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a snippet
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a raw snippet
        '404':
          description: Not found
      tags:
      - snippets
      operationId: getApiV4SnippetsIdRaw
  "/api/v4/snippets/{id}/files/{ref}/{file_path}/raw":
    get:
      description: Get raw snippet file contents from the repository
      produces:
      - application/json
      parameters:
      - in: path
        name: file_path
        description: The url encoded path to the file, e.g. lib%2Fclass%2Erb
        type: string
        required: true
      - in: path
        name: ref
        description: The name of branch, tag or commit
        type: string
        required: true
      - in: path
        name: id
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get raw snippet file contents from the repository
        '404':
          description: Not found
      tags:
      - snippets
      operationId: getApiV4SnippetsIdFilesRefFilePathRaw
  "/api/v4/snippets/{id}/user_agent_detail":
    get:
      description: Get the user agent details for a snippet
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a snippet
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get the user agent details for a snippet
          schema:
            "$ref": "#/definitions/API_Entities_UserAgentDetail"
        '404':
          description: Not found
      tags:
      - snippets
      operationId: getApiV4SnippetsIdUserAgentDetail
  "/api/v4/snippets/{id}/repository_storage_moves":
    get:
      summary: Get a list of all snippets repository storage moves
      description: This feature was introduced in GitLab 13.8.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a snippet
        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: Get a list of all snippets repository storage moves
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Snippets_RepositoryStorageMove"
      tags:
      - snippets
      operationId: getApiV4SnippetsIdRepositoryStorageMoves
    post:
      summary: Schedule a snippet repository storage move
      description: This feature was introduced in GitLab 13.8.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a snippet
        type: string
        required: true
      - name: postApiV4SnippetsIdRepositoryStorageMoves
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4SnippetsIdRepositoryStorageMoves"
      responses:
        '201':
          description: Schedule a snippet repository storage move
          schema:
            "$ref": "#/definitions/API_Entities_Snippets_RepositoryStorageMove"
      tags:
      - snippets
      operationId: postApiV4SnippetsIdRepositoryStorageMoves
  "/api/v4/snippets/{id}/repository_storage_moves/{repository_storage_move_id}":
    get:
      summary: Get a snippet repository storage move
      description: This feature was introduced in GitLab 13.8.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of a snippet
        type: string
        required: true
      - in: path
        name: repository_storage_move_id
        description: The ID of a snippet repository storage move
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a snippet repository storage move
          schema:
            "$ref": "#/definitions/API_Entities_Snippets_RepositoryStorageMove"
      tags:
      - snippets
      operationId: getApiV4SnippetsIdRepositoryStorageMovesRepositoryStorageMoveId
  "/api/v4/snippet_repository_storage_moves":
    get:
      summary: Get a list of all snippet repository storage moves
      description: This feature was introduced in GitLab 13.8.
      produces:
      - application/json
      parameters:
      - 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 a list of all snippet repository storage moves
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Snippets_RepositoryStorageMove"
      tags:
      - snippet_repository_storage_moves
      operationId: getApiV4SnippetRepositoryStorageMoves
    post:
      summary: Schedule bulk snippet repository storage moves
      description: This feature was introduced in GitLab 13.8.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4SnippetRepositoryStorageMoves
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4SnippetRepositoryStorageMoves"
      responses:
        '202':
          description: Schedule bulk snippet repository storage moves
      tags:
      - snippet_repository_storage_moves
      operationId: postApiV4SnippetRepositoryStorageMoves
  "/api/v4/snippet_repository_storage_moves/{repository_storage_move_id}":
    get:
      summary: Get a snippet repository storage move
      description: This feature was introduced in GitLab 13.8.
      produces:
      - application/json
      parameters:
      - in: path
        name: repository_storage_move_id
        description: The ID of a snippet repository storage move
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a snippet repository storage move
          schema:
            "$ref": "#/definitions/API_Entities_Snippets_RepositoryStorageMove"
      tags:
      - snippet_repository_storage_moves
      operationId: getApiV4SnippetRepositoryStorageMovesRepositoryStorageMoveId
  "/api/v4/suggestions/{id}/apply":
    put:
      description: Apply suggestion patch in the Merge Request it was created
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: The ID of the suggestion
        type: integer
        format: int32
        required: true
      - name: putApiV4SuggestionsIdApply
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4SuggestionsIdApply"
      responses:
        '200':
          description: Apply suggestion patch in the Merge Request it was created
          schema:
            "$ref": "#/definitions/API_Entities_Suggestion"
      tags:
      - suggestions
      operationId: putApiV4SuggestionsIdApply
  "/api/v4/suggestions/batch_apply":
    put:
      description: Apply multiple suggestion patches in the Merge Request where they
        were created
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: putApiV4SuggestionsBatchApply
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4SuggestionsBatchApply"
      responses:
        '200':
          description: Apply multiple suggestion patches in the Merge Request where
            they were created
          schema:
            "$ref": "#/definitions/API_Entities_Suggestion"
      tags:
      - suggestions
      operationId: putApiV4SuggestionsBatchApply
  "/api/v4/hooks":
    get:
      summary: List system hooks
      description: Get a list of all system hooks
      produces:
      - application/json
      parameters:
      - 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: List system hooks
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_Hook"
      tags:
      - system_hooks
      operationId: getApiV4Hooks
    post:
      summary: Add new system hook
      description: Add a new system hook
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4Hooks
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4Hooks"
      responses:
        '201':
          description: Add new system hook
          schema:
            "$ref": "#/definitions/API_Entities_Hook"
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - system_hooks
      operationId: postApiV4Hooks
  "/api/v4/hooks/{hook_id}":
    get:
      summary: Get system hook
      description: Get a system hook by its ID. Introduced in GitLab 14.9.
      produces:
      - application/json
      parameters:
      - in: path
        name: hook_id
        description: The ID of the system hook
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get system hook
          schema:
            "$ref": "#/definitions/API_Entities_Hook"
        '404':
          description: Not found
      tags:
      - system_hooks
      operationId: getApiV4HooksHookId
    put:
      summary: Edit system hook
      description: Edits a system hook
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: hook_id
        description: The ID of the system hook
        type: integer
        format: int32
        required: true
      - name: putApiV4HooksHookId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4HooksHookId"
      responses:
        '200':
          description: Edit system hook
          schema:
            "$ref": "#/definitions/API_Entities_Hook"
        '400':
          description: Validation error
        '404':
          description: Not found
        '422':
          description: Unprocessable entity
      tags:
      - system_hooks
      operationId: putApiV4HooksHookId
    post:
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: created Hook
      tags:
      - hooks
      operationId: postApiV4HooksHookId
    delete:
      summary: Delete system hook
      description: Deletes a system hook
      produces:
      - application/json
      parameters:
      - in: path
        name: hook_id
        description: The ID of the system hook
        type: integer
        format: int32
        required: true
      responses:
        '404':
          description: Not found
        '204':
          description: Delete system hook
          schema:
            "$ref": "#/definitions/API_Entities_Hook"
      tags:
      - system_hooks
      operationId: deleteApiV4HooksHookId
  "/api/v4/hooks/{hook_id}/url_variables/{key}":
    put:
      description: Set a url variable
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        type: integer
        format: int32
        required: true
      - in: path
        name: key
        description: The key of the variable
        type: string
        required: true
      - name: putApiV4HooksHookIdUrlVariablesKey
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4HooksHookIdUrlVariablesKey"
      responses:
        '200':
          description: Set a url variable
      tags:
      - hooks
      operationId: putApiV4HooksHookIdUrlVariablesKey
    delete:
      description: Un-Set a url variable
      produces:
      - application/json
      parameters:
      - in: path
        name: hook_id
        description: The ID of the hook
        type: integer
        format: int32
        required: true
      - in: path
        name: key
        description: The key of the variable
        type: string
        required: true
      responses:
        '204':
          description: Un-Set a url variable
      tags:
      - hooks
      operationId: deleteApiV4HooksHookIdUrlVariablesKey
  "/api/v4/feature_flags/unleash/{project_id}":
    get:
      produces:
      - application/json
      parameters:
      - in: path
        name: project_id
        description: The ID of a project
        type: string
        required: true
      - in: query
        name: instance_id
        description: The instance ID of Unleash Client
        type: string
        required: false
      - in: query
        name: app_name
        description: The application name of Unleash Client
        type: string
        required: false
      responses:
        '200':
          description: get Unleash(s)
      tags:
      - feature_flags
      operationId: getApiV4FeatureFlagsUnleashProjectId
  "/api/v4/feature_flags/unleash/{project_id}/features":
    get:
      description: Get a list of features (deprecated, v2 client support)
      produces:
      - application/json
      parameters:
      - in: path
        name: project_id
        description: The ID of a project
        type: string
        required: true
      - in: query
        name: instance_id
        description: The instance ID of Unleash Client
        type: string
        required: false
      - in: query
        name: app_name
        description: The application name of Unleash Client
        type: string
        required: false
      responses:
        '200':
          description: Get a list of features (deprecated, v2 client support)
      tags:
      - unleash_api
      operationId: getApiV4FeatureFlagsUnleashProjectIdFeatures
  "/api/v4/feature_flags/unleash/{project_id}/client/features":
    get:
      description: Get a list of features
      produces:
      - application/json
      parameters:
      - in: path
        name: project_id
        description: The ID of a project
        type: string
        required: true
      - in: query
        name: instance_id
        description: The instance ID of Unleash Client
        type: string
        required: false
      - in: query
        name: app_name
        description: The application name of Unleash Client
        type: string
        required: false
      responses:
        '200':
          description: Get a list of features
      tags:
      - unleash_api
      operationId: getApiV4FeatureFlagsUnleashProjectIdClientFeatures
  "/api/v4/feature_flags/unleash/{project_id}/client/register":
    post:
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: project_id
        description: The ID of a project
        type: string
        required: true
      - name: postApiV4FeatureFlagsUnleashProjectIdClientRegister
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4FeatureFlagsUnleashProjectIdClientRegister"
      responses:
        '201':
          description: created Register
      tags:
      - feature_flags
      operationId: postApiV4FeatureFlagsUnleashProjectIdClientRegister
  "/api/v4/feature_flags/unleash/{project_id}/client/metrics":
    post:
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: project_id
        description: The ID of a project
        type: string
        required: true
      - name: postApiV4FeatureFlagsUnleashProjectIdClientMetrics
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4FeatureFlagsUnleashProjectIdClientMetrics"
      responses:
        '201':
          description: created Metric
      tags:
      - feature_flags
      operationId: postApiV4FeatureFlagsUnleashProjectIdClientMetrics
  "/api/v4/usage_data/service_ping":
    get:
      summary: Get the latest ServicePing payload
      description: Introduces in Gitlab 16.9. Requires Personal Access Token with
        read_service_ping scope.
      produces:
      - application/json
      responses:
        '200':
          description: Get the latest ServicePing payload
        '401':
          description: 401 Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - usage_data
      operationId: getApiV4UsageDataServicePing
  "/api/v4/usage_data/increment_counter":
    post:
      summary: Track usage data event
      description: This feature was introduced in GitLab 13.4.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4UsageDataIncrementCounter
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UsageDataIncrementCounter"
      responses:
        '200':
          description: Track usage data event
        '403':
          description: Invalid CSRF token is provided
        '404':
          description: Not found
      tags:
      - usage_data
      operationId: postApiV4UsageDataIncrementCounter
  "/api/v4/usage_data/increment_unique_users":
    post:
      description: Track usage data event for the current user
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4UsageDataIncrementUniqueUsers
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UsageDataIncrementUniqueUsers"
      responses:
        '200':
          description: Track usage data event for the current user
        '403':
          description: Invalid CSRF token is provided
        '404':
          description: Not found
      tags:
      - usage_data
      operationId: postApiV4UsageDataIncrementUniqueUsers
  "/api/v4/usage_data/track_event":
    post:
      summary: Track gitlab internal events
      description: This feature was introduced in GitLab 16.2.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4UsageDataTrackEvent
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UsageDataTrackEvent"
      responses:
        '200':
          description: Track gitlab internal events
        '403':
          description: Invalid CSRF token is provided
        '404':
          description: Not found
      tags:
      - usage_data
      operationId: postApiV4UsageDataTrackEvent
  "/api/v4/usage_data/metric_definitions":
    get:
      summary: Get a list of all metric definitions
      description: This feature was introduced in GitLab 13.11.
      produces:
      - application/yaml
      responses:
        '200':
          description: Get a list of all metric definitions
        '403':
          description: Invalid CSRF token is provided
        '404':
          description: Not found
      tags:
      - usage_data
      - metrics
      operationId: getApiV4UsageDataMetricDefinitions
  "/api/v4/usage_data/non_sql_metrics":
    get:
      summary: Get Non SQL usage ping metrics
      description: This feature was introduced in GitLab 13.11.
      produces:
      - application/json
      responses:
        '200':
          description: Get Non SQL usage ping metrics
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - usage_data
      operationId: getApiV4UsageDataNonSqlMetrics
  "/api/v4/usage_data/queries":
    get:
      summary: Get raw SQL queries for usage data SQL metrics
      description: This feature was introduced in GitLab 13.11.
      produces:
      - application/json
      responses:
        '200':
          description: Get raw SQL queries for usage data SQL metrics
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not Found
      tags:
      - usage_data
      operationId: getApiV4UsageDataQueries
  "/api/v3/user":
    get:
      description: Get the currently authenticated user
      produces:
      - application/json
      responses:
        '200':
          description: Get the currently authenticated user
          schema:
            "$ref": "#/definitions/API_Entities_UserPublic"
      tags:
      - user
      operationId: getApiV3User
  "/api/v4/user/keys":
    get:
      description: Get the currently authenticated user's SSH keys
      produces:
      - application/json
      parameters:
      - 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 currently authenticated user's SSH keys
          schema:
            "$ref": "#/definitions/API_Entities_SSHKey"
      tags:
      - user
      operationId: getApiV4UserKeys
    post:
      description: Add a new SSH key to the currently authenticated user
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4UserKeys
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UserKeys"
      responses:
        '201':
          description: Add a new SSH key to the currently authenticated user
          schema:
            "$ref": "#/definitions/API_Entities_SSHKey"
      tags:
      - user
      operationId: postApiV4UserKeys
  "/api/v4/user/keys/{key_id}":
    get:
      description: Get a single key owned by currently authenticated user
      produces:
      - application/json
      parameters:
      - in: path
        name: key_id
        description: The ID of the SSH key
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single key owned by currently authenticated user
          schema:
            "$ref": "#/definitions/API_Entities_SSHKey"
      tags:
      - user
      operationId: getApiV4UserKeysKeyId
    delete:
      description: Delete an SSH key from the currently authenticated user
      produces:
      - application/json
      parameters:
      - in: path
        name: key_id
        description: The ID of the SSH key
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Delete an SSH key from the currently authenticated user
          schema:
            "$ref": "#/definitions/API_Entities_SSHKey"
      tags:
      - user
      operationId: deleteApiV4UserKeysKeyId
  "/api/v4/user/gpg_keys":
    get:
      summary: Get the currently authenticated user's GPG keys
      description: This feature was added in GitLab 10.0
      produces:
      - application/json
      parameters:
      - 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 currently authenticated user's GPG keys
          schema:
            "$ref": "#/definitions/API_Entities_GpgKey"
      tags:
      - user
      operationId: getApiV4UserGpgKeys
    post:
      summary: Add a new GPG key to the currently authenticated user
      description: This feature was added in GitLab 10.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4UserGpgKeys
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UserGpgKeys"
      responses:
        '201':
          description: Add a new GPG key to the currently authenticated user
          schema:
            "$ref": "#/definitions/API_Entities_GpgKey"
      tags:
      - user
      operationId: postApiV4UserGpgKeys
  "/api/v4/user/gpg_keys/{key_id}":
    get:
      summary: Get a single GPG key owned by currently authenticated user
      description: This feature was added in GitLab 10.0
      produces:
      - application/json
      parameters:
      - in: path
        name: key_id
        description: The ID of the GPG key
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single GPG key owned by currently authenticated user
          schema:
            "$ref": "#/definitions/API_Entities_GpgKey"
      tags:
      - user
      operationId: getApiV4UserGpgKeysKeyId
    delete:
      summary: Delete a GPG key from the currently authenticated user
      description: This feature was added in GitLab 10.0
      produces:
      - application/json
      parameters:
      - in: path
        name: key_id
        description: The ID of the SSH key
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a GPG key from the currently authenticated user
      tags:
      - user
      operationId: deleteApiV4UserGpgKeysKeyId
  "/api/v4/user/gpg_keys/{key_id}/revoke":
    post:
      summary: Revoke a GPG key owned by currently authenticated user
      description: This feature was added in GitLab 10.0
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: key_id
        description: The ID of the GPG key
        type: integer
        format: int32
        required: true
      responses:
        '201':
          description: Revoke a GPG key owned by currently authenticated user
      tags:
      - user
      operationId: postApiV4UserGpgKeysKeyIdRevoke
  "/api/v4/user/emails":
    get:
      description: Get the currently authenticated user's email addresses
      produces:
      - application/json
      parameters:
      - 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 currently authenticated user's email addresses
          schema:
            "$ref": "#/definitions/API_Entities_Email"
      tags:
      - user
      operationId: getApiV4UserEmails
    post:
      description: Add new email address to the currently authenticated user
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4UserEmails
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UserEmails"
      responses:
        '201':
          description: Add new email address to the currently authenticated user
          schema:
            "$ref": "#/definitions/API_Entities_Email"
      tags:
      - user
      operationId: postApiV4UserEmails
  "/api/v4/user/{user_id}/credit_card_validation":
    put:
      description: Update a user's credit_card_validation
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: user_id
        description: The ID or username of the user
        type: string
        required: true
      - name: putApiV4UserUserIdCreditCardValidation
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4UserUserIdCreditCardValidation"
      responses:
        '200':
          description: Update a user's credit_card_validation
          schema:
            "$ref": "#/definitions/API_Entities_UserCreditCardValidations"
      tags:
      - user
      operationId: putApiV4UserUserIdCreditCardValidation
  "/api/v4/user/preferences":
    put:
      summary: Update the current user's preferences
      description: This feature was introduced in GitLab 13.10.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: putApiV4UserPreferences
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4UserPreferences"
      responses:
        '200':
          description: Update the current user's preferences
          schema:
            "$ref": "#/definitions/API_Entities_UserPreferences"
      tags:
      - user
      operationId: putApiV4UserPreferences
    get:
      summary: Get the current user's preferences
      description: This feature was introduced in GitLab 14.0.
      produces:
      - application/json
      responses:
        '200':
          description: Get the current user's preferences
          schema:
            "$ref": "#/definitions/API_Entities_UserPreferences"
      tags:
      - user
      operationId: getApiV4UserPreferences
  "/api/v4/user/emails/{email_id}":
    get:
      description: Get a single email address owned by the currently authenticated
        user
      produces:
      - application/json
      parameters:
      - in: path
        name: email_id
        description: The ID of the email
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get a single email address owned by the currently authenticated
            user
          schema:
            "$ref": "#/definitions/API_Entities_Email"
      tags:
      - user
      operationId: getApiV4UserEmailsEmailId
    delete:
      description: Delete an email address from the currently authenticated user
      produces:
      - application/json
      parameters:
      - in: path
        name: email_id
        description: The ID of the email
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete an email address from the currently authenticated user
      tags:
      - user
      operationId: deleteApiV4UserEmailsEmailId
  "/api/v4/user/activities":
    get:
      description: Get a list of user activities
      produces:
      - application/json
      parameters:
      - in: query
        name: from
        description: Date string in the format YEAR-MONTH-DAY
        type: string
        format: date-time
        default: '2023-11-23T21:13:09.055Z'
        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: Get a list of user activities
      tags:
      - user
      operationId: getApiV4UserActivities
  "/api/v4/user/status":
    put:
      summary: Set the status of the current user
      description: Any parameters that are not passed will be nullified.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: putApiV4UserStatus
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4UserStatus"
      responses:
        '200':
          description: Set the status of the current user
          schema:
            "$ref": "#/definitions/API_Entities_UserStatus"
      tags:
      - user
      operationId: putApiV4UserStatus
    patch:
      summary: Set the status of the current user
      description: Any parameters that are not passed will be ignored.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: patchApiV4UserStatus
        in: body
        required: true
        schema:
          "$ref": "#/definitions/patchApiV4UserStatus"
      responses:
        '200':
          description: Set the status of the current user
          schema:
            "$ref": "#/definitions/API_Entities_UserStatus"
      tags:
      - user
      operationId: patchApiV4UserStatus
    get:
      description: get the status of the current user
      produces:
      - application/json
      responses:
        '200':
          description: get the status of the current user
          schema:
            "$ref": "#/definitions/API_Entities_UserStatus"
      tags:
      - user
      operationId: getApiV4UserStatus
  "/api/v4/user/avatar":
    put:
      summary: Set the avatar of the current user
      description: This feature was introduced in GitLab 17.0.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: putApiV4UserAvatar
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4UserAvatar"
      responses:
        '200':
          description: Set the avatar of the current user
          schema:
            "$ref": "#/definitions/API_Entities_Avatar"
      tags:
      - user
      operationId: putApiV4UserAvatar
  "/api/v4/user/runners":
    post:
      summary: Create a runner owned by currently authenticated user
      description: Create a new runner
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4UserRunners
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UserRunners"
      responses:
        '201':
          description: Create a runner owned by currently authenticated user
          schema:
            "$ref": "#/definitions/API_Entities_Ci_RunnerRegistrationDetails"
        '400':
          description: Bad Request
        '403':
          description: Forbidden
      tags:
      - user
      - runners
      operationId: postApiV4UserRunners
  "/api/v4/user/personal_access_tokens":
    post:
      summary: Create a personal access token with limited scopes for the currently
        authenticated user
      description: This feature was introduced in GitLab 16.5
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4UserPersonalAccessTokens
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4UserPersonalAccessTokens"
      responses:
        '201':
          description: Create a personal access token with limited scopes for the
            currently authenticated user
          schema:
            "$ref": "#/definitions/API_Entities_PersonalAccessTokenWithToken"
      tags:
      - user
      operationId: postApiV4UserPersonalAccessTokens
  "/api/v4/user_counts":
    get:
      summary: Return the user specific counts
      description: Assigned open issues, assigned MRs and pending todos count
      produces:
      - application/json
      responses:
        '200':
          description: Return the user specific counts
          schema:
            "$ref": "#/definitions/API_Entities_UserCounts"
      tags:
      - user_counts
      operationId: getApiV4UserCounts
  "/api/v4/application/plan_limits":
    get:
      summary: Get current plan limits
      description: List the current limits of a plan on the GitLab instance.
      produces:
      - application/json
      parameters:
      - in: query
        name: plan_name
        description: 'Name of the plan to get the limits from. Default: default.'
        type: string
        default: default
        enum:
        - default
        - free
        - bronze
        - silver
        - premium
        - gold
        - ultimate
        - ultimate_trial
        - ultimate_trial_paid_customer
        - premium_trial
        - opensource
        required: false
      responses:
        '200':
          description: Get current plan limits
          schema:
            "$ref": "#/definitions/API_Entities_PlanLimit"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      tags:
      - plan_limits
      operationId: getApiV4ApplicationPlanLimits
    put:
      summary: Change plan limits
      description: Modify the limits of a plan on the GitLab instance.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: putApiV4ApplicationPlanLimits
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4ApplicationPlanLimits"
      responses:
        '200':
          description: Change plan limits
          schema:
            "$ref": "#/definitions/API_Entities_PlanLimit"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      tags:
      - plan_limits
      operationId: putApiV4ApplicationPlanLimits
  "/api/v4/application/appearance":
    get:
      description: Get the current appearance
      produces:
      - application/json
      responses:
        '200':
          description: Get the current appearance
          schema:
            "$ref": "#/definitions/API_Entities_Appearance"
      tags:
      - application
      operationId: getApiV4ApplicationAppearance
    put:
      description: Modify appearance
      produces:
      - application/json
      consumes:
      - multipart/form-data
      parameters:
      - in: formData
        name: title
        description: Instance title on the sign in / sign up page
        type: string
        required: false
      - in: formData
        name: description
        description: Markdown text shown on the sign in / sign up page
        type: string
        required: false
      - in: formData
        name: pwa_name
        description: Name of the Progressive Web App
        type: string
        required: false
      - in: formData
        name: pwa_short_name
        description: Optional, short name for Progressive Web App
        type: string
        required: false
      - in: formData
        name: pwa_description
        description: An explanation of what the Progressive Web App does
        type: string
        required: false
      - in: formData
        name: logo
        description: Instance image used on the sign in / sign up page
        type: file
        required: false
      - in: formData
        name: pwa_icon
        description: Icon used for Progressive Web App
        type: file
        required: false
      - in: formData
        name: header_logo
        description: Instance image used for the main navigation bar
        type: file
        required: false
      - in: formData
        name: favicon
        description: Instance favicon in .ico/.png format
        type: file
        required: false
      - in: formData
        name: member_guidelines
        description: Markdown text shown on the members page of a group or project
        type: string
        required: false
      - in: formData
        name: new_project_guidelines
        description: Markdown text shown on the new project page
        type: string
        required: false
      - in: formData
        name: profile_image_guidelines
        description: Markdown text shown on the profile page below Public Avatar
        type: string
        required: false
      - in: formData
        name: header_message
        description: Message within the system header bar
        type: string
        required: false
      - in: formData
        name: footer_message
        description: Message within the system footer bar
        type: string
        required: false
      - in: formData
        name: message_background_color
        description: Background color for the system header / footer bar
        type: string
        required: false
      - in: formData
        name: message_font_color
        description: Font color for the system header / footer bar
        type: string
        required: false
      - in: formData
        name: email_header_and_footer_enabled
        description: Add header and footer to all outgoing emails if enabled
        type: boolean
        required: false
      responses:
        '200':
          description: Modify appearance
          schema:
            "$ref": "#/definitions/API_Entities_Appearance"
      tags:
      - application
      operationId: putApiV4ApplicationAppearance
  "/api/v4/application/statistics":
    get:
      description: Get the current application statistics
      produces:
      - application/json
      responses:
        '200':
          description: Get the current application statistics
          schema:
            "$ref": "#/definitions/API_Entities_ApplicationStatistics"
      tags:
      - application
      operationId: getApiV4ApplicationStatistics
  "/api/v4/deploy_keys":
    get:
      summary: List all deploy keys
      description: Get a list of all deploy keys across all projects of the GitLab
        instance. This endpoint requires administrator access and is not available
        on GitLab.com.
      produces:
      - application/json
      parameters:
      - 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
      - in: query
        name: public
        description: Only return deploy keys that are public
        type: boolean
        default: false
        required: false
      responses:
        '200':
          description: List all deploy keys
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_DeployKey"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      tags:
      - deploy_keys
      operationId: getApiV4DeployKeys
  "/api/v4/deploy_tokens":
    get:
      summary: List all deploy tokens
      description: Get a list of all deploy tokens across the GitLab instance. This
        endpoint requires administrator access. This feature was introduced in GitLab
        12.9.
      produces:
      - application/json
      parameters:
      - 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
      - in: query
        name: active
        description: Limit by active status
        type: boolean
        required: false
      responses:
        '200':
          description: List all deploy tokens
          schema:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_DeployToken"
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
      tags:
      - deploy_tokens
      operationId: getApiV4DeployTokens
  "/api/v4/import/bitbucket":
    post:
      summary: Import a BitBucket Cloud repository
      description: This feature was introduced in GitLab 17.0.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4ImportBitbucket
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ImportBitbucket"
      responses:
        '201':
          description: Import a BitBucket Cloud repository
          schema:
            "$ref": "#/definitions/ProjectImportEntity"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable entity
        '503':
          description: Service unavailable
      tags:
      - project_import_bitbucket
      operationId: postApiV4ImportBitbucket
  "/api/v4/import/bitbucket_server":
    post:
      summary: Import a BitBucket Server repository
      description: This feature was introduced in GitLab 13.2.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4ImportBitbucketServer
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ImportBitbucketServer"
      responses:
        '201':
          description: Import a BitBucket Server repository
          schema:
            "$ref": "#/definitions/ProjectEntity"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable entity
        '503':
          description: Service unavailable
      tags:
      - project_import_bitbucket
      operationId: postApiV4ImportBitbucketServer
  "/api/v4/import/github":
    post:
      summary: Import a GitHub project
      description: This feature was introduced in GitLab 11.3.4.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4ImportGithub
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ImportGithub"
      responses:
        '201':
          description: Import a GitHub project
          schema:
            "$ref": "#/definitions/ProjectEntity"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '422':
          description: Unprocessable entity
        '503':
          description: Service unavailable
      tags:
      - project_import_github
      operationId: postApiV4ImportGithub
  "/api/v4/import/github/cancel":
    post:
      summary: Cancel GitHub project import
      description: This feature was introduced in GitLab 15.5
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4ImportGithubCancel
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ImportGithubCancel"
      responses:
        '200':
          description: Cancel GitHub project import
          schema:
            "$ref": "#/definitions/ProjectImportEntity"
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
        '503':
          description: Service unavailable
      tags:
      - project_import_github
      operationId: postApiV4ImportGithubCancel
  "/api/v4/import/github/gists":
    post:
      summary: Import User Gists
      description: This feature was introduced in GitLab 15.8
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4ImportGithubGists
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4ImportGithubGists"
      responses:
        '202':
          description: Import User Gists
        '401':
          description: Unauthorized
        '422':
          description: Unprocessable Entity
        '429':
          description: Too Many Requests
      tags:
      - import
      operationId: postApiV4ImportGithubGists
  "/api/v4/slack/trigger":
    post:
      summary: Trigger a global slack command
      description: Added in GitLab 9.4
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4SlackTrigger
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4SlackTrigger"
      responses:
        '201':
          description: Trigger a global slack command
        '401':
          description: Unauthorized
      tags:
      - slack
      operationId: postApiV4SlackTrigger
  "/api/v4/metadata":
    get:
      summary: Retrieve metadata information for this GitLab instance
      description: This feature was introduced in GitLab 15.2.
      produces:
      - application/json
      responses:
        '200':
          description: Retrieve metadata information for this GitLab instance
          schema:
            "$ref": "#/definitions/API_Entities_Metadata"
        '401':
          description: Unauthorized
      tags:
      - metadata
      operationId: getApiV4Metadata
  "/api/v4/version":
    get:
      summary: Retrieves version information for the GitLab instance
      description: This feature was introduced in GitLab 8.13 and deprecated in 15.5.
        We recommend you instead use the Metadata API.
      produces:
      - application/json
      responses:
        '200':
          description: Retrieves version information for the GitLab instance
          schema:
            "$ref": "#/definitions/API_Entities_Metadata"
        '401':
          description: Unauthorized
      tags:
      - metadata
      operationId: getApiV4Version
  "/api/v4/web_commits/public_key":
    get:
      summary: Get the GitLab public key for signing web commits.
      description: This feature was introduced in GitLab 17.4.
      tags:
        - web_commits
      produces:
      - application/json
      responses:
        '200':
          description: Get the GitLab public key for signing web commits.
          schema:
            "$ref": "#/definitions/API_Entities_Web_Commits"
        '503':
          description: Service unavailable
        '404':
          description: Not found
  "/api/v4/topics":
    get:
      summary: Get topics
      description: This feature was introduced in GitLab 14.5.
      produces:
      - application/json
      parameters:
      - in: query
        name: search
        description: Return list of topics matching the search criteria
        type: string
        required: false
        example: search
      - in: query
        name: without_projects
        description: Return list of topics without assigned projects
        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: Get topics
          schema:
            "$ref": "#/definitions/API_Entities_Projects_Topic"
      tags:
      - topics
      operationId: getApiV4Topics
    post:
      summary: Create a topic
      description: This feature was introduced in GitLab 14.5.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4Topics
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4Topics"
      responses:
        '201':
          description: Create a topic
          schema:
            "$ref": "#/definitions/API_Entities_Projects_Topic"
      tags:
      - topics
      operationId: postApiV4Topics
  "/api/v4/topics/{id}":
    get:
      summary: Get topic
      description: This feature was introduced in GitLab 14.5.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID of project topic
        type: integer
        format: int32
        required: true
      responses:
        '200':
          description: Get topic
          schema:
            "$ref": "#/definitions/API_Entities_Projects_Topic"
      tags:
      - topics
      operationId: getApiV4TopicsId
    put:
      summary: Update a topic
      description: This feature was introduced in GitLab 14.5.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID of project topic
        type: integer
        format: int32
        required: true
      - name: putApiV4TopicsId
        in: body
        required: true
        schema:
          "$ref": "#/definitions/putApiV4TopicsId"
      responses:
        '200':
          description: Update a topic
          schema:
            "$ref": "#/definitions/API_Entities_Projects_Topic"
      tags:
      - topics
      operationId: putApiV4TopicsId
    delete:
      summary: Delete a topic
      description: This feature was introduced in GitLab 14.9.
      produces:
      - application/json
      parameters:
      - in: path
        name: id
        description: ID of project topic
        type: integer
        format: int32
        required: true
      responses:
        '204':
          description: Delete a topic
      tags:
      - topics
      operationId: deleteApiV4TopicsId
  "/api/v4/topics/merge":
    post:
      summary: Merge topics
      description: This feature was introduced in GitLab 15.4.
      produces:
      - application/json
      consumes:
      - application/json
      parameters:
      - name: postApiV4TopicsMerge
        in: body
        required: true
        schema:
          "$ref": "#/definitions/postApiV4TopicsMerge"
      responses:
        '201':
          description: Merge topics
          schema:
            "$ref": "#/definitions/API_Entities_Projects_Topic"
      tags:
      - topics
      operationId: postApiV4TopicsMerge
definitions:
  API_Entities_AccessRequester:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      username:
        type: string
        example: admin
      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
      requested_at:
        type: string
    description: API_Entities_AccessRequester model
  API_Entities_CustomAttribute:
    type: object
    properties:
      key:
        type: string
        example: foo
      value:
        type: string
        example: bar
    description: API_Entities_CustomAttribute model
  putApiV4GroupsIdAccessRequestsUserIdApprove:
    type: object
    properties:
      access_level:
        type: integer
        format: int32
        description: 'A valid access level (defaults: `30`, the Developer role)'
        default: 30
    description: Approves an access request for the given user.
  API_Entities_Badge:
    type: object
    properties:
      name:
        type: string
      link_url:
        type: string
      image_url:
        type: string
      rendered_link_url:
        type: string
      rendered_image_url:
        type: string
      id:
        type: string
      kind:
        type: string
    description: API_Entities_Badge model
  API_Entities_BasicBadgeDetails:
    type: object
    properties:
      name:
        type: string
      link_url:
        type: string
      image_url:
        type: string
      rendered_link_url:
        type: string
      rendered_image_url:
        type: string
    description: API_Entities_BasicBadgeDetails model
  postApiV4GroupsIdBadges:
    type: object
    properties:
      link_url:
        type: string
        description: URL of the badge link
      image_url:
        type: string
        description: URL of the badge image
      name:
        type: string
        description: Name for the badge
    required:
    - link_url
    - image_url
    description: Adds a badge to a group.
  putApiV4GroupsIdBadgesBadgeId:
    type: object
    properties:
      link_url:
        type: string
        description: URL of the badge link
      image_url:
        type: string
        description: URL of the badge image
      name:
        type: string
        description: Name for the badge
    description: Updates a badge of a group.
  putApiV4GroupsIdCustomAttributesKey:
    type: object
    properties:
      value:
        type: string
        description: The value of the custom attribute
    required:
    - value
    description: Set a custom attribute on a group
  API_Entities_Group:
    type: object
    properties:
      id:
        type: string
      web_url:
        type: string
      name:
        type: string
      path:
        type: string
      description:
        type: string
      visibility:
        type: string
      share_with_group_lock:
        type: string
      require_two_factor_authentication:
        type: string
      two_factor_grace_period:
        type: string
      project_creation_level:
        type: string
      auto_devops_enabled:
        type: string
      subgroup_creation_level:
        type: string
      emails_disabled:
        type: boolean
      emails_enabled:
        type: boolean
      mentions_disabled:
        type: string
      lfs_enabled:
        type: string
      math_rendering_limits_enabled:
        type: boolean
      lock_math_rendering_limits_enabled:
        type: boolean
      default_branch:
        type: string
      default_branch_protection:
        type: string
      default_branch_protection_defaults:
        type: string
      avatar_url:
        type: string
      request_access_enabled:
        type: string
      full_name:
        type: string
      full_path:
        type: string
      created_at:
        type: string
      parent_id:
        type: string
      organization_id:
        type: string
      shared_runners_setting:
        type: string
      custom_attributes:
        "$ref": "#/definitions/API_Entities_CustomAttribute"
      statistics:
        type: object
        properties:
          storage_size:
            type: string
          repository_size:
            type: string
          wiki_size:
            type: string
          lfs_objects_size:
            type: string
          job_artifacts_size:
            type: string
          pipeline_artifacts_size:
            type: string
          packages_size:
            type: string
          snippets_size:
            type: string
          uploads_size:
            type: string
      ldap_cn:
        type: string
      ldap_access:
        type: string
      ldap_group_links:
        "$ref": "#/definitions/EE_API_Entities_LdapGroupLink"
      saml_group_links:
        "$ref": "#/definitions/EE_API_Entities_SamlGroupLink"
      file_template_project_id:
        type: string
      marked_for_deletion_on:
        type: string
      wiki_access_level:
        type: string
      repository_storage:
        type: string
      duo_features_enabled:
        type: string
      lock_duo_features_enabled:
        type: string
    description: API_Entities_Group model
  EE_API_Entities_LdapGroupLink:
    type: object
    properties:
      cn:
        type: string
        example: ldap-group-1
      group_access:
        type: integer
        format: int32
        example: 10
      provider:
        type: string
        example: ldapmain
      filter:
        type: string
        example: id >= 500
  EE_API_Entities_SamlGroupLink:
    type: object
    properties:
      name:
        type: string
        example: saml-group-1
      access_level:
        type: integer
        format: int32
        example: 40
      member_role_id:
        type: integer
        format: int32
        example: 12
  postApiV4Groups:
    type: object
    properties:
      name:
        type: string
        description: The name of the group
      path:
        type: string
        description: The path of the group
      parent_id:
        type: integer
        format: int32
        description: The parent group id for creating nested group
      organization_id:
        type: integer
        format: int32
        description: The organization id for the group
        default: {}
      description:
        type: string
        description: The description of the group
      visibility:
        type: string
        description: The visibility of the group
        enum:
        - private
        - internal
        - public
      avatar:
        type: file
        description: Avatar image for the group
      share_with_group_lock:
        type: boolean
        description: Prevent sharing a project with another group within this group
      require_two_factor_authentication:
        type: boolean
        description: Require all users in this group to setup Two-factor authentication
      two_factor_grace_period:
        type: integer
        format: int32
        description: Time before Two-factor authentication is enforced
      project_creation_level:
        type: string
        description: Determine if developers can create projects in the group
        enum:
        - noone
        - maintainer
        - developer
      auto_devops_enabled:
        type: boolean
        description: Default to Auto DevOps pipeline for all projects within this
          group
      subgroup_creation_level:
        type: string
        description: Allowed to create subgroups
        enum:
        - owner
        - maintainer
      emails_disabled:
        type: boolean
        description: '_(Deprecated)_ Disable email notifications. Use: emails_enabled'
      emails_enabled:
        type: boolean
        description: Enable email notifications
      show_diff_preview_in_email:
        type: boolean
        description: Include the code diff preview in merge request notification emails
      mentions_disabled:
        type: boolean
        description: Disable a group from getting mentioned
      lfs_enabled:
        type: boolean
        description: Enable/disable LFS for the projects in this group
      request_access_enabled:
        type: boolean
        description: Allow users to request member access
      default_branch:
        type: string
        description: The default branch of group's projects
        example: main
      default_branch_protection:
        type: integer
        format: int32
        description: Determine if developers can push to default branch
        enum:
        - 0
        - 3
        - 1
        - 2
        - 4
      default_branch_protection_defaults:
        type: object
        description: Determine if developers can push to default branch
        properties:
          allowed_to_push:
            type: array
            description: An array of access levels allowed to push
            items:
              type: object
              properties:
                access_level:
                  type: integer
                  format: int32
                  description: A valid access level
                  enum:
                  - 30
                  - 40
              required:
              - access_level
          allow_force_push:
            type: boolean
            description: Allow force push for all users with push access.
          allowed_to_merge:
            type: array
            description: An array of access levels allowed to merge
            items:
              type: object
              properties:
                access_level:
                  type: integer
                  format: int32
                  description: A valid access level
                  enum:
                  - 30
                  - 40
              required:
              - access_level
          code_owner_approval_required:
            type: boolean
            description: Require approval from code owners
          developer_can_initial_push:
            type: boolean
            description: Allow developers to initial push
      shared_runners_setting:
        type: string
        description: Enable/disable shared runners for the group and its subgroups
          and projects
        enum:
        - disabled_and_unoverridable
        - disabled_and_overridable
        - enabled
      enabled_git_access_protocol:
        type: string
        description: Allow only the selected protocols to be used for Git access.
        enum:
        - ssh
        - http
        - all
      membership_lock:
        type: boolean
        description: Prevent adding new members to projects within this group
      ldap_cn:
        type: string
        description: LDAP Common Name
      ldap_access:
        type: integer
        format: int32
        description: A valid access level
      shared_runners_minutes_limit:
        type: integer
        format: int32
        description: "(admin-only) Compute minutes quota for this group"
      extra_shared_runners_minutes_limit:
        type: integer
        format: int32
        description: "(admin-only) Extra compute minutes quota for this group"
      wiki_access_level:
        type: string
        description: Wiki access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
    required:
    - name
    - path
    description: Create a group. Available only for users who can create groups.
  putApiV4GroupsId:
    type: object
    properties:
      name:
        type: string
        description: The name of the group
      path:
        type: string
        description: The path of the group
      description:
        type: string
        description: The description of the group
      visibility:
        type: string
        description: The visibility of the group
        enum:
        - private
        - internal
        - public
      avatar:
        type: file
        description: Avatar image for the group
      share_with_group_lock:
        type: boolean
        description: Prevent sharing a project with another group within this group
      require_two_factor_authentication:
        type: boolean
        description: Require all users in this group to setup Two-factor authentication
      two_factor_grace_period:
        type: integer
        format: int32
        description: Time before Two-factor authentication is enforced
      project_creation_level:
        type: string
        description: Determine if developers can create projects in the group
        enum:
        - noone
        - maintainer
        - developer
      auto_devops_enabled:
        type: boolean
        description: Default to Auto DevOps pipeline for all projects within this
          group
      subgroup_creation_level:
        type: string
        description: Allowed to create subgroups
        enum:
        - owner
        - maintainer
      emails_disabled:
        type: boolean
        description: '_(Deprecated)_ Disable email notifications. Use: emails_enabled'
      emails_enabled:
        type: boolean
        description: Enable email notifications
      show_diff_preview_in_email:
        type: boolean
        description: Include the code diff preview in merge request notification emails
      mentions_disabled:
        type: boolean
        description: Disable a group from getting mentioned
      lfs_enabled:
        type: boolean
        description: Enable/disable LFS for the projects in this group
      request_access_enabled:
        type: boolean
        description: Allow users to request member access
      default_branch:
        type: string
        description: The default branch of group's projects
        example: main
      default_branch_protection:
        type: integer
        format: int32
        description: Determine if developers can push to default branch
        enum:
        - 0
        - 3
        - 1
        - 2
        - 4
      default_branch_protection_defaults:
        type: object
        description: Determine if developers can push to default branch
        properties:
          allowed_to_push:
            type: array
            description: An array of access levels allowed to push
            items:
              type: object
              properties:
                access_level:
                  type: integer
                  format: int32
                  description: A valid access level
                  enum:
                  - 30
                  - 40
              required:
              - access_level
          allow_force_push:
            type: boolean
            description: Allow force push for all users with push access.
          allowed_to_merge:
            type: array
            description: An array of access levels allowed to merge
            items:
              type: object
              properties:
                access_level:
                  type: integer
                  format: int32
                  description: A valid access level
                  enum:
                  - 30
                  - 40
              required:
              - access_level
          code_owner_approval_required:
            type: boolean
            description: Require approval from code owners
          developer_can_initial_push:
            type: boolean
            description: Allow developers to initial push
      shared_runners_setting:
        type: string
        description: Enable/disable shared runners for the group and its subgroups
          and projects
        enum:
        - disabled_and_unoverridable
        - disabled_and_overridable
        - enabled
      enabled_git_access_protocol:
        type: string
        description: Allow only the selected protocols to be used for Git access.
        enum:
        - ssh
        - http
        - all
      membership_lock:
        type: boolean
        description: Prevent adding new members to projects within this group
      ldap_cn:
        type: string
        description: LDAP Common Name
      ldap_access:
        type: integer
        format: int32
        description: A valid access level
      shared_runners_minutes_limit:
        type: integer
        format: int32
        description: "(admin-only) Compute minutes quota for this group"
      extra_shared_runners_minutes_limit:
        type: integer
        format: int32
        description: "(admin-only) Extra compute minutes quota for this group"
      wiki_access_level:
        type: string
        description: Wiki access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      prevent_sharing_groups_outside_hierarchy:
        type: boolean
        description: Prevent sharing groups within this namespace with any groups
          outside the namespace. Only available on top-level groups.
      lock_math_rendering_limits_enabled:
        type: boolean
        description: Indicates if math rendering limits are locked for all descendent
          groups.
      math_rendering_limits_enabled:
        type: boolean
        description: Indicates if math rendering limits are used for this group.
      file_template_project_id:
        type: integer
        format: int32
        description: The ID of a project to use for custom templates in this group
      prevent_forking_outside_group:
        type: boolean
        description: Prevent forking projects inside this group to external namespaces
      unique_project_download_limit:
        type: integer
        format: int32
        description: Maximum number of unique projects a user can download in the
          specified time period before they are banned.
      unique_project_download_limit_interval_in_seconds:
        type: integer
        format: int32
        description: Time period during which a user can download a maximum amount
          of projects before they are banned.
      unique_project_download_limit_allowlist:
        type: array
        description: List of usernames excluded from the unique project download limit
        items:
          type: string
      unique_project_download_limit_alertlist:
        type: array
        description: List of user ids who will be emailed when Git abuse rate limit
          is exceeded
        items:
          type: integer
          format: int32
      auto_ban_user_on_excessive_projects_download:
        type: boolean
        description: Ban users from the group when they exceed maximum number of unique
          projects download in the specified time period
      ip_restriction_ranges:
        type: string
        description: List of IP addresses which need to be restricted for group
      service_access_tokens_expiration_enforced:
        type: boolean
        description: To enforce token expiration for Service accounts users for group
      duo_features_enabled:
        type: boolean
        description: Indicates whether GitLab Duo features are enabled for the group
      lock_duo_features_enabled:
        type: boolean
        description: Indicates if the GitLab Duo features enabled setting is enforced
          for all subgroups
    description: Update a group. Available only for users who can administrate groups.
  API_Entities_GroupDetail:
    type: object
    properties:
      id:
        type: string
      web_url:
        type: string
      name:
        type: string
      path:
        type: string
      description:
        type: string
      visibility:
        type: string
      share_with_group_lock:
        type: string
      require_two_factor_authentication:
        type: string
      two_factor_grace_period:
        type: string
      project_creation_level:
        type: string
      auto_devops_enabled:
        type: string
      subgroup_creation_level:
        type: string
      emails_disabled:
        type: boolean
      emails_enabled:
        type: boolean
      mentions_disabled:
        type: string
      lfs_enabled:
        type: string
      math_rendering_limits_enabled:
        type: boolean
      lock_math_rendering_limits_enabled:
        type: boolean
      default_branch:
        type: string
      default_branch_protection:
        type: string
      default_branch_protection_defaults:
        type: string
      avatar_url:
        type: string
      request_access_enabled:
        type: string
      full_name:
        type: string
      full_path:
        type: string
      created_at:
        type: string
      parent_id:
        type: string
      organization_id:
        type: string
      shared_runners_setting:
        type: string
      custom_attributes:
        "$ref": "#/definitions/API_Entities_CustomAttribute"
      statistics:
        type: object
        properties:
          storage_size:
            type: string
          repository_size:
            type: string
          wiki_size:
            type: string
          lfs_objects_size:
            type: string
          job_artifacts_size:
            type: string
          pipeline_artifacts_size:
            type: string
          packages_size:
            type: string
          snippets_size:
            type: string
          uploads_size:
            type: string
      ldap_cn:
        type: string
      ldap_access:
        type: string
      ldap_group_links:
        "$ref": "#/definitions/EE_API_Entities_LdapGroupLink"
      saml_group_links:
        "$ref": "#/definitions/EE_API_Entities_SamlGroupLink"
      file_template_project_id:
        type: string
      marked_for_deletion_on:
        type: string
      wiki_access_level:
        type: string
      repository_storage:
        type: string
      duo_features_enabled:
        type: string
      lock_duo_features_enabled:
        type: string
      shared_with_groups:
        type: string
      runners_token:
        type: string
      enabled_git_access_protocol:
        type: string
      prevent_sharing_groups_outside_hierarchy:
        type: string
      projects:
        "$ref": "#/definitions/API_Entities_Project"
      shared_projects:
        "$ref": "#/definitions/API_Entities_Project"
      shared_runners_minutes_limit:
        type: string
      extra_shared_runners_minutes_limit:
        type: string
      prevent_forking_outside_group:
        type: string
      service_access_tokens_expiration_enforced:
        type: string
      membership_lock:
        type: string
      ip_restriction_ranges:
        type: string
      unique_project_download_limit:
        type: string
      unique_project_download_limit_interval_in_seconds:
        type: string
      unique_project_download_limit_allowlist:
        type: string
      unique_project_download_limit_alertlist:
        type: string
      auto_ban_user_on_excessive_projects_download:
        type: string
    description: API_Entities_GroupDetail model
  API_Entities_Project:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      description:
        type: string
        example: desc
      name:
        type: string
        example: project1
      name_with_namespace:
        type: string
        example: John Doe / project1
      path:
        type: string
        example: project1
      path_with_namespace:
        type: string
        example: namespace1/project1
      created_at:
        type: string
        format: date-time
        example: '2020-05-07T04:27:17.016Z'
      default_branch:
        type: string
        example: main
      tag_list:
        type: array
        items:
          type: string
          example: tag
      topics:
        type: array
        items:
          type: string
          example: topic
      ssh_url_to_repo:
        type: string
        example: git@gitlab.example.com:gitlab/gitlab.git
      http_url_to_repo:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab.git
      web_url:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab
      readme_url:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab/blob/master/README.md
      forks_count:
        type: integer
        format: int32
        example: 1
      license_url:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab/blob/master/LICENCE
      license:
        "$ref": "#/definitions/API_Entities_LicenseBasic"
      avatar_url:
        type: string
        example: http://example.com/uploads/project/avatar/3/uploads/avatar.png
      star_count:
        type: integer
        format: int32
        example: 1
      last_activity_at:
        type: string
        format: date-time
        example: '2013-09-30T13:46:02Z'
      namespace:
        "$ref": "#/definitions/API_Entities_NamespaceBasic"
      custom_attributes:
        "$ref": "#/definitions/API_Entities_CustomAttribute"
      repository_storage:
        type: string
        example: default
      container_registry_image_prefix:
        type: string
        example: registry.gitlab.example.com/gitlab/gitlab-client
      _links:
        type: object
        properties:
          self:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4
          issues:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/issues
          merge_requests:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/merge_requests
          repo_branches:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/repository/branches
          labels:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/labels
          events:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/events
          members:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/members
          cluster_agents:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/cluster_agents
      packages_enabled:
        type: boolean
      empty_repo:
        type: boolean
      archived:
        type: boolean
      visibility:
        type: string
        example: public
      owner:
        "$ref": "#/definitions/API_Entities_UserBasic"
      resolve_outdated_diff_discussions:
        type: boolean
      container_expiration_policy:
        "$ref": "#/definitions/API_Entities_ContainerExpirationPolicy"
      repository_object_format:
        type: string
        example: sha1
      issues_enabled:
        type: boolean
      merge_requests_enabled:
        type: boolean
      wiki_enabled:
        type: boolean
      jobs_enabled:
        type: boolean
      snippets_enabled:
        type: boolean
      container_registry_enabled:
        type: boolean
      service_desk_enabled:
        type: boolean
      service_desk_address:
        type: string
        example: address@example.com
      can_create_merge_request_in:
        type: boolean
      issues_access_level:
        type: string
        example: enabled
      repository_access_level:
        type: string
        example: enabled
      merge_requests_access_level:
        type: string
        example: enabled
      forking_access_level:
        type: string
        example: enabled
      wiki_access_level:
        type: string
        example: enabled
      builds_access_level:
        type: string
        example: enabled
      snippets_access_level:
        type: string
        example: enabled
      pages_access_level:
        type: string
        example: enabled
      analytics_access_level:
        type: string
        example: enabled
      container_registry_access_level:
        type: string
        example: enabled
      security_and_compliance_access_level:
        type: string
        example: enabled
      releases_access_level:
        type: string
        example: enabled
      environments_access_level:
        type: string
        example: enabled
      feature_flags_access_level:
        type: string
        example: enabled
      infrastructure_access_level:
        type: string
        example: enabled
      monitor_access_level:
        type: string
        example: enabled
      model_experiments_access_level:
        type: string
        example: enabled
      model_registry_access_level:
        type: string
        example: enabled
      emails_disabled:
        type: boolean
      emails_enabled:
        type: boolean
      shared_runners_enabled:
        type: boolean
      lfs_enabled:
        type: boolean
      creator_id:
        type: integer
        format: int32
        example: 1
      forked_from_project:
        "$ref": "#/definitions/API_Entities_BasicProjectDetails"
      mr_default_target_self:
        type: boolean
      import_url:
        type: string
        example: https://gitlab.com/gitlab/gitlab.git
      import_type:
        type: string
        example: git
      import_status:
        type: string
        example: none
      import_error:
        type: string
        example: Import error
      open_issues_count:
        type: integer
        format: int32
        example: 1
      description_html:
        type: string
      updated_at:
        type: string
        format: date-time
        example: '2020-05-07T04:27:17.016Z'
      ci_default_git_depth:
        type: integer
        format: int32
        example: 20
      ci_forward_deployment_enabled:
        type: boolean
      ci_forward_deployment_rollback_allowed:
        type: boolean
      ci_job_token_scope_enabled:
        type: boolean
      ci_separated_caches:
        type: boolean
      ci_allow_fork_pipelines_to_run_in_parent_project:
        type: boolean
      build_git_strategy:
        type: string
        example: fetch
      keep_latest_artifact:
        type: boolean
      restrict_user_defined_variables:
        type: boolean
      ci_pipeline_variables_minimum_override_role:
        type: string
      runners_token:
        type: string
        example: b8547b1dc37721d05889db52fa2f02
      runner_token_expiration_interval:
        type: integer
        format: int32
        example: 3600
      group_runners_enabled:
        type: boolean
      auto_cancel_pending_pipelines:
        type: string
        example: enabled
      build_timeout:
        type: integer
        format: int32
        example: 3600
      auto_devops_enabled:
        type: boolean
      auto_devops_deploy_strategy:
        type: string
        example: continuous
      ci_config_path:
        type: string
        example: ''
      public_jobs:
        type: boolean
      shared_with_groups:
        type: array
        items:
          type: string
      only_allow_merge_if_pipeline_succeeds:
        type: boolean
      allow_merge_on_skipped_pipeline:
        type: boolean
      request_access_enabled:
        type: boolean
      only_allow_merge_if_all_discussions_are_resolved:
        type: boolean
      remove_source_branch_after_merge:
        type: boolean
      printing_merge_request_link_enabled:
        type: boolean
      merge_method:
        type: string
        example: merge
      squash_option:
        type: string
        example: default_off
      enforce_auth_checks_on_uploads:
        type: boolean
      suggestion_commit_message:
        type: string
        example: Suggestion message
      merge_commit_template:
        type: string
        example: "%(title)"
      squash_commit_template:
        type: string
        example: "%(source_branch)"
      issue_branch_template:
        type: string
        example: "%(title)"
      statistics:
        "$ref": "#/definitions/API_Entities_ProjectStatistics"
      warn_about_potentially_unwanted_characters:
        type: boolean
      autoclose_referenced_issues:
        type: boolean
      approvals_before_merge:
        type: string
      mirror:
        type: string
      mirror_user_id:
        type: string
      mirror_trigger_builds:
        type: string
      only_mirror_protected_branches:
        type: string
      mirror_overwrites_diverged_branches:
        type: string
      external_authorization_classification_label:
        type: string
      marked_for_deletion_at:
        type: string
      marked_for_deletion_on:
        type: string
      requirements_enabled:
        type: string
      requirements_access_level:
        type: string
      security_and_compliance_enabled:
        type: string
      compliance_frameworks:
        type: string
      issues_template:
        type: string
      merge_requests_template:
        type: string
      ci_restrict_pipeline_cancellation_role:
        type: string
      merge_pipelines_enabled:
        type: string
      merge_trains_enabled:
        type: string
      merge_trains_skip_train_allowed:
        type: string
      only_allow_merge_if_all_status_checks_passed:
        type: string
      allow_pipeline_trigger_approve_deployment:
        type: boolean
      prevent_merge_without_jira_issue:
        type: string
    description: API_Entities_Project model
  API_Entities_LicenseBasic:
    type: object
    properties:
      key:
        type: string
        example: gpl-3.0
      name:
        type: string
        example: GNU General Public License v3.0
      nickname:
        type: string
        example: GNU GPLv3
      html_url:
        type: string
        example: http://choosealicense.com/licenses/gpl-3.0
      source_url:
        type: string
  API_Entities_NamespaceBasic:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 2
      name:
        type: string
        example: project
      path:
        type: string
        example: my_project
      kind:
        type: string
        example: project
      full_path:
        type: string
        example: group/my_project
      parent_id:
        type: integer
        format: int32
        example: 1
      avatar_url:
        type: string
        example: https://example.com/avatar/12345
      web_url:
        type: string
        example: https://example.com/group/my_project
  API_Entities_UserBasic:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      username:
        type: string
        example: admin
      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
    description: API_Entities_UserBasic model
  API_Entities_ContainerExpirationPolicy:
    type: object
    properties:
      cadence:
        type: string
      enabled:
        type: string
      keep_n:
        type: string
      older_than:
        type: string
      name_regex:
        type: string
      name_regex_keep:
        type: string
      next_run_at:
        type: string
  API_Entities_BasicProjectDetails:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      description:
        type: string
        example: desc
      name:
        type: string
        example: project1
      name_with_namespace:
        type: string
        example: John Doe / project1
      path:
        type: string
        example: project1
      path_with_namespace:
        type: string
        example: namespace1/project1
      created_at:
        type: string
        format: date-time
        example: '2020-05-07T04:27:17.016Z'
      default_branch:
        type: string
        example: main
      tag_list:
        type: array
        items:
          type: string
          example: tag
      topics:
        type: array
        items:
          type: string
          example: topic
      ssh_url_to_repo:
        type: string
        example: git@gitlab.example.com:gitlab/gitlab.git
      http_url_to_repo:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab.git
      web_url:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab
      readme_url:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab/blob/master/README.md
      forks_count:
        type: integer
        format: int32
        example: 1
      license_url:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab/blob/master/LICENCE
      license:
        "$ref": "#/definitions/API_Entities_LicenseBasic"
      avatar_url:
        type: string
        example: http://example.com/uploads/project/avatar/3/uploads/avatar.png
      star_count:
        type: integer
        format: int32
        example: 1
      last_activity_at:
        type: string
        format: date-time
        example: '2013-09-30T13:46:02Z'
      namespace:
        "$ref": "#/definitions/API_Entities_NamespaceBasic"
      custom_attributes:
        "$ref": "#/definitions/API_Entities_CustomAttribute"
      repository_storage:
        type: string
        example: default
    description: API_Entities_BasicProjectDetails model
  API_Entities_ProjectStatistics:
    type: object
    properties:
      commit_count:
        type: string
      storage_size:
        type: string
      repository_size:
        type: string
      wiki_size:
        type: string
      lfs_objects_size:
        type: string
      job_artifacts_size:
        type: string
      pipeline_artifacts_size:
        type: string
      packages_size:
        type: string
      snippets_size:
        type: string
      uploads_size:
        type: string
      container_registry_size:
        type: string
  postApiV4GroupsIdTransfer:
    type: object
    properties:
      group_id:
        type: integer
        format: int32
        description: The ID of the target group to which the group needs to be transferred
          to.If not provided, the source group will be promoted to a root group.
    description: Transfer a group to a new parent group or promote a subgroup to a
      root group
  postApiV4GroupsIdShare:
    type: object
    properties:
      group_id:
        type: integer
        format: int32
        description: The ID of the group to share
      group_access:
        type: integer
        format: int32
        description: The group access level
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
      expires_at:
        type: string
        format: date
        description: Share expiration date
    required:
    - group_id
    - group_access
    description: Share a group with a group
  API_Entities_UserPublic:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      username:
        type: string
        example: admin
      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
      created_at:
        type: string
      bio:
        type: string
      location:
        type: string
      public_email:
        type: string
      skype:
        type: string
      linkedin:
        type: string
      twitter:
        type: string
      discord:
        type: string
      website_url:
        type: string
      organization:
        type: string
      job_title:
        type: string
      pronouns:
        type: string
      bot:
        type: string
      work_information:
        type: string
      followers:
        type: string
      following:
        type: string
      is_followed:
        type: string
      local_time:
        type: string
      last_sign_in_at:
        type: string
        format: date-time
        example: '2015-09-03T07:24:01.670Z'
      confirmed_at:
        type: string
        format: date-time
        example: '2015-09-03T07:24:01.670Z'
      last_activity_on:
        type: string
        format: date-time
        example: '2015-09-03T07:24:01.670Z'
      email:
        type: string
        example: john@example.com
      theme_id:
        type: integer
        format: int32
        example: 2
      color_scheme_id:
        type: integer
        format: int32
        example: 1
      projects_limit:
        type: integer
        format: int32
        example: 10
      current_sign_in_at:
        type: string
        format: date-time
        example: '2015-09-03T07:24:01.670Z'
      identities:
        "$ref": "#/definitions/API_Entities_Identity"
      can_create_group:
        type: boolean
        example: true
      can_create_project:
        type: boolean
        example: true
      two_factor_enabled:
        type: boolean
        example: true
      external:
        type: string
      private_profile:
        type: boolean
        example: 'null'
      commit_email:
        type: string
      shared_runners_minutes_limit:
        type: string
      extra_shared_runners_minutes_limit:
        type: string
      scim_identities:
        "$ref": "#/definitions/API_Entities_ScimIdentity"
    description: API_Entities_UserPublic model
  API_Entities_Identity:
    type: object
    properties:
      provider:
        type: string
      extern_uid:
        type: string
      saml_provider_id:
        type: string
  API_Entities_ScimIdentity:
    type: object
    properties:
      extern_uid:
        type: string
      group_id:
        type: string
      active:
        type: string
  EE_API_Entities_SshCertificate:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 142
      title:
        type: string
        example: new ssh cert
      key:
        type: string
      created_at:
        type: string
        format: date-time
        example: '2022-01-31T15:10:45.080Z'
    description: EE_API_Entities_SshCertificate model
  postApiV4GroupsIdSshCertificates:
    type: object
    properties:
      title:
        type: string
        description: The title of the ssh certificate
      key:
        type: string
        description: The key of the ssh certificate
    required:
    - title
    - key
    description: Create a ssh certificate for a group.
  API_Entities_Ci_Runner:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 8
      description:
        type: string
        example: test-1-20150125
      ip_address:
        type: string
        example: 127.0.0.1
      active:
        type: boolean
        example: true
      paused:
        type: boolean
        example: false
      is_shared:
        type: boolean
        example: true
      runner_type:
        type: string
        example: instance_type
        enum:
        - instance_type
        - group_type
        - project_type
      name:
        type: string
        example: test
      online:
        type: boolean
        example: true
      status:
        type: string
        example: online
    description: API_Entities_Ci_Runner model
  API_Entities_Ci_ResetTokenResult:
    type: object
    properties:
      token:
        type: string
      token_expires_at:
        type: string
    description: API_Entities_Ci_ResetTokenResult model
  API_Entities_DeployToken:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: MyToken
      username:
        type: string
        example: gitlab+deploy-token-1
      expires_at:
        type: string
        format: date-time
        example: '2020-02-14T00:00:00.000Z'
      scopes:
        type: array
        example:
        - read_repository
      revoked:
        type: boolean
      expired:
        type: boolean
    description: API_Entities_DeployToken model
  postApiV4GroupsIdDeployTokens:
    type: object
    properties:
      name:
        type: string
        description: New deploy token's name
      scopes:
        type: array
        description: Indicates the deploy token scopes. Must be at least one of `read_repository`,
          `read_registry`, `write_registry`, `read_package_registry`, or `write_package_registry`
        items:
          type: string
          enum:
          - read_repository
          - read_registry
          - write_registry
          - read_package_registry
          - write_package_registry
      expires_at:
        type: string
        format: date-time
        description: Expiration date for the deploy token. Does not expire if no value
          is provided. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`)
      username:
        type: string
        description: Username for deploy token. Default is `gitlab+deploy-token-{n}`
    required:
    - name
    - scopes
    description: Create a group deploy token
  API_Entities_DeployTokenWithToken:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: MyToken
      username:
        type: string
        example: gitlab+deploy-token-1
      expires_at:
        type: string
        format: date-time
        example: '2020-02-14T00:00:00.000Z'
      scopes:
        type: array
        example:
        - read_repository
      revoked:
        type: boolean
      expired:
        type: boolean
      token:
        type: string
        example: jMRvtPNxrn3crTAGukpZ
    description: API_Entities_DeployTokenWithToken model
  API_Entities_Cluster:
    type: object
    properties:
      id:
        type: string
      name:
        type: string
      created_at:
        type: string
      domain:
        type: string
      enabled:
        type: string
      managed:
        type: string
      provider_type:
        type: string
      platform_type:
        type: string
      environment_scope:
        type: string
      cluster_type:
        type: string
      namespace_per_environment:
        type: string
      user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      platform_kubernetes:
        "$ref": "#/definitions/API_Entities_Platform_Kubernetes"
      provider_gcp:
        "$ref": "#/definitions/API_Entities_Provider_Gcp"
      management_project:
        "$ref": "#/definitions/API_Entities_ProjectIdentity"
    description: API_Entities_Cluster model
  API_Entities_Platform_Kubernetes:
    type: object
    properties:
      api_url:
        type: string
      namespace:
        type: string
      authorization_type:
        type: string
      ca_cert:
        type: string
  API_Entities_Provider_Gcp:
    type: object
    properties:
      cluster_id:
        type: string
      status_name:
        type: string
      gcp_project_id:
        type: string
      zone:
        type: string
      machine_type:
        type: string
      num_nodes:
        type: string
      endpoint:
        type: string
  API_Entities_ProjectIdentity:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      description:
        type: string
        example: desc
      name:
        type: string
        example: project1
      name_with_namespace:
        type: string
        example: John Doe / project1
      path:
        type: string
        example: project1
      path_with_namespace:
        type: string
        example: namespace1/project1
      created_at:
        type: string
        format: date-time
        example: '2020-05-07T04:27:17.016Z'
  API_Entities_ClusterGroup:
    type: object
    properties:
      id:
        type: string
      name:
        type: string
      created_at:
        type: string
      domain:
        type: string
      enabled:
        type: string
      managed:
        type: string
      provider_type:
        type: string
      platform_type:
        type: string
      environment_scope:
        type: string
      cluster_type:
        type: string
      namespace_per_environment:
        type: string
      user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      platform_kubernetes:
        "$ref": "#/definitions/API_Entities_Platform_Kubernetes"
      provider_gcp:
        "$ref": "#/definitions/API_Entities_Provider_Gcp"
      management_project:
        "$ref": "#/definitions/API_Entities_ProjectIdentity"
      group:
        "$ref": "#/definitions/API_Entities_BasicGroupDetails"
    description: API_Entities_ClusterGroup model
  API_Entities_BasicGroupDetails:
    type: object
    properties:
      id:
        type: string
      web_url:
        type: string
      name:
        type: string
    description: API_Entities_BasicGroupDetails model
  postApiV4GroupsIdClustersUser:
    type: object
    properties:
      name:
        type: string
        description: Cluster name
      enabled:
        type: boolean
        description: Determines if cluster is active or not, defaults to true
        default: true
      environment_scope:
        type: string
        description: The associated environment to the cluster
        default: "*"
      namespace_per_environment:
        type: boolean
        description: Deploy each environment to a separate Kubernetes namespace
        default: true
      domain:
        type: string
        description: Cluster base domain
      management_project_id:
        type: integer
        format: int32
        description: The ID of the management project
      managed:
        type: boolean
        description: Determines if GitLab will manage namespaces and service accounts
          for this cluster, defaults to true
        default: true
      platform_kubernetes_attributes:
        type: object
        description: Platform Kubernetes data
        properties:
          api_url:
            type: string
            description: URL to access the Kubernetes API
          token:
            type: string
            description: Token to authenticate against Kubernetes
          ca_cert:
            type: string
            description: TLS certificate (needed if API is using a self-signed TLS
              certificate)
          namespace:
            type: string
            description: Unique namespace related to Group
          authorization_type:
            type: string
            description: Cluster authorization type, defaults to RBAC
            enum:
            - unknown_authorization
            - rbac
            - abac
            default: rbac
        required:
        - api_url
        - token
    required:
    - name
    - platform_kubernetes_attributes
    description: Add existing cluster to group
  putApiV4GroupsIdClustersClusterId:
    type: object
    properties:
      name:
        type: string
        description: Cluster name
      enabled:
        type: boolean
        description: Determines if cluster is active or not
      domain:
        type: string
        description: Cluster base domain
      environment_scope:
        type: string
        description: The associated environment to the cluster
      namespace_per_environment:
        type: boolean
        description: Deploy each environment to a separate Kubernetes namespace
        default: true
      management_project_id:
        type: integer
        format: int32
        description: The ID of the management project
      managed:
        type: boolean
        description: Determines if GitLab will manage namespaces and service accounts
          for this cluster
      platform_kubernetes_attributes:
        type: object
        description: Platform Kubernetes data
        properties:
          api_url:
            type: string
            description: URL to access the Kubernetes API
          token:
            type: string
            description: Token to authenticate against Kubernetes
          ca_cert:
            type: string
            description: TLS certificate (needed if API is using a self-signed TLS
              certificate)
          namespace:
            type: string
            description: Unique namespace related to Group
    description: Edit group cluster
  API_Entities_ContainerRegistry_Repository:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: releases
      path:
        type: string
        example: group/project/releases
      project_id:
        type: integer
        format: int32
        example: 9
      location:
        type: string
        example: gitlab.example.com/group/project/releases
      created_at:
        type: string
        format: date-time
        example: '2019-01-10T13:39:08.229Z'
      cleanup_policy_started_at:
        type: string
        format: date-time
        example: '2020-08-17T03:12:35.489Z'
      tags_count:
        type: integer
        format: int32
        example: 3
      tags:
        "$ref": "#/definitions/API_Entities_ContainerRegistry_Tag"
      delete_api_path:
        type: string
        example: delete/api/path
      size:
        type: integer
        format: int32
        example: 12345
      status:
        type: string
        example: delete_scheduled
    description: API_Entities_ContainerRegistry_Repository model
  API_Entities_ContainerRegistry_Tag:
    type: object
    properties:
      name:
        type: string
        example: latest
      path:
        type: string
        example: namespace1/project1/test_image_1:latest
      location:
        type: string
        example: registry.dev/namespace1/project1/test_image_1:latest
    description: API_Entities_ContainerRegistry_Tag model
  postApiV4GroupsIdExportRelations:
    type: object
    properties:
      batched:
        type: boolean
        description: Whether to export in batches
    description: Start relations export
  API_Entities_BulkImports_ExportStatus:
    type: object
    properties:
      relation:
        type: string
        example: issues
      status:
        type: string
        example: started
        enum:
        - started
        - finished
        - failed
      error:
        type: string
        example: Error message
      updated_at:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      batched:
        type: boolean
        example: true
      batches_count:
        type: integer
        format: int32
        example: 2
      total_objects_count:
        type: integer
        format: int32
        example: 100
      batches:
        "$ref": "#/definitions/API_Entities_BulkImports_ExportBatchStatus"
    description: API_Entities_BulkImports_ExportStatus model
  API_Entities_BulkImports_ExportBatchStatus:
    type: object
    properties:
      status:
        type: string
        example: started
        enum:
        - started
        - finished
        - failed
      batch_number:
        type: integer
        format: int32
        example: 1
      objects_count:
        type: integer
        format: int32
        example: 100
      error:
        type: string
        example: Error message
      updated_at:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
  API_Entities_Package:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: "@foo/bar"
      conan_package_name:
        type: string
      version:
        type: string
        example: 1.0.3
      package_type:
        type: string
        example: npm
      status:
        type: string
        example: default
      _links:
        type: object
        properties:
          web_path:
            type: string
          delete_api_path:
            type: string
      created_at:
        type: string
        format: date-time
        example: '2022-09-16T12:47:31.949Z'
      last_downloaded_at:
        type: string
        format: date-time
        example: '2022-09-19T11:32:35.169Z'
      project_id:
        type: integer
        format: int32
        example: 2
      project_path:
        type: string
        example: gitlab/foo/bar
      tags:
        type: string
      pipeline:
        "$ref": "#/definitions/API_Entities_Package_Pipeline"
      pipelines:
        "$ref": "#/definitions/API_Entities_Package_Pipeline"
      versions:
        "$ref": "#/definitions/API_Entities_PackageVersion"
    description: API_Entities_Package model
  API_Entities_Package_Pipeline:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      iid:
        type: integer
        format: int32
        example: 2
      project_id:
        type: integer
        format: int32
        example: 3
      sha:
        type: string
        example: 0ec9e58fdfca6cdd6652c083c9edb53abc0bad52
      ref:
        type: string
        example: feature-branch
      status:
        type: string
        example: success
      source:
        type: string
        example: push
      created_at:
        type: string
        format: date-time
        example: '2022-10-21T16:49:48.000+02:00'
      updated_at:
        type: string
        format: date-time
        example: '2022-10-21T16:49:48.000+02:00'
      web_url:
        type: string
        example: https://gitlab.example.com/gitlab-org/gitlab-foss/-/pipelines/61
      user:
        "$ref": "#/definitions/API_Entities_UserBasic"
    description: API_Entities_Package_Pipeline model
  API_Entities_PackageVersion:
    type: object
    properties:
      id:
        type: string
      version:
        type: string
      created_at:
        type: string
      tags:
        type: string
      pipeline:
        "$ref": "#/definitions/API_Entities_Package_Pipeline"
  API_Entities_Ci_Variable:
    type: object
    properties:
      variable_type:
        type: string
        example: env_var
      key:
        type: string
        example: TEST_VARIABLE_1
      value:
        type: string
        example: TEST_1
      hidden:
        type: boolean
      protected:
        type: boolean
      masked:
        type: boolean
      raw:
        type: boolean
      environment_scope:
        type: string
        example: "*"
      description:
        type: string
        example: This variable is being used for ...
    description: API_Entities_Ci_Variable model
  postApiV4GroupsIdVariables:
    type: object
    properties:
      key:
        type: string
        description: |-
          The ID of a group or URL-encoded path of the group owned by the
                  authenticated user
      value:
        type: string
        description: The value of a variable
      protected:
        type: string
        description: Whether the variable is protected
      masked_and_hidden:
        type: string
        description: Whether the variable is masked and hidden
      masked:
        type: string
        description: Whether the variable is masked
      raw:
        type: string
        description: Whether the variable will be expanded
      variable_type:
        type: string
        description: 'The type of the variable. Default: env_var'
        enum:
        - env_var
        - file
      environment_scope:
        type: string
        description: The environment scope of the variable
      description:
        type: string
        description: The description of the variable
    required:
    - key
    - value
    description: Create a new variable in a group
  putApiV4GroupsIdVariablesKey:
    type: object
    properties:
      value:
        type: string
        description: The value of a variable
      protected:
        type: string
        description: Whether the variable is protected
      masked:
        type: string
        description: Whether the variable is masked
      raw:
        type: string
        description: Whether the variable will be expanded
      variable_type:
        type: string
        description: 'The type of the variable. Default: env_var'
        enum:
        - env_var
        - file
      environment_scope:
        type: string
        description: The environment scope of the variable
      description:
        type: string
        description: The description of the variable
    description: Update an existing variable from a group
  postApiV4GroupsIdInvitations:
    type: object
    properties:
      access_level:
        type: integer
        format: int32
        description: 'A valid access level (defaults: `30`, developer access level)'
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        - 5
      email:
        type: array
        description: The email address to invite, or multiple emails separated by
          comma
        items:
          type: string
      user_id:
        type: array
        description: The user ID of the new member or multiple IDs separated by commas.
        items:
          type: string
      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: invitations-api
    required:
    - access_level
    description: Invite non-members by email address to a group or project.
  API_Entities_Invitation:
    type: object
    properties:
      access_level:
        type: string
      created_at:
        type: string
      expires_at:
        type: string
      invite_email:
        type: string
      invite_token:
        type: string
      user_name:
        type: string
      created_by_name:
        type: string
    description: API_Entities_Invitation model
  putApiV4GroupsIdInvitationsEmail:
    type: object
    properties:
      access_level:
        type: integer
        format: int32
        description: 'A valid access level (defaults: `30`, developer access level)'
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
      expires_at:
        type: string
        format: date-time
        description: Date string in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`)
    description: Updates a group or project invitation.
  API_Entities_Member:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      username:
        type: string
        example: admin
      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
      access_level:
        type: string
      created_at:
        type: string
      created_by:
        "$ref": "#/definitions/API_Entities_UserBasic"
      expires_at:
        type: string
      group_saml_identity:
        "$ref": "#/definitions/API_Entities_Identity"
      email:
        type: string
      is_using_seat:
        type: string
      override:
        type: string
      membership_state:
        type: string
      member_role:
        "$ref": "#/definitions/EE_API_Entities_MemberRole"
    description: API_Entities_Member model
  EE_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
        example: 40
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        - 5
      admin_cicd_variables:
        type: boolean
      admin_compliance_framework:
        type: boolean
      admin_group_member:
        type: boolean
      admin_merge_request:
        type: boolean
      admin_push_rules:
        type: boolean
      admin_terraform_state:
        type: boolean
      admin_vulnerability:
        type: boolean
      admin_web_hook:
        type: boolean
      archive_project:
        type: boolean
      manage_deploy_tokens:
        type: boolean
      manage_group_access_tokens:
        type: boolean
      manage_merge_request_settings:
        type: boolean
      manage_project_access_tokens:
        type: boolean
      manage_security_policy_link:
        type: boolean
      read_code:
        type: boolean
      read_dependency:
        type: boolean
      read_vulnerability:
        type: boolean
      remove_group:
        type: boolean
      remove_project:
        type: boolean
  postApiV4GroupsIdMembers:
    type: object
    properties:
      access_level:
        type: integer
        format: int32
        description: 'A valid access level (defaults: `30`, developer 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.
  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
  EE_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
    description: EE_API_Entities_BillableMembership model
  API_Entities_MergeRequestBasic:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 84
      iid:
        type: integer
        format: int32
        example: 14
      project_id:
        type: integer
        format: int32
        example: 4
      title:
        type: string
        example: Impedit et ut et dolores vero provident ullam est
      description:
        type: string
        example: Repellendus impedit et vel velit dignissimos.
      state:
        type: string
        example: closed
      created_at:
        type: string
        format: date-time
        example: '2022-08-17T12:46:35.053Z'
      updated_at:
        type: string
        format: date-time
        example: '2022-11-14T17:22:01.470Z'
      merged_by:
        "$ref": "#/definitions/API_Entities_UserBasic"
      merge_user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      merged_at:
        type: string
      closed_by:
        "$ref": "#/definitions/API_Entities_UserBasic"
      closed_at:
        type: string
      title_html:
        type: string
      description_html:
        type: string
      target_branch:
        type: string
      source_branch:
        type: string
      user_notes_count:
        type: string
      upvotes:
        type: string
      downvotes:
        type: string
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      assignees:
        "$ref": "#/definitions/API_Entities_UserBasic"
      assignee:
        "$ref": "#/definitions/API_Entities_UserBasic"
      reviewers:
        "$ref": "#/definitions/API_Entities_UserBasic"
      source_project_id:
        type: string
      target_project_id:
        type: string
      labels:
        type: string
      draft:
        type: string
      imported:
        type: string
      imported_from:
        type: string
        example: bitbucket
      work_in_progress:
        type: string
      milestone:
        "$ref": "#/definitions/API_Entities_Milestone"
      merge_when_pipeline_succeeds:
        type: string
      merge_status:
        type: string
      detailed_merge_status:
        type: string
      sha:
        type: string
      merge_commit_sha:
        type: string
      squash_commit_sha:
        type: string
      discussion_locked:
        type: string
      should_remove_source_branch:
        type: string
      force_remove_source_branch:
        type: string
      prepared_at:
        type: string
      allow_collaboration:
        type: string
      allow_maintainer_to_push:
        type: string
      reference:
        type: string
      references:
        "$ref": "#/definitions/API_Entities_IssuableReferences"
      web_url:
        type: string
      time_stats:
        "$ref": "#/definitions/API_Entities_IssuableTimeStats"
      squash:
        type: string
      squash_on_merge:
        type: string
      task_completion_status:
        type: string
      has_conflicts:
        type: string
      blocking_discussions_resolved:
        type: string
      approvals_before_merge:
        type: string
    description: API_Entities_MergeRequestBasic model
  API_Entities_Milestone:
    type: object
    properties:
      id:
        type: string
      iid:
        type: string
      project_id:
        type: string
      group_id:
        type: string
      title:
        type: string
      description:
        type: string
      state:
        type: string
      created_at:
        type: string
      updated_at:
        type: string
      due_date:
        type: string
      start_date:
        type: string
      expired:
        type: string
      web_url:
        type: string
  API_Entities_IssuableReferences:
    type: object
    properties:
      short:
        type: string
        example: "&6"
      relative:
        type: string
        example: "&6"
      full:
        type: string
        example: test&6
  API_Entities_IssuableTimeStats:
    type: object
    properties:
      time_estimate:
        type: integer
        format: int32
        example: 12600
      total_time_spent:
        type: integer
        format: int32
        example: 3600
      human_time_estimate:
        type: string
        example: 3h 30m
      human_total_time_spent:
        type: string
        example: 1h
    description: API_Entities_IssuableTimeStats model
  API_Entities_Release:
    type: object
    properties:
      name:
        type: string
        example: Release v1.0
      tag_name:
        type: string
        example: v1.0
      description:
        type: string
        example: Finally released v1.0
      created_at:
        type: string
        format: date-time
        example: '2019-01-03T01:56:19.539Z'
      released_at:
        type: string
        format: date-time
        example: '2019-01-03T01:56:19.539Z'
      upcoming_release:
        type: boolean
      description_html:
        type: string
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      commit:
        "$ref": "#/definitions/API_Entities_Commit"
      milestones:
        "$ref": "#/definitions/API_Entities_MilestoneWithStats"
      commit_path:
        type: string
        example: "/root/app/commit/588440f66559714280628a4f9799f0c4eb880a4a"
      tag_path:
        type: string
        example: "/root/app/-/tags/v1.0"
      assets:
        type: object
        properties:
          count:
            type: integer
            format: int32
            example: 2
          sources:
            "$ref": "#/definitions/API_Entities_Releases_Source"
          links:
            "$ref": "#/definitions/API_Entities_Releases_Link"
      evidences:
        "$ref": "#/definitions/API_Entities_Releases_Evidence"
      _links:
        type: object
        properties:
          closed_issues_url:
            type: string
          closed_merge_requests_url:
            type: string
          edit_url:
            type: string
          merged_merge_requests_url:
            type: string
          opened_issues_url:
            type: string
          opened_merge_requests_url:
            type: string
          self:
            type: string
    description: API_Entities_Release model
  API_Entities_Commit:
    type: object
    properties:
      id:
        type: string
        example: 2695effb5807a22ff3d138d593fd856244e155e7
      short_id:
        type: string
        example: 2695effb
      created_at:
        type: string
        format: date-time
        example: '2017-07-26T11:08:53.000+02:00'
      parent_ids:
        type: array
        items:
          type: string
          example: 2a4b78934375d7f53875269ffd4f45fd83a84ebe
      title:
        type: string
        example: Initial commit
      message:
        type: string
        example: Initial commit
      author_name:
        type: string
        example: John Smith
      author_email:
        type: string
        example: john@example.com
      authored_date:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      committer_name:
        type: string
        example: Jack Smith
      committer_email:
        type: string
        example: jack@example.com
      committed_date:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      trailers:
        type: object
        example: '{ "Merged-By": "Jane Doe janedoe@gitlab.com" }'
      extended_trailers:
        type: object
        example: '{ "Signed-off-by": ["John Doe <johndoe@gitlab.com>", "Jane Doe <janedoe@gitlab.com>"]
          }'
      web_url:
        type: string
        example: https://gitlab.example.com/janedoe/gitlab-foss/-/commit/ed899a2f4b50b4370feeea94676502b42383c746
    description: API_Entities_Commit model
  API_Entities_MilestoneWithStats:
    type: object
    properties:
      id:
        type: string
      iid:
        type: string
      project_id:
        type: string
      group_id:
        type: string
      title:
        type: string
      description:
        type: string
      state:
        type: string
      created_at:
        type: string
      updated_at:
        type: string
      due_date:
        type: string
      start_date:
        type: string
      expired:
        type: string
      web_url:
        type: string
      issue_stats:
        type: object
        properties:
          total:
            type: string
          closed:
            type: string
  API_Entities_Releases_Source:
    type: object
    properties:
      format:
        type: string
        example: zip
      url:
        type: string
        example: https://gitlab.example.com/root/app/-/archive/v1.0/app-v1.0.zip
  API_Entities_Releases_Link:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: app-v1.0.dmg
      url:
        type: string
        example: https://gitlab.example.com/root/app/-/jobs/688/artifacts/raw/bin/app-v1.0.dmg
      direct_asset_url:
        type: string
        example: https://gitlab.example.com/root/app/-/releases/v1.0/downloads/app-v1.0.dmg
      link_type:
        type: string
        example: other
    description: API_Entities_Releases_Link model
  API_Entities_Releases_Evidence:
    type: object
    properties:
      sha:
        type: string
        example: 760d6cdfb0879c3ffedec13af470e0f71cf52c6cde4d
      filepath:
        type: string
        example: https://gitlab.example.com/root/app/-/releases/v1.0/evidence.json
      collected_at:
        type: string
        format: date-time
        example: '2019-01-03T01:56:19.539Z'
  API_Entities_ResourceAccessToken:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 2
      name:
        type: string
        example: John Doe
      revoked:
        type: boolean
      created_at:
        type: string
        format: date-time
      scopes:
        type: array
        example:
        - api
      user_id:
        type: integer
        format: int32
        example: 3
      last_used_at:
        type: string
        format: date-time
        example: '2020-08-31T15:53:00.073Z'
      active:
        type: boolean
      expires_at:
        type: string
        format: date-time
        example: '2020-08-31T15:53:00.073Z'
      access_level:
        type: integer
        format: int32
        example: 40
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
    description: API_Entities_ResourceAccessToken model
  postApiV4GroupsIdAccessTokens:
    type: object
    properties:
      name:
        type: string
        description: Resource access token name
        example: test
      scopes:
        type: array
        description: The permissions of the token
        example:
        - api
        - read_repository
        items:
          type: string
          enum:
          - api
          - read_api
          - create_runner
          - k8s_proxy
          - read_repository
          - write_repository
          - read_observability
          - write_observability
          - ai_features
      expires_at:
        type: string
        format: date
        description: The expiration date of the token
        default: '2025-05-23T21:13:09.000Z'
        example: "\"2021-01-31"
      access_level:
        type: integer
        format: int32
        description: The access level of the token in the group
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        default: 40
        example: 40
    required:
    - name
    - scopes
    - expires_at
    description: Create a resource access token
  API_Entities_ResourceAccessTokenWithToken:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 2
      name:
        type: string
        example: John Doe
      revoked:
        type: boolean
      created_at:
        type: string
        format: date-time
      scopes:
        type: array
        example:
        - api
      user_id:
        type: integer
        format: int32
        example: 3
      last_used_at:
        type: string
        format: date-time
        example: '2020-08-31T15:53:00.073Z'
      active:
        type: boolean
      expires_at:
        type: string
        format: date-time
        example: '2020-08-31T15:53:00.073Z'
      access_level:
        type: integer
        format: int32
        example: 40
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
      token:
        type: string
    description: API_Entities_ResourceAccessTokenWithToken model
  postApiV4GroupsIdAccessTokensTokenIdRotate:
    type: object
    properties:
      expires_at:
        type: string
        format: date
        description: The expiration date of the token
        example: '2021-01-31'
    description: Rotate a resource access token
  API_Entities_WikiPageBasic:
    type: object
    properties:
      format:
        type: string
        example: markdown
      slug:
        type: string
        example: deploy
      title:
        type: string
        example: deploy
    description: API_Entities_WikiPageBasic model
  API_Entities_WikiPage:
    type: object
    properties:
      format:
        type: string
        example: markdown
      slug:
        type: string
        example: deploy
      title:
        type: string
        example: deploy
      content:
        type: string
        example: Here is an instruction how to deploy this project.
      encoding:
        type: string
        example: UTF-8
      front_matter:
        type: object
        example:
          title: deploy
    description: API_Entities_WikiPage model
  postApiV4GroupsIdWikis:
    type: object
    properties:
      title:
        type: string
        description: Title of a wiki page
      front_matter:
        type: object
        properties:
          title:
            type: string
            description: Front matter title of a wiki page
      content:
        type: string
        description: Content of a wiki page
      format:
        type: string
        description: Format of a wiki page. Available formats are markdown, rdoc,
          asciidoc and org
        enum:
        - markdown
        - rdoc
        - asciidoc
        - org
        default: markdown
    required:
    - title
    - content
    description: Create a wiki page
  putApiV4GroupsIdWikisSlug:
    type: object
    properties:
      title:
        type: string
        description: Title of a wiki page
      front_matter:
        type: object
        properties:
          title:
            type: string
            description: Front matter title of a wiki page
      content:
        type: string
        description: Content of a wiki page
      format:
        type: string
        description: Format of a wiki page. Available formats are markdown, rdoc,
          asciidoc and org
        enum:
        - markdown
        - rdoc
        - asciidoc
        - org
        default: markdown
    description: Update a wiki page
  postApiV4GroupsIdWikisAttachments:
    type: object
    properties:
      file:
        type: file
        description: The attachment file to be uploaded
      branch:
        type: string
        description: The name of the branch
    required:
    - file
    description: Upload an attachment to the wiki repository
  API_Entities_WikiAttachment:
    type: object
    properties:
      file_name:
        type: string
        example: dk.png
      file_path:
        type: string
        example: uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png
      branch:
        type: string
        example: main
      link:
        type: object
        properties:
          url:
            type: string
            example: uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png
          markdown:
            type: string
            example: "![dk](uploads/6a061c4cf9f1c28cb22c384b4b8d4e3c/dk.png)"
    description: API_Entities_WikiAttachment model
  EE_API_Entities_AuditEvent:
    type: object
    properties:
      id:
        type: string
      author_id:
        type: string
      entity_id:
        type: string
      entity_type:
        type: string
      details:
        type: string
      created_at:
        type: string
    description: EE_API_Entities_AuditEvent model
  postApiV4GroupsIdDebianDistributions:
    type: object
    properties:
      codename:
        type: string
        description: The Debian Codename
        example: sid
      suite:
        type: string
        description: The Debian Suite
        example: unstable
      origin:
        type: string
        description: The Debian Origin
        example: Grep
      label:
        type: string
        description: The Debian Label
        example: grep.be
      version:
        type: string
        description: The Debian Version
        example: '12'
      description:
        type: string
        description: The Debian Description
        example: My description
      valid_time_duration_seconds:
        type: integer
        format: int32
        description: The duration before the Release file should be considered expired
          by the client
        example: 604800
      components:
        type: array
        description: The list of Components
        example: main
        items:
          type: string
      architectures:
        type: array
        description: The list of Architectures
        example: amd64
        items:
          type: string
    required:
    - codename
    description: Create a Debian Distribution
  API_Entities_Packages_Debian_Distribution:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      codename:
        type: string
        example: sid
      suite:
        type: string
        example: unstable
      origin:
        type: string
        example: Grep
      label:
        type: string
        example: grep.be
      version:
        type: string
        example: '12'
      description:
        type: string
        example: My description
      valid_time_duration_seconds:
        type: integer
        format: int32
        example: 604800
      components:
        type: array
        items:
          type: string
          example: main
      architectures:
        type: array
        items:
          type: string
          example: amd64
    description: API_Entities_Packages_Debian_Distribution model
  putApiV4GroupsIdDebianDistributionsCodename:
    type: object
    properties:
      suite:
        type: string
        description: The Debian Suite
        example: unstable
      origin:
        type: string
        description: The Debian Origin
        example: Grep
      label:
        type: string
        description: The Debian Label
        example: grep.be
      version:
        type: string
        description: The Debian Version
        example: '12'
      description:
        type: string
        description: The Debian Description
        example: My description
      valid_time_duration_seconds:
        type: integer
        format: int32
        description: The duration before the Release file should be considered expired
          by the client
        example: 604800
      components:
        type: array
        description: The list of Components
        example: main
        items:
          type: string
      architectures:
        type: array
        description: The list of Architectures
        example: amd64
        items:
          type: string
    description: Update a Debian Distribution
  API_Entities_NpmPackageTag:
    type: object
    properties:
      dist_tags:
        type: object
        example: '{ "latest":"1.0.1" }'
    description: API_Entities_NpmPackageTag model
  putApiV4GroupsIdPackagesNpmPackage*packageNameDistTagsTag:
    type: object
    properties:
      package_name:
        type: string
        description: Package name
    required:
    - package_name
    description: Create or Update the given tag for the given NPM package and version
  API_Entities_NpmPackage:
    type: object
    properties:
      name:
        type: string
        example: my_package
      versions:
        type: object
        example: |-
          {
                           "1.0.0": {
                             "name": "my_package",
                             "version": "1.0.0",
                             "dist": { "shasum": "12345", "tarball": "https://..." }
                           }
                         }
      dist-tags:
        type: object
        example: '{ "latest":"1.0.1" }'
    description: API_Entities_NpmPackage model
  API_Entities_Nuget_ServiceIndex:
    type: object
    properties:
      version:
        type: string
        example: 1.3.0.17
      resources:
        type: array
        items:
          type: object
          example: '{ "@id": "https://gitlab.com/api/v4/projects/1/packages/nuget/query",
            "@type": "SearchQueryService", "comment": "Filter and search for packages
            by keyword."}'
    description: API_Entities_Nuget_ServiceIndex model
  API_Entities_Nuget_PackagesMetadata:
    type: object
    properties:
      count:
        type: integer
        format: int32
        example: 1
      items:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_Nuget_PackagesMetadataItem"
    description: API_Entities_Nuget_PackagesMetadata model
  API_Entities_Nuget_PackagesMetadataItem:
    type: object
    properties:
      "@id":
        type: string
        example: https://gitlab.example.com/api/v4/projects/1/packages/nuget/metadata/MyNuGetPkg/1.3.0.17.json
      lower:
        type: string
        example: 1.3.0.17
      upper:
        type: string
        example: 1.3.0.17
      count:
        type: integer
        format: int32
        example: 1
      items:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_Nuget_PackageMetadata"
  API_Entities_Nuget_PackageMetadata:
    type: object
    properties:
      "@id":
        type: string
        example: https://gitlab.example.com/api/v4/projects/1/packages/nuget/metadata/MyNuGetPkg/1.3.0.17.json
      packageContent:
        type: string
        example: https://gitlab.example.com/api/v4/projects/1/packages/nuget/download/MyNuGetPkg/1.3.0.17/helloworld.1.3.0.17.nupkg
      catalogEntry:
        "$ref": "#/definitions/API_Entities_Nuget_PackageMetadataCatalogEntry"
    description: API_Entities_Nuget_PackageMetadata model
  API_Entities_Nuget_PackageMetadataCatalogEntry:
    type: object
    properties:
      "@id":
        type: string
        example: https://gitlab.example.com/api/v4/projects/1/packages/nuget/metadata/MyNuGetPkg/1.3.0.17.json
      dependencyGroups:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_Nuget_DependencyGroup"
      id:
        type: string
        example: MyNuGetPkg
      version:
        type: string
        example: 1.3.0.17
      tags:
        type: string
        example: tag#1 tag#2
      packageContent:
        type: string
        example: https://gitlab.example.com/api/v4/projects/1/packages/nuget/download/MyNuGetPkg/1.3.0.17/helloworld.1.3.0.17.nupkg
      authors:
        type: string
        example: Authors
      description:
        type: string
        example: Description
      summary:
        type: string
        example: Description
      projectUrl:
        type: string
        example: http://sandbox.com/project
      licenseUrl:
        type: string
        example: http://sandbox.com/license
      iconUrl:
        type: string
        example: http://sandbox.com/icon
      published:
        type: string
        example: '2023-05-08T17:23:25Z'
  API_Entities_Nuget_DependencyGroup:
    type: object
    properties:
      "@id":
        type: string
        example: http://gitlab.com/Sandbox.App/1.0.0.json#dependencygroup
      "@type":
        type: string
        example: PackageDependencyGroup
      targetFramework:
        type: string
        example: fwk test
      dependencies:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_Nuget_Dependency"
  API_Entities_Nuget_Dependency:
    type: object
    properties:
      "@id":
        type: string
        example: http://gitlab.com/Sandbox.App/1.0.0.json#dependency
      "@type":
        type: string
        example: PackageDependency
      id:
        type: string
        example: Dependency
      range:
        type: string
        example: 2.0.0
  API_Entities_Nuget_SearchResults:
    type: object
    properties:
      totalHits:
        type: integer
        format: int32
        example: 1
      data:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_Nuget_SearchResult"
    description: API_Entities_Nuget_SearchResults model
  API_Entities_Nuget_SearchResult:
    type: object
    properties:
      "@type":
        type: string
        example: Package
      id:
        type: string
        example: MyNuGetPkg
      title:
        type: string
        example: MyNuGetPkg
      totalDownloads:
        type: integer
        format: int32
        example: 1
      verified:
        type: boolean
      version:
        type: string
        example: 1.3.0.17
      versions:
        "$ref": "#/definitions/API_Entities_Nuget_SearchResultVersion"
      tags:
        type: string
        example: tag#1 tag#2
      authors:
        type: string
        example: Authors
      description:
        type: string
        example: Description
      summary:
        type: string
        example: Description
      projectUrl:
        type: string
        example: http://sandbox.com/project
      licenseUrl:
        type: string
        example: http://sandbox.com/license
      iconUrl:
        type: string
        example: http://sandbox.com/icon
  API_Entities_Nuget_SearchResultVersion:
    type: object
    properties:
      "@id":
        type: string
        example: https://gitlab.example.com/api/v4/projects/1/packages/nuget/metadata/MyNuGetPkg/1.3.0.17.json
      version:
        type: string
        example: 1.3.0.17
      downloads:
        type: integer
        format: int32
        example: 1
  putApiV4ProjectsIdAccessRequestsUserIdApprove:
    type: object
    properties:
      access_level:
        type: integer
        format: int32
        description: 'A valid access level (defaults: `30`, the Developer role)'
        default: 30
    description: Approves an access request for the given user.
  postApiV4ProjectsIdBadges:
    type: object
    properties:
      link_url:
        type: string
        description: URL of the badge link
      image_url:
        type: string
        description: URL of the badge image
      name:
        type: string
        description: Name for the badge
    required:
    - link_url
    - image_url
    description: Adds a badge to a project.
  putApiV4ProjectsIdBadgesBadgeId:
    type: object
    properties:
      link_url:
        type: string
        description: URL of the badge link
      image_url:
        type: string
        description: URL of the badge image
      name:
        type: string
        description: Name for the badge
    description: Updates a badge of a project.
  API_Entities_Branch:
    type: object
    properties:
      name:
        type: string
        example: master
      commit:
        "$ref": "#/definitions/API_Entities_Commit"
      merged:
        type: boolean
        example: true
      protected:
        type: boolean
        example: true
      developers_can_push:
        type: boolean
        example: true
      developers_can_merge:
        type: boolean
        example: true
      can_push:
        type: boolean
        example: true
      default:
        type: boolean
        example: true
      web_url:
        type: string
        example: https://gitlab.example.com/Commit921/the-dude/-/tree/master
    description: API_Entities_Branch model
  putApiV4ProjectsIdRepositoryBranchesBranchProtect:
    type: object
    properties:
      developers_can_push:
        type: boolean
        description: Flag if developers can push to that branch
      developers_can_merge:
        type: boolean
        description: Flag if developers can merge to that branch
    description: Protect a single branch
  postApiV4ProjectsIdRepositoryBranches:
    type: object
    properties:
      branch:
        type: string
        description: The name of the branch
      ref:
        type: string
        description: Create branch from commit sha or existing branch
    required:
    - branch
    - ref
    description: Create branch
  API_Entities_Ci_Job:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      status:
        type: string
        example: waiting_for_resource
      stage:
        type: string
        example: deploy
      name:
        type: string
        example: deploy_to_production
      ref:
        type: string
        example: main
      tag:
        type: boolean
      coverage:
        type: number
        format: float
        example: 98.29
      allow_failure:
        type: boolean
      created_at:
        type: string
        format: date-time
        example: '2015-12-24T15:51:21.880Z'
      started_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:30.733Z'
      finished_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:31.198Z'
      erased_at:
        type: string
        format: date-time
        example: '2015-12-24T18:00:29.728Z'
      duration:
        type: number
        format: float
        example: 0.465
        description: Time spent running
      queued_duration:
        type: number
        format: float
        example: 0.123
        description: Time spent enqueued
      user:
        "$ref": "#/definitions/API_Entities_User"
      commit:
        "$ref": "#/definitions/API_Entities_Commit"
      pipeline:
        "$ref": "#/definitions/API_Entities_Ci_PipelineBasic"
      failure_reason:
        type: string
        example: script_failure
      web_url:
        type: string
        example: https://example.com/foo/bar/-/jobs/1
      project:
        type: object
        properties:
          ci_job_token_scope_enabled:
            type: string
            example: false
      artifacts_file:
        "$ref": "#/definitions/API_Entities_Ci_JobArtifactFile"
      artifacts:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_Ci_JobArtifact"
      runner:
        "$ref": "#/definitions/API_Entities_Ci_Runner"
      runner_manager:
        "$ref": "#/definitions/API_Entities_Ci_RunnerManager"
      artifacts_expire_at:
        type: string
        format: date-time
        example: '2016-01-19T09:05:50.355Z'
      archived:
        type: boolean
        example: false
      tag_list:
        type: array
        items:
          type: string
          example:
          - ubuntu18
          - docker runner
    description: API_Entities_Ci_Job model
  API_Entities_User:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      username:
        type: string
        example: admin
      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
      created_at:
        type: string
      bio:
        type: string
      location:
        type: string
      public_email:
        type: string
      skype:
        type: string
      linkedin:
        type: string
      twitter:
        type: string
      discord:
        type: string
      website_url:
        type: string
      organization:
        type: string
      job_title:
        type: string
      pronouns:
        type: string
      bot:
        type: string
      work_information:
        type: string
      followers:
        type: string
      following:
        type: string
      is_followed:
        type: string
      local_time:
        type: string
    description: API_Entities_User model
  API_Entities_Ci_PipelineBasic:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      iid:
        type: integer
        format: int32
        example: 2
      project_id:
        type: integer
        format: int32
        example: 3
      sha:
        type: string
        example: 0ec9e58fdfca6cdd6652c083c9edb53abc0bad52
      ref:
        type: string
        example: feature-branch
      status:
        type: string
        example: success
      source:
        type: string
        example: push
      created_at:
        type: string
        format: date-time
        example: '2022-10-21T16:49:48.000+02:00'
      updated_at:
        type: string
        format: date-time
        example: '2022-10-21T16:49:48.000+02:00'
      web_url:
        type: string
        example: https://gitlab.example.com/gitlab-org/gitlab-foss/-/pipelines/61
    description: API_Entities_Ci_PipelineBasic model
  API_Entities_Ci_JobArtifactFile:
    type: object
    properties:
      filename:
        type: string
        example: artifacts.zip
      size:
        type: integer
        format: int32
        example: 1000
  API_Entities_Ci_JobArtifact:
    type: object
    properties:
      file_type:
        type: string
        example: archive
        enum:
        - archive
        - metadata
        - trace
        - junit
        - sast
        - dependency_scanning
        - container_scanning
        - dast
        - codequality
        - license_scanning
        - performance
        - metrics
        - metrics_referee
        - network_referee
        - lsif
        - dotenv
        - cobertura
        - terraform
        - accessibility
        - cluster_applications
        - secret_detection
        - requirements
        - coverage_fuzzing
        - browser_performance
        - load_performance
        - api_fuzzing
        - cluster_image_scanning
        - cyclonedx
        - requirements_v2
        - annotations
        - repository_xray
      size:
        type: integer
        format: int32
        example: 1000
      filename:
        type: string
        example: artifacts.zip
      file_format:
        type: string
        example: zip
        enum:
        - raw
        - zip
        - gzip
  API_Entities_Ci_RunnerManager:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 8
      system_id:
        type: string
        example: runner-1
      version:
        type: string
        example: 16.11.0
      revision:
        type: string
        example: 91a27b2a
      platform:
        type: string
        example: linux
      architecture:
        type: string
        example: amd64
      created_at:
        type: string
        example: '2023-10-24T01:27:06.549Z'
      contacted_at:
        type: string
        example: '2023-10-24T01:27:06.549Z'
      ip_address:
        type: string
        example: 127.0.0.1
      status:
        type: string
        example: online
  postApiV4ProjectsIdJobsJobIdPlay:
    type: object
    properties:
      job_variables_attributes:
        type: array
        description: User defined variables that will be included when running the
          job
        items:
          type: object
          properties:
            key:
              type: string
              description: The name of the variable
              example: foo
            value:
              type: string
              description: The value of the variable
              example: bar
          required:
          - key
          - value
    description: Trigger an actionable job (manual, delayed, etc)
  API_Entities_Ci_JobBasic:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      status:
        type: string
        example: waiting_for_resource
      stage:
        type: string
        example: deploy
      name:
        type: string
        example: deploy_to_production
      ref:
        type: string
        example: main
      tag:
        type: boolean
      coverage:
        type: number
        format: float
        example: 98.29
      allow_failure:
        type: boolean
      created_at:
        type: string
        format: date-time
        example: '2015-12-24T15:51:21.880Z'
      started_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:30.733Z'
      finished_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:31.198Z'
      erased_at:
        type: string
        format: date-time
        example: '2015-12-24T18:00:29.728Z'
      duration:
        type: number
        format: float
        example: 0.465
        description: Time spent running
      queued_duration:
        type: number
        format: float
        example: 0.123
        description: Time spent enqueued
      user:
        "$ref": "#/definitions/API_Entities_User"
      commit:
        "$ref": "#/definitions/API_Entities_Commit"
      pipeline:
        "$ref": "#/definitions/API_Entities_Ci_PipelineBasic"
      failure_reason:
        type: string
        example: script_failure
      web_url:
        type: string
        example: https://example.com/foo/bar/-/jobs/1
      project:
        type: object
        properties:
          ci_job_token_scope_enabled:
            type: string
            example: false
    description: API_Entities_Ci_JobBasic model
  API_Entities_Ci_ResourceGroup:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      key:
        type: string
        example: production
      process_mode:
        type: string
        example: unordered
      created_at:
        type: string
        format: date-time
        example: '2021-09-01T08:04:59.650Z'
      updated_at:
        type: string
        format: date-time
        example: '2021-09-01T08:04:59.650Z'
    description: API_Entities_Ci_ResourceGroup model
  putApiV4ProjectsIdResourceGroupsKey:
    type: object
    properties:
      process_mode:
        type: string
        description: The process mode of the resource group
        enum:
        - unordered
        - oldest_first
        - newest_first
    description: Edit an existing resource group
  postApiV4ProjectsIdRunners:
    type: object
    properties:
      runner_id:
        type: integer
        format: int32
        description: The ID of a runner
    required:
    - runner_id
    description: Enable a runner in project
  API_Entities_Ci_SecureFile:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 123
      name:
        type: string
        example: upload-keystore.jks
      checksum:
        type: string
        example: 16630b189ab34b2e3504f4758e1054d2e478deda510b2b08cc0ef38d12e80aac
      checksum_algorithm:
        type: string
        example: sha256
      created_at:
        type: string
        format: date-time
        example: '2022-02-22T22:22:22.222Z'
      expires_at:
        type: string
        format: date-time
        example: '2023-09-21T14:55:59.000Z'
      metadata:
        type: object
        example:
          id: '75949910542696343243264405377658443914'
      file_extension:
        type: string
        example: jks
    description: API_Entities_Ci_SecureFile model
  postApiV4ProjectsIdSecureFiles:
    type: object
    properties:
      name:
        type: string
        description: |-
          The name of the file being uploaded. The filename must be unique within
                      the project
      file:
        type: file
        description: The secure file being uploaded
    required:
    - name
    - file
    description: Create a secure file
  postApiV4ProjectsIdPipeline:
    type: object
    properties:
      ref:
        type: string
        description: Reference
        example: develop
      variables:
        type: array
        description: Array of variables available in the pipeline
        items:
          type: object
          properties:
            key:
              type: string
              description: The key of the variable
              example: UPLOAD_TO_S3
            value:
              type: string
              description: The value of the variable
              example: 'true'
            variable_type:
              type: string
              description: The type of variable, must be one of env_var or file. Defaults
                to env_var
              enum:
              - env_var
              - file
              default: env_var
    required:
    - ref
    description: Create a new pipeline
  API_Entities_Ci_Pipeline:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      iid:
        type: integer
        format: int32
        example: 2
      project_id:
        type: integer
        format: int32
        example: 3
      sha:
        type: string
        example: 0ec9e58fdfca6cdd6652c083c9edb53abc0bad52
      ref:
        type: string
        example: feature-branch
      status:
        type: string
        example: success
      source:
        type: string
        example: push
      created_at:
        type: string
        format: date-time
        example: '2015-12-24T15:51:21.880Z'
      updated_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:31.198Z'
      web_url:
        type: string
        example: https://gitlab.example.com/gitlab-org/gitlab-foss/-/pipelines/61
      before_sha:
        type: string
        example: a91957a858320c0e17f3a0eca7cfacbff50ea29a
      tag:
        type: boolean
        example: false
      yaml_errors:
        type: string
        example: 'widgets:build: needs ''widgets:test'''
      user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      started_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:30.733Z'
      finished_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:31.198Z'
      committed_at:
        type: string
        format: date-time
        example: '2015-12-24T15:51:21.880Z'
      duration:
        type: integer
        format: int32
        example: 127
        description: Time spent running in seconds
      queued_duration:
        type: integer
        format: int32
        example: 63
        description: Time spent enqueued in seconds
      coverage:
        type: number
        format: float
        example: 98.29
      detailed_status:
        "$ref": "#/definitions/DetailedStatusEntity"
    description: API_Entities_Ci_Pipeline model
  DetailedStatusEntity:
    type: object
    properties:
      icon:
        type: string
        example: status_success
      text:
        type: string
        example: passed
      label:
        type: string
        example: passed
      group:
        type: string
        example: success
      tooltip:
        type: string
        example: passed
      has_details:
        type: boolean
        example: true
      details_path:
        type: string
        example: "/test-group/test-project/-/pipelines/287"
      illustration:
        type: object
        example: |
          {
            "image": "illustrations/empty-state/empty-job-not-triggered-md.svg",
            "size": "",
            "title": "This job has not been triggered yet",
            "content": "This job depends on upstream jobs that need to succeed in order for this job to be triggered"
          }
      favicon:
        type: string
        example: "/assets/ci_favicons/favicon_status_success.png"
      action:
        type: object
        properties:
          icon:
            type: string
            example: cancel
          title:
            type: string
            example: Cancel
          path:
            type: string
            example: "/namespace1/project1/-/jobs/2/cancel"
          method:
            type: string
            example: post
          button_title:
            type: string
            example: Cancel this job
          confirmation_message:
            type: string
            example: Are you sure?
  API_Entities_Ci_PipelineWithMetadata:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      iid:
        type: integer
        format: int32
        example: 2
      project_id:
        type: integer
        format: int32
        example: 3
      sha:
        type: string
        example: 0ec9e58fdfca6cdd6652c083c9edb53abc0bad52
      ref:
        type: string
        example: feature-branch
      status:
        type: string
        example: success
      source:
        type: string
        example: push
      created_at:
        type: string
        format: date-time
        example: '2015-12-24T15:51:21.880Z'
      updated_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:31.198Z'
      web_url:
        type: string
        example: https://gitlab.example.com/gitlab-org/gitlab-foss/-/pipelines/61
      before_sha:
        type: string
        example: a91957a858320c0e17f3a0eca7cfacbff50ea29a
      tag:
        type: boolean
        example: false
      yaml_errors:
        type: string
        example: 'widgets:build: needs ''widgets:test'''
      user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      started_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:30.733Z'
      finished_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:31.198Z'
      committed_at:
        type: string
        format: date-time
        example: '2015-12-24T15:51:21.880Z'
      duration:
        type: integer
        format: int32
        example: 127
        description: Time spent running in seconds
      queued_duration:
        type: integer
        format: int32
        example: 63
        description: Time spent enqueued in seconds
      coverage:
        type: number
        format: float
        example: 98.29
      detailed_status:
        "$ref": "#/definitions/DetailedStatusEntity"
      name:
        type: string
        example: Build pipeline
    description: API_Entities_Ci_PipelineWithMetadata model
  API_Entities_Ci_Bridge:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      status:
        type: string
        example: waiting_for_resource
      stage:
        type: string
        example: deploy
      name:
        type: string
        example: deploy_to_production
      ref:
        type: string
        example: main
      tag:
        type: boolean
      coverage:
        type: number
        format: float
        example: 98.29
      allow_failure:
        type: boolean
      created_at:
        type: string
        format: date-time
        example: '2015-12-24T15:51:21.880Z'
      started_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:30.733Z'
      finished_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:31.198Z'
      erased_at:
        type: string
        format: date-time
        example: '2015-12-24T18:00:29.728Z'
      duration:
        type: number
        format: float
        example: 0.465
        description: Time spent running
      queued_duration:
        type: number
        format: float
        example: 0.123
        description: Time spent enqueued
      user:
        "$ref": "#/definitions/API_Entities_User"
      commit:
        "$ref": "#/definitions/API_Entities_Commit"
      pipeline:
        "$ref": "#/definitions/API_Entities_Ci_PipelineBasic"
      failure_reason:
        type: string
        example: script_failure
      web_url:
        type: string
        example: https://example.com/foo/bar/-/jobs/1
      project:
        type: object
        properties:
          ci_job_token_scope_enabled:
            type: string
            example: false
      downstream_pipeline:
        "$ref": "#/definitions/API_Entities_Ci_PipelineBasic"
    description: API_Entities_Ci_Bridge model
  TestReportEntity:
    type: object
    properties:
      total_time:
        type: integer
        format: int32
        example: 180
      total_count:
        type: integer
        format: int32
        example: 1
      success_count:
        type: integer
        format: int32
        example: 1
      failed_count:
        type: integer
        format: int32
        example: 0
      skipped_count:
        type: integer
        format: int32
        example: 0
      error_count:
        type: integer
        format: int32
        example: 0
      test_suites:
        type: array
        items:
          "$ref": "#/definitions/TestSuiteEntity"
    description: TestReportEntity model
  TestSuiteEntity:
    type: object
    properties:
      name:
        type: string
        example: test
      total_time:
        type: integer
        format: int32
        example: 1904
      total_count:
        type: integer
        format: int32
        example: 3363
      success_count:
        type: integer
        format: int32
        example: 3351
      failed_count:
        type: integer
        format: int32
        example: 0
      skipped_count:
        type: integer
        format: int32
        example: 12
      error_count:
        type: integer
        format: int32
        example: 0
      suite_error:
        type: string
        example: 'JUnit XML parsing failed: 1:1: FATAL: Document is empty'
      test_cases:
        type: array
        items:
          "$ref": "#/definitions/TestCaseEntity"
  TestCaseEntity:
    type: object
    properties:
      status:
        type: string
        example: success
      name:
        type: string
        example: Security Reports can create an auto-remediation MR
      classname:
        type: string
        example: vulnerability_management_spec
      file:
        type: string
        example: "./spec/test_spec.rb"
      execution_time:
        type: integer
        format: int32
        example: 180
      system_output:
        type: string
        example: 'Failure/Error: is_expected.to eq(3)'
      stack_trace:
        type: string
        example: 'Failure/Error: is_expected.to eq(3)'
      recent_failures:
        type: string
        example:
          count: 3
          base_branch: develop
      attachment_url:
        type: string
        example: http://localhost/namespace1/project1/-/jobs/1/artifacts/file/some/path.png
  TestReportSummaryEntity:
    type: object
    properties:
      total:
        type: integer
        format: int32
        example: 3363
      test_suites:
        "$ref": "#/definitions/TestSuiteSummaryEntity"
    description: TestReportSummaryEntity model
  TestSuiteSummaryEntity:
    type: object
    properties:
      name:
        type: string
        example: test
      total_time:
        type: integer
        format: int32
        example: 1904
      total_count:
        type: integer
        format: int32
        example: 3363
      success_count:
        type: integer
        format: int32
        example: 3351
      failed_count:
        type: integer
        format: int32
        example: 0
      skipped_count:
        type: integer
        format: int32
        example: 12
      error_count:
        type: integer
        format: int32
        example: 0
      suite_error:
        type: string
        example: 'JUnit XML parsing failed: 1:1: FATAL: Document is empty'
      test_cases:
        type: array
        items:
          "$ref": "#/definitions/TestCaseEntity"
      build_ids:
        type: array
        items:
          type: integer
          format: int32
          example:
          - 66004
  putApiV4ProjectsIdPipelinesPipelineIdMetadata:
    type: object
    properties:
      name:
        type: string
        description: The name of the pipeline
        example: Deployment to production
    required:
    - name
    description: Updates pipeline metadata
  API_Entities_Ci_PipelineSchedule:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 13
      description:
        type: string
        example: Test schedule pipeline
      ref:
        type: string
        example: develop
      cron:
        type: string
        example: "* * * * *"
      cron_timezone:
        type: string
        example: Asia/Tokyo
      next_run_at:
        type: string
        format: date-time
        example: '2017-05-19T13:41:00.000Z'
      active:
        type: boolean
        example: true
      created_at:
        type: string
        format: date-time
        example: '2017-05-19T13:31:08.849Z'
      updated_at:
        type: string
        format: date-time
        example: '2017-05-19T13:40:17.727Z'
      owner:
        "$ref": "#/definitions/API_Entities_UserBasic"
    description: API_Entities_Ci_PipelineSchedule model
  API_Entities_Ci_PipelineScheduleDetails:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 13
      description:
        type: string
        example: Test schedule pipeline
      ref:
        type: string
        example: develop
      cron:
        type: string
        example: "* * * * *"
      cron_timezone:
        type: string
        example: Asia/Tokyo
      next_run_at:
        type: string
        format: date-time
        example: '2017-05-19T13:41:00.000Z'
      active:
        type: boolean
        example: true
      created_at:
        type: string
        format: date-time
        example: '2017-05-19T13:31:08.849Z'
      updated_at:
        type: string
        format: date-time
        example: '2017-05-19T13:40:17.727Z'
      owner:
        "$ref": "#/definitions/API_Entities_UserBasic"
      last_pipeline:
        "$ref": "#/definitions/API_Entities_Ci_PipelineBasic"
      variables:
        "$ref": "#/definitions/API_Entities_Ci_Variable"
    description: API_Entities_Ci_PipelineScheduleDetails model
  postApiV4ProjectsIdPipelineSchedules:
    type: object
    properties:
      description:
        type: string
        description: The description of pipeline schedule
        example: Test schedule pipeline
      ref:
        type: string
        description: The branch/tag name will be triggered
        example: develop
      cron:
        type: string
        description: The cron
        example: "* * * * *"
      cron_timezone:
        type: string
        description: The timezone
        default: UTC
        example: Asia/Tokyo
      active:
        type: boolean
        description: The activation of pipeline schedule
        default: true
        example: true
    required:
    - description
    - ref
    - cron
    description: Create a new pipeline schedule
  putApiV4ProjectsIdPipelineSchedulesPipelineScheduleId:
    type: object
    properties:
      description:
        type: string
        description: The description of pipeline schedule
        example: Test schedule pipeline
      ref:
        type: string
        description: The branch/tag name will be triggered
        example: develop
      cron:
        type: string
        description: The cron
        example: "* * * * *"
      cron_timezone:
        type: string
        description: The timezone
        example: Asia/Tokyo
      active:
        type: boolean
        description: The activation of pipeline schedule
        example: true
    description: Edit a pipeline schedule
  postApiV4ProjectsIdPipelineSchedulesPipelineScheduleIdVariables:
    type: object
    properties:
      key:
        type: string
        description: The key of the variable
        example: NEW_VARIABLE
      value:
        type: string
        description: The value of the variable
        example: new value
      variable_type:
        type: string
        description: The type of variable, must be one of env_var or file. Defaults
          to env_var
        enum:
        - env_var
        - file
        default: env_var
    required:
    - key
    - value
    description: Create a new pipeline schedule variable
  putApiV4ProjectsIdPipelineSchedulesPipelineScheduleIdVariablesKey:
    type: object
    properties:
      value:
        type: string
        description: The value of the variable
        example: new value
      variable_type:
        type: string
        description: The type of variable, must be one of env_var or file
        enum:
        - env_var
        - file
        default: env_var
    description: Edit a pipeline schedule variable
  postApiV4ProjectsId(refRef)triggerPipeline:
    type: object
    properties:
      token:
        type: string
        description: The unique token of trigger or job token
        example: 6d056f63e50fe6f8c5f8f4aa10edb7
      variables:
        type: object
        description: The list of variables to be injected into build
        example:
          VAR1: value1
          VAR2: value2
    required:
    - token
    description: Trigger a GitLab project pipeline
  API_Entities_Trigger:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 10
      token:
        type: string
        example: 6d056f63e50fe6f8c5f8f4aa10edb7
      description:
        type: string
        example: test
      created_at:
        type: string
        format: date-time
        example: '2015-12-24T15:51:21.880Z'
      updated_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:31.198Z'
      last_used:
        type: string
        format: date-time
        example: '2015-12-24T17:54:31.198Z'
      owner:
        "$ref": "#/definitions/API_Entities_UserBasic"
    description: API_Entities_Trigger model
  postApiV4ProjectsIdTriggers:
    type: object
    properties:
      description:
        type: string
        description: The trigger token description
        example: my trigger token description
    required:
    - description
    description: Create a trigger token
  putApiV4ProjectsIdTriggersTriggerId:
    type: object
    properties:
      description:
        type: string
        description: The trigger token description
    description: Update a trigger token
  postApiV4ProjectsIdVariables:
    type: object
    properties:
      key:
        type: string
        description: The key of a variable
      value:
        type: string
        description: The value of a variable
      protected:
        type: boolean
        description: Whether the variable is protected
      masked:
        type: boolean
        description: Whether the variable is masked
      masked_and_hidden:
        type: boolean
        description: Whether the variable is masked and hidden
      raw:
        type: boolean
        description: Whether the variable will be expanded
      variable_type:
        type: string
        description: 'The type of the variable. Default: env_var'
        enum:
        - env_var
        - file
      environment_scope:
        type: string
        description: The environment_scope of the variable
      description:
        type: string
        description: The description of the variable
    required:
    - key
    - value
    description: Create a new variable in a project
  putApiV4ProjectsIdVariablesKey:
    type: object
    properties:
      value:
        type: string
        description: The value of a variable
      protected:
        type: boolean
        description: Whether the variable is protected
      masked:
        type: boolean
        description: Whether the variable is masked
      environment_scope:
        type: string
        description: The environment_scope of a variable
      raw:
        type: boolean
        description: Whether the variable will be expanded
      variable_type:
        type: string
        description: 'The type of the variable. Default: env_var'
        enum:
        - env_var
        - file
      filter:
        type: object
        description: 'Available filters: [environment_scope]. Example: filter[environment_scope]=production'
        properties:
          environment_scope:
            type: string
            description: The environment scope of a variable
      description:
        type: string
        description: The description of the variable
    description: Update an existing variable from a project
  API_Entities_Clusters_Agent:
    type: object
    properties:
      id:
        type: string
      name:
        type: string
      config_project:
        "$ref": "#/definitions/API_Entities_ProjectIdentity"
      created_at:
        type: string
      created_by_user_id:
        type: string
    description: API_Entities_Clusters_Agent model
  postApiV4ProjectsIdClusterAgents:
    type: object
    properties:
      name:
        type: string
        description: The name of the agent
    required:
    - name
    description: Register an agent with a project
  postApiV4ProjectsIdRepositoryCommits:
    type: object
    properties:
      branch:
        type: string
        description: Name of the branch to commit into. To create a new branch, also
          provide either `start_branch` or `start_sha`, and optionally `start_project`.
        example: master
      commit_message:
        type: string
        description: Commit message
        example: initial commit
      actions:
        type: array
        description: Actions to perform in commit
        items:
          type: object
          properties:
            action:
              type: string
              description: The action to perform, `create`, `delete`, `move`, `update`,
                `chmod`
              enum:
              - create
              - update
              - move
              - delete
              - chmod
            file_path:
              type: string
              description: Full path to the file.
              example: lib/class.rb
            previous_path:
              type: string
              description: Original full path to the file being moved.
              example: lib/class.rb
            content:
              type: string
              description: File content
              example: Some file content
            encoding:
              type: string
              description: "`text` or `base64`"
              enum:
              - text
              - base64
              default: text
            last_commit_id:
              type: string
              description: Last known file commit id
              example: 2695effb5807a22ff3d138d593fd856244e155e7
            execute_filemode:
              type: boolean
              description: When `true/false` enables/disables the execute flag on
                the file.
          required:
          - action
          - file_path
          - previous_path
          - content
          - execute_filemode
      start_branch:
        type: string
        description: Name of the branch to start the new branch from
        example: staging
      start_sha:
        type: string
        description: SHA of the commit to start the new branch from
        example: 2695effb5807a22ff3d138d593fd856244e155e7
      start_project:
        type: integer
        format: int32
        description: The ID or path of the project to start the new branch from
        example: 1
      author_email:
        type: string
        description: Author email for commit
        example: janedoe@example.com
      author_name:
        type: string
        description: Author name for commit
        example: Jane Doe
      stats:
        type: boolean
        description: Include commit stats
        default: true
      force:
        type: boolean
        description: When `true` overwrites the target branch with a new commit based
          on the `start_branch` or `start_sha`
        default: false
    required:
    - branch
    - commit_message
    - actions
    description: Commit multiple file changes as one commit
  API_Entities_CommitDetail:
    type: object
    properties:
      id:
        type: string
        example: 2695effb5807a22ff3d138d593fd856244e155e7
      short_id:
        type: string
        example: 2695effb
      created_at:
        type: string
        format: date-time
        example: '2017-07-26T11:08:53.000+02:00'
      parent_ids:
        type: array
        items:
          type: string
          example: 2a4b78934375d7f53875269ffd4f45fd83a84ebe
      title:
        type: string
        example: Initial commit
      message:
        type: string
        example: Initial commit
      author_name:
        type: string
        example: John Smith
      author_email:
        type: string
        example: john@example.com
      authored_date:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      committer_name:
        type: string
        example: Jack Smith
      committer_email:
        type: string
        example: jack@example.com
      committed_date:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      trailers:
        type: object
        example: '{ "Merged-By": "Jane Doe janedoe@gitlab.com" }'
      extended_trailers:
        type: object
        example: '{ "Signed-off-by": ["John Doe <johndoe@gitlab.com>", "Jane Doe <janedoe@gitlab.com>"]
          }'
      web_url:
        type: string
        example: https://gitlab.example.com/janedoe/gitlab-foss/-/commit/ed899a2f4b50b4370feeea94676502b42383c746
      stats:
        "$ref": "#/definitions/API_Entities_CommitStats"
      status:
        type: string
        example: success
      project_id:
        type: integer
        format: int32
        example: 1
      last_pipeline:
        "$ref": "#/definitions/API_Entities_Ci_PipelineBasic"
    description: API_Entities_CommitDetail model
  API_Entities_CommitStats:
    type: object
    properties:
      additions:
        type: integer
        format: int32
        example: 1
      deletions:
        type: integer
        format: int32
        example: 0
      total:
        type: integer
        format: int32
        example: 1
  API_Entities_Diff:
    type: object
    properties:
      diff:
        type: string
        example: "@@ -71,6 +71,8 @@\\n..."
      new_path:
        type: string
        example: doc/update/5.4-to-6.0.md
      old_path:
        type: string
        example: doc/update/5.4-to-6.0.md
      a_mode:
        type: string
        example: '100755'
      b_mode:
        type: string
        example: '100644'
      new_file:
        type: boolean
      renamed_file:
        type: boolean
      deleted_file:
        type: boolean
      generated_file:
        type: boolean
    description: API_Entities_Diff model
  API_Entities_CommitNote:
    type: object
    properties:
      note:
        type: string
        example: this doc is really nice
      path:
        type: string
        example: README.md
      line:
        type: integer
        format: int32
        example: 11
      line_type:
        type: string
        example: new
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      created_at:
        type: string
        format: date-time
        example: '2016-01-19T09:44:55.600Z'
    description: API_Entities_CommitNote model
  API_Entities_CommitSequence:
    type: object
    properties:
      count:
        type: integer
        format: int32
        example: 1
    description: API_Entities_CommitSequence model
  postApiV4ProjectsIdRepositoryCommitsShaCherryPick:
    type: object
    properties:
      branch:
        type: string
        description: The name of the branch
        example: master
      dry_run:
        type: boolean
        description: Does not commit any changes
        default: false
      message:
        type: string
        description: A custom commit message to use for the picked commit
        example: Initial commit
    required:
    - branch
    description: Cherry pick commit into a branch
  postApiV4ProjectsIdRepositoryCommitsShaRevert:
    type: object
    properties:
      branch:
        type: string
        description: Target branch name
        example: master
      dry_run:
        type: boolean
        description: Does not commit any changes
        default: false
    required:
    - branch
    description: Revert a commit in a branch
  API_Entities_BasicRef:
    type: object
    properties:
      type:
        type: string
        example: tag
      name:
        type: string
        example: v1.1.0
    description: API_Entities_BasicRef model
  postApiV4ProjectsIdRepositoryCommitsShaComments:
    type: object
    properties:
      note:
        type: string
        description: The text of the comment
        example: Nice code!
      path:
        type: string
        description: The file path
        example: doc/update/5.4-to-6.0.md
      line:
        type: integer
        format: int32
        description: The line number
        example: 11
      line_type:
        type: string
        description: The type of the line
        enum:
        - new
        - old
        default: new
    required:
    - note
    - line
    - line_type
    description: Post comment to commit
  API_Entities_CommitSignature:
    type: object
    properties:
      signature_type:
        type: string
        example: PGP
      signature:
        type: string
      commit_source:
        type: string
        example: gitaly
    description: API_Entities_CommitSignature model
  API_Entities_CommitStatus:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 93
      sha:
        type: string
        example: 18f3e63d05582537db6d183d9d557be09e1f90c8
      ref:
        type: string
        example: develop
      status:
        type: string
        example: success
      name:
        type: string
        example: default
      target_url:
        type: string
        example: https://gitlab.example.com/janedoe/gitlab-foss/builds/91
      description:
        type: string
      created_at:
        type: string
        format: date-time
        example: '2016-01-19T09:05:50.355Z'
      started_at:
        type: string
        format: date-time
        example: '2016-01-20T08:40:25.832Z'
      finished_at:
        type: string
        format: date-time
        example: '2016-01-21T08:40:25.832Z'
      allow_failure:
        type: boolean
        example: false
      coverage:
        type: number
        format: float
        example: 98.29
      pipeline_id:
        type: integer
        format: int32
        example: 101
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
    description: API_Entities_CommitStatus model
  postApiV4ProjectsIdStatusesSha:
    type: object
    properties:
      state:
        type: string
        description: The state of the status
        enum:
        - pending
        - running
        - success
        - failed
        - canceled
        example: pending
      ref:
        type: string
        description: The ref
        example: develop
      target_url:
        type: string
        description: The target URL to associate with this status
        example: https://gitlab.example.com/janedoe/gitlab-foss/builds/91
      description:
        type: string
        description: A short description of the status
      name:
        type: string
        description: A string label to differentiate this status from the status of
          other systems
        default: default
        example: coverage
      context:
        type: string
        description: A string label to differentiate this status from the status of
          other systems
        default: default
        example: coverage
      coverage:
        type: number
        format: float
        description: The total code coverage
        example: 100.0
      pipeline_id:
        type: integer
        format: int32
        description: An existing pipeline ID, when multiple pipelines on the same
          commit SHA have been triggered
    required:
    - state
    description: Post status to a commit
  API_Entities_DeployKeysProject:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      title:
        type: string
        example: Sample key 25
      created_at:
        type: string
        format: date-time
        example: '2015-09-03T07:24:44.627Z'
      expires_at:
        type: string
        format: date-time
        example: '2020-09-03T07:24:44.627Z'
      key:
        type: string
        example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDNJAkI3Wdf0r13c8a5pEExB2YowPWCSVzfZV22pNBc1CuEbyYLHpUyaD0GwpGvFdx2aP7lMEk35k6Rz3ccBF6jRaVJyhsn5VNnW92PMpBJ/P1UebhXwsFHdQf5rTt082cSxWuk61kGWRQtk4ozt/J2DF/dIUVaLvc+z4HomT41fQ==
      usage_type:
        type: string
        example: auth
      fingerprint:
        type: string
        example: 4a:9d:64:15:ed:3a:e6:07:6e:89:36:b3:3b:03:05:d9
      fingerprint_sha256:
        type: string
        example: SHA256:Jrs3LD1Ji30xNLtTVf9NDCj7kkBgPBb2pjvTZ3HfIgU
      projects_with_write_access:
        "$ref": "#/definitions/API_Entities_ProjectIdentity"
      projects_with_readonly_access:
        "$ref": "#/definitions/API_Entities_ProjectIdentity"
      can_push:
        type: boolean
    description: API_Entities_DeployKeysProject model
  postApiV4ProjectsIdDeployKeys:
    type: object
    properties:
      key:
        type: string
        description: New deploy key
      title:
        type: string
        description: New deploy key's title
      can_push:
        type: boolean
        description: Can deploy key push to the project's repository
      expires_at:
        type: string
        format: date-time
        description: The expiration date of the SSH key in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ)
    required:
    - key
    - title
    description: Add deploy key
  putApiV4ProjectsIdDeployKeysKeyId:
    type: object
    properties:
      title:
        type: string
        description: New deploy key's title
      can_push:
        type: boolean
        description: Can deploy key push to the project's repository
    description: Update deploy key
  API_Entities_DeployKey:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      title:
        type: string
        example: Sample key 25
      created_at:
        type: string
        format: date-time
        example: '2015-09-03T07:24:44.627Z'
      expires_at:
        type: string
        format: date-time
        example: '2020-09-03T07:24:44.627Z'
      key:
        type: string
        example: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQDNJAkI3Wdf0r13c8a5pEExB2YowPWCSVzfZV22pNBc1CuEbyYLHpUyaD0GwpGvFdx2aP7lMEk35k6Rz3ccBF6jRaVJyhsn5VNnW92PMpBJ/P1UebhXwsFHdQf5rTt082cSxWuk61kGWRQtk4ozt/J2DF/dIUVaLvc+z4HomT41fQ==
      usage_type:
        type: string
        example: auth
      fingerprint:
        type: string
        example: 4a:9d:64:15:ed:3a:e6:07:6e:89:36:b3:3b:03:05:d9
      fingerprint_sha256:
        type: string
        example: SHA256:Jrs3LD1Ji30xNLtTVf9NDCj7kkBgPBb2pjvTZ3HfIgU
      projects_with_write_access:
        "$ref": "#/definitions/API_Entities_ProjectIdentity"
      projects_with_readonly_access:
        "$ref": "#/definitions/API_Entities_ProjectIdentity"
    description: API_Entities_DeployKey model
  postApiV4ProjectsIdDeployTokens:
    type: object
    properties:
      name:
        type: string
        description: New deploy token's name
      scopes:
        type: array
        description: Indicates the deploy token scopes. Must be at least one of `read_repository`,
          `read_registry`, `write_registry`, `read_package_registry`, or `write_package_registry`.
        items:
          type: string
          enum:
          - read_repository
          - read_registry
          - write_registry
          - read_package_registry
          - write_package_registry
      expires_at:
        type: string
        format: date-time
        description: Expiration date for the deploy token. Does not expire if no value
          is provided. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`).
      username:
        type: string
        description: Username for deploy token. Default is `gitlab+deploy-token-{n}`
    required:
    - name
    - scopes
    description: Create a project deploy token
  API_Entities_Deployment:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 41
      iid:
        type: integer
        format: int32
        example: 1
      ref:
        type: string
        example: main
      sha:
        type: string
        example: 99d03678b90d914dbb1b109132516d71a4a03ea8
      created_at:
        type: string
        format: date-time
        example: '2016-08-11T11:32:35.444Z'
      updated_at:
        type: string
        format: date-time
        example: '2016-08-11T11:32:35.444Z'
      user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      environment:
        "$ref": "#/definitions/API_Entities_EnvironmentBasic"
      deployable:
        "$ref": "#/definitions/API_Entities_Ci_Job"
      status:
        type: string
        example: created
    description: API_Entities_Deployment model
  API_Entities_EnvironmentBasic:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: deploy
      slug:
        type: string
        example: deploy
      external_url:
        type: string
        example: https://deploy.gitlab.example.com
      created_at:
        type: string
        format: date-time
        example: '2019-05-25T18:55:13.252Z'
      updated_at:
        type: string
        format: date-time
        example: '2019-05-25T18:55:13.252Z'
    description: API_Entities_EnvironmentBasic model
  API_Entities_DeploymentExtended:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 41
      iid:
        type: integer
        format: int32
        example: 1
      ref:
        type: string
        example: main
      sha:
        type: string
        example: 99d03678b90d914dbb1b109132516d71a4a03ea8
      created_at:
        type: string
        format: date-time
        example: '2016-08-11T11:32:35.444Z'
      updated_at:
        type: string
        format: date-time
        example: '2016-08-11T11:32:35.444Z'
      user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      environment:
        "$ref": "#/definitions/API_Entities_EnvironmentBasic"
      deployable:
        "$ref": "#/definitions/API_Entities_Ci_Job"
      status:
        type: string
        example: created
      pending_approval_count:
        type: integer
        format: int32
        example: 0
      approvals:
        "$ref": "#/definitions/API_Entities_Deployments_Approval"
      approval_summary:
        "$ref": "#/definitions/API_Entities_Deployments_ApprovalSummary"
    description: API_Entities_DeploymentExtended model
  API_Entities_Deployments_Approval:
    type: object
    properties:
      user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      status:
        type: string
        example: approved
      created_at:
        type: string
        format: date-time
        example: '2022-02-24T20:22:30.097Z'
      comment:
        type: string
        example: LGTM
    description: API_Entities_Deployments_Approval model
  API_Entities_Deployments_ApprovalSummary:
    type: object
    properties:
      rules:
        "$ref": "#/definitions/API_Entities_ProtectedEnvironments_ApprovalRuleForSummary"
  API_Entities_ProtectedEnvironments_ApprovalRuleForSummary:
    type: object
    properties:
      id:
        type: string
      user_id:
        type: string
      group_id:
        type: string
      access_level:
        type: string
      access_level_description:
        type: string
      required_approvals:
        type: string
      group_inheritance_type:
        type: string
      deployment_approvals:
        "$ref": "#/definitions/API_Entities_Deployments_Approval"
  postApiV4ProjectsIdDeployments:
    type: object
    properties:
      environment:
        type: string
        description: The name of the environment to create the deployment for
      sha:
        type: string
        description: The SHA of the commit that is deployed
      ref:
        type: string
        description: The name of the branch or tag that is deployed
      tag:
        type: boolean
        description: A boolean that indicates if the deployed ref is a tag (`true`)
          or not (`false`)
      status:
        type: string
        description: The status of the deployment that is created. One of `running`,
          `success`, `failed`, or `canceled`
        enum:
        - running
        - success
        - failed
        - canceled
    required:
    - environment
    - sha
    - ref
    - tag
    - status
    description: Create a deployment
  putApiV4ProjectsIdDeploymentsDeploymentId:
    type: object
    properties:
      status:
        type: string
        description: The new status of the deployment. One of `running`, `success`,
          `failed`, or `canceled`
        enum:
        - running
        - success
        - failed
        - canceled
    required:
    - status
    description: Update a deployment
  postApiV4ProjectsIdDeploymentsDeploymentIdApproval:
    type: object
    properties:
      status:
        type: string
        description: The status of the approval (either `approved` or `rejected`)
        enum:
        - approved
        - rejected
      comment:
        type: string
        description: A comment to go with the approval
      represented_as:
        type: string
        description: The name of the User/Group/Role to use for the approval, when
          the user belongs to multiple approval rules
    required:
    - status
    description: Approve or reject a blocked deployment
  API_Entities_DraftNote:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 2
      author_id:
        type: integer
        format: int32
        example: 4
      merge_request_id:
        type: integer
        format: int32
        example: 52
      resolve_discussion:
        type: boolean
        example: true
      discussion_id:
        type: integer
        format: int32
        example: 613
      note:
        type: string
        example: This is a note
      commit_id:
        type: integer
        format: int32
        example: 4
      line_code:
        type: string
        example: 1c497fbb3a46b78edf0_2_4
      position:
        type: object
        example:
          base_sha: aa149113
          start_sha: b3a0a8c4
          head_sha: be3020c7
          old_path: example.md
          new_path: example.md
          position_type: text
          old_line: 2
          new_line: 4
          line_range:
            start:
              line_code: 1c497fbb3a46b78edf04cc2a2fa33f67e3ffbe2a_2_4
              type:
              old_line: 2
              new_line: 4
            end:
              line_code: 1c497fbb3a46b78edf04cc2a2fa33f67e3ffbe2a_2_4
              type:
              old_line: 2
              new_line: 4
    description: API_Entities_DraftNote model
  postApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotes:
    type: object
    properties:
      note:
        type: string
        description: The content of a note.
      in_reply_to_discussion_id:
        type: string
        description: The ID of a discussion the draft note replies to.
      commit_id:
        type: string
        description: The sha of a commit to associate the draft note to.
      resolve_discussion:
        type: boolean
        description: The associated discussion should be resolved.
      position:
        type: object
        properties:
          base_sha:
            type: string
            description: Base commit SHA in the source branch
          start_sha:
            type: string
            description: SHA referencing commit in target branch
          head_sha:
            type: string
            description: SHA referencing HEAD of this merge request
          position_type:
            type: string
            description: Type of the position reference
            enum:
            - text
            - image
          new_path:
            type: string
            description: File path after change
          new_line:
            type: integer
            format: int32
            description: Line number after change
          old_path:
            type: string
            description: File path before change
          old_line:
            type: integer
            format: int32
            description: Line number before change
          width:
            type: integer
            format: int32
            description: Width of the image
          height:
            type: integer
            format: int32
            description: Height of the image
          x:
            type: integer
            format: int32
            description: X coordinate in the image
          "y":
            type: integer
            format: int32
            description: Y coordinate in the image
          line_range:
            type: object
            description: Multi-line start and end
            properties:
              start:
                type: object
                properties:
                  line_code:
                    type: string
                    description: Start line code for multi-line note
                  type:
                    type: string
                    description: Start line type for multi-line note
                  old_line:
                    type: string
                    description: Start old_line line number
                  new_line:
                    type: string
                    description: Start new_line line number
              end:
                type: object
                properties:
                  line_code:
                    type: string
                    description: End line code for multi-line note
                  type:
                    type: string
                    description: End line type for multi-line note
                  old_line:
                    type: string
                    description: End old_line line number
                  new_line:
                    type: string
                    description: End new_line line number
        required:
        - base_sha
        - start_sha
        - head_sha
        - position_type
    required:
    - note
    description: Create a new draft note
  putApiV4ProjectsIdMergeRequestsMergeRequestIidDraftNotesDraftNoteId:
    type: object
    properties:
      note:
        type: string
        description: The content of a note.
      position:
        type: object
        properties:
          base_sha:
            type: string
            description: Base commit SHA in the source branch
          start_sha:
            type: string
            description: SHA referencing commit in target branch
          head_sha:
            type: string
            description: SHA referencing HEAD of this merge request
          position_type:
            type: string
            description: Type of the position reference
            enum:
            - text
            - image
          new_path:
            type: string
            description: File path after change
          new_line:
            type: integer
            format: int32
            description: Line number after change
          old_path:
            type: string
            description: File path before change
          old_line:
            type: integer
            format: int32
            description: Line number before change
          width:
            type: integer
            format: int32
            description: Width of the image
          height:
            type: integer
            format: int32
            description: Height of the image
          x:
            type: integer
            format: int32
            description: X coordinate in the image
          "y":
            type: integer
            format: int32
            description: Y coordinate in the image
          line_range:
            type: object
            description: Multi-line start and end
            properties:
              start:
                type: object
                properties:
                  line_code:
                    type: string
                    description: Start line code for multi-line note
                  type:
                    type: string
                    description: Start line type for multi-line note
                  old_line:
                    type: string
                    description: Start old_line line number
                  new_line:
                    type: string
                    description: Start new_line line number
              end:
                type: object
                properties:
                  line_code:
                    type: string
                    description: End line code for multi-line note
                  type:
                    type: string
                    description: End line type for multi-line note
                  old_line:
                    type: string
                    description: End old_line line number
                  new_line:
                    type: string
                    description: End new_line line number
        required:
        - base_sha
        - start_sha
        - head_sha
        - position_type
    description: Modify an existing draft note
  API_Entities_Environment:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: deploy
      slug:
        type: string
        example: deploy
      external_url:
        type: string
        example: https://deploy.gitlab.example.com
      created_at:
        type: string
        format: date-time
        example: '2019-05-25T18:55:13.252Z'
      updated_at:
        type: string
        format: date-time
        example: '2019-05-25T18:55:13.252Z'
      tier:
        type: string
        example: development
      project:
        "$ref": "#/definitions/API_Entities_BasicProjectDetails"
      last_deployment:
        "$ref": "#/definitions/API_Entities_Deployment"
      state:
        type: string
        example: available
      auto_stop_at:
        type: string
        format: date-time
        example: '2019-05-25T18:55:13.252Z'
    description: API_Entities_Environment model
  postApiV4ProjectsIdEnvironments:
    type: object
    properties:
      name:
        type: string
        description: The name of the environment
      external_url:
        type: string
        description: Place to link to for this environment
      tier:
        type: string
        description: The tier of the new environment. Allowed values are `production`,
          `staging`, `testing`, `development`, and `other`
        enum:
        - production
        - staging
        - testing
        - development
        - other
    required:
    - name
    description: Create a new environment
  putApiV4ProjectsIdEnvironmentsEnvironmentId:
    type: object
    properties:
      external_url:
        type: string
        description: The new URL on which this deployment is viewable
      tier:
        type: string
        description: The tier of the new environment. Allowed values are `production`,
          `staging`, `testing`, `development`, and `other`
        enum:
        - production
        - staging
        - testing
        - development
        - other
    description: Update an existing environment
  postApiV4ProjectsIdEnvironmentsEnvironmentIdStop:
    type: object
    properties:
      force:
        type: boolean
        description: Force environment to stop without executing `on_stop` actions
        default: false
    description: Stop an environment
  postApiV4ProjectsIdEnvironmentsStopStale:
    type: object
    properties:
      before:
        type: string
        format: date-time
        description: Stop all environments that were last modified or deployed to
          before this date.
    required:
    - before
    description: Stop stale environments
  API_Entities_ErrorTracking_ProjectSetting:
    type: object
    properties:
      active:
        type: boolean
      project_name:
        type: string
        example: sample sentry project
      sentry_external_url:
        type: string
        example: https://sentry.io/myawesomeproject/project
      api_url:
        type: string
        example: https://sentry.io/api/0/projects/myawesomeproject/project
      integrated:
        type: boolean
    description: API_Entities_ErrorTracking_ProjectSetting model
  patchApiV4ProjectsIdErrorTrackingSettings:
    type: object
    properties:
      active:
        type: boolean
        description: Pass true to enable the already configured Error Tracking settings
          or false to disable it.
      integrated:
        type: boolean
        description: Pass true to enable the integrated Error Tracking backend. Available
          in GitLab 14.2 and later.
    required:
    - active
    description: Enable or disable the Error Tracking project settings
  putApiV4ProjectsIdErrorTrackingSettings:
    type: object
    properties:
      active:
        type: boolean
        description: Pass true to enable the configured Error Tracking settings or
          false to disable it.
      integrated:
        type: boolean
        description: Pass true to enable the integrated Error Tracking backend.
    required:
    - active
    - integrated
    description: Update Error Tracking project settings. Available in GitLab 15.10
      and later.
  postApiV4ProjectsIdRepositoryFilesFilePath:
    type: object
    properties:
      branch:
        type: string
        description: Name of the branch to commit into. To create a new branch, also
          provide `start_branch`.
        example: main
      commit_message:
        type: string
        description: Commit message
        example: Initial commit
      start_branch:
        type: string
        description: Name of the branch to start the new commit from
        example: main
      author_email:
        type: string
        description: The email of the author
        example: johndoe@example.com
      author_name:
        type: string
        description: The name of the author
        example: John Doe
      content:
        type: string
        description: File content
        example: file content
      encoding:
        type: string
        description: File encoding
        enum:
        - base64
        - text
        default: text
      last_commit_id:
        type: string
        description: Last known commit id for this file
        example: 2695effb5807a22ff3d138d593fd856244e155e7
      execute_filemode:
        type: boolean
        description: Enable / Disable the executable flag on the file path
    required:
    - branch
    - commit_message
    - content
    description: Create new file in repository
  putApiV4ProjectsIdRepositoryFilesFilePath:
    type: object
    properties:
      branch:
        type: string
        description: Name of the branch to commit into. To create a new branch, also
          provide `start_branch`.
        example: main
      commit_message:
        type: string
        description: Commit message
        example: Initial commit
      start_branch:
        type: string
        description: Name of the branch to start the new commit from
        example: main
      author_email:
        type: string
        description: The email of the author
        example: johndoe@example.com
      author_name:
        type: string
        description: The name of the author
        example: John Doe
      content:
        type: string
        description: File content
        example: file content
      encoding:
        type: string
        description: File encoding
        enum:
        - base64
        - text
        default: text
      last_commit_id:
        type: string
        description: Last known commit id for this file
        example: 2695effb5807a22ff3d138d593fd856244e155e7
      execute_filemode:
        type: boolean
        description: Enable / Disable the executable flag on the file path
    required:
    - branch
    - commit_message
    - content
    description: Update existing file in repository
  API_Entities_FreezePeriod:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      freeze_start:
        type: string
        example: 0 23 * * 5
      freeze_end:
        type: string
        example: 0 8 * * 1
      cron_timezone:
        type: string
        example: UTC
      created_at:
        type: string
        format: date-time
        example: '2020-05-15T17:03:35.702Z'
      updated_at:
        type: string
        format: date-time
        example: '2020-05-15T17:03:35.702Z'
    description: API_Entities_FreezePeriod model
  postApiV4ProjectsIdFreezePeriods:
    type: object
    properties:
      freeze_start:
        type: string
        description: Start of the freeze period in cron format.
      freeze_end:
        type: string
        description: End of the freeze period in cron format
      cron_timezone:
        type: string
        description: The time zone for the cron fields, defaults to UTC if not provided
    required:
    - freeze_start
    - freeze_end
    description: Create a freeze period
  putApiV4ProjectsIdFreezePeriodsFreezePeriodId:
    type: object
    properties:
      freeze_start:
        type: string
        description: Start of the freeze period in cron format
      freeze_end:
        type: string
        description: End of the freeze period in cron format
      cron_timezone:
        type: string
        description: The time zone for the cron fields
    description: Update a freeze period
  API_Entities_ProjectIntegrationBasic:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 75
      title:
        type: string
        example: Jenkins CI
      slug:
        type: integer
        format: int32
        example: jenkins
      created_at:
        type: string
        format: date-time
        example: '2019-11-20T11:20:25.297Z'
      updated_at:
        type: string
        format: date-time
        example: '2019-11-20T12:24:37.498Z'
      active:
        type: boolean
      commit_events:
        type: boolean
      push_events:
        type: boolean
      issues_events:
        type: boolean
      incident_events:
        type: boolean
      alert_events:
        type: boolean
      confidential_issues_events:
        type: boolean
      merge_requests_events:
        type: boolean
      tag_push_events:
        type: boolean
      deployment_events:
        type: boolean
      note_events:
        type: boolean
      confidential_note_events:
        type: boolean
      pipeline_events:
        type: boolean
      wiki_page_events:
        type: boolean
      job_events:
        type: boolean
      comment_on_event_enabled:
        type: boolean
      vulnerability_events:
        type: boolean
    description: API_Entities_ProjectIntegrationBasic model
  putApiV4ProjectsIdServicesAppleAppStore:
    type: object
    properties:
      app_store_issuer_id:
        type: string
        description: Apple App Store Connect issuer ID.
      app_store_key_id:
        type: string
        description: Apple App Store Connect key ID.
      app_store_private_key_file_name:
        type: string
        description: Apple App Store Connect private key file name.
      app_store_private_key:
        type: string
        description: Apple App Store Connect private key.
      app_store_protected_refs:
        type: boolean
        description: Set variables on protected branches and tags only.
    required:
    - app_store_issuer_id
    - app_store_key_id
    - app_store_private_key_file_name
    - app_store_private_key
    description: Create/Edit Apple App Store integration
  putApiV4ProjectsIdServicesAsana:
    type: object
    properties:
      api_key:
        type: string
        description: User API token. The user must have access to the task. All comments
          are attributed to this user.
      restrict_to_branch:
        type: string
        description: Comma-separated list of branches to be automatically inspected.
          Leave blank to include all branches.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - api_key
    description: Create/Edit Asana integration
  putApiV4ProjectsIdServicesAssembla:
    type: object
    properties:
      token:
        type: string
        description: The authentication token.
      subdomain:
        type: string
        description: The subdomain setting.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - token
    description: Create/Edit Assembla integration
  putApiV4ProjectsIdServicesBamboo:
    type: object
    properties:
      enable_ssl_verification:
        type: boolean
        description: Enable SSL verification. Defaults to `true` (enabled).
      bamboo_url:
        type: string
        description: Bamboo root URL (for example, `https://bamboo.example.com`).
      build_key:
        type: string
        description: Bamboo build plan key (for example, `KEY`).
      username:
        type: string
        description: User with API access to the Bamboo server.
      password:
        type: string
        description: Password of the user.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - bamboo_url
    - build_key
    - username
    - password
    description: Create/Edit Bamboo integration
  putApiV4ProjectsIdServicesBugzilla:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      new_issue_url:
        type: string
        description: URL of the new issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    - new_issue_url
    description: Create/Edit Bugzilla integration
  putApiV4ProjectsIdServicesBuildkite:
    type: object
    properties:
      token:
        type: string
        description: Buildkite project GitLab token
      project_url:
        type: string
        description: The Buildkite pipeline URL
      enable_ssl_verification:
        type: boolean
        description: 'DEPRECATED: This parameter has no effect since SSL verification
          will always be enabled'
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
    required:
    - token
    - project_url
    description: Create/Edit Buildkite integration
  putApiV4ProjectsIdServicesCampfire:
    type: object
    properties:
      token:
        type: string
        description: API authentication token from Campfire. To get the token, sign
          in to Campfire and select **My info**.
      subdomain:
        type: string
        description: "`.campfirenow.com` subdomain when you're signed in."
      room:
        type: string
        description: ID portion of the Campfire room URL.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - token
    description: Create/Edit Campfire integration
  putApiV4ProjectsIdServicesConfluence:
    type: object
    properties:
      confluence_url:
        type: string
        description: URL of the Confluence Workspace hosted on `atlassian.net`.
    required:
    - confluence_url
    description: Create/Edit Confluence integration
  putApiV4ProjectsIdServicesCustomIssueTracker:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      new_issue_url:
        type: string
        description: URL of the new issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    - new_issue_url
    description: Create/Edit Custom Issue Tracker integration
  putApiV4ProjectsIdServicesDatadog:
    type: object
    properties:
      api_key:
        type: string
        description: API key used for authentication with Datadog
      datadog_site:
        type: string
        description: The Datadog site to send data to. To send data to the EU site,
          use datadoghq.eu
      api_url:
        type: string
        description: "(Advanced) The full URL for your Datadog site"
      archive_trace_events:
        type: boolean
        description: When enabled, job logs are collected by Datadog and displayed
          along with pipeline execution traces.
      datadog_service:
        type: string
        description: Tag all data from this GitLab instance in Datadog. Useful when
          managing several self-managed deployments
      datadog_env:
        type: string
        description: For self-managed deployments, set the env tag for all the data
          sent to Datadog
      datadog_tags:
        type: string
        description: 'Custom tags in Datadog. Specify one tag per line in the format:
          "key:value\nkey2:value2"'
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      build_events:
        type: boolean
        description: Trigger event when a build is created.
    required:
    - api_key
    description: Create/Edit Datadog integration
  putApiV4ProjectsIdServicesDiffblueCover:
    type: object
    properties:
      diffblue_license_key:
        type: string
        description: Diffblue Cover license key.
      diffblue_access_token_name:
        type: string
        description: Access token name used by Diffblue Cover in pipelines.
      diffblue_access_token_secret:
        type: string
        description: Access token secret used by Diffblue Cover in pipelines.
    required:
    - diffblue_license_key
    - diffblue_access_token_name
    - diffblue_access_token_secret
    description: Create/Edit Diffblue Cover integration
  putApiV4ProjectsIdServicesDiscord:
    type: object
    properties:
      webhook:
        type: string
        description: Discord webhook (for example, `https://discord.com/api/webhooks/…`).
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines
      branches_to_be_notified:
        type: string
        description: Branches to send notifications for. Valid options are `all`,
          `default`, `protected`, and `default_and_protected`. The default value is
          `default`.
      push_channel:
        type: string
        description: The name of the channel to receive push_events notifications
      issue_channel:
        type: string
        description: The name of the channel to receive issues_events notifications
      incident_channel:
        type: string
        description: The name of the channel to receive incident_events notifications
      alert_channel:
        type: string
        description: The name of the channel to receive alert_events notifications
      confidential_issue_channel:
        type: string
        description: The name of the channel to receive confidential_issues_events
          notifications
      merge_request_channel:
        type: string
        description: The name of the channel to receive merge_requests_events notifications
      note_channel:
        type: string
        description: The name of the channel to receive note_events notifications
      confidential_note_channel:
        type: string
        description: The name of the channel to receive confidential_note_events notifications
      tag_push_channel:
        type: string
        description: The name of the channel to receive tag_push_events notifications
      deployment_channel:
        type: string
        description: The name of the channel to receive deployment_events notifications
      pipeline_channel:
        type: string
        description: The name of the channel to receive pipeline_events notifications
      wiki_page_channel:
        type: string
        description: The name of the channel to receive wiki_page_events notifications
      vulnerability_channel:
        type: string
        description: The name of the channel to receive vulnerability_events notifications
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
      deployment_events:
        type: boolean
        description: Trigger event when a deployment starts or finishes.
    required:
    - webhook
    description: Create/Edit Discord integration
  putApiV4ProjectsIdServicesDroneCi:
    type: object
    properties:
      token:
        type: string
        description: Drone CI token
      drone_url:
        type: string
        description: Drone CI URL
      enable_ssl_verification:
        type: boolean
        description: Enable SSL verification
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
    required:
    - token
    - drone_url
    description: Create/Edit Drone Ci integration
  putApiV4ProjectsIdServicesEmailsOnPush:
    type: object
    properties:
      recipients:
        type: string
        description: Comma-separated list of recipient email addresses
      disable_diffs:
        type: boolean
        description: Disable code diffs
      send_from_committer_email:
        type: boolean
        description: Send from committer
      branches_to_be_notified:
        type: string
        description: Branches for which notifications are to be sent
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
    required:
    - recipients
    description: Create/Edit Emails On Push integration
  putApiV4ProjectsIdServicesExternalWiki:
    type: object
    properties:
      external_wiki_url:
        type: string
        description: URL of the external wiki.
    required:
    - external_wiki_url
    description: Create/Edit External Wiki integration
  putApiV4ProjectsIdServicesGitlabSlackApplication:
    type: object
    properties:
      channel:
        type: string
        description: Default channel to use if no other channel is configured.
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines.
      branches_to_be_notified:
        type: string
        description: Branches to send notifications for. Valid options are `all`,
          `default`, `protected`, and `default_and_protected`. The default value is
          `default`.
      labels_to_be_notified:
        type: string
        description: Labels to send notifications for. Leave blank to receive notifications
          for all events.
      labels_to_be_notified_behavior:
        type: string
        description: Labels to be notified for. Valid options are `match_any` and
          `match_all`. The default value is `match_any`.
      push_channel:
        type: string
        description: The name of the channel to receive push_events notifications
      issue_channel:
        type: string
        description: The name of the channel to receive issues_events notifications
      incident_channel:
        type: string
        description: The name of the channel to receive incident_events notifications
      alert_channel:
        type: string
        description: The name of the channel to receive alert_events notifications
      confidential_issue_channel:
        type: string
        description: The name of the channel to receive confidential_issues_events
          notifications
      merge_request_channel:
        type: string
        description: The name of the channel to receive merge_requests_events notifications
      note_channel:
        type: string
        description: The name of the channel to receive note_events notifications
      confidential_note_channel:
        type: string
        description: The name of the channel to receive confidential_note_events notifications
      tag_push_channel:
        type: string
        description: The name of the channel to receive tag_push_events notifications
      deployment_channel:
        type: string
        description: The name of the channel to receive deployment_events notifications
      pipeline_channel:
        type: string
        description: The name of the channel to receive pipeline_events notifications
      wiki_page_channel:
        type: string
        description: The name of the channel to receive wiki_page_events notifications
      vulnerability_channel:
        type: string
        description: The name of the channel to receive vulnerability_events notifications
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
      deployment_events:
        type: boolean
        description: Trigger event when a deployment starts or finishes.
      incident_events:
        type: boolean
        description: Trigger event when an incident is created.
      vulnerability_events:
        type: boolean
      alert_events:
        type: boolean
        description: Trigger event when a new, unique alert is recorded.
    description: Create/Edit Gitlab Slack Application integration
  putApiV4ProjectsIdServicesGooglePlay:
    type: object
    properties:
      package_name:
        type: string
        description: Package name of the app in Google Play.
      service_account_key_file_name:
        type: string
        description: File name of the Google Play service account key.
      service_account_key:
        type: string
        description: Google Play service account key.
      google_play_protected_refs:
        type: boolean
        description: Set variables on protected branches and tags only.
    required:
    - package_name
    - service_account_key_file_name
    - service_account_key
    description: Create/Edit Google Play integration
  putApiV4ProjectsIdServicesHangoutsChat:
    type: object
    properties:
      webhook:
        type: string
        description: The Hangouts Chat webhook. e.g. https://chat.googleapis.com/v1/spaces…
      branches_to_be_notified:
        type: string
        description: Branches for which notifications are to be sent
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
    required:
    - webhook
    description: Create/Edit Hangouts Chat integration
  putApiV4ProjectsIdServicesHarbor:
    type: object
    properties:
      url:
        type: string
        description: The base URL to the Harbor instance linked to the GitLab project.
          For example, `https://demo.goharbor.io`.
      project_name:
        type: string
        description: The name of the project in the Harbor instance. For example,
          `testproject`.
      username:
        type: string
        description: The username created in the Harbor interface.
      password:
        type: string
        description: The password of the user.
    required:
    - url
    - project_name
    - username
    - password
    description: Create/Edit Harbor integration
  putApiV4ProjectsIdServicesIrker:
    type: object
    properties:
      recipients:
        type: string
        description: Recipients/channels separated by whitespaces
      default_irc_uri:
        type: string
        description: 'Default: irc://irc.network.net:6697'
      server_host:
        type: string
        description: Server host. Default localhost
      server_port:
        type: integer
        format: int32
        description: Server port. Default 6659
      colorize_messages:
        type: boolean
        description: Colorize messages
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - recipients
    description: Create/Edit Irker integration
  putApiV4ProjectsIdServicesJenkins:
    type: object
    properties:
      jenkins_url:
        type: string
        description: Jenkins root URL like https://jenkins.example.com
      enable_ssl_verification:
        type: boolean
        description: Enable SSL verification
      project_name:
        type: string
        description: 'The URL-friendly project name. Example: my_project_name'
      username:
        type: string
        description: A user with access to the Jenkins server, if applicable
      password:
        type: string
        description: The password of the user
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
    required:
    - jenkins_url
    - project_name
    description: Create/Edit Jenkins integration
  putApiV4ProjectsIdServicesJira:
    type: object
    properties:
      url:
        type: string
        description: The base URL to the Jira instance web interface which is being
          linked to this GitLab project. E.g., https://jira.example.com
      api_url:
        type: string
        description: The base URL to the Jira instance API. Web URL value will be
          used if not set. E.g., https://jira-api.example.com
      jira_auth_type:
        type: integer
        format: int32
        description: The authentication method to be used with Jira. `0` means Basic
          Authentication. `1` means Jira personal access token. Defaults to `0`
      username:
        type: string
        description: The email or username to be used with Jira. For Jira Cloud use
          an email, for Jira Data Center and Jira Server use a username. Required
          when using Basic authentication (`jira_auth_type` is `0`)
      password:
        type: string
        description: The Jira API token, password, or personal access token to be
          used with Jira. When your authentication method is Basic (`jira_auth_type`
          is `0`) use an API token for Jira Cloud, or a password for Jira Data Center
          or Jira Server. When your authentication method is Jira personal access
          token (`jira_auth_type` is `1`) use a personal access token
      jira_issue_transition_automatic:
        type: boolean
        description: Enable automatic issue transitions
      jira_issue_transition_id:
        type: string
        description: The ID of one or more transitions for custom issue transitions
      jira_issue_prefix:
        type: string
        description: Prefix to match Jira issue keys
      jira_issue_regex:
        type: string
        description: Regular expression to match Jira issue keys
      issues_enabled:
        type: boolean
        description: Enable viewing Jira issues in GitLab
      project_keys:
        type: array
        description: Keys of Jira projects to view issues from in GitLab
        items:
          type: string
      comment_on_event_enabled:
        type: boolean
        description: Enable comments inside Jira issues on each GitLab event (commit
          / merge request)
      commit_events:
        type: boolean
        description: Trigger event when a commit is created or updated.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
    required:
    - url
    - password
    description: Create/Edit Jira integration
  putApiV4ProjectsIdServicesMattermostSlashCommands:
    type: object
    properties:
      token:
        type: string
        description: The Mattermost token.
    required:
    - token
    description: Create/Edit Mattermost Slash Commands integration
  putApiV4ProjectsIdServicesSlackSlashCommands:
    type: object
    properties:
      token:
        type: string
        description: The Slack token
    required:
    - token
    description: Create/Edit Slack Slash Commands integration
  putApiV4ProjectsIdServicesPackagist:
    type: object
    properties:
      username:
        type: string
        description: The username
      token:
        type: string
        description: The Packagist API token
      server:
        type: string
        description: The server
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
    required:
    - username
    - token
    description: Create/Edit Packagist integration
  putApiV4ProjectsIdServicesPhorge:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    description: Create/Edit Phorge integration
  putApiV4ProjectsIdServicesPipelinesEmail:
    type: object
    properties:
      recipients:
        type: string
        description: Comma-separated list of recipient email addresses
      notify_only_broken_pipelines:
        type: boolean
        description: Notify only broken pipelines
      notify_only_default_branch:
        type: boolean
        description: Send notifications only for the default branch
      branches_to_be_notified:
        type: string
        description: Branches for which notifications are to be sent
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
    required:
    - recipients
    description: Create/Edit Pipelines Email integration
  putApiV4ProjectsIdServicesPivotaltracker:
    type: object
    properties:
      token:
        type: string
        description: The Pivotaltracker token
      restrict_to_branch:
        type: string
        description: Comma-separated list of branches which will be automatically
          inspected. Leave blank to include all branches.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - token
    description: Create/Edit Pivotaltracker integration
  putApiV4ProjectsIdServicesPrometheus:
    type: object
    properties:
      manual_configuration:
        type: boolean
        description: When enabled, the default settings will be overridden with your
          custom configuration
      api_url:
        type: string
        description: Prometheus API Base URL, like http://prometheus.example.com/
      google_iap_audience_client_id:
        type: string
        description: Client ID of the IAP-secured resource (looks like IAP_CLIENT_ID.apps.googleusercontent.com)
      google_iap_service_account_json:
        type: string
        description: 'Contents of the credentials.json file of your service account,
          like: { "type": "service_account", "project_id": ... }'
    required:
    - api_url
    - google_iap_audience_client_id
    - google_iap_service_account_json
    description: Create/Edit Prometheus integration
  putApiV4ProjectsIdServicesPumble:
    type: object
    properties:
      webhook:
        type: string
        description: The Pumble chat webhook. For example, https://api.pumble.com/workspaces/x/...
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
    required:
    - webhook
    description: Create/Edit Pumble integration
  putApiV4ProjectsIdServicesPushover:
    type: object
    properties:
      api_key:
        type: string
        description: The application key
      user_key:
        type: string
        description: The user key
      priority:
        type: string
        description: The priority
      device:
        type: string
        description: Leave blank for all active devices
      sound:
        type: string
        description: The sound of the notification
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - api_key
    - user_key
    - priority
    - device
    - sound
    description: Create/Edit Pushover integration
  putApiV4ProjectsIdServicesRedmine:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      new_issue_url:
        type: string
        description: URL of the new issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    - new_issue_url
    description: Create/Edit Redmine integration
  putApiV4ProjectsIdServicesEwm:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      new_issue_url:
        type: string
        description: URL of the new issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    - new_issue_url
    description: Create/Edit Ewm integration
  putApiV4ProjectsIdServicesYoutrack:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    description: Create/Edit Youtrack integration
  putApiV4ProjectsIdServicesClickup:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    description: Create/Edit Clickup integration
  putApiV4ProjectsIdServicesSlack:
    type: object
    properties:
      webhook:
        type: string
        description: Slack notifications webhook (for example, `https://hooks.slack.com/services/...`).
      username:
        type: string
        description: Slack notifications username.
      channel:
        type: string
        description: Default channel to use if no other channel is configured.
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines.
      branches_to_be_notified:
        type: string
        description: Branches to send notifications for. Valid options are `all`,
          `default`, `protected`, and `default_and_protected`. The default value is
          `default`.
      labels_to_be_notified:
        type: string
        description: Labels to send notifications for. Leave blank to receive notifications
          for all events.
      labels_to_be_notified_behavior:
        type: string
        description: Labels to be notified for. Valid options are `match_any` and
          `match_all`. The default value is `match_any`.
      push_channel:
        type: string
        description: The name of the channel to receive push_events notifications
      issue_channel:
        type: string
        description: The name of the channel to receive issues_events notifications
      incident_channel:
        type: string
        description: The name of the channel to receive incident_events notifications
      alert_channel:
        type: string
        description: The name of the channel to receive alert_events notifications
      confidential_issue_channel:
        type: string
        description: The name of the channel to receive confidential_issues_events
          notifications
      merge_request_channel:
        type: string
        description: The name of the channel to receive merge_requests_events notifications
      note_channel:
        type: string
        description: The name of the channel to receive note_events notifications
      confidential_note_channel:
        type: string
        description: The name of the channel to receive confidential_note_events notifications
      tag_push_channel:
        type: string
        description: The name of the channel to receive tag_push_events notifications
      deployment_channel:
        type: string
        description: The name of the channel to receive deployment_events notifications
      pipeline_channel:
        type: string
        description: The name of the channel to receive pipeline_events notifications
      wiki_page_channel:
        type: string
        description: The name of the channel to receive wiki_page_events notifications
      vulnerability_channel:
        type: string
        description: The name of the channel to receive vulnerability_events notifications
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
      deployment_events:
        type: boolean
        description: Trigger event when a deployment starts or finishes.
      incident_events:
        type: boolean
        description: Trigger event when an incident is created.
      vulnerability_events:
        type: boolean
      alert_events:
        type: boolean
        description: Trigger event when a new, unique alert is recorded.
    required:
    - webhook
    description: Create/Edit Slack integration
  putApiV4ProjectsIdServicesMicrosoftTeams:
    type: object
    properties:
      webhook:
        type: string
        description: The Microsoft Teams webhook. e.g. https://outlook.office.com/webhook/…
      branches_to_be_notified:
        type: string
        description: Branches for which notifications are to be sent
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
    required:
    - webhook
    description: Create/Edit Microsoft Teams integration
  putApiV4ProjectsIdServicesMattermost:
    type: object
    properties:
      webhook:
        type: string
        description: Mattermost notifications webhook (for example, `http://mattermost.example.com/hooks/...`).
      username:
        type: string
        description: Mattermost notifications username.
      channel:
        type: string
        description: Default channel to use if no other channel is configured.
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines.
      branches_to_be_notified:
        type: string
        description: Branches to send notifications for. Valid options are `all`,
          `default`, `protected`, and `default_and_protected`. The default value is
          `default`.
      labels_to_be_notified:
        type: string
        description: Labels to send notifications for. Leave blank to receive notifications
          for all events.
      labels_to_be_notified_behavior:
        type: string
        description: Labels to be notified for. Valid options are `match_any` and
          `match_all`. The default value is `match_any`.
      push_channel:
        type: string
        description: The name of the channel to receive push_events notifications
      issue_channel:
        type: string
        description: The name of the channel to receive issues_events notifications
      incident_channel:
        type: string
        description: The name of the channel to receive incident_events notifications
      alert_channel:
        type: string
        description: The name of the channel to receive alert_events notifications
      confidential_issue_channel:
        type: string
        description: The name of the channel to receive confidential_issues_events
          notifications
      merge_request_channel:
        type: string
        description: The name of the channel to receive merge_requests_events notifications
      note_channel:
        type: string
        description: The name of the channel to receive note_events notifications
      confidential_note_channel:
        type: string
        description: The name of the channel to receive confidential_note_events notifications
      tag_push_channel:
        type: string
        description: The name of the channel to receive tag_push_events notifications
      deployment_channel:
        type: string
        description: The name of the channel to receive deployment_events notifications
      pipeline_channel:
        type: string
        description: The name of the channel to receive pipeline_events notifications
      wiki_page_channel:
        type: string
        description: The name of the channel to receive wiki_page_events notifications
      vulnerability_channel:
        type: string
        description: The name of the channel to receive vulnerability_events notifications
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
      deployment_events:
        type: boolean
        description: Trigger event when a deployment starts or finishes.
      incident_events:
        type: boolean
        description: Trigger event when an incident is created.
      vulnerability_events:
        type: boolean
    required:
    - webhook
    description: Create/Edit Mattermost integration
  putApiV4ProjectsIdServicesTeamcity:
    type: object
    properties:
      teamcity_url:
        type: string
        description: TeamCity root URL like https://teamcity.example.com
      enable_ssl_verification:
        type: boolean
        description: Enable SSL verification
      build_type:
        type: string
        description: Build configuration ID
      username:
        type: string
        description: A user with permissions to trigger a manual build
      password:
        type: string
        description: The password of the user
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
    required:
    - teamcity_url
    - build_type
    - username
    - password
    description: Create/Edit Teamcity integration
  putApiV4ProjectsIdServicesTelegram:
    type: object
    properties:
      hostname:
        type: string
        description: Custom hostname of the Telegram API. The default value is `https://api.telegram.org`.
      token:
        type: string
        description: The Telegram chat token. For example, 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
      room:
        type: string
        description: Unique identifier for the target chat or username of the target
          channel (in the format @channelusername)
      thread:
        type: integer
        format: int32
        description: Unique identifier for the target message thread (topic in a forum
          supergroup)
      branches_to_be_notified:
        type: string
        description: Branches for which notifications are to be sent.
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
      incident_events:
        type: boolean
        description: Trigger event when an incident is created.
      vulnerability_events:
        type: boolean
    required:
    - token
    - room
    description: Create/Edit Telegram integration
  putApiV4ProjectsIdServicesUnifyCircuit:
    type: object
    properties:
      webhook:
        type: string
        description: The Unify Circuit webhook. e.g. https://circuit.com/rest/v2/webhooks/incoming/…
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
    required:
    - webhook
    description: Create/Edit Unify Circuit integration
  putApiV4ProjectsIdServicesWebexTeams:
    type: object
    properties:
      webhook:
        type: string
        description: The Webex Teams webhook. For example, https://api.ciscospark.com/v1/webhooks/incoming/...
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines.
      branches_to_be_notified:
        type: string
        description: Branches to send notifications for. Valid options are `all`,
          `default`, `protected`, and `default_and_protected`. The default value is
          `default`.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
    required:
    - webhook
    description: Create/Edit Webex Teams integration
  putApiV4ProjectsIdServicesZentao:
    type: object
    properties:
      url:
        type: string
        description: The base URL to the ZenTao instance web interface which is being
          linked to this GitLab project. For example, https://www.zentao.net
      api_url:
        type: string
        description: The base URL to the ZenTao instance API. Web URL value will be
          used if not set. For example, https://www.zentao.net
      api_token:
        type: string
        description: The API token created from ZenTao dashboard
      zentao_product_xid:
        type: string
        description: The product ID of ZenTao project
    required:
    - url
    - api_token
    - zentao_product_xid
    description: Create/Edit Zentao integration
  putApiV4ProjectsIdServicesSquashTm:
    type: object
    properties:
      url:
        type: string
        description: URL of the Squash TM webhook.
      token:
        type: string
        description: Secret token.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
    required:
    - url
    description: Create/Edit Squash Tm integration
  putApiV4ProjectsIdServicesGithub:
    type: object
    properties:
      token:
        type: string
        description: GitHub API token with `repo:status` OAuth scope.
      repository_url:
        type: string
        description: GitHub repository URL.
      static_context:
        type: boolean
        description: Append the hostname of your GitLab instance to the status check
          name.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
    required:
    - token
    - repository_url
    description: Create/Edit Github integration
  putApiV4ProjectsIdServicesGitGuardian:
    type: object
    properties:
      token:
        type: string
    required:
    - token
    description: Create/Edit Git Guardian integration
  putApiV4ProjectsIdServicesGoogleCloudPlatformArtifactRegistry:
    type: object
    properties:
      artifact_registry_project_id:
        type: string
      artifact_registry_repositories:
        type: string
      artifact_registry_location:
        type: string
    required:
    - artifact_registry_project_id
    - artifact_registry_repositories
    - artifact_registry_location
    description: Create/Edit Google Cloud Platform Artifact Registry integration
  putApiV4ProjectsIdServicesGoogleCloudPlatformWorkloadIdentityFederation:
    type: object
    properties:
      workload_identity_federation_project_id:
        type: string
        description: Google Cloud project ID for the Workload Identity Federation.
      workload_identity_federation_project_number:
        type: string
        description: Google Cloud project number for the Workload Identity Federation.
      workload_identity_pool_id:
        type: string
        description: ID of the Workload Identity Pool.
      workload_identity_pool_provider_id:
        type: string
        description: ID of the Workload Identity Pool provider.
    required:
    - workload_identity_federation_project_id
    - workload_identity_federation_project_number
    - workload_identity_pool_id
    - workload_identity_pool_provider_id
    description: Create/Edit Google Cloud Platform Workload Identity Federation integration
  putApiV4ProjectsIdServicesMockCi:
    type: object
    properties:
      enable_ssl_verification:
        type: boolean
        description: Enable SSL verification. Defaults to `true` (enabled).
      mock_service_url:
        type: string
        description: URL of the Mock CI integration.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - mock_service_url
    description: Create/Edit Mock Ci integration
  API_Entities_ProjectIntegration:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 75
      title:
        type: string
        example: Jenkins CI
      slug:
        type: integer
        format: int32
        example: jenkins
      created_at:
        type: string
        format: date-time
        example: '2019-11-20T11:20:25.297Z'
      updated_at:
        type: string
        format: date-time
        example: '2019-11-20T12:24:37.498Z'
      active:
        type: boolean
      commit_events:
        type: boolean
      push_events:
        type: boolean
      issues_events:
        type: boolean
      incident_events:
        type: boolean
      alert_events:
        type: boolean
      confidential_issues_events:
        type: boolean
      merge_requests_events:
        type: boolean
      tag_push_events:
        type: boolean
      deployment_events:
        type: boolean
      note_events:
        type: boolean
      confidential_note_events:
        type: boolean
      pipeline_events:
        type: boolean
      wiki_page_events:
        type: boolean
      job_events:
        type: boolean
      comment_on_event_enabled:
        type: boolean
      vulnerability_events:
        type: boolean
      properties:
        type: object
        example:
          token: secr3t
    description: API_Entities_ProjectIntegration model
  postApiV4ProjectsIdServicesMattermostSlashCommandsTrigger:
    type: object
    properties:
      token:
        type: string
        description: The Mattermost token.
    required:
    - token
    description: Trigger a slash command for mattermost-slash-commands
  postApiV4ProjectsIdServicesSlackSlashCommandsTrigger:
    type: object
    properties:
      token:
        type: string
        description: The Slack token.
    required:
    - token
    description: Trigger a slash command for slack-slash-commands
  putApiV4ProjectsIdIntegrationsAppleAppStore:
    type: object
    properties:
      app_store_issuer_id:
        type: string
        description: Apple App Store Connect issuer ID.
      app_store_key_id:
        type: string
        description: Apple App Store Connect key ID.
      app_store_private_key_file_name:
        type: string
        description: Apple App Store Connect private key file name.
      app_store_private_key:
        type: string
        description: Apple App Store Connect private key.
      app_store_protected_refs:
        type: boolean
        description: Set variables on protected branches and tags only.
    required:
    - app_store_issuer_id
    - app_store_key_id
    - app_store_private_key_file_name
    - app_store_private_key
    description: Create/Edit Apple App Store integration
  putApiV4ProjectsIdIntegrationsAsana:
    type: object
    properties:
      api_key:
        type: string
        description: User API token. The user must have access to the task. All comments
          are attributed to this user.
      restrict_to_branch:
        type: string
        description: Comma-separated list of branches to be automatically inspected.
          Leave blank to include all branches.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - api_key
    description: Create/Edit Asana integration
  putApiV4ProjectsIdIntegrationsAssembla:
    type: object
    properties:
      token:
        type: string
        description: The authentication token.
      subdomain:
        type: string
        description: The subdomain setting.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - token
    description: Create/Edit Assembla integration
  putApiV4ProjectsIdIntegrationsBamboo:
    type: object
    properties:
      enable_ssl_verification:
        type: boolean
        description: Enable SSL verification. Defaults to `true` (enabled).
      bamboo_url:
        type: string
        description: Bamboo root URL (for example, `https://bamboo.example.com`).
      build_key:
        type: string
        description: Bamboo build plan key (for example, `KEY`).
      username:
        type: string
        description: User with API access to the Bamboo server.
      password:
        type: string
        description: Password of the user.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - bamboo_url
    - build_key
    - username
    - password
    description: Create/Edit Bamboo integration
  putApiV4ProjectsIdIntegrationsBugzilla:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      new_issue_url:
        type: string
        description: URL of the new issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    - new_issue_url
    description: Create/Edit Bugzilla integration
  putApiV4ProjectsIdIntegrationsBuildkite:
    type: object
    properties:
      token:
        type: string
        description: Buildkite project GitLab token
      project_url:
        type: string
        description: The Buildkite pipeline URL
      enable_ssl_verification:
        type: boolean
        description: 'DEPRECATED: This parameter has no effect since SSL verification
          will always be enabled'
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
    required:
    - token
    - project_url
    description: Create/Edit Buildkite integration
  putApiV4ProjectsIdIntegrationsCampfire:
    type: object
    properties:
      token:
        type: string
        description: API authentication token from Campfire. To get the token, sign
          in to Campfire and select **My info**.
      subdomain:
        type: string
        description: "`.campfirenow.com` subdomain when you're signed in."
      room:
        type: string
        description: ID portion of the Campfire room URL.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - token
    description: Create/Edit Campfire integration
  putApiV4ProjectsIdIntegrationsConfluence:
    type: object
    properties:
      confluence_url:
        type: string
        description: URL of the Confluence Workspace hosted on `atlassian.net`.
    required:
    - confluence_url
    description: Create/Edit Confluence integration
  putApiV4ProjectsIdIntegrationsCustomIssueTracker:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      new_issue_url:
        type: string
        description: URL of the new issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    - new_issue_url
    description: Create/Edit Custom Issue Tracker integration
  putApiV4ProjectsIdIntegrationsDatadog:
    type: object
    properties:
      api_key:
        type: string
        description: API key used for authentication with Datadog
      datadog_site:
        type: string
        description: The Datadog site to send data to. To send data to the EU site,
          use datadoghq.eu
      api_url:
        type: string
        description: "(Advanced) The full URL for your Datadog site"
      archive_trace_events:
        type: boolean
        description: When enabled, job logs are collected by Datadog and displayed
          along with pipeline execution traces.
      datadog_service:
        type: string
        description: Tag all data from this GitLab instance in Datadog. Useful when
          managing several self-managed deployments
      datadog_env:
        type: string
        description: For self-managed deployments, set the env tag for all the data
          sent to Datadog
      datadog_tags:
        type: string
        description: 'Custom tags in Datadog. Specify one tag per line in the format:
          "key:value\nkey2:value2"'
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      build_events:
        type: boolean
        description: Trigger event when a build is created.
    required:
    - api_key
    description: Create/Edit Datadog integration
  putApiV4ProjectsIdIntegrationsDiffblueCover:
    type: object
    properties:
      diffblue_license_key:
        type: string
        description: Diffblue Cover license key.
      diffblue_access_token_name:
        type: string
        description: Access token name used by Diffblue Cover in pipelines.
      diffblue_access_token_secret:
        type: string
        description: Access token secret used by Diffblue Cover in pipelines.
    required:
    - diffblue_license_key
    - diffblue_access_token_name
    - diffblue_access_token_secret
    description: Create/Edit Diffblue Cover integration
  putApiV4ProjectsIdIntegrationsDiscord:
    type: object
    properties:
      webhook:
        type: string
        description: Discord webhook (for example, `https://discord.com/api/webhooks/…`).
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines
      branches_to_be_notified:
        type: string
        description: Branches to send notifications for. Valid options are `all`,
          `default`, `protected`, and `default_and_protected`. The default value is
          `default`.
      push_channel:
        type: string
        description: The name of the channel to receive push_events notifications
      issue_channel:
        type: string
        description: The name of the channel to receive issues_events notifications
      incident_channel:
        type: string
        description: The name of the channel to receive incident_events notifications
      alert_channel:
        type: string
        description: The name of the channel to receive alert_events notifications
      confidential_issue_channel:
        type: string
        description: The name of the channel to receive confidential_issues_events
          notifications
      merge_request_channel:
        type: string
        description: The name of the channel to receive merge_requests_events notifications
      note_channel:
        type: string
        description: The name of the channel to receive note_events notifications
      confidential_note_channel:
        type: string
        description: The name of the channel to receive confidential_note_events notifications
      tag_push_channel:
        type: string
        description: The name of the channel to receive tag_push_events notifications
      deployment_channel:
        type: string
        description: The name of the channel to receive deployment_events notifications
      pipeline_channel:
        type: string
        description: The name of the channel to receive pipeline_events notifications
      wiki_page_channel:
        type: string
        description: The name of the channel to receive wiki_page_events notifications
      vulnerability_channel:
        type: string
        description: The name of the channel to receive vulnerability_events notifications
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
      deployment_events:
        type: boolean
        description: Trigger event when a deployment starts or finishes.
    required:
    - webhook
    description: Create/Edit Discord integration
  putApiV4ProjectsIdIntegrationsDroneCi:
    type: object
    properties:
      token:
        type: string
        description: Drone CI token
      drone_url:
        type: string
        description: Drone CI URL
      enable_ssl_verification:
        type: boolean
        description: Enable SSL verification
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
    required:
    - token
    - drone_url
    description: Create/Edit Drone Ci integration
  putApiV4ProjectsIdIntegrationsEmailsOnPush:
    type: object
    properties:
      recipients:
        type: string
        description: Comma-separated list of recipient email addresses
      disable_diffs:
        type: boolean
        description: Disable code diffs
      send_from_committer_email:
        type: boolean
        description: Send from committer
      branches_to_be_notified:
        type: string
        description: Branches for which notifications are to be sent
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
    required:
    - recipients
    description: Create/Edit Emails On Push integration
  putApiV4ProjectsIdIntegrationsExternalWiki:
    type: object
    properties:
      external_wiki_url:
        type: string
        description: URL of the external wiki.
    required:
    - external_wiki_url
    description: Create/Edit External Wiki integration
  putApiV4ProjectsIdIntegrationsGitlabSlackApplication:
    type: object
    properties:
      channel:
        type: string
        description: Default channel to use if no other channel is configured.
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines.
      branches_to_be_notified:
        type: string
        description: Branches to send notifications for. Valid options are `all`,
          `default`, `protected`, and `default_and_protected`. The default value is
          `default`.
      labels_to_be_notified:
        type: string
        description: Labels to send notifications for. Leave blank to receive notifications
          for all events.
      labels_to_be_notified_behavior:
        type: string
        description: Labels to be notified for. Valid options are `match_any` and
          `match_all`. The default value is `match_any`.
      push_channel:
        type: string
        description: The name of the channel to receive push_events notifications
      issue_channel:
        type: string
        description: The name of the channel to receive issues_events notifications
      incident_channel:
        type: string
        description: The name of the channel to receive incident_events notifications
      alert_channel:
        type: string
        description: The name of the channel to receive alert_events notifications
      confidential_issue_channel:
        type: string
        description: The name of the channel to receive confidential_issues_events
          notifications
      merge_request_channel:
        type: string
        description: The name of the channel to receive merge_requests_events notifications
      note_channel:
        type: string
        description: The name of the channel to receive note_events notifications
      confidential_note_channel:
        type: string
        description: The name of the channel to receive confidential_note_events notifications
      tag_push_channel:
        type: string
        description: The name of the channel to receive tag_push_events notifications
      deployment_channel:
        type: string
        description: The name of the channel to receive deployment_events notifications
      pipeline_channel:
        type: string
        description: The name of the channel to receive pipeline_events notifications
      wiki_page_channel:
        type: string
        description: The name of the channel to receive wiki_page_events notifications
      vulnerability_channel:
        type: string
        description: The name of the channel to receive vulnerability_events notifications
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
      deployment_events:
        type: boolean
        description: Trigger event when a deployment starts or finishes.
      incident_events:
        type: boolean
        description: Trigger event when an incident is created.
      vulnerability_events:
        type: boolean
      alert_events:
        type: boolean
        description: Trigger event when a new, unique alert is recorded.
    description: Create/Edit Gitlab Slack Application integration
  putApiV4ProjectsIdIntegrationsGooglePlay:
    type: object
    properties:
      package_name:
        type: string
        description: Package name of the app in Google Play.
      service_account_key_file_name:
        type: string
        description: File name of the Google Play service account key.
      service_account_key:
        type: string
        description: Google Play service account key.
      google_play_protected_refs:
        type: boolean
        description: Set variables on protected branches and tags only.
    required:
    - package_name
    - service_account_key_file_name
    - service_account_key
    description: Create/Edit Google Play integration
  putApiV4ProjectsIdIntegrationsHangoutsChat:
    type: object
    properties:
      webhook:
        type: string
        description: The Hangouts Chat webhook. e.g. https://chat.googleapis.com/v1/spaces…
      branches_to_be_notified:
        type: string
        description: Branches for which notifications are to be sent
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
    required:
    - webhook
    description: Create/Edit Hangouts Chat integration
  putApiV4ProjectsIdIntegrationsHarbor:
    type: object
    properties:
      url:
        type: string
        description: The base URL to the Harbor instance linked to the GitLab project.
          For example, `https://demo.goharbor.io`.
      project_name:
        type: string
        description: The name of the project in the Harbor instance. For example,
          `testproject`.
      username:
        type: string
        description: The username created in the Harbor interface.
      password:
        type: string
        description: The password of the user.
    required:
    - url
    - project_name
    - username
    - password
    description: Create/Edit Harbor integration
  putApiV4ProjectsIdIntegrationsIrker:
    type: object
    properties:
      recipients:
        type: string
        description: Recipients/channels separated by whitespaces
      default_irc_uri:
        type: string
        description: 'Default: irc://irc.network.net:6697'
      server_host:
        type: string
        description: Server host. Default localhost
      server_port:
        type: integer
        format: int32
        description: Server port. Default 6659
      colorize_messages:
        type: boolean
        description: Colorize messages
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - recipients
    description: Create/Edit Irker integration
  putApiV4ProjectsIdIntegrationsJenkins:
    type: object
    properties:
      jenkins_url:
        type: string
        description: Jenkins root URL like https://jenkins.example.com
      enable_ssl_verification:
        type: boolean
        description: Enable SSL verification
      project_name:
        type: string
        description: 'The URL-friendly project name. Example: my_project_name'
      username:
        type: string
        description: A user with access to the Jenkins server, if applicable
      password:
        type: string
        description: The password of the user
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
    required:
    - jenkins_url
    - project_name
    description: Create/Edit Jenkins integration
  putApiV4ProjectsIdIntegrationsJira:
    type: object
    properties:
      url:
        type: string
        description: The base URL to the Jira instance web interface which is being
          linked to this GitLab project. E.g., https://jira.example.com
      api_url:
        type: string
        description: The base URL to the Jira instance API. Web URL value will be
          used if not set. E.g., https://jira-api.example.com
      jira_auth_type:
        type: integer
        format: int32
        description: The authentication method to be used with Jira. `0` means Basic
          Authentication. `1` means Jira personal access token. Defaults to `0`
      username:
        type: string
        description: The email or username to be used with Jira. For Jira Cloud use
          an email, for Jira Data Center and Jira Server use a username. Required
          when using Basic authentication (`jira_auth_type` is `0`)
      password:
        type: string
        description: The Jira API token, password, or personal access token to be
          used with Jira. When your authentication method is Basic (`jira_auth_type`
          is `0`) use an API token for Jira Cloud, or a password for Jira Data Center
          or Jira Server. When your authentication method is Jira personal access
          token (`jira_auth_type` is `1`) use a personal access token
      jira_issue_transition_automatic:
        type: boolean
        description: Enable automatic issue transitions
      jira_issue_transition_id:
        type: string
        description: The ID of one or more transitions for custom issue transitions
      jira_issue_prefix:
        type: string
        description: Prefix to match Jira issue keys
      jira_issue_regex:
        type: string
        description: Regular expression to match Jira issue keys
      issues_enabled:
        type: boolean
        description: Enable viewing Jira issues in GitLab
      project_keys:
        type: array
        description: Keys of Jira projects to view issues from in GitLab
        items:
          type: string
      comment_on_event_enabled:
        type: boolean
        description: Enable comments inside Jira issues on each GitLab event (commit
          / merge request)
      commit_events:
        type: boolean
        description: Trigger event when a commit is created or updated.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
    required:
    - url
    - password
    description: Create/Edit Jira integration
  putApiV4ProjectsIdIntegrationsMattermostSlashCommands:
    type: object
    properties:
      token:
        type: string
        description: The Mattermost token.
    required:
    - token
    description: Create/Edit Mattermost Slash Commands integration
  putApiV4ProjectsIdIntegrationsSlackSlashCommands:
    type: object
    properties:
      token:
        type: string
        description: The Slack token
    required:
    - token
    description: Create/Edit Slack Slash Commands integration
  putApiV4ProjectsIdIntegrationsPackagist:
    type: object
    properties:
      username:
        type: string
        description: The username
      token:
        type: string
        description: The Packagist API token
      server:
        type: string
        description: The server
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
    required:
    - username
    - token
    description: Create/Edit Packagist integration
  putApiV4ProjectsIdIntegrationsPhorge:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    description: Create/Edit Phorge integration
  putApiV4ProjectsIdIntegrationsPipelinesEmail:
    type: object
    properties:
      recipients:
        type: string
        description: Comma-separated list of recipient email addresses
      notify_only_broken_pipelines:
        type: boolean
        description: Notify only broken pipelines
      notify_only_default_branch:
        type: boolean
        description: Send notifications only for the default branch
      branches_to_be_notified:
        type: string
        description: Branches for which notifications are to be sent
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
    required:
    - recipients
    description: Create/Edit Pipelines Email integration
  putApiV4ProjectsIdIntegrationsPivotaltracker:
    type: object
    properties:
      token:
        type: string
        description: The Pivotaltracker token
      restrict_to_branch:
        type: string
        description: Comma-separated list of branches which will be automatically
          inspected. Leave blank to include all branches.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - token
    description: Create/Edit Pivotaltracker integration
  putApiV4ProjectsIdIntegrationsPrometheus:
    type: object
    properties:
      manual_configuration:
        type: boolean
        description: When enabled, the default settings will be overridden with your
          custom configuration
      api_url:
        type: string
        description: Prometheus API Base URL, like http://prometheus.example.com/
      google_iap_audience_client_id:
        type: string
        description: Client ID of the IAP-secured resource (looks like IAP_CLIENT_ID.apps.googleusercontent.com)
      google_iap_service_account_json:
        type: string
        description: 'Contents of the credentials.json file of your service account,
          like: { "type": "service_account", "project_id": ... }'
    required:
    - api_url
    - google_iap_audience_client_id
    - google_iap_service_account_json
    description: Create/Edit Prometheus integration
  putApiV4ProjectsIdIntegrationsPumble:
    type: object
    properties:
      webhook:
        type: string
        description: The Pumble chat webhook. For example, https://api.pumble.com/workspaces/x/...
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
    required:
    - webhook
    description: Create/Edit Pumble integration
  putApiV4ProjectsIdIntegrationsPushover:
    type: object
    properties:
      api_key:
        type: string
        description: The application key
      user_key:
        type: string
        description: The user key
      priority:
        type: string
        description: The priority
      device:
        type: string
        description: Leave blank for all active devices
      sound:
        type: string
        description: The sound of the notification
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - api_key
    - user_key
    - priority
    - device
    - sound
    description: Create/Edit Pushover integration
  putApiV4ProjectsIdIntegrationsRedmine:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      new_issue_url:
        type: string
        description: URL of the new issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    - new_issue_url
    description: Create/Edit Redmine integration
  putApiV4ProjectsIdIntegrationsEwm:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      new_issue_url:
        type: string
        description: URL of the new issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    - new_issue_url
    description: Create/Edit Ewm integration
  putApiV4ProjectsIdIntegrationsYoutrack:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    description: Create/Edit Youtrack integration
  putApiV4ProjectsIdIntegrationsClickup:
    type: object
    properties:
      project_url:
        type: string
        description: URL of the project.
      issues_url:
        type: string
        description: URL of the issue.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - project_url
    - issues_url
    description: Create/Edit Clickup integration
  putApiV4ProjectsIdIntegrationsSlack:
    type: object
    properties:
      webhook:
        type: string
        description: Slack notifications webhook (for example, `https://hooks.slack.com/services/...`).
      username:
        type: string
        description: Slack notifications username.
      channel:
        type: string
        description: Default channel to use if no other channel is configured.
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines.
      branches_to_be_notified:
        type: string
        description: Branches to send notifications for. Valid options are `all`,
          `default`, `protected`, and `default_and_protected`. The default value is
          `default`.
      labels_to_be_notified:
        type: string
        description: Labels to send notifications for. Leave blank to receive notifications
          for all events.
      labels_to_be_notified_behavior:
        type: string
        description: Labels to be notified for. Valid options are `match_any` and
          `match_all`. The default value is `match_any`.
      push_channel:
        type: string
        description: The name of the channel to receive push_events notifications
      issue_channel:
        type: string
        description: The name of the channel to receive issues_events notifications
      incident_channel:
        type: string
        description: The name of the channel to receive incident_events notifications
      alert_channel:
        type: string
        description: The name of the channel to receive alert_events notifications
      confidential_issue_channel:
        type: string
        description: The name of the channel to receive confidential_issues_events
          notifications
      merge_request_channel:
        type: string
        description: The name of the channel to receive merge_requests_events notifications
      note_channel:
        type: string
        description: The name of the channel to receive note_events notifications
      confidential_note_channel:
        type: string
        description: The name of the channel to receive confidential_note_events notifications
      tag_push_channel:
        type: string
        description: The name of the channel to receive tag_push_events notifications
      deployment_channel:
        type: string
        description: The name of the channel to receive deployment_events notifications
      pipeline_channel:
        type: string
        description: The name of the channel to receive pipeline_events notifications
      wiki_page_channel:
        type: string
        description: The name of the channel to receive wiki_page_events notifications
      vulnerability_channel:
        type: string
        description: The name of the channel to receive vulnerability_events notifications
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
      deployment_events:
        type: boolean
        description: Trigger event when a deployment starts or finishes.
      incident_events:
        type: boolean
        description: Trigger event when an incident is created.
      vulnerability_events:
        type: boolean
      alert_events:
        type: boolean
        description: Trigger event when a new, unique alert is recorded.
    required:
    - webhook
    description: Create/Edit Slack integration
  putApiV4ProjectsIdIntegrationsMicrosoftTeams:
    type: object
    properties:
      webhook:
        type: string
        description: The Microsoft Teams webhook. e.g. https://outlook.office.com/webhook/…
      branches_to_be_notified:
        type: string
        description: Branches for which notifications are to be sent
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
    required:
    - webhook
    description: Create/Edit Microsoft Teams integration
  putApiV4ProjectsIdIntegrationsMattermost:
    type: object
    properties:
      webhook:
        type: string
        description: Mattermost notifications webhook (for example, `http://mattermost.example.com/hooks/...`).
      username:
        type: string
        description: Mattermost notifications username.
      channel:
        type: string
        description: Default channel to use if no other channel is configured.
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines.
      branches_to_be_notified:
        type: string
        description: Branches to send notifications for. Valid options are `all`,
          `default`, `protected`, and `default_and_protected`. The default value is
          `default`.
      labels_to_be_notified:
        type: string
        description: Labels to send notifications for. Leave blank to receive notifications
          for all events.
      labels_to_be_notified_behavior:
        type: string
        description: Labels to be notified for. Valid options are `match_any` and
          `match_all`. The default value is `match_any`.
      push_channel:
        type: string
        description: The name of the channel to receive push_events notifications
      issue_channel:
        type: string
        description: The name of the channel to receive issues_events notifications
      incident_channel:
        type: string
        description: The name of the channel to receive incident_events notifications
      alert_channel:
        type: string
        description: The name of the channel to receive alert_events notifications
      confidential_issue_channel:
        type: string
        description: The name of the channel to receive confidential_issues_events
          notifications
      merge_request_channel:
        type: string
        description: The name of the channel to receive merge_requests_events notifications
      note_channel:
        type: string
        description: The name of the channel to receive note_events notifications
      confidential_note_channel:
        type: string
        description: The name of the channel to receive confidential_note_events notifications
      tag_push_channel:
        type: string
        description: The name of the channel to receive tag_push_events notifications
      deployment_channel:
        type: string
        description: The name of the channel to receive deployment_events notifications
      pipeline_channel:
        type: string
        description: The name of the channel to receive pipeline_events notifications
      wiki_page_channel:
        type: string
        description: The name of the channel to receive wiki_page_events notifications
      vulnerability_channel:
        type: string
        description: The name of the channel to receive vulnerability_events notifications
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
      deployment_events:
        type: boolean
        description: Trigger event when a deployment starts or finishes.
      incident_events:
        type: boolean
        description: Trigger event when an incident is created.
      vulnerability_events:
        type: boolean
    required:
    - webhook
    description: Create/Edit Mattermost integration
  putApiV4ProjectsIdIntegrationsTeamcity:
    type: object
    properties:
      teamcity_url:
        type: string
        description: TeamCity root URL like https://teamcity.example.com
      enable_ssl_verification:
        type: boolean
        description: Enable SSL verification
      build_type:
        type: string
        description: Build configuration ID
      username:
        type: string
        description: A user with permissions to trigger a manual build
      password:
        type: string
        description: The password of the user
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
    required:
    - teamcity_url
    - build_type
    - username
    - password
    description: Create/Edit Teamcity integration
  putApiV4ProjectsIdIntegrationsTelegram:
    type: object
    properties:
      hostname:
        type: string
        description: Custom hostname of the Telegram API. The default value is `https://api.telegram.org`.
      token:
        type: string
        description: The Telegram chat token. For example, 123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
      room:
        type: string
        description: Unique identifier for the target chat or username of the target
          channel (in the format @channelusername)
      thread:
        type: integer
        format: int32
        description: Unique identifier for the target message thread (topic in a forum
          supergroup)
      branches_to_be_notified:
        type: string
        description: Branches for which notifications are to be sent.
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
      incident_events:
        type: boolean
        description: Trigger event when an incident is created.
      vulnerability_events:
        type: boolean
    required:
    - token
    - room
    description: Create/Edit Telegram integration
  putApiV4ProjectsIdIntegrationsUnifyCircuit:
    type: object
    properties:
      webhook:
        type: string
        description: The Unify Circuit webhook. e.g. https://circuit.com/rest/v2/webhooks/incoming/…
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
    required:
    - webhook
    description: Create/Edit Unify Circuit integration
  putApiV4ProjectsIdIntegrationsWebexTeams:
    type: object
    properties:
      webhook:
        type: string
        description: The Webex Teams webhook. For example, https://api.ciscospark.com/v1/webhooks/incoming/...
      notify_only_broken_pipelines:
        type: boolean
        description: Send notifications for broken pipelines.
      branches_to_be_notified:
        type: string
        description: Branches to send notifications for. Valid options are `all`,
          `default`, `protected`, and `default_and_protected`. The default value is
          `default`.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
      merge_requests_events:
        type: boolean
        description: Trigger event when a merge request is created, updated, or merged.
      note_events:
        type: boolean
        description: Trigger event for new comments.
      confidential_note_events:
        type: boolean
        description: Trigger event for new comments on confidential issues.
      tag_push_events:
        type: boolean
        description: Trigger event for new tags pushed to the repository.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
      wiki_page_events:
        type: boolean
        description: Trigger event when a wiki page is created or updated.
    required:
    - webhook
    description: Create/Edit Webex Teams integration
  putApiV4ProjectsIdIntegrationsZentao:
    type: object
    properties:
      url:
        type: string
        description: The base URL to the ZenTao instance web interface which is being
          linked to this GitLab project. For example, https://www.zentao.net
      api_url:
        type: string
        description: The base URL to the ZenTao instance API. Web URL value will be
          used if not set. For example, https://www.zentao.net
      api_token:
        type: string
        description: The API token created from ZenTao dashboard
      zentao_product_xid:
        type: string
        description: The product ID of ZenTao project
    required:
    - url
    - api_token
    - zentao_product_xid
    description: Create/Edit Zentao integration
  putApiV4ProjectsIdIntegrationsSquashTm:
    type: object
    properties:
      url:
        type: string
        description: URL of the Squash TM webhook.
      token:
        type: string
        description: Secret token.
      issues_events:
        type: boolean
        description: Trigger event when an issue is created, updated, or closed.
      confidential_issues_events:
        type: boolean
        description: Trigger event when a confidential issue is created, updated,
          or closed.
    required:
    - url
    description: Create/Edit Squash Tm integration
  putApiV4ProjectsIdIntegrationsGithub:
    type: object
    properties:
      token:
        type: string
        description: GitHub API token with `repo:status` OAuth scope.
      repository_url:
        type: string
        description: GitHub repository URL.
      static_context:
        type: boolean
        description: Append the hostname of your GitLab instance to the status check
          name.
      pipeline_events:
        type: boolean
        description: Trigger event when a pipeline status changes.
    required:
    - token
    - repository_url
    description: Create/Edit Github integration
  putApiV4ProjectsIdIntegrationsGitGuardian:
    type: object
    properties:
      token:
        type: string
    required:
    - token
    description: Create/Edit Git Guardian integration
  putApiV4ProjectsIdIntegrationsGoogleCloudPlatformArtifactRegistry:
    type: object
    properties:
      artifact_registry_project_id:
        type: string
      artifact_registry_repositories:
        type: string
      artifact_registry_location:
        type: string
    required:
    - artifact_registry_project_id
    - artifact_registry_repositories
    - artifact_registry_location
    description: Create/Edit Google Cloud Platform Artifact Registry integration
  putApiV4ProjectsIdIntegrationsGoogleCloudPlatformWorkloadIdentityFederation:
    type: object
    properties:
      workload_identity_federation_project_id:
        type: string
        description: Google Cloud project ID for the Workload Identity Federation.
      workload_identity_federation_project_number:
        type: string
        description: Google Cloud project number for the Workload Identity Federation.
      workload_identity_pool_id:
        type: string
        description: ID of the Workload Identity Pool.
      workload_identity_pool_provider_id:
        type: string
        description: ID of the Workload Identity Pool provider.
    required:
    - workload_identity_federation_project_id
    - workload_identity_federation_project_number
    - workload_identity_pool_id
    - workload_identity_pool_provider_id
    description: Create/Edit Google Cloud Platform Workload Identity Federation integration
  putApiV4ProjectsIdIntegrationsMockCi:
    type: object
    properties:
      enable_ssl_verification:
        type: boolean
        description: Enable SSL verification. Defaults to `true` (enabled).
      mock_service_url:
        type: string
        description: URL of the Mock CI integration.
      push_events:
        type: boolean
        description: Trigger event for pushes to the repository.
    required:
    - mock_service_url
    description: Create/Edit Mock Ci integration
  postApiV4ProjectsIdIntegrationsMattermostSlashCommandsTrigger:
    type: object
    properties:
      token:
        type: string
        description: The Mattermost token.
    required:
    - token
    description: Trigger a slash command for mattermost-slash-commands
  postApiV4ProjectsIdIntegrationsSlackSlashCommandsTrigger:
    type: object
    properties:
      token:
        type: string
        description: The Slack token.
    required:
    - token
    description: Trigger a slash command for slack-slash-commands
  postApiV4ProjectsIdInvitations:
    type: object
    properties:
      access_level:
        type: integer
        format: int32
        description: 'A valid access level (defaults: `30`, developer access level)'
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        - 5
      email:
        type: array
        description: The email address to invite, or multiple emails separated by
          comma
        items:
          type: string
      user_id:
        type: array
        description: The user ID of the new member or multiple IDs separated by commas.
        items:
          type: string
      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: invitations-api
    required:
    - access_level
    description: Invite non-members by email address to a group or project.
  putApiV4ProjectsIdInvitationsEmail:
    type: object
    properties:
      access_level:
        type: integer
        format: int32
        description: 'A valid access level (defaults: `30`, developer access level)'
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
      expires_at:
        type: string
        format: date-time
        description: Date string in ISO 8601 format (`YYYY-MM-DDTHH:MM:SSZ`)
    description: Updates a group or project invitation.
  API_Entities_RelatedIssue:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 84
      iid:
        type: integer
        format: int32
        example: 14
      project_id:
        type: integer
        format: int32
        example: 4
      title:
        type: string
        example: Impedit et ut et dolores vero provident ullam est
      description:
        type: string
        example: Repellendus impedit et vel velit dignissimos.
      state:
        type: string
        example: closed
      created_at:
        type: string
        format: date-time
        example: '2022-08-17T12:46:35.053Z'
      updated_at:
        type: string
        format: date-time
        example: '2022-11-14T17:22:01.470Z'
      closed_at:
        type: string
        format: date-time
        example: '2022-11-15T08:30:55.232Z'
      closed_by:
        "$ref": "#/definitions/API_Entities_UserBasic"
      labels:
        type: array
        items:
          type: string
          example: bug
      milestone:
        "$ref": "#/definitions/API_Entities_Milestone"
      assignees:
        "$ref": "#/definitions/API_Entities_UserBasic"
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      type:
        type: string
        example: ISSUE
        description: One of ["ISSUE", "INCIDENT", "TEST_CASE", "REQUIREMENT", "TASK"]
      assignee:
        "$ref": "#/definitions/API_Entities_UserBasic"
      user_notes_count:
        type: string
      merge_requests_count:
        type: string
      upvotes:
        type: string
      downvotes:
        type: string
      due_date:
        type: string
        format: date
        example: '2022-11-20'
      confidential:
        type: boolean
      discussion_locked:
        type: boolean
      issue_type:
        type: string
        example: issue
      web_url:
        type: string
        example: http://example.com/example/example/issues/14
      time_stats:
        "$ref": "#/definitions/API_Entities_IssuableTimeStats"
      task_completion_status:
        type: string
      weight:
        type: string
      blocking_issues_count:
        type: string
      has_tasks:
        type: string
      task_status:
        type: string
      _links:
        type: object
        properties:
          self:
            type: string
          notes:
            type: string
          award_emoji:
            type: string
          project:
            type: string
          closed_as_duplicate_of:
            type: string
      references:
        "$ref": "#/definitions/API_Entities_IssuableReferences"
      severity:
        type: string
        description: One of ["UNKNOWN", "LOW", "MEDIUM", "HIGH", "CRITICAL"]
      subscribed:
        type: string
      moved_to_id:
        type: string
      imported:
        type: string
      imported_from:
        type: string
        example: github
      service_desk_reply_to:
        type: string
      epic_iid:
        type: string
      epic:
        "$ref": "#/definitions/EpicBaseEntity"
      iteration:
        "$ref": "#/definitions/API_Entities_Iteration"
      health_status:
        type: string
      issue_link_id:
        type: string
      link_type:
        type: string
      link_created_at:
        type: string
      link_updated_at:
        type: string
    description: API_Entities_RelatedIssue model
  EpicBaseEntity:
    type: object
    properties:
      id:
        type: string
      iid:
        type: string
      title:
        type: string
      url:
        type: string
      group_id:
        type: string
      human_readable_end_date:
        type: string
      human_readable_timestamp:
        type: string
  API_Entities_Iteration:
    type: object
    properties:
      id:
        type: string
      iid:
        type: string
      sequence:
        type: string
      group_id:
        type: string
      title:
        type: string
      description:
        type: string
      state:
        type: string
      created_at:
        type: string
      updated_at:
        type: string
      start_date:
        type: string
      due_date:
        type: string
      web_url:
        type: string
  postApiV4ProjectsIdIssuesIssueIidLinks:
    type: object
    properties:
      target_project_id:
        type: string
        description: The ID or URL-encoded path of a target project
      target_issue_iid:
        type: string
        description: The internal ID of a target project’s issue
      link_type:
        type: string
        description: The type of the relation (“relates_to”, “blocks”, “is_blocked_by”),defaults
          to “relates_to”)
        enum:
        - relates_to
        - blocks
        - is_blocked_by
    required:
    - target_project_id
    - target_issue_iid
    description: Create an issue link
  API_Entities_IssueLink:
    type: object
    properties:
      source_issue:
        "$ref": "#/definitions/API_Entities_IssueBasic"
      target_issue:
        "$ref": "#/definitions/API_Entities_IssueBasic"
      link_type:
        type: string
    description: API_Entities_IssueLink model
  API_Entities_IssueBasic:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 84
      iid:
        type: integer
        format: int32
        example: 14
      project_id:
        type: integer
        format: int32
        example: 4
      title:
        type: string
        example: Impedit et ut et dolores vero provident ullam est
      description:
        type: string
        example: Repellendus impedit et vel velit dignissimos.
      state:
        type: string
        example: closed
      created_at:
        type: string
        format: date-time
        example: '2022-08-17T12:46:35.053Z'
      updated_at:
        type: string
        format: date-time
        example: '2022-11-14T17:22:01.470Z'
      closed_at:
        type: string
        format: date-time
        example: '2022-11-15T08:30:55.232Z'
      closed_by:
        "$ref": "#/definitions/API_Entities_UserBasic"
      labels:
        type: array
        items:
          type: string
          example: bug
      milestone:
        "$ref": "#/definitions/API_Entities_Milestone"
      assignees:
        "$ref": "#/definitions/API_Entities_UserBasic"
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      type:
        type: string
        example: ISSUE
        description: One of ["ISSUE", "INCIDENT", "TEST_CASE", "REQUIREMENT", "TASK"]
      assignee:
        "$ref": "#/definitions/API_Entities_UserBasic"
      user_notes_count:
        type: string
      merge_requests_count:
        type: string
      upvotes:
        type: string
      downvotes:
        type: string
      due_date:
        type: string
        format: date
        example: '2022-11-20'
      confidential:
        type: boolean
      discussion_locked:
        type: boolean
      issue_type:
        type: string
        example: issue
      web_url:
        type: string
        example: http://example.com/example/example/issues/14
      time_stats:
        "$ref": "#/definitions/API_Entities_IssuableTimeStats"
      task_completion_status:
        type: string
      weight:
        type: string
      blocking_issues_count:
        type: string
  API_Entities_Ci_Lint_Result:
    type: object
    properties:
      valid:
        type: boolean
      errors:
        type: array
        items:
          type: string
          example: variables config should be a hash of key value pairs
      warnings:
        type: array
        items:
          type: string
          example: jobs:job may allow multiple pipelines ...
      merged_yaml:
        type: string
        example: |-
          ---\n:another_test:\n  :stage: test\n
                    :script: echo 2\n:test:\n  :stage: test\n  :script: echo 1\n
      includes:
        type: array
        items:
          type: object
          example: '{ "blob": "https://gitlab.com/root/example-project/-/blob/...'
      jobs:
        type: array
        items:
          type: object
          example: '{ "name": "test: .... }'
    description: API_Entities_Ci_Lint_Result model
  postApiV4ProjectsIdCiLint:
    type: object
    properties:
      content:
        type: string
        description: Content of .gitlab-ci.yml
      dry_run:
        type: boolean
        description: Run pipeline creation simulation, or only do static check. This
          is false by default
        default: false
      include_jobs:
        type: boolean
        description: |-
          If the list of jobs that would exist in a static check or pipeline
                  simulation should be included in the response. This is false by default
      ref:
        type: string
        description: When dry_run is true, sets the branch or tag to use. Defaults
          to the project’s default branch when not set
    required:
    - content
    description: Validate a CI YAML configuration with a namespace
  putApiV4ProjectsIdPackagesMaven*pathFileNameAuthorize:
    type: object
    properties:
      path:
        type: string
        description: Package path
        example: foo/bar/mypkg/1.0-SNAPSHOT
    required:
    - path
    description: Workhorse authorize the maven package file upload
  putApiV4ProjectsIdPackagesMaven*pathFileName:
    type: object
    properties:
      path:
        type: string
        description: Package path
        example: foo/bar/mypkg/1.0-SNAPSHOT
      file:
        type: file
        description: The package file to be published (generated by Multipart middleware)
    required:
    - path
    - file
    description: Upload the maven package file
  postApiV4ProjectsIdMembers:
    type: object
    properties:
      access_level:
        type: integer
        format: int32
        description: 'A valid access level (defaults: `30`, developer 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.
  postApiV4ProjectsIdMergeRequestsMergeRequestIidTimeEstimate:
    type: object
    properties:
      duration:
        type: string
        description: The duration in human format.
        example: 3h30m
    required:
    - duration
    description: Set a time estimate for a merge_request
  postApiV4ProjectsIdMergeRequestsMergeRequestIidAddSpentTime:
    type: object
    properties:
      duration:
        type: string
        description: The duration in human format.
    required:
    - duration
    description: Add spent time for a merge_request
  postApiV4ProjectsIdMergeRequests:
    type: object
    properties:
      title:
        type: string
        description: The title of the merge request.
      source_branch:
        type: string
        description: The source branch.
      target_branch:
        type: string
        description: The target branch.
      target_project_id:
        type: integer
        format: int32
        description: The target project of the merge request defaults to the :id of
          the project.
      assignee_id:
        type: integer
        format: int32
        description: Assignee user ID.
      assignee_ids:
        type: array
        description: The IDs of the users to assign the merge request to, as a comma-separated
          list. Set to 0 or provide an empty value to unassign all assignees.
        items:
          type: integer
          format: int32
      reviewer_ids:
        type: array
        description: The IDs of the users to review the merge request, as a comma-separated
          list. Set to 0 or provide an empty value to unassign all reviewers.
        items:
          type: integer
          format: int32
      description:
        type: string
        description: Description of the merge request. Limited to 1,048,576 characters.
      labels:
        type: array
        description: Comma-separated label names for a merge request. Set to an empty
          string to unassign all labels.
        items:
          type: string
      add_labels:
        type: array
        description: Comma-separated label names to add to a merge request.
        items:
          type: string
      remove_labels:
        type: array
        description: Comma-separated label names to remove from a merge request.
        items:
          type: string
      milestone_id:
        type: integer
        format: int32
        description: The global ID of a milestone to assign the merge reques to.
      remove_source_branch:
        type: boolean
        description: Flag indicating if a merge request should remove the source branch
          when merging.
      allow_collaboration:
        type: boolean
        description: Allow commits from members who can merge to the target branch.
      allow_maintainer_to_push:
        type: boolean
        description: "[deprecated] See allow_collaboration"
      squash:
        type: boolean
        description: Squash commits into a single commit when merging.
      approvals_before_merge:
        type: integer
        format: int32
        description: Number of approvals required before this can be merged
    required:
    - title
    - source_branch
    - target_branch
    description: Create merge request
  API_Entities_MergeRequest:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 84
      iid:
        type: integer
        format: int32
        example: 14
      project_id:
        type: integer
        format: int32
        example: 4
      title:
        type: string
        example: Impedit et ut et dolores vero provident ullam est
      description:
        type: string
        example: Repellendus impedit et vel velit dignissimos.
      state:
        type: string
        example: closed
      created_at:
        type: string
        format: date-time
        example: '2022-08-17T12:46:35.053Z'
      updated_at:
        type: string
        format: date-time
        example: '2022-11-14T17:22:01.470Z'
      merged_by:
        "$ref": "#/definitions/API_Entities_UserBasic"
      merge_user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      merged_at:
        type: string
      closed_by:
        "$ref": "#/definitions/API_Entities_UserBasic"
      closed_at:
        type: string
      title_html:
        type: string
      description_html:
        type: string
      target_branch:
        type: string
      source_branch:
        type: string
      user_notes_count:
        type: string
      upvotes:
        type: string
      downvotes:
        type: string
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      assignees:
        "$ref": "#/definitions/API_Entities_UserBasic"
      assignee:
        "$ref": "#/definitions/API_Entities_UserBasic"
      reviewers:
        "$ref": "#/definitions/API_Entities_UserBasic"
      source_project_id:
        type: string
      target_project_id:
        type: string
      labels:
        type: string
      draft:
        type: string
      imported:
        type: string
      imported_from:
        type: string
        example: bitbucket
      work_in_progress:
        type: string
      milestone:
        "$ref": "#/definitions/API_Entities_Milestone"
      merge_when_pipeline_succeeds:
        type: string
      merge_status:
        type: string
      detailed_merge_status:
        type: string
      sha:
        type: string
      merge_commit_sha:
        type: string
      squash_commit_sha:
        type: string
      discussion_locked:
        type: string
      should_remove_source_branch:
        type: string
      force_remove_source_branch:
        type: string
      prepared_at:
        type: string
      allow_collaboration:
        type: string
      allow_maintainer_to_push:
        type: string
      reference:
        type: string
      references:
        "$ref": "#/definitions/API_Entities_IssuableReferences"
      web_url:
        type: string
      time_stats:
        "$ref": "#/definitions/API_Entities_IssuableTimeStats"
      squash:
        type: string
      squash_on_merge:
        type: string
      task_completion_status:
        type: string
      has_conflicts:
        type: string
      blocking_discussions_resolved:
        type: string
      approvals_before_merge:
        type: string
      subscribed:
        type: string
      changes_count:
        type: string
      latest_build_started_at:
        type: string
      latest_build_finished_at:
        type: string
      first_deployed_to_production_at:
        type: string
      pipeline:
        "$ref": "#/definitions/API_Entities_Ci_PipelineBasic"
      head_pipeline:
        "$ref": "#/definitions/API_Entities_Ci_Pipeline"
      diff_refs:
        "$ref": "#/definitions/API_Entities_DiffRefs"
      merge_error:
        type: string
      rebase_in_progress:
        type: string
      diverged_commits_count:
        type: string
      first_contribution:
        type: string
      user:
        type: object
        properties:
          can_merge:
            type: string
    description: API_Entities_MergeRequest model
  API_Entities_DiffRefs:
    type: object
    properties:
      base_sha:
        type: string
      head_sha:
        type: string
      start_sha:
        type: string
  API_Entities_MergeRequestReviewer:
    type: object
    properties:
      user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      state:
        type: string
      created_at:
        type: string
    description: API_Entities_MergeRequestReviewer model
  postApiV4ProjectsIdMergeRequestsMergeRequestIidContextCommits:
    type: object
    properties:
      commits:
        type: array
        description: The context commits’ SHA.
        items:
          type: string
    required:
    - commits
    description: Create merge request context commits
  API_Entities_MergeRequestChanges:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 84
      iid:
        type: integer
        format: int32
        example: 14
      project_id:
        type: integer
        format: int32
        example: 4
      title:
        type: string
        example: Impedit et ut et dolores vero provident ullam est
      description:
        type: string
        example: Repellendus impedit et vel velit dignissimos.
      state:
        type: string
        example: closed
      created_at:
        type: string
        format: date-time
        example: '2022-08-17T12:46:35.053Z'
      updated_at:
        type: string
        format: date-time
        example: '2022-11-14T17:22:01.470Z'
      merged_by:
        "$ref": "#/definitions/API_Entities_UserBasic"
      merge_user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      merged_at:
        type: string
      closed_by:
        "$ref": "#/definitions/API_Entities_UserBasic"
      closed_at:
        type: string
      title_html:
        type: string
      description_html:
        type: string
      target_branch:
        type: string
      source_branch:
        type: string
      user_notes_count:
        type: string
      upvotes:
        type: string
      downvotes:
        type: string
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      assignees:
        "$ref": "#/definitions/API_Entities_UserBasic"
      assignee:
        "$ref": "#/definitions/API_Entities_UserBasic"
      reviewers:
        "$ref": "#/definitions/API_Entities_UserBasic"
      source_project_id:
        type: string
      target_project_id:
        type: string
      labels:
        type: string
      draft:
        type: string
      imported:
        type: string
      imported_from:
        type: string
        example: bitbucket
      work_in_progress:
        type: string
      milestone:
        "$ref": "#/definitions/API_Entities_Milestone"
      merge_when_pipeline_succeeds:
        type: string
      merge_status:
        type: string
      detailed_merge_status:
        type: string
      sha:
        type: string
      merge_commit_sha:
        type: string
      squash_commit_sha:
        type: string
      discussion_locked:
        type: string
      should_remove_source_branch:
        type: string
      force_remove_source_branch:
        type: string
      prepared_at:
        type: string
      allow_collaboration:
        type: string
      allow_maintainer_to_push:
        type: string
      reference:
        type: string
      references:
        "$ref": "#/definitions/API_Entities_IssuableReferences"
      web_url:
        type: string
      time_stats:
        "$ref": "#/definitions/API_Entities_IssuableTimeStats"
      squash:
        type: string
      squash_on_merge:
        type: string
      task_completion_status:
        type: string
      has_conflicts:
        type: string
      blocking_discussions_resolved:
        type: string
      approvals_before_merge:
        type: string
      subscribed:
        type: string
      changes_count:
        type: string
      latest_build_started_at:
        type: string
      latest_build_finished_at:
        type: string
      first_deployed_to_production_at:
        type: string
      pipeline:
        "$ref": "#/definitions/API_Entities_Ci_PipelineBasic"
      head_pipeline:
        "$ref": "#/definitions/API_Entities_Ci_Pipeline"
      diff_refs:
        "$ref": "#/definitions/API_Entities_DiffRefs"
      merge_error:
        type: string
      rebase_in_progress:
        type: string
      diverged_commits_count:
        type: string
      first_contribution:
        type: string
      user:
        type: object
        properties:
          can_merge:
            type: string
      changes:
        "$ref": "#/definitions/API_Entities_Diff"
      overflow:
        type: string
    description: API_Entities_MergeRequestChanges model
  putApiV4ProjectsIdMergeRequestsMergeRequestIid:
    type: object
    properties:
      title:
        type: string
        description: The title of the merge request.
      target_branch:
        type: string
        description: The target branch.
      state_event:
        type: string
        description: New state (close/reopen).
        enum:
        - close
        - reopen
      discussion_locked:
        type: boolean
        description: Flag indicating if the merge request’s discussion is locked.
          If the discussion is locked only project members can add, edit or resolve
          comments.
      assignee_id:
        type: integer
        format: int32
        description: Assignee user ID.
      assignee_ids:
        type: array
        description: The IDs of the users to assign the merge request to, as a comma-separated
          list. Set to 0 or provide an empty value to unassign all assignees.
        items:
          type: integer
          format: int32
      reviewer_ids:
        type: array
        description: The IDs of the users to review the merge request, as a comma-separated
          list. Set to 0 or provide an empty value to unassign all reviewers.
        items:
          type: integer
          format: int32
      description:
        type: string
        description: Description of the merge request. Limited to 1,048,576 characters.
      labels:
        type: array
        description: Comma-separated label names for a merge request. Set to an empty
          string to unassign all labels.
        items:
          type: string
      add_labels:
        type: array
        description: Comma-separated label names to add to a merge request.
        items:
          type: string
      remove_labels:
        type: array
        description: Comma-separated label names to remove from a merge request.
        items:
          type: string
      milestone_id:
        type: integer
        format: int32
        description: The global ID of a milestone to assign the merge reques to.
      remove_source_branch:
        type: boolean
        description: Flag indicating if a merge request should remove the source branch
          when merging.
      allow_collaboration:
        type: boolean
        description: Allow commits from members who can merge to the target branch.
      allow_maintainer_to_push:
        type: boolean
        description: "[deprecated] See allow_collaboration"
      squash:
        type: boolean
        description: Squash commits into a single commit when merging.
      approvals_before_merge:
        type: integer
        format: int32
        description: Number of approvals required before this can be merged
    description: Update merge request
  putApiV4ProjectsIdMergeRequestsMergeRequestIidMerge:
    type: object
    properties:
      merge_commit_message:
        type: string
        description: Custom merge commit message.
      squash_commit_message:
        type: string
        description: Custom squash commit message.
      should_remove_source_branch:
        type: boolean
        description: If `true`, removes the source branch.
      merge_when_pipeline_succeeds:
        type: boolean
        description: If `true`, the merge request is merged when the pipeline succeeds.
      sha:
        type: string
        description: If present, then this SHA must match the HEAD of the source branch,
          otherwise the merge fails.
      squash:
        type: boolean
        description: If `true`, the commits are squashed into a single commit on merge.
      skip_merge_train:
        type: boolean
        description: If `true` skips train restart when merging immediately in a merge
          train configured project.
    description: Merge a merge request
  putApiV4ProjectsIdMergeRequestsMergeRequestIidRebase:
    type: object
    properties:
      skip_ci:
        type: boolean
        description: Set to true to skip creating a CI pipeline.
    description: Rebase a merge request
  API_Entities_MRNote:
    type: object
    properties:
      note:
        type: string
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
    description: API_Entities_MRNote model
  API_Entities_MergeRequestDiff:
    type: object
    properties:
      id:
        type: string
      head_commit_sha:
        type: string
      base_commit_sha:
        type: string
      start_commit_sha:
        type: string
      created_at:
        type: string
      merge_request_id:
        type: string
      state:
        type: string
      real_size:
        type: string
      patch_id_sha:
        type: string
    description: API_Entities_MergeRequestDiff model
  API_Entities_MergeRequestDiffFull:
    type: object
    properties:
      id:
        type: string
      head_commit_sha:
        type: string
      base_commit_sha:
        type: string
      start_commit_sha:
        type: string
      created_at:
        type: string
      merge_request_id:
        type: string
      state:
        type: string
      real_size:
        type: string
      patch_id_sha:
        type: string
      commits:
        "$ref": "#/definitions/API_Entities_Commit"
      diffs:
        "$ref": "#/definitions/API_Entities_Diff"
    description: API_Entities_MergeRequestDiffFull model
  API_Entities_PackageFile:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 225
      package_id:
        type: integer
        format: int32
        example: 4
      created_at:
        type: string
        format: date-time
        example: '2018-11-07T15:25:52.199Z'
      file_name:
        type: string
        example: my-app-1.5-20181107.152550-1.jar
      size:
        type: integer
        format: int32
        example: '2421'
      file_md5:
        type: string
        example: 58e6a45a629910c6ff99145a688971ac
      file_sha1:
        type: string
        example: ebd193463d3915d7e22219f52740056dfd26cbfe
      file_sha256:
        type: string
        example: a903393463d3915d7e22219f52740056dfd26cbfeff321b
      pipelines:
        "$ref": "#/definitions/API_Entities_Package_Pipeline"
    description: API_Entities_PackageFile model
  patchApiV4ProjectsIdPages:
    type: object
    properties:
      pages_unique_domain_enabled:
        type: boolean
        description: Whether to use unique domain
      pages_https_only:
        type: boolean
        description: Whether to force HTTPS
    description: Update pages settings
  API_Entities_PagesDomain:
    type: object
    properties:
      domain:
        type: string
      url:
        type: string
      verified:
        type: string
      verification_code:
        type: string
      enabled_until:
        type: string
      auto_ssl_enabled:
        type: string
      certificate:
        "$ref": "#/definitions/API_Entities_PagesDomainCertificate"
    description: API_Entities_PagesDomain model
  API_Entities_PagesDomainCertificate:
    type: object
    properties:
      subject:
        type: string
      expired:
        type: string
      certificate:
        type: string
      certificate_text:
        type: string
  postApiV4ProjectsIdPagesDomains:
    type: object
    properties:
      domain:
        type: string
        description: The domain
      certificate:
        type: file
        description: The certificate
      key:
        type: file
        description: The key
      auto_ssl_enabled:
        type: boolean
        description: Enables automatic generation of SSL certificates issued by Let's
          Encrypt for custom domains.
        default: false
      user_provided_certificate:
        type: string
      user_provided_key:
        type: string
    required:
    - domain
    description: Create a new pages domain
  putApiV4ProjectsIdPagesDomainsDomain:
    type: object
    properties:
      certificate:
        type: file
        description: The certificate
      key:
        type: file
        description: The key
      auto_ssl_enabled:
        type: boolean
        description: Enables automatic generation of SSL certificates issued by Let's
          Encrypt for custom domains.
    description: Updates a pages domain
  API_Entities_ClusterProject:
    type: object
    properties:
      id:
        type: string
      name:
        type: string
      created_at:
        type: string
      domain:
        type: string
      enabled:
        type: string
      managed:
        type: string
      provider_type:
        type: string
      platform_type:
        type: string
      environment_scope:
        type: string
      cluster_type:
        type: string
      namespace_per_environment:
        type: string
      user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      platform_kubernetes:
        "$ref": "#/definitions/API_Entities_Platform_Kubernetes"
      provider_gcp:
        "$ref": "#/definitions/API_Entities_Provider_Gcp"
      management_project:
        "$ref": "#/definitions/API_Entities_ProjectIdentity"
      project:
        "$ref": "#/definitions/API_Entities_BasicProjectDetails"
    description: API_Entities_ClusterProject model
  postApiV4ProjectsIdClustersUser:
    type: object
    properties:
      name:
        type: string
        description: Cluster name
      enabled:
        type: boolean
        description: Determines if cluster is active or not, defaults to true
        default: true
      domain:
        type: string
        description: Cluster base domain
      environment_scope:
        type: string
        description: The associated environment to the cluster
        default: "*"
      namespace_per_environment:
        type: boolean
        description: Deploy each environment to a separate Kubernetes namespace
        default: true
      management_project_id:
        type: integer
        format: int32
        description: The ID of the management project
      managed:
        type: boolean
        description: Determines if GitLab will manage namespaces and service accounts
          for this cluster, defaults to true
        default: true
      platform_kubernetes_attributes:
        type: object
        description: Platform Kubernetes data
        properties:
          api_url:
            type: string
            description: URL to access the Kubernetes API
          token:
            type: string
            description: Token to authenticate against Kubernetes
          ca_cert:
            type: string
            description: TLS certificate (needed if API is using a self-signed TLS
              certificate)
          namespace:
            type: string
            description: Unique namespace related to Project
          authorization_type:
            type: string
            description: Cluster authorization type, defaults to RBAC
            enum:
            - unknown_authorization
            - rbac
            - abac
            default: rbac
        required:
        - api_url
        - token
    required:
    - name
    - platform_kubernetes_attributes
    description: Add existing cluster to project
  putApiV4ProjectsIdClustersClusterId:
    type: object
    properties:
      name:
        type: string
        description: Cluster name
      domain:
        type: string
        description: Cluster base domain
      environment_scope:
        type: string
        description: The associated environment to the cluster
      namespace_per_environment:
        type: boolean
        description: Deploy each environment to a separate Kubernetes namespace
        default: true
      management_project_id:
        type: integer
        format: int32
        description: The ID of the management project
      enabled:
        type: boolean
        description: Determines if cluster is active or not
      managed:
        type: boolean
        description: Determines if GitLab will manage namespaces and service accounts
          for this cluster
      platform_kubernetes_attributes:
        type: object
        description: Platform Kubernetes data
        properties:
          api_url:
            type: string
            description: URL to access the Kubernetes API
          token:
            type: string
            description: Token to authenticate against Kubernetes
          ca_cert:
            type: string
            description: TLS certificate (needed if API is using a self-signed TLS
              certificate)
          namespace:
            type: string
            description: Unique namespace related to Project
    description: Edit project cluster
  API_Entities_ContainerRegistry_TagDetails:
    type: object
    properties:
      name:
        type: string
        example: latest
      path:
        type: string
        example: namespace1/project1/test_image_1:latest
      location:
        type: string
        example: registry.dev/namespace1/project1/test_image_1:latest
      revision:
        type: string
        example: tagrevision
      short_revision:
        type: string
        example: shortrevison
      digest:
        type: string
        example: shadigest
      created_at:
        type: string
        format: date-time
        example: '2022-01-10T13:39:08.229Z'
      total_size:
        type: integer
        format: int32
        example: 3
    description: API_Entities_ContainerRegistry_TagDetails model
  API_Entities_Event:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      project_id:
        type: integer
        format: int32
        example: 2
      action_name:
        type: string
        example: closed
      target_id:
        type: integer
        format: int32
        example: 160
      target_iid:
        type: integer
        format: int32
        example: 157
      target_type:
        type: string
        example: Issue
      author_id:
        type: integer
        format: int32
        example: 25
      target_title:
        type: string
        example: Public project search field
      created_at:
        type: string
        example: '2017-02-09T10:43:19.667Z'
      note:
        "$ref": "#/definitions/API_Entities_Note"
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      wiki_page:
        "$ref": "#/definitions/API_Entities_WikiPageBasic"
      imported:
        type: boolean
        example: false
      imported_from:
        type: string
        example: none
      push_data:
        "$ref": "#/definitions/API_Entities_PushEventPayload"
      author_username:
        type: string
        example: root
    description: API_Entities_Event model
  API_Entities_Note:
    type: object
    properties:
      id:
        type: string
      type:
        type: string
      body:
        type: string
      attachment:
        type: string
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      created_at:
        type: string
      updated_at:
        type: string
      system:
        type: string
      noteable_id:
        type: string
      noteable_type:
        type: string
      project_id:
        type: string
      commit_id:
        type: string
      position:
        type: string
      resolvable:
        type: string
      resolved:
        type: string
      resolved_by:
        "$ref": "#/definitions/API_Entities_UserBasic"
      resolved_at:
        type: string
      confidential:
        type: string
      internal:
        type: string
      imported:
        type: string
      imported_from:
        type: string
        example: github
      noteable_iid:
        type: string
      commands_changes:
        type: string
  API_Entities_PushEventPayload:
    type: object
    properties:
      commit_count:
        type: integer
        format: int32
        example: 1
      action:
        type: string
        example: pushed
      ref_type:
        type: string
        example: branch
      commit_from:
        type: string
        example: 50d4420237a9de7be1304607147aec22e4a14af7
      commit_to:
        type: string
        example: c5feabde2d8cd023215af4d2ceeb7a64839fc428
      ref:
        type: string
        example: master
      commit_title:
        type: string
        example: Add simple search to projects in public area
      ref_count:
        type: integer
        format: int32
        example: 1
  API_Entities_ProjectExportStatus:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      description:
        type: string
        example: desc
      name:
        type: string
        example: project1
      name_with_namespace:
        type: string
        example: John Doe / project1
      path:
        type: string
        example: project1
      path_with_namespace:
        type: string
        example: namespace1/project1
      created_at:
        type: string
        format: date-time
        example: '2020-05-07T04:27:17.016Z'
      export_status:
        type: string
        example: finished
        enum:
        - queued
        - started
        - finished
        - failed
      _links:
        type: object
        properties:
          api_url:
            type: string
            example: https://gitlab.example.com/api/v4/projects/1/export/download
          web_url:
            type: string
            example: https://gitlab.example.com/gitlab-org/gitlab-test/download_export
    description: API_Entities_ProjectExportStatus model
  postApiV4ProjectsIdExport:
    type: object
    properties:
      description:
        type: string
        description: Override the project description
      upload:
        type: object
        properties:
          url:
            type: string
            description: The URL to upload the project
          http_method:
            type: string
            description: HTTP method to upload the exported project
            enum:
            - PUT
            - POST
            default: PUT
    description: Start export
  postApiV4ProjectsIdExportRelations:
    type: object
    properties:
      batched:
        type: boolean
        description: Whether to export in batches
    description: Start relations export
  API_Entities_ProjectHook:
    type: object
    properties:
      id:
        type: string
        example: 1
      url:
        type: string
        example: https://webhook.site
      name:
        type: string
        example: Hook name
      description:
        type: string
        example: Hook description
      created_at:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      push_events:
        type: boolean
      tag_push_events:
        type: boolean
      merge_requests_events:
        type: boolean
      repository_update_events:
        type: boolean
      enable_ssl_verification:
        type: boolean
      alert_status:
        type: symbol
        example: executable
      disabled_until:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      url_variables:
        type: array
        items:
          type: object
          example:
            token: secr3t
      custom_webhook_template:
        type: string
        example: '{"event":"{{object_kind}}"}'
      project_id:
        type: string
        example: 1
      issues_events:
        type: boolean
      confidential_issues_events:
        type: boolean
      note_events:
        type: boolean
      confidential_note_events:
        type: boolean
      pipeline_events:
        type: boolean
      wiki_page_events:
        type: boolean
      deployment_events:
        type: boolean
      job_events:
        type: boolean
      releases_events:
        type: boolean
      push_events_branch_filter:
        type: string
        example: my-branch-*
      emoji_events:
        type: boolean
      resource_access_token_events:
        type: boolean
    description: API_Entities_ProjectHook model
  postApiV4ProjectsIdHooks:
    type: object
    properties:
      url:
        type: string
        description: The URL to send the request to
        example: http://example.com/hook
      name:
        type: string
        description: Name of the hook
      description:
        type: string
        description: Description of the hook
      push_events:
        type: boolean
        description: Trigger hook on push events
      issues_events:
        type: boolean
        description: Trigger hook on issues events
      confidential_issues_events:
        type: boolean
        description: Trigger hook on confidential issues events
      merge_requests_events:
        type: boolean
        description: Trigger hook on merge request events
      tag_push_events:
        type: boolean
        description: Trigger hook on tag push events
      note_events:
        type: boolean
        description: Trigger hook on note (comment) events
      confidential_note_events:
        type: boolean
        description: Trigger hook on confidential note (comment) events
      job_events:
        type: boolean
        description: Trigger hook on job events
      pipeline_events:
        type: boolean
        description: Trigger hook on pipeline events
      wiki_page_events:
        type: boolean
        description: Trigger hook on wiki events
      deployment_events:
        type: boolean
        description: Trigger hook on deployment events
      releases_events:
        type: boolean
        description: Trigger hook on release events
      emoji_events:
        type: boolean
        description: Trigger hook on emoji events
      resource_access_token_events:
        type: boolean
        description: Trigger hook on project access token expiry events
      enable_ssl_verification:
        type: boolean
        description: Do SSL verification when triggering the hook
      token:
        type: string
        description: Secret token to validate received payloads; this will not be
          returned in the response
      push_events_branch_filter:
        type: string
        description: Trigger hook on specified branch only
      custom_webhook_template:
        type: string
        description: Custom template for the request payload
      url_variables:
        type: array
        description: URL variables for interpolation
        items:
          type: object
          properties:
            key:
              type: string
              description: Name of the variable
              example: token
            value:
              type: string
              description: Value of the variable
              example: '123'
          required:
          - key
          - value
    required:
    - url
    description: Add project hook
  putApiV4ProjectsIdHooksHookId:
    type: object
    properties:
      url:
        type: string
        description: The URL to send the request to
      name:
        type: string
        description: Name of the hook
      description:
        type: string
        description: Description of the hook
      push_events:
        type: boolean
        description: Trigger hook on push events
      issues_events:
        type: boolean
        description: Trigger hook on issues events
      confidential_issues_events:
        type: boolean
        description: Trigger hook on confidential issues events
      merge_requests_events:
        type: boolean
        description: Trigger hook on merge request events
      tag_push_events:
        type: boolean
        description: Trigger hook on tag push events
      note_events:
        type: boolean
        description: Trigger hook on note (comment) events
      confidential_note_events:
        type: boolean
        description: Trigger hook on confidential note (comment) events
      job_events:
        type: boolean
        description: Trigger hook on job events
      pipeline_events:
        type: boolean
        description: Trigger hook on pipeline events
      wiki_page_events:
        type: boolean
        description: Trigger hook on wiki events
      deployment_events:
        type: boolean
        description: Trigger hook on deployment events
      releases_events:
        type: boolean
        description: Trigger hook on release events
      emoji_events:
        type: boolean
        description: Trigger hook on emoji events
      resource_access_token_events:
        type: boolean
        description: Trigger hook on project access token expiry events
      enable_ssl_verification:
        type: boolean
        description: Do SSL verification when triggering the hook
      token:
        type: string
        description: Secret token to validate received payloads; this will not be
          returned in the response
      push_events_branch_filter:
        type: string
        description: Trigger hook on specified branch only
      custom_webhook_template:
        type: string
        description: Custom template for the request payload
      url_variables:
        type: array
        description: URL variables for interpolation
        items:
          type: object
          properties:
            key:
              type: string
              description: Name of the variable
              example: token
            value:
              type: string
              description: Value of the variable
              example: '123'
          required:
          - key
          - value
    description: Edit project hook
  API_Entities_ProjectImportStatus:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      description:
        type: string
        example: desc
      name:
        type: string
        example: project1
      name_with_namespace:
        type: string
        example: John Doe / project1
      path:
        type: string
        example: project1
      path_with_namespace:
        type: string
        example: namespace1/project1
      created_at:
        type: string
        format: date-time
        example: '2020-05-07T04:27:17.016Z'
      import_status:
        type: string
        example: scheduled
      import_type:
        type: string
        example: gitlab_project
      correlation_id:
        type: string
        example: dfcf583058ed4508e4c7c617bd7f0edd
      failed_relations:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_ProjectImportFailedRelation"
      import_error:
        type: string
        example: Error message
      stats:
        type: object
    description: API_Entities_ProjectImportStatus model
  API_Entities_ProjectImportFailedRelation:
    type: object
    properties:
      id:
        type: string
        example: 1
      created_at:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      exception_class:
        type: string
        example: StandardError
      source:
        type: string
        example: ImportRepositoryWorker
      exception_message:
        type: string
      relation_name:
        type: string
        example: issues
      line_number:
        type: integer
        format: int32
        example: 1
  API_Entities_RelationImportTracker:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      project_path:
        type: string
        example: namespace1/project1
      relation:
        type: string
        example: issues
      status:
        type: string
        example: pending
      created_at:
        type: string
        format: date-time
        example: '2022-01-31T15:10:45.080Z'
      updated_at:
        type: string
        format: date-time
        example: '2022-01-31T15:10:45.080Z'
    description: API_Entities_RelationImportTracker model
  API_Entities_ProjectJobTokenScope:
    type: object
    properties:
      inbound_enabled:
        type: boolean
      outbound_enabled:
        type: boolean
    description: API_Entities_ProjectJobTokenScope model
  patchApiV4ProjectsIdJobTokenScope:
    type: object
    properties:
      enabled:
        type: boolean
        description: Indicates CI/CD job tokens generated in other projects have restricted
          access to this project.
    required:
    - enabled
    description: Patch CI_JOB_TOKEN access settings.
  postApiV4ProjectsIdJobTokenScopeAllowlist:
    type: object
    properties:
      target_project_id:
        type: integer
        format: int32
        description: ID of target project
        example: 2
    required:
    - target_project_id
    description: Add target project to allowlist.
  postApiV4ProjectsIdJobTokenScopeGroupsAllowlist:
    type: object
    properties:
      target_group_id:
        type: integer
        format: int32
        description: ID of target group
        example: 2
    required:
    - target_group_id
    description: Add target group to allowlist.
  API_Entities_Projects_RepositoryStorageMove:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      created_at:
        type: string
        format: date-time
        example: '2020-05-07T04:27:17.234Z'
      state:
        type: string
        example: scheduled
      source_storage_name:
        type: string
        example: default
      destination_storage_name:
        type: string
        example: storage1
      error_message:
        type: string
        example: Failed to move repository
      project:
        "$ref": "#/definitions/API_Entities_ProjectIdentity"
    description: API_Entities_Projects_RepositoryStorageMove model
  postApiV4ProjectsIdRepositoryStorageMoves:
    type: object
    properties:
      destination_storage_name:
        type: string
        description: The destination storage shard
    description: Schedule a project repository storage move
  API_Entities_ProjectSnippet:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      title:
        type: string
        example: test
      description:
        type: string
        example: Ruby test snippet
      visibility:
        type: string
        example: public
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      created_at:
        type: string
        format: date-time
        example: '2012-06-28T10:52:04Z'
      updated_at:
        type: string
        format: date-time
        example: '2012-06-28T10:52:04Z'
      project_id:
        type: integer
        format: int32
        example: 1
      web_url:
        type: string
        example: http://example.com/example/example/snippets/1
      raw_url:
        type: string
        example: http://example.com/example/example/snippets/1/raw
      ssh_url_to_repo:
        type: string
        example: ssh://user@gitlab.example.com/snippets/65.git
      http_url_to_repo:
        type: string
        example: https://gitlab.example.com/snippets/65.git
      file_name:
        type: string
        example: add.rb
      files:
        type: array
        items:
          type: string
          example: e0d123e5f316bef78bfdf5a008837577
      imported:
        type: boolean
        example: false
      imported_from:
        type: string
        example: none
      repository_storage:
        type: string
    description: API_Entities_ProjectSnippet model
  postApiV4ProjectsIdSnippets:
    type: object
    properties:
      title:
        type: string
        description: The title of the snippet
      description:
        type: string
        description: The description of a snippet
      visibility:
        type: string
        description: The visibility of the snippet
        enum:
        - private
        - internal
        - public
      files:
        type: array
        description: An array of files
        items:
          type: object
          properties:
            file_path:
              type: string
              description: The path of a snippet file
            content:
              type: string
              description: The content of a snippet file
          required:
          - file_path
          - content
      content:
        type: string
        description: The content of a snippet
      file_name:
        type: string
        description: The name of a snippet file
    required:
    - title
    - visibility
    - file_name
    description: Create a new project snippet
  putApiV4ProjectsIdSnippetsSnippetId:
    type: object
    properties:
      content:
        type: string
        description: The content of the snippet
      description:
        type: string
        description: The description of a snippet
      file_name:
        type: string
        description: The file name of the snippet
      title:
        type: string
        description: The title of the snippet
      visibility:
        type: string
        description: The visibility of the snippet
        enum:
        - private
        - internal
        - public
      files:
        type: array
        description: An array of files to update
        items:
          type: object
          properties:
            action:
              type: string
              description: 'The type of action to perform on the file, must be one
                of: create, update, delete, move'
              enum:
              - create
              - update
              - delete
              - move
            content:
              type: string
              description: The content of a snippet
            file_path:
              type: string
              description: The file path of a snippet file
            previous_path:
              type: string
              description: The previous path of a snippet file
          required:
          - action
    description: Update an existing project snippet
  API_Entities_UserAgentDetail:
    type: object
    properties:
      user_agent:
        type: string
        example: AppleWebKit/537.36
      ip_address:
        type: string
        example: 127.0.0.1
      akismet_submitted:
        type: boolean
        example: false
    description: API_Entities_UserAgentDetail model
  API_Entities_ProjectDailyStatistics:
    type: object
    properties:
      fetches:
        type: object
        properties:
          total:
            type: integer
            format: int32
            example: 3
          days:
            type: array
            items:
              "$ref": "#/definitions/API_Entities_ProjectDailyFetches"
    description: API_Entities_ProjectDailyStatistics model
  API_Entities_ProjectDailyFetches:
    type: object
    properties:
      count:
        type: integer
        format: int32
        example: 3
      date:
        type: string
        format: date
        example: '2022-01-01'
  API_Entities_TemplatesList:
    type: object
    properties:
      key:
        type: string
        example: mit
      name:
        type: string
        example: MIT License
    description: API_Entities_TemplatesList model
  API_Entities_License:
    type: object
    properties:
      key:
        type: string
        example: gpl-3.0
      name:
        type: string
        example: GNU General Public License v3.0
      nickname:
        type: string
        example: GNU GPLv3
      html_url:
        type: string
        example: http://choosealicense.com/licenses/gpl-3.0
      source_url:
        type: string
      popular:
        type: boolean
      description:
        type: string
        example: A simple license
      conditions:
        type: array
        items:
          type: string
          example: include-copyright
      permissions:
        type: array
        items:
          type: string
          example: commercial-use
      limitations:
        type: array
        items:
          type: string
          example: liability
      content:
        type: string
        example: GNU GENERAL PUBLIC LICENSE
    description: API_Entities_License model
  putApiV4ProjectsIdCustomAttributesKey:
    type: object
    properties:
      value:
        type: string
        description: The value of the custom attribute
    required:
    - value
    description: Set a custom attribute on a project
  postApiV4Projects:
    type: object
    properties:
      name:
        type: string
        description: The name of the project
        example: New Project
      path:
        type: string
        description: The path of the repository
        example: new_project
      default_branch:
        type: string
        description: The default branch of the project
        example: main
      description:
        type: string
        description: The description of the project
      build_git_strategy:
        type: string
        description: The Git strategy. Defaults to `fetch`
        enum:
        - fetch
        - clone
      build_timeout:
        type: integer
        format: int32
        description: Build timeout
      auto_cancel_pending_pipelines:
        type: string
        description: Auto-cancel pending pipelines
        enum:
        - disabled
        - enabled
      ci_config_path:
        type: string
        description: The path to CI config file. Defaults to `.gitlab-ci.yml`
      service_desk_enabled:
        type: boolean
        description: Disable or enable the service desk
      issues_enabled:
        type: boolean
        description: Flag indication if the issue tracker is enabled
      merge_requests_enabled:
        type: boolean
        description: Flag indication if merge requests are enabled
      wiki_enabled:
        type: boolean
        description: Flag indication if the wiki is enabled
      jobs_enabled:
        type: boolean
        description: Flag indication if jobs are enabled
      snippets_enabled:
        type: boolean
        description: Flag indication if snippets are enabled
      issues_access_level:
        type: string
        description: Issues access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      repository_access_level:
        type: string
        description: Repository access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      merge_requests_access_level:
        type: string
        description: Merge requests access level. One of `disabled`, `private` or
          `enabled`
        enum:
        - disabled
        - private
        - enabled
      forking_access_level:
        type: string
        description: Forks access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      wiki_access_level:
        type: string
        description: Wiki access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      builds_access_level:
        type: string
        description: Builds access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      snippets_access_level:
        type: string
        description: Snippets access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      pages_access_level:
        type: string
        description: Pages access level. One of `disabled`, `private`, `enabled` or
          `public`
        enum:
        - disabled
        - private
        - enabled
        - public
      analytics_access_level:
        type: string
        description: Analytics access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      container_registry_access_level:
        type: string
        description: Controls visibility of the container registry. One of `disabled`,
          `private` or `enabled`. `private` will make the container registry accessible
          only to project members (reporter role and above). `enabled` will make the
          container registry accessible to everyone who has access to the project.
          `disabled` will disable the container registry
        enum:
        - disabled
        - private
        - enabled
      security_and_compliance_access_level:
        type: string
        description: Security and compliance access level. One of `disabled`, `private`
          or `enabled`
        enum:
        - disabled
        - private
        - enabled
      releases_access_level:
        type: string
        description: Releases access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      environments_access_level:
        type: string
        description: Environments access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      feature_flags_access_level:
        type: string
        description: Feature flags access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      infrastructure_access_level:
        type: string
        description: Infrastructure access level. One of `disabled`, `private` or
          `enabled`
        enum:
        - disabled
        - private
        - enabled
      monitor_access_level:
        type: string
        description: Monitor access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      model_experiments_access_level:
        type: string
        description: Model experiments access level. One of `disabled`, `private`
          or `enabled`
        enum:
        - disabled
        - private
        - enabled
      model_registry_access_level:
        type: string
        description: Model registry access level. One of `disabled`, `private` or
          `enabled`
        enum:
        - disabled
        - private
        - enabled
      emails_disabled:
        type: boolean
        description: 'Deprecated: Use emails_enabled instead.'
      emails_enabled:
        type: boolean
        description: Enable email notifications
      show_default_award_emojis:
        type: boolean
        description: Show default award emojis
      show_diff_preview_in_email:
        type: boolean
        description: Include the code diff preview in merge request notification emails
      warn_about_potentially_unwanted_characters:
        type: boolean
        description: Warn about potentially unwanted characters
      enforce_auth_checks_on_uploads:
        type: boolean
        description: Enforce auth check on uploads
      shared_runners_enabled:
        type: boolean
        description: Flag indication if shared runners are enabled for that project
      group_runners_enabled:
        type: boolean
        description: Flag indication if group runners are enabled for that project
      resolve_outdated_diff_discussions:
        type: boolean
        description: Automatically resolve merge request diff threads on lines changed
          with a push
      remove_source_branch_after_merge:
        type: boolean
        description: Remove the source branch by default after merge
      container_registry_enabled:
        type: boolean
        description: 'Deprecated: Use :container_registry_access_level instead. Flag
          indication if the container registry is enabled for that project'
      container_expiration_policy_attributes:
        type: object
        properties:
          cadence:
            type: string
            description: Container expiration policy cadence for recurring job
          keep_n:
            type: integer
            format: int32
            description: Container expiration policy number of images to keep
          older_than:
            type: string
            description: Container expiration policy remove images older than value
          name_regex:
            type: string
            description: Container expiration policy regex for image removal
          name_regex_keep:
            type: string
            description: Container expiration policy regex for image retention
          enabled:
            type: boolean
            description: Flag indication if container expiration policy is enabled
      lfs_enabled:
        type: boolean
        description: Flag indication if Git LFS is enabled for that project
      visibility:
        type: string
        description: The visibility of the project.
        enum:
        - private
        - internal
        - public
      public_builds:
        type: boolean
        description: 'Deprecated: Use public_jobs instead.'
      public_jobs:
        type: boolean
        description: Perform public builds
      request_access_enabled:
        type: boolean
        description: Allow users to request member access
      only_allow_merge_if_pipeline_succeeds:
        type: boolean
        description: Only allow to merge if builds succeed
      allow_merge_on_skipped_pipeline:
        type: boolean
        description: Allow to merge if pipeline is skipped
      only_allow_merge_if_all_discussions_are_resolved:
        type: boolean
        description: Only allow to merge if all threads are resolved
      tag_list:
        type: array
        description: 'Deprecated: Use :topics instead'
        items:
          type: string
      topics:
        type: array
        description: The list of topics for a project
        items:
          type: string
      avatar:
        type: file
        description: Avatar image for project
      printing_merge_request_link_enabled:
        type: boolean
        description: Show link to create/view merge request when pushing from the
          command line
      merge_method:
        type: string
        description: The merge method used when merging merge requests
        enum:
        - ff
        - rebase_merge
        - merge
      suggestion_commit_message:
        type: string
        description: The commit message used to apply merge request suggestions
      merge_commit_template:
        type: string
        description: Template used to create merge commit message
      squash_commit_template:
        type: string
        description: Template used to create squash commit message
      issue_branch_template:
        type: string
        description: Template used to create a branch from an issue
      initialize_with_readme:
        type: boolean
        description: Initialize a project with a README.md
      auto_devops_enabled:
        type: boolean
        description: Flag indication if Auto DevOps is enabled
      auto_devops_deploy_strategy:
        type: string
        description: Auto Deploy strategy
        enum:
        - continuous
        - manual
        - timed_incremental
      autoclose_referenced_issues:
        type: boolean
        description: Flag indication if referenced issues auto-closing is enabled
      repository_storage:
        type: string
        description: Which storage shard the repository is on. Available only to admins
      packages_enabled:
        type: boolean
        description: Enable project packages feature
      squash_option:
        type: string
        description: Squash default for project. One of `never`, `always`, `default_on`,
          or `default_off`.
        enum:
        - never
        - always
        - default_on
        - default_off
      mr_default_target_self:
        type: boolean
        description: Merge requests of this forked project targets itself by default
      only_allow_merge_if_all_status_checks_passed:
        type: boolean
        description: Blocks merge requests from merging unless all status checks have
          passed
      approvals_before_merge:
        type: integer
        format: int32
        description: How many approvers should approve merge request by default
      mirror:
        type: boolean
        description: Enables pull mirroring in a project
      mirror_trigger_builds:
        type: boolean
        description: Pull mirroring triggers builds
      external_authorization_classification_label:
        type: string
        description: The classification label for the project
      requirements_access_level:
        type: string
        description: Requirements feature access level. One of `disabled`, `private`
          or `enabled`
        enum:
        - disabled
        - private
        - enabled
      prevent_merge_without_jira_issue:
        type: boolean
        description: Require an associated issue from Jira
      repository_object_format:
        type: string
        description: The object format of the project repository
        enum:
        - sha1
        - sha256
      use_custom_template:
        type: boolean
        description: Use custom template
      group_with_project_templates_id:
        type: integer
        format: int32
        description: Group ID that serves as the template source
      namespace_id:
        type: integer
        format: int32
        description: Namespace ID for the new project. Default to the user namespace.
      import_url:
        type: string
        description: URL from which the project is imported
      template_name:
        type: string
        description: Name of template from which to create project
      template_project_id:
        type: integer
        format: int32
        description: Project ID of template from which to create project
    description: Create new project
  postApiV4ProjectsUserUserId:
    type: object
    properties:
      name:
        type: string
        description: The name of the project
        example: New Project
      path:
        type: string
        description: The path of the repository
        example: new_project
      default_branch:
        type: string
        description: The default branch of the project
        example: main
      description:
        type: string
        description: The description of the project
      build_git_strategy:
        type: string
        description: The Git strategy. Defaults to `fetch`
        enum:
        - fetch
        - clone
      build_timeout:
        type: integer
        format: int32
        description: Build timeout
      auto_cancel_pending_pipelines:
        type: string
        description: Auto-cancel pending pipelines
        enum:
        - disabled
        - enabled
      ci_config_path:
        type: string
        description: The path to CI config file. Defaults to `.gitlab-ci.yml`
      service_desk_enabled:
        type: boolean
        description: Disable or enable the service desk
      issues_enabled:
        type: boolean
        description: Flag indication if the issue tracker is enabled
      merge_requests_enabled:
        type: boolean
        description: Flag indication if merge requests are enabled
      wiki_enabled:
        type: boolean
        description: Flag indication if the wiki is enabled
      jobs_enabled:
        type: boolean
        description: Flag indication if jobs are enabled
      snippets_enabled:
        type: boolean
        description: Flag indication if snippets are enabled
      issues_access_level:
        type: string
        description: Issues access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      repository_access_level:
        type: string
        description: Repository access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      merge_requests_access_level:
        type: string
        description: Merge requests access level. One of `disabled`, `private` or
          `enabled`
        enum:
        - disabled
        - private
        - enabled
      forking_access_level:
        type: string
        description: Forks access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      wiki_access_level:
        type: string
        description: Wiki access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      builds_access_level:
        type: string
        description: Builds access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      snippets_access_level:
        type: string
        description: Snippets access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      pages_access_level:
        type: string
        description: Pages access level. One of `disabled`, `private`, `enabled` or
          `public`
        enum:
        - disabled
        - private
        - enabled
        - public
      analytics_access_level:
        type: string
        description: Analytics access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      container_registry_access_level:
        type: string
        description: Controls visibility of the container registry. One of `disabled`,
          `private` or `enabled`. `private` will make the container registry accessible
          only to project members (reporter role and above). `enabled` will make the
          container registry accessible to everyone who has access to the project.
          `disabled` will disable the container registry
        enum:
        - disabled
        - private
        - enabled
      security_and_compliance_access_level:
        type: string
        description: Security and compliance access level. One of `disabled`, `private`
          or `enabled`
        enum:
        - disabled
        - private
        - enabled
      releases_access_level:
        type: string
        description: Releases access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      environments_access_level:
        type: string
        description: Environments access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      feature_flags_access_level:
        type: string
        description: Feature flags access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      infrastructure_access_level:
        type: string
        description: Infrastructure access level. One of `disabled`, `private` or
          `enabled`
        enum:
        - disabled
        - private
        - enabled
      monitor_access_level:
        type: string
        description: Monitor access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      model_experiments_access_level:
        type: string
        description: Model experiments access level. One of `disabled`, `private`
          or `enabled`
        enum:
        - disabled
        - private
        - enabled
      model_registry_access_level:
        type: string
        description: Model registry access level. One of `disabled`, `private` or
          `enabled`
        enum:
        - disabled
        - private
        - enabled
      emails_disabled:
        type: boolean
        description: 'Deprecated: Use emails_enabled instead.'
      emails_enabled:
        type: boolean
        description: Enable email notifications
      show_default_award_emojis:
        type: boolean
        description: Show default award emojis
      show_diff_preview_in_email:
        type: boolean
        description: Include the code diff preview in merge request notification emails
      warn_about_potentially_unwanted_characters:
        type: boolean
        description: Warn about potentially unwanted characters
      enforce_auth_checks_on_uploads:
        type: boolean
        description: Enforce auth check on uploads
      shared_runners_enabled:
        type: boolean
        description: Flag indication if shared runners are enabled for that project
      group_runners_enabled:
        type: boolean
        description: Flag indication if group runners are enabled for that project
      resolve_outdated_diff_discussions:
        type: boolean
        description: Automatically resolve merge request diff threads on lines changed
          with a push
      remove_source_branch_after_merge:
        type: boolean
        description: Remove the source branch by default after merge
      container_registry_enabled:
        type: boolean
        description: 'Deprecated: Use :container_registry_access_level instead. Flag
          indication if the container registry is enabled for that project'
      container_expiration_policy_attributes:
        type: object
        properties:
          cadence:
            type: string
            description: Container expiration policy cadence for recurring job
          keep_n:
            type: integer
            format: int32
            description: Container expiration policy number of images to keep
          older_than:
            type: string
            description: Container expiration policy remove images older than value
          name_regex:
            type: string
            description: Container expiration policy regex for image removal
          name_regex_keep:
            type: string
            description: Container expiration policy regex for image retention
          enabled:
            type: boolean
            description: Flag indication if container expiration policy is enabled
      lfs_enabled:
        type: boolean
        description: Flag indication if Git LFS is enabled for that project
      visibility:
        type: string
        description: The visibility of the project.
        enum:
        - private
        - internal
        - public
      public_builds:
        type: boolean
        description: 'Deprecated: Use public_jobs instead.'
      public_jobs:
        type: boolean
        description: Perform public builds
      request_access_enabled:
        type: boolean
        description: Allow users to request member access
      only_allow_merge_if_pipeline_succeeds:
        type: boolean
        description: Only allow to merge if builds succeed
      allow_merge_on_skipped_pipeline:
        type: boolean
        description: Allow to merge if pipeline is skipped
      only_allow_merge_if_all_discussions_are_resolved:
        type: boolean
        description: Only allow to merge if all threads are resolved
      tag_list:
        type: array
        description: 'Deprecated: Use :topics instead'
        items:
          type: string
      topics:
        type: array
        description: The list of topics for a project
        items:
          type: string
      avatar:
        type: file
        description: Avatar image for project
      printing_merge_request_link_enabled:
        type: boolean
        description: Show link to create/view merge request when pushing from the
          command line
      merge_method:
        type: string
        description: The merge method used when merging merge requests
        enum:
        - ff
        - rebase_merge
        - merge
      suggestion_commit_message:
        type: string
        description: The commit message used to apply merge request suggestions
      merge_commit_template:
        type: string
        description: Template used to create merge commit message
      squash_commit_template:
        type: string
        description: Template used to create squash commit message
      issue_branch_template:
        type: string
        description: Template used to create a branch from an issue
      initialize_with_readme:
        type: boolean
        description: Initialize a project with a README.md
      auto_devops_enabled:
        type: boolean
        description: Flag indication if Auto DevOps is enabled
      auto_devops_deploy_strategy:
        type: string
        description: Auto Deploy strategy
        enum:
        - continuous
        - manual
        - timed_incremental
      autoclose_referenced_issues:
        type: boolean
        description: Flag indication if referenced issues auto-closing is enabled
      repository_storage:
        type: string
        description: Which storage shard the repository is on. Available only to admins
      packages_enabled:
        type: boolean
        description: Enable project packages feature
      squash_option:
        type: string
        description: Squash default for project. One of `never`, `always`, `default_on`,
          or `default_off`.
        enum:
        - never
        - always
        - default_on
        - default_off
      mr_default_target_self:
        type: boolean
        description: Merge requests of this forked project targets itself by default
      only_allow_merge_if_all_status_checks_passed:
        type: boolean
        description: Blocks merge requests from merging unless all status checks have
          passed
      approvals_before_merge:
        type: integer
        format: int32
        description: How many approvers should approve merge request by default
      mirror:
        type: boolean
        description: Enables pull mirroring in a project
      mirror_trigger_builds:
        type: boolean
        description: Pull mirroring triggers builds
      external_authorization_classification_label:
        type: string
        description: The classification label for the project
      requirements_access_level:
        type: string
        description: Requirements feature access level. One of `disabled`, `private`
          or `enabled`
        enum:
        - disabled
        - private
        - enabled
      prevent_merge_without_jira_issue:
        type: boolean
        description: Require an associated issue from Jira
      repository_object_format:
        type: string
        description: The object format of the project repository
        enum:
        - sha1
        - sha256
      use_custom_template:
        type: boolean
        description: Use custom template
      group_with_project_templates_id:
        type: integer
        format: int32
        description: Group ID that serves as the template source
      namespace_id:
        type: integer
        format: int32
        description: Namespace ID for the new project. Default to the user namespace.
      import_url:
        type: string
        description: URL from which the project is imported
      template_name:
        type: string
        description: Name of template from which to create project
      template_project_id:
        type: integer
        format: int32
        description: Project ID of template from which to create project
    required:
    - name
    description: Create new project for a specified user. Only available to admin
      users.
  API_Entities_ProjectWithAccess:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      description:
        type: string
        example: desc
      name:
        type: string
        example: project1
      name_with_namespace:
        type: string
        example: John Doe / project1
      path:
        type: string
        example: project1
      path_with_namespace:
        type: string
        example: namespace1/project1
      created_at:
        type: string
        format: date-time
        example: '2020-05-07T04:27:17.016Z'
      default_branch:
        type: string
        example: main
      tag_list:
        type: array
        items:
          type: string
          example: tag
      topics:
        type: array
        items:
          type: string
          example: topic
      ssh_url_to_repo:
        type: string
        example: git@gitlab.example.com:gitlab/gitlab.git
      http_url_to_repo:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab.git
      web_url:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab
      readme_url:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab/blob/master/README.md
      forks_count:
        type: integer
        format: int32
        example: 1
      license_url:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab/blob/master/LICENCE
      license:
        "$ref": "#/definitions/API_Entities_LicenseBasic"
      avatar_url:
        type: string
        example: http://example.com/uploads/project/avatar/3/uploads/avatar.png
      star_count:
        type: integer
        format: int32
        example: 1
      last_activity_at:
        type: string
        format: date-time
        example: '2013-09-30T13:46:02Z'
      namespace:
        "$ref": "#/definitions/API_Entities_NamespaceBasic"
      custom_attributes:
        "$ref": "#/definitions/API_Entities_CustomAttribute"
      repository_storage:
        type: string
        example: default
      container_registry_image_prefix:
        type: string
        example: registry.gitlab.example.com/gitlab/gitlab-client
      _links:
        type: object
        properties:
          self:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4
          issues:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/issues
          merge_requests:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/merge_requests
          repo_branches:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/repository/branches
          labels:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/labels
          events:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/events
          members:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/members
          cluster_agents:
            type: string
            example: https://gitlab.example.com/api/v4/projects/4/cluster_agents
      packages_enabled:
        type: boolean
      empty_repo:
        type: boolean
      archived:
        type: boolean
      visibility:
        type: string
        example: public
      owner:
        "$ref": "#/definitions/API_Entities_UserBasic"
      resolve_outdated_diff_discussions:
        type: boolean
      container_expiration_policy:
        "$ref": "#/definitions/API_Entities_ContainerExpirationPolicy"
      repository_object_format:
        type: string
        example: sha1
      issues_enabled:
        type: boolean
      merge_requests_enabled:
        type: boolean
      wiki_enabled:
        type: boolean
      jobs_enabled:
        type: boolean
      snippets_enabled:
        type: boolean
      container_registry_enabled:
        type: boolean
      service_desk_enabled:
        type: boolean
      service_desk_address:
        type: string
        example: address@example.com
      can_create_merge_request_in:
        type: boolean
      issues_access_level:
        type: string
        example: enabled
      repository_access_level:
        type: string
        example: enabled
      merge_requests_access_level:
        type: string
        example: enabled
      forking_access_level:
        type: string
        example: enabled
      wiki_access_level:
        type: string
        example: enabled
      builds_access_level:
        type: string
        example: enabled
      snippets_access_level:
        type: string
        example: enabled
      pages_access_level:
        type: string
        example: enabled
      analytics_access_level:
        type: string
        example: enabled
      container_registry_access_level:
        type: string
        example: enabled
      security_and_compliance_access_level:
        type: string
        example: enabled
      releases_access_level:
        type: string
        example: enabled
      environments_access_level:
        type: string
        example: enabled
      feature_flags_access_level:
        type: string
        example: enabled
      infrastructure_access_level:
        type: string
        example: enabled
      monitor_access_level:
        type: string
        example: enabled
      model_experiments_access_level:
        type: string
        example: enabled
      model_registry_access_level:
        type: string
        example: enabled
      emails_disabled:
        type: boolean
      emails_enabled:
        type: boolean
      shared_runners_enabled:
        type: boolean
      lfs_enabled:
        type: boolean
      creator_id:
        type: integer
        format: int32
        example: 1
      forked_from_project:
        "$ref": "#/definitions/API_Entities_BasicProjectDetails"
      mr_default_target_self:
        type: boolean
      import_url:
        type: string
        example: https://gitlab.com/gitlab/gitlab.git
      import_type:
        type: string
        example: git
      import_status:
        type: string
        example: none
      import_error:
        type: string
        example: Import error
      open_issues_count:
        type: integer
        format: int32
        example: 1
      description_html:
        type: string
      updated_at:
        type: string
        format: date-time
        example: '2020-05-07T04:27:17.016Z'
      ci_default_git_depth:
        type: integer
        format: int32
        example: 20
      ci_forward_deployment_enabled:
        type: boolean
      ci_forward_deployment_rollback_allowed:
        type: boolean
      ci_job_token_scope_enabled:
        type: boolean
      ci_separated_caches:
        type: boolean
      ci_allow_fork_pipelines_to_run_in_parent_project:
        type: boolean
      build_git_strategy:
        type: string
        example: fetch
      keep_latest_artifact:
        type: boolean
      restrict_user_defined_variables:
        type: boolean
      ci_pipeline_variables_minimum_override_role:
        type: string
      runners_token:
        type: string
        example: b8547b1dc37721d05889db52fa2f02
      runner_token_expiration_interval:
        type: integer
        format: int32
        example: 3600
      group_runners_enabled:
        type: boolean
      auto_cancel_pending_pipelines:
        type: string
        example: enabled
      build_timeout:
        type: integer
        format: int32
        example: 3600
      auto_devops_enabled:
        type: boolean
      auto_devops_deploy_strategy:
        type: string
        example: continuous
      ci_config_path:
        type: string
        example: ''
      public_jobs:
        type: boolean
      shared_with_groups:
        type: array
        items:
          type: string
      only_allow_merge_if_pipeline_succeeds:
        type: boolean
      allow_merge_on_skipped_pipeline:
        type: boolean
      request_access_enabled:
        type: boolean
      only_allow_merge_if_all_discussions_are_resolved:
        type: boolean
      remove_source_branch_after_merge:
        type: boolean
      printing_merge_request_link_enabled:
        type: boolean
      merge_method:
        type: string
        example: merge
      squash_option:
        type: string
        example: default_off
      enforce_auth_checks_on_uploads:
        type: boolean
      suggestion_commit_message:
        type: string
        example: Suggestion message
      merge_commit_template:
        type: string
        example: "%(title)"
      squash_commit_template:
        type: string
        example: "%(source_branch)"
      issue_branch_template:
        type: string
        example: "%(title)"
      statistics:
        "$ref": "#/definitions/API_Entities_ProjectStatistics"
      warn_about_potentially_unwanted_characters:
        type: boolean
      autoclose_referenced_issues:
        type: boolean
      approvals_before_merge:
        type: string
      mirror:
        type: string
      mirror_user_id:
        type: string
      mirror_trigger_builds:
        type: string
      only_mirror_protected_branches:
        type: string
      mirror_overwrites_diverged_branches:
        type: string
      external_authorization_classification_label:
        type: string
      marked_for_deletion_at:
        type: string
      marked_for_deletion_on:
        type: string
      requirements_enabled:
        type: string
      requirements_access_level:
        type: string
      security_and_compliance_enabled:
        type: string
      compliance_frameworks:
        type: string
      issues_template:
        type: string
      merge_requests_template:
        type: string
      ci_restrict_pipeline_cancellation_role:
        type: string
      merge_pipelines_enabled:
        type: string
      merge_trains_enabled:
        type: string
      merge_trains_skip_train_allowed:
        type: string
      only_allow_merge_if_all_status_checks_passed:
        type: string
      allow_pipeline_trigger_approve_deployment:
        type: boolean
      prevent_merge_without_jira_issue:
        type: string
      permissions:
        type: object
        properties:
          project_access:
            "$ref": "#/definitions/API_Entities_ProjectAccess"
          group_access:
            "$ref": "#/definitions/API_Entities_GroupAccess"
    description: API_Entities_ProjectWithAccess model
  API_Entities_ProjectAccess:
    type: object
    properties:
      access_level:
        type: string
      notification_level:
        type: string
  API_Entities_GroupAccess:
    type: object
    properties:
      access_level:
        type: string
      notification_level:
        type: string
  postApiV4ProjectsIdFork:
    type: object
    properties:
      namespace:
        type: string
        description: "(deprecated) The ID or name of the namespace that the project
          will be forked into"
        example: gitlab
      namespace_id:
        type: integer
        format: int32
        description: The ID of the namespace that the project will be forked into
        example: 1
      namespace_path:
        type: string
        description: The path of the namespace that the project will be forked into
        example: new_path/gitlab
      path:
        type: string
        description: The path that will be assigned to the fork
        example: fork
      name:
        type: string
        description: The name that will be assigned to the fork
        example: Fork
      description:
        type: string
        description: The description that will be assigned to the fork
        example: Description
      visibility:
        type: string
        description: The visibility of the fork
        enum:
        - private
        - internal
        - public
      mr_default_target_self:
        type: boolean
        description: Merge requests of this forked project targets itself by default
      branches:
        type: string
        description: Branches to fork
    description: Fork new project for the current user or provided namespace.
  putApiV4ProjectsId:
    type: object
    properties:
      name:
        type: string
        description: The name of the project
        example: project
      default_branch:
        type: string
        description: The default branch of the project
        example: main
      path:
        type: string
        description: The path of the repository
        example: group/project
      description:
        type: string
        description: The description of the project
      build_git_strategy:
        type: string
        description: The Git strategy. Defaults to `fetch`
        enum:
        - fetch
        - clone
      build_timeout:
        type: integer
        format: int32
        description: Build timeout
      auto_cancel_pending_pipelines:
        type: string
        description: Auto-cancel pending pipelines
        enum:
        - disabled
        - enabled
      ci_config_path:
        type: string
        description: The path to CI config file. Defaults to `.gitlab-ci.yml`
      service_desk_enabled:
        type: boolean
        description: Disable or enable the service desk
      issues_enabled:
        type: boolean
        description: Flag indication if the issue tracker is enabled
      merge_requests_enabled:
        type: boolean
        description: Flag indication if merge requests are enabled
      wiki_enabled:
        type: boolean
        description: Flag indication if the wiki is enabled
      jobs_enabled:
        type: boolean
        description: Flag indication if jobs are enabled
      snippets_enabled:
        type: boolean
        description: Flag indication if snippets are enabled
      issues_access_level:
        type: string
        description: Issues access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      repository_access_level:
        type: string
        description: Repository access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      merge_requests_access_level:
        type: string
        description: Merge requests access level. One of `disabled`, `private` or
          `enabled`
        enum:
        - disabled
        - private
        - enabled
      forking_access_level:
        type: string
        description: Forks access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      wiki_access_level:
        type: string
        description: Wiki access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      builds_access_level:
        type: string
        description: Builds access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      snippets_access_level:
        type: string
        description: Snippets access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      pages_access_level:
        type: string
        description: Pages access level. One of `disabled`, `private`, `enabled` or
          `public`
        enum:
        - disabled
        - private
        - enabled
        - public
      analytics_access_level:
        type: string
        description: Analytics access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      container_registry_access_level:
        type: string
        description: Controls visibility of the container registry. One of `disabled`,
          `private` or `enabled`. `private` will make the container registry accessible
          only to project members (reporter role and above). `enabled` will make the
          container registry accessible to everyone who has access to the project.
          `disabled` will disable the container registry
        enum:
        - disabled
        - private
        - enabled
      security_and_compliance_access_level:
        type: string
        description: Security and compliance access level. One of `disabled`, `private`
          or `enabled`
        enum:
        - disabled
        - private
        - enabled
      releases_access_level:
        type: string
        description: Releases access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      environments_access_level:
        type: string
        description: Environments access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      feature_flags_access_level:
        type: string
        description: Feature flags access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      infrastructure_access_level:
        type: string
        description: Infrastructure access level. One of `disabled`, `private` or
          `enabled`
        enum:
        - disabled
        - private
        - enabled
      monitor_access_level:
        type: string
        description: Monitor access level. One of `disabled`, `private` or `enabled`
        enum:
        - disabled
        - private
        - enabled
      model_experiments_access_level:
        type: string
        description: Model experiments access level. One of `disabled`, `private`
          or `enabled`
        enum:
        - disabled
        - private
        - enabled
      model_registry_access_level:
        type: string
        description: Model registry access level. One of `disabled`, `private` or
          `enabled`
        enum:
        - disabled
        - private
        - enabled
      emails_disabled:
        type: boolean
        description: 'Deprecated: Use emails_enabled instead.'
      emails_enabled:
        type: boolean
        description: Enable email notifications
      show_default_award_emojis:
        type: boolean
        description: Show default award emojis
      show_diff_preview_in_email:
        type: boolean
        description: Include the code diff preview in merge request notification emails
      warn_about_potentially_unwanted_characters:
        type: boolean
        description: Warn about potentially unwanted characters
      enforce_auth_checks_on_uploads:
        type: boolean
        description: Enforce auth check on uploads
      shared_runners_enabled:
        type: boolean
        description: Flag indication if shared runners are enabled for that project
      group_runners_enabled:
        type: boolean
        description: Flag indication if group runners are enabled for that project
      resolve_outdated_diff_discussions:
        type: boolean
        description: Automatically resolve merge request diff threads on lines changed
          with a push
      remove_source_branch_after_merge:
        type: boolean
        description: Remove the source branch by default after merge
      container_registry_enabled:
        type: boolean
        description: 'Deprecated: Use :container_registry_access_level instead. Flag
          indication if the container registry is enabled for that project'
      container_expiration_policy_attributes:
        type: object
        properties:
          cadence:
            type: string
            description: Container expiration policy cadence for recurring job
          keep_n:
            type: integer
            format: int32
            description: Container expiration policy number of images to keep
          older_than:
            type: string
            description: Container expiration policy remove images older than value
          name_regex:
            type: string
            description: Container expiration policy regex for image removal
          name_regex_keep:
            type: string
            description: Container expiration policy regex for image retention
          enabled:
            type: boolean
            description: Flag indication if container expiration policy is enabled
      lfs_enabled:
        type: boolean
        description: Flag indication if Git LFS is enabled for that project
      visibility:
        type: string
        description: The visibility of the project.
        enum:
        - private
        - internal
        - public
      public_builds:
        type: boolean
        description: 'Deprecated: Use public_jobs instead.'
      public_jobs:
        type: boolean
        description: Perform public builds
      request_access_enabled:
        type: boolean
        description: Allow users to request member access
      only_allow_merge_if_pipeline_succeeds:
        type: boolean
        description: Only allow to merge if builds succeed
      allow_merge_on_skipped_pipeline:
        type: boolean
        description: Allow to merge if pipeline is skipped
      only_allow_merge_if_all_discussions_are_resolved:
        type: boolean
        description: Only allow to merge if all threads are resolved
      tag_list:
        type: array
        description: 'Deprecated: Use :topics instead'
        items:
          type: string
      topics:
        type: array
        description: The list of topics for a project
        items:
          type: string
      avatar:
        type: file
        description: Avatar image for project
      printing_merge_request_link_enabled:
        type: boolean
        description: Show link to create/view merge request when pushing from the
          command line
      merge_method:
        type: string
        description: The merge method used when merging merge requests
        enum:
        - ff
        - rebase_merge
        - merge
      suggestion_commit_message:
        type: string
        description: The commit message used to apply merge request suggestions
      merge_commit_template:
        type: string
        description: Template used to create merge commit message
      squash_commit_template:
        type: string
        description: Template used to create squash commit message
      issue_branch_template:
        type: string
        description: Template used to create a branch from an issue
      initialize_with_readme:
        type: boolean
        description: Initialize a project with a README.md
      auto_devops_enabled:
        type: boolean
        description: Flag indication if Auto DevOps is enabled
      auto_devops_deploy_strategy:
        type: string
        description: Auto Deploy strategy
        enum:
        - continuous
        - manual
        - timed_incremental
      autoclose_referenced_issues:
        type: boolean
        description: Flag indication if referenced issues auto-closing is enabled
      repository_storage:
        type: string
        description: Which storage shard the repository is on. Available only to admins
      packages_enabled:
        type: boolean
        description: Enable project packages feature
      squash_option:
        type: string
        description: Squash default for project. One of `never`, `always`, `default_on`,
          or `default_off`.
        enum:
        - never
        - always
        - default_on
        - default_off
      mr_default_target_self:
        type: boolean
        description: Merge requests of this forked project targets itself by default
      only_allow_merge_if_all_status_checks_passed:
        type: boolean
        description: Blocks merge requests from merging unless all status checks have
          passed
      approvals_before_merge:
        type: integer
        format: int32
        description: How many approvers should approve merge request by default
      mirror:
        type: boolean
        description: Enables pull mirroring in a project
      mirror_trigger_builds:
        type: boolean
        description: Pull mirroring triggers builds
      external_authorization_classification_label:
        type: string
        description: The classification label for the project
      requirements_access_level:
        type: string
        description: Requirements feature access level. One of `disabled`, `private`
          or `enabled`
        enum:
        - disabled
        - private
        - enabled
      prevent_merge_without_jira_issue:
        type: boolean
        description: Require an associated issue from Jira
      ci_default_git_depth:
        type: integer
        format: int32
        description: Default number of revisions for shallow cloning
      keep_latest_artifact:
        type: boolean
        description: Indicates if the latest artifact should be kept for this project.
      ci_forward_deployment_enabled:
        type: boolean
        description: Prevent older deployment jobs that are still pending
      ci_forward_deployment_rollback_allowed:
        type: boolean
        description: Allow job retries for rollback deployments
      ci_allow_fork_pipelines_to_run_in_parent_project:
        type: boolean
        description: Allow fork merge request pipelines to run in parent project
      ci_separated_caches:
        type: boolean
        description: Enable or disable separated caches based on branch protection.
      restrict_user_defined_variables:
        type: boolean
        description: Restrict ability to override variables when triggering a pipeline
      ci_pipeline_variables_minimum_override_role:
        type: string
        description: Limit ability to override CI/CD variables when triggering a pipeline
          to only users with at least the set minimum role
        enum:
        - no_one_allowed
        - developer
        - maintainer
        - owner
      allow_pipeline_trigger_approve_deployment:
        type: boolean
        description: Allow pipeline triggerer to approve deployments
      mirror_user_id:
        type: integer
        format: int32
        description: User responsible for all the activity surrounding a pull mirror
          event. Can only be set by admins
      only_mirror_protected_branches:
        type: boolean
        description: Only mirror protected branches
      mirror_branch_regex:
        type: string
        description: Only mirror branches match regex
      mirror_overwrites_diverged_branches:
        type: boolean
        description: Pull mirror overwrites diverged branches
      import_url:
        type: string
        description: URL from which the project is imported
      fallback_approvals_required:
        type: integer
        format: int32
        description: Overall approvals required when no rule is present
      issues_template:
        type: string
        description: Default description for Issues. Description is parsed with GitLab
          Flavored Markdown.
      merge_requests_template:
        type: string
        description: Default description for merge requests. Description is parsed
          with GitLab Flavored Markdown.
      merge_pipelines_enabled:
        type: boolean
        description: Enable merged results pipelines.
      merge_trains_enabled:
        type: boolean
        description: Enable merge trains.
      merge_trains_skip_train_allowed:
        type: boolean
        description: Allow merge train merge requests to be merged without waiting
          for pipelines to finish.
      ci_restrict_pipeline_cancellation_role:
        type: string
        description: Roles allowed to cancel pipelines and jobs.
    description: Update an existing project
  postApiV4ProjectsIdShare:
    type: object
    properties:
      group_id:
        type: integer
        format: int32
        description: The ID of a group
        example: 1
      group_access:
        type: integer
        format: int32
        description: The group access level
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
      expires_at:
        type: string
        format: date
        description: Share expiration date
    required:
    - group_id
    - group_access
    description: Share the project with a group
  API_Entities_ProjectGroupLink:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      project_id:
        type: integer
        format: int32
        example: 1
      group_id:
        type: integer
        format: int32
        example: 1
      group_access:
        type: integer
        format: int32
        example: 10
      expires_at:
        type: string
        format: date
        example: '2016-09-26'
    description: API_Entities_ProjectGroupLink model
  postApiV4ProjectsIdUploads:
    type: object
    properties:
      file:
        type: file
        description: The attachment file to be uploaded
    required:
    - file
    description: Upload a file
  API_Entities_ProjectUpload:
    type: object
    properties:
      alt:
        type: string
      url:
        type: string
      full_path:
        type: string
      markdown:
        type: string
    description: API_Entities_ProjectUpload model
  API_Entities_PublicGroupDetails:
    type: object
    properties:
      id:
        type: string
      web_url:
        type: string
      name:
        type: string
      avatar_url:
        type: string
      full_name:
        type: string
      full_path:
        type: string
    description: API_Entities_PublicGroupDetails model
  postApiV4ProjectsIdHousekeeping:
    type: object
    properties:
      task:
        type: string
        description: "`prune` to trigger manual prune of unreachable objects or `eager`
          to trigger eager housekeeping."
        enum:
        - eager
        - prune
        default: eager
    description: Start the housekeeping task for a project
  putApiV4ProjectsIdTransfer:
    type: object
    properties:
      namespace:
        type: string
        description: The ID or path of the new namespace
        example: gitlab
    required:
    - namespace
    description: Transfer a project to a new namespace
  API_Entities_ProjectRepositoryStorage:
    type: object
    properties:
      disk_path:
        type: string
        example: "@hashed/6b/86/6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b"
      project_id:
        type: integer
        format: int32
        example: 1
      repository_storage:
        type: string
        example: default
      created_at:
        type: string
        format: date-time
        example: '2012-10-12T17:04:47Z'
    description: API_Entities_ProjectRepositoryStorage model
  API_Entities_ProtectedBranch:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: main
      push_access_levels:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_ProtectedRefAccess"
      merge_access_levels:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_ProtectedRefAccess"
      allow_force_push:
        type: boolean
      unprotect_access_levels:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_ProtectedRefAccess"
      code_owner_approval_required:
        type: boolean
      inherited:
        type: boolean
    description: API_Entities_ProtectedBranch model
  API_Entities_ProtectedRefAccess:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      access_level:
        type: integer
        format: int32
        example: 40
      access_level_description:
        type: string
        example: Maintainers
      deploy_key_id:
        type: integer
        format: int32
        example: 1
      user_id:
        type: integer
        format: int32
        example: 1
      group_id:
        type: integer
        format: int32
        example: 1
  postApiV4ProjectsIdProtectedBranches:
    type: object
    properties:
      name:
        type: string
        description: The name of the protected branch
        example: main
      push_access_level:
        type: integer
        format: int32
        description: 'Access levels allowed to push (defaults: `40`, maintainer access
          level)'
        enum:
        - 30
        - 40
        - 60
        - 0
      merge_access_level:
        type: integer
        format: int32
        description: 'Access levels allowed to merge (defaults: `40`, maintainer access
          level)'
        enum:
        - 30
        - 40
        - 60
        - 0
      allow_force_push:
        type: boolean
        description: Allow force push for all users with push access.
        default: false
      unprotect_access_level:
        type: integer
        format: int32
        description: 'Access levels allowed to unprotect (defaults: `40`, maintainer
          access level)'
        enum:
        - 30
        - 40
        - 60
      allowed_to_push:
        type: array
        description: An array of users/groups allowed to push
        items:
          type: object
          properties:
            access_level:
              type: integer
              format: int32
              enum:
              - 30
              - 40
              - 60
              - 0
            user_id:
              type: integer
              format: int32
              example: 1
            group_id:
              type: integer
              format: int32
              example: 1
            id:
              type: integer
              format: int32
              example: 1
            _destroy:
              type: boolean
              description: Delete the object when true
      allowed_to_merge:
        type: array
        description: An array of users/groups allowed to merge
        items:
          type: object
          properties:
            access_level:
              type: integer
              format: int32
              enum:
              - 30
              - 40
              - 60
              - 0
            user_id:
              type: integer
              format: int32
              example: 1
            group_id:
              type: integer
              format: int32
              example: 1
            id:
              type: integer
              format: int32
              example: 1
            _destroy:
              type: boolean
              description: Delete the object when true
      allowed_to_unprotect:
        type: array
        description: An array of users/groups allowed to unprotect
        items:
          type: object
          properties:
            access_level:
              type: integer
              format: int32
              enum:
              - 30
              - 40
              - 60
            user_id:
              type: integer
              format: int32
              example: 1
            group_id:
              type: integer
              format: int32
              example: 1
            id:
              type: integer
              format: int32
              example: 1
            _destroy:
              type: boolean
              description: Delete the object when true
      code_owner_approval_required:
        type: boolean
        description: Prevent pushes to this branch if it matches an item in CODEOWNERS
        default: false
    required:
    - name
    description: Protect a single branch
  patchApiV4ProjectsIdProtectedBranchesName:
    type: object
    properties:
      allow_force_push:
        type: boolean
        description: Allow force push for all users with push access.
      unprotect_access_level:
        type: integer
        format: int32
        description: 'Access levels allowed to unprotect (defaults: `40`, maintainer
          access level)'
        enum:
        - 30
        - 40
        - 60
      allowed_to_push:
        type: array
        description: An array of users/groups allowed to push
        items:
          type: object
          properties:
            access_level:
              type: integer
              format: int32
              enum:
              - 30
              - 40
              - 60
              - 0
            user_id:
              type: integer
              format: int32
              example: 1
            group_id:
              type: integer
              format: int32
              example: 1
            id:
              type: integer
              format: int32
              example: 1
            _destroy:
              type: boolean
              description: Delete the object when true
      allowed_to_merge:
        type: array
        description: An array of users/groups allowed to merge
        items:
          type: object
          properties:
            access_level:
              type: integer
              format: int32
              enum:
              - 30
              - 40
              - 60
              - 0
            user_id:
              type: integer
              format: int32
              example: 1
            group_id:
              type: integer
              format: int32
              example: 1
            id:
              type: integer
              format: int32
              example: 1
            _destroy:
              type: boolean
              description: Delete the object when true
      allowed_to_unprotect:
        type: array
        description: An array of users/groups allowed to unprotect
        items:
          type: object
          properties:
            access_level:
              type: integer
              format: int32
              enum:
              - 30
              - 40
              - 60
            user_id:
              type: integer
              format: int32
              example: 1
            group_id:
              type: integer
              format: int32
              example: 1
            id:
              type: integer
              format: int32
              example: 1
            _destroy:
              type: boolean
              description: Delete the object when true
      code_owner_approval_required:
        type: boolean
        description: Prevent pushes to this branch if it matches an item in CODEOWNERS
        default: false
    description: Update a protected branch
  API_Entities_ProtectedTag:
    type: object
    properties:
      name:
        type: string
        example: release-1-0
      create_access_levels:
        "$ref": "#/definitions/API_Entities_ProtectedRefAccess"
    description: API_Entities_ProtectedTag model
  postApiV4ProjectsIdProtectedTags:
    type: object
    properties:
      name:
        type: string
        description: The name of the protected tag
        example: release-1-0
      create_access_level:
        type: integer
        format: int32
        description: 'Access levels allowed to create (defaults: `40`, maintainer
          access level)'
        enum:
        - 30
        - 40
        - 60
        - 0
        example: 30
      allowed_to_create:
        type: array
        description: An array of users/groups allowed to create
        items:
          type: object
          properties:
            access_level:
              type: integer
              format: int32
              enum:
              - 30
              - 40
              - 60
              - 0
            user_id:
              type: integer
              format: int32
            group_id:
              type: integer
              format: int32
    required:
    - name
    description: Protect a single tag or wildcard
  postApiV4ProjectsIdReleases:
    type: object
    properties:
      tag_name:
        type: string
        description: The tag where the release is created from
      tag_message:
        type: string
        description: Message to use if creating a new annotated tag
      name:
        type: string
        description: The release name
      description:
        type: string
        description: The description of the release. You can use Markdown
      ref:
        type: string
        description: If a tag specified in `tag_name` doesn't exist, the release is
          created from `ref` and tagged with `tag_name`. It can be a commit SHA, another
          tag name, or a branch name.
      assets:
        type: object
        properties:
          links:
            type: array
            items:
              type: object
              properties:
                name:
                  type: string
                  description: The name of the link. Link names must be unique within
                    the release
                url:
                  type: string
                  description: The URL of the link. Link URLs must be unique within
                    the release
                direct_asset_path:
                  type: string
                  description: Optional path for a direct asset link
                filepath:
                  type: string
                  description: 'Deprecated: optional path for a direct asset link'
                link_type:
                  type: string
                  description: 'The type of the link: `other`, `runbook`, `image`,
                    `package`. Defaults to `other`'
              required:
              - name
              - url
      milestones:
        type: array
        description: The title of each milestone the release is associated with. GitLab
          Premium customers can specify group milestones. Cannot be combined with
          `milestone_ids` parameter.
        items:
          type: string
      milestone_ids:
        type: string
        description: The ID of each milestone the release is associated with. GitLab
          Premium customers can specify group milestones. Cannot be combined with
          `milestones` parameter.
      released_at:
        type: string
        format: date-time
        description: Date and time for the release. Defaults to the current time.
          Expected in ISO 8601 format (`2019-03-15T08:00:00Z`). Only provide this
          field if creating an upcoming or historical release.
      legacy_catalog_publish:
        type: boolean
        description: If true, the release will be published to the CI catalog. This
          parameter is for internal use only and will be removed in a future release.
          If the feature flag ci_release_cli_catalog_publish_option is disabled, this
          parameter will be ignored and the release will published to the CI catalog
          as it was before this parameter was introduced.
    required:
    - tag_name
    description: Create a release
  putApiV4ProjectsIdReleasesTagName:
    type: object
    properties:
      name:
        type: string
        description: The release name
      description:
        type: string
        description: The description of the release. You can use Markdown
      released_at:
        type: string
        format: date-time
        description: The date when the release is/was ready. Expected in ISO 8601
          format (`2019-03-15T08:00:00Z`)
      milestones:
        type: array
        description: The title of each milestone to associate with the release. GitLab
          Premium customers can specify group milestones. Cannot be combined with
          `milestone_ids` parameter. To remove all milestones from the release, specify
          `[]`
        items:
          type: string
      milestone_ids:
        type: string
        description: The ID of each milestone the release is associated with. GitLab
          Premium customers can specify group milestones. Cannot be combined with
          `milestones` parameter. To remove all milestones from the release, specify
          `[]`
    description: Update a release
  API_Entities_RemoteMirror:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 101486
      enabled:
        type: boolean
        example: true
      url:
        type: string
        example: https://*****:*****@example.com/gitlab/example.git
      update_status:
        type: string
        example: finished
      last_update_at:
        type: string
        format: date-time
        example: '2020-01-06T17:32:02.823Z'
      last_update_started_at:
        type: string
        format: date-time
        example: '2020-01-06T17:32:02.823Z'
      last_successful_update_at:
        type: string
        format: date-time
        example: '2020-01-06T17:31:55.864Z'
      last_error:
        type: integer
        format: int32
        example: The remote mirror URL is invalid.
      only_protected_branches:
        type: boolean
      keep_divergent_refs:
        type: boolean
      auth_method:
        type: string
        example: password
      mirror_branch_regex:
        type: string
    description: API_Entities_RemoteMirror model
  postApiV4ProjectsIdRemoteMirrors:
    type: object
    properties:
      url:
        type: string
        description: The URL for a remote mirror
        example: https://*****:*****@example.com/gitlab/example.git
      enabled:
        type: boolean
        description: Determines if the mirror is enabled
      auth_method:
        type: string
        description: Determines the mirror authentication method
        enum:
        - ssh_public_key
        - password
      keep_divergent_refs:
        type: boolean
        description: Determines if divergent refs are kept on the target
      only_protected_branches:
        type: boolean
        description: Determines if only protected branches are mirrored
      mirror_branch_regex:
        type: string
        description: Determines if only matched branches are mirrored
    required:
    - url
    description: Create remote mirror for a project
  putApiV4ProjectsIdRemoteMirrorsMirrorId:
    type: object
    properties:
      enabled:
        type: boolean
        description: Determines if the mirror is enabled
        example: true
      auth_method:
        type: string
        description: Determines the mirror authentication method
      keep_divergent_refs:
        type: boolean
        description: Determines if divergent refs are kept on the target
      only_protected_branches:
        type: boolean
        description: Determines if only protected branches are mirrored
      mirror_branch_regex:
        type: string
        description: Determines if only matched branches are mirrored
    description: Update the attributes of a single remote mirror
  API_Entities_TreeObject:
    type: object
    properties:
      id:
        type: string
        example: a1e8f8d745cc87e3a9248358d9352bb7f9a0aeba
      name:
        type: string
        example: html
      type:
        type: string
        example: tree
      path:
        type: string
        example: files/html
      mode:
        type: string
        example: '040000'
    description: API_Entities_TreeObject model
  API_Entities_Compare:
    type: object
    properties:
      commit:
        "$ref": "#/definitions/API_Entities_Commit"
      commits:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_Commit"
      diffs:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_Diff"
      compare_timeout:
        type: boolean
      compare_same_ref:
        type: boolean
      web_url:
        type: string
        example: https://gitlab.example.com/gitlab/gitlab-foss/-/compare/main...feature
    description: API_Entities_Compare model
  API_Entities_Contributor:
    type: object
    properties:
      name:
        type: string
        example: John Doe
      email:
        type: string
        example: johndoe@example.com
      commits:
        type: integer
        format: int32
        example: 117
      additions:
        type: integer
        format: int32
        example: 3
      deletions:
        type: integer
        format: int32
        example: 5
    description: API_Entities_Contributor model
  API_Entities_Changelog:
    type: object
    properties:
      notes:
        type: string
    description: API_Entities_Changelog model
  postApiV4ProjectsIdRepositoryChangelog:
    type: object
    properties:
      version:
        type: string
        description: The version of the release, using the semantic versioning format
        example: 1.0.0
      from:
        type: string
        description: The first commit in the range of commits to use for the changelog
        example: ed899a2f4b50b4370feeea94676502b42383c746
      to:
        type: string
        description: The last commit in the range of commits to use for the changelog
        example: 6104942438c14ec7bd21c6cd5bd995272b3faff6
      date:
        type: string
        format: date-time
        description: The date and time of the release
        example: '2021-09-20T11:50:22.001+00:00'
      trailer:
        type: string
        description: The Git trailer to use for determining if commits are to be included
          in the changelog
        default: Changelog
        example: Changelog
      branch:
        type: string
        description: The branch to commit the changelog changes to
        example: main
      config_file:
        type: string
        description: The file path to the configuration file as stored in the project's
          Git repository. Defaults to '.gitlab/changelog_config.yml'
        example: ".gitlab/changelog_config.yml"
      file:
        type: string
        description: The file to commit the changelog changes to
        default: CHANGELOG.md
        example: CHANGELOG.md
      message:
        type: string
        description: The commit message to use when committing the changelog
        example: Initial commit
    required:
    - version
    description: Generates a changelog section for a release and commits it in a changelog
      file
  postApiV4ProjectsIdAccessTokens:
    type: object
    properties:
      name:
        type: string
        description: Resource access token name
        example: test
      scopes:
        type: array
        description: The permissions of the token
        example:
        - api
        - read_repository
        items:
          type: string
          enum:
          - api
          - read_api
          - create_runner
          - k8s_proxy
          - read_repository
          - write_repository
          - read_observability
          - write_observability
          - ai_features
      expires_at:
        type: string
        format: date
        description: The expiration date of the token
        default: '2025-05-23T21:13:09.000Z'
        example: "\"2021-01-31"
      access_level:
        type: integer
        format: int32
        description: The access level of the token in the project
        enum:
        - 10
        - 20
        - 30
        - 40
        - 50
        default: 40
        example: 40
    required:
    - name
    - scopes
    - expires_at
    description: Create a resource access token
  postApiV4ProjectsIdAccessTokensTokenIdRotate:
    type: object
    properties:
      expires_at:
        type: string
        format: date
        description: The expiration date of the token
        example: '2021-01-31'
    description: Rotate a resource access token
  API_Entities_ResourceMilestoneEvent:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 142
      user:
        "$ref": "#/definitions/API_Entities_UserBasic"
      created_at:
        type: string
        format: date-time
        example: '2018-08-20T13:38:20.077Z'
      resource_type:
        type: string
        example: Issue
      resource_id:
        type: integer
        format: int32
        example: 253
      milestone:
        "$ref": "#/definitions/API_Entities_Milestone"
      action:
        type: string
        example: add
      state:
        type: string
        example: active
    description: API_Entities_ResourceMilestoneEvent model
  putApiV4ProjectsIdRepositorySubmodulesSubmodule:
    type: object
    properties:
      commit_sha:
        type: string
        description: Commit sha to update the submodule to.
        example: ed899a2f4b50b4370feeea94676502b42383c746
      branch:
        type: string
        description: Name of the branch to commit into.
        example: main
      commit_message:
        type: string
        description: Commit message. If no message is provided a default one will
          be set.
        example: Commit message
    required:
    - commit_sha
    - branch
    description: Update existing submodule reference in repository
  API_Entities_Tag:
    type: object
    properties:
      name:
        type: string
        example: v1.0.0
      message:
        type: string
        example: Release v1.0.0
      target:
        type: string
        example: 2695effb5807a22ff3d138d593fd856244e155e7
      commit:
        "$ref": "#/definitions/API_Entities_Commit"
      release:
        "$ref": "#/definitions/API_Entities_TagRelease"
      protected:
        type: boolean
        example: true
      created_at:
        type: string
        format: date-time
        example: '2023-10-12T02:16:52.000Z'
    description: API_Entities_Tag model
  API_Entities_TagRelease:
    type: object
    properties:
      tag_name:
        type: string
        example: 1.0.0
      description:
        type: string
        example: Amazing release. Wow
  postApiV4ProjectsIdRepositoryTags:
    type: object
    properties:
      tag_name:
        type: string
        description: The name of the tag
        example: v.1.0.0
      ref:
        type: string
        description: The commit sha or branch name
        example: 2695effb5807a22ff3d138d593fd856244e155e7
      message:
        type: string
        description: Specifying a message creates an annotated tag
        example: Release 1.0.0
    required:
    - tag_name
    - ref
    description: Create a new repository tag
  API_Entities_TagSignature:
    type: object
    properties:
      signature_type:
        type: string
        example: PGP
      signature:
        type: string
    description: API_Entities_TagSignature model
  postApiV4ProjectsIdWikis:
    type: object
    properties:
      title:
        type: string
        description: Title of a wiki page
      front_matter:
        type: object
        properties:
          title:
            type: string
            description: Front matter title of a wiki page
      content:
        type: string
        description: Content of a wiki page
      format:
        type: string
        description: Format of a wiki page. Available formats are markdown, rdoc,
          asciidoc and org
        enum:
        - markdown
        - rdoc
        - asciidoc
        - org
        default: markdown
    required:
    - title
    - content
    description: Create a wiki page
  putApiV4ProjectsIdWikisSlug:
    type: object
    properties:
      title:
        type: string
        description: Title of a wiki page
      front_matter:
        type: object
        properties:
          title:
            type: string
            description: Front matter title of a wiki page
      content:
        type: string
        description: Content of a wiki page
      format:
        type: string
        description: Format of a wiki page. Available formats are markdown, rdoc,
          asciidoc and org
        enum:
        - markdown
        - rdoc
        - asciidoc
        - org
        default: markdown
    description: Update a wiki page
  postApiV4ProjectsIdWikisAttachments:
    type: object
    properties:
      file:
        type: file
        description: The attachment file to be uploaded
      branch:
        type: string
        description: The name of the branch
    required:
    - file
    description: Upload an attachment to the wiki repository
  API_Entities_MetricImage:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 23
      created_at:
        type: string
        format: date-time
        example: '2020-11-13T00:06:18.084Z'
      filename:
        type: string
        example: file.png
      file_path:
        type: string
        example: "/uploads/-/system/alert_metric_image/file/23/file.png"
      url:
        type: string
        example: https://example.com/metric
      url_text:
        type: string
        example: An example metric
    description: API_Entities_MetricImage model
  API_Entities_Clusters_AgentTokenBasic:
    type: object
    properties:
      id:
        type: string
      name:
        type: string
      description:
        type: string
      agent_id:
        type: string
      status:
        type: string
      created_at:
        type: string
      created_by_user_id:
        type: string
    description: API_Entities_Clusters_AgentTokenBasic model
  API_Entities_Clusters_AgentToken:
    type: object
    properties:
      id:
        type: string
      name:
        type: string
      description:
        type: string
      agent_id:
        type: string
      status:
        type: string
      created_at:
        type: string
      created_by_user_id:
        type: string
      last_used_at:
        type: string
    description: API_Entities_Clusters_AgentToken model
  postApiV4ProjectsIdClusterAgentsAgentIdTokens:
    type: object
    properties:
      name:
        type: string
        description: The name for the token
      description:
        type: string
        description: The description for the token
    required:
    - name
    description: Create an agent token
  API_Entities_Clusters_AgentTokenWithToken:
    type: object
    properties:
      id:
        type: string
      name:
        type: string
      description:
        type: string
      agent_id:
        type: string
      status:
        type: string
      created_at:
        type: string
      created_by_user_id:
        type: string
      last_used_at:
        type: string
      token:
        type: string
    description: API_Entities_Clusters_AgentTokenWithToken model
  postApiV4ProjectsIdPackagesComposer:
    type: object
    properties:
      branch:
        type: string
        description: The name of the branch
        example: release
      tag:
        type: string
        description: The name of the tag
        example: v1.0.0
    description: Composer packages endpoint for registering packages
  API_Entities_ConanPackage_ConanPackageSnapshot:
    type: object
    properties:
      package_snapshot:
        type: object
        example: '{ "conan_package.tgz": "749b29bdf72587081ca03ec033ee59dc" }'
    description: API_Entities_ConanPackage_ConanPackageSnapshot model
  API_Entities_ConanPackage_ConanRecipeSnapshot:
    type: object
    properties:
      recipe_snapshot:
        type: object
        example: '{ "conan_sources.tgz": "eadf19b33f4c3c7e113faabf26e76277" }'
    description: API_Entities_ConanPackage_ConanRecipeSnapshot model
  API_Entities_ConanPackage_ConanPackageManifest:
    type: object
    properties:
      package_urls:
        type: object
        example: '{ "conan_package.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/packages/103f6067a947f366ef91fc1b7da351c588d1827f/0/conan_package.tgz"'
    description: API_Entities_ConanPackage_ConanPackageManifest model
  API_Entities_ConanPackage_ConanRecipeManifest:
    type: object
    properties:
      recipe_urls:
        type: object
        example: '{ "conan_sources.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/export/conan_sources.tgz"
          }'
    description: API_Entities_ConanPackage_ConanRecipeManifest model
  API_Entities_ConanPackage_ConanUploadUrls:
    type: object
    properties:
      upload_urls:
        type: object
        example: '{ "conan_package.tgz": "https://gitlab.example.com/api/v4/packages/conan/v1/files/my-package/1.0/my-group+my-project/stable/0/package/103f6067a947f366ef91fc1b7da351c588d1827f/0/conan_package.tgz"
          }'
    description: API_Entities_ConanPackage_ConanUploadUrls model
  putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileName:
    type: object
    properties:
      file:
        type: file
        description: The package file to be published (generated by Multipart middleware)
    required:
    - file
    description: Upload recipe package files
  ? putApiV4ProjectsIdPackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileName
  : type: object
    properties:
      file:
        type: file
        description: The package file to be published (generated by Multipart middleware)
    required:
    - file
    description: Upload package files
  putApiV4ProjectsIdPackagesDebianFileName:
    type: object
    properties:
      file:
        type: file
        description: The package file to be published (generated by Multipart middleware)
      distribution:
        type: string
        description: The Debian Codename or Suite
      component:
        type: string
        description: The Debian Component
    required:
    - file
    - component
    description: Upload Debian package
  putApiV4ProjectsIdPackagesDebianFileNameAuthorize:
    type: object
    properties:
      distribution:
        type: string
        description: The Debian Codename or Suite
      component:
        type: string
        description: The Debian Component
    required:
    - component
    description: Authorize Debian package upload
  API_Entities_ErrorTracking_ClientKey:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      active:
        type: boolean
      public_key:
        type: string
        example: glet_aa77551d849c083f76d0bc545ed053a3
      sentry_dsn:
        type: string
        example: https://glet_aa77551d849c083f76d0bc545ed053a3@example.com/errortracking/api/v1/projects/5
    description: API_Entities_ErrorTracking_ClientKey model
  API_Entities_FeatureFlag:
    type: object
    properties:
      name:
        type: string
        example: merge_train
      description:
        type: string
        example: merge train feature flag
      active:
        type: boolean
      version:
        type: string
        example: new_version_flag
      created_at:
        type: string
        format: date-time
        example: '2019-11-04T08:13:51.423Z'
      updated_at:
        type: string
        format: date-time
        example: '2019-11-04T08:13:51.423Z'
      scopes:
        type: string
      strategies:
        "$ref": "#/definitions/API_Entities_FeatureFlag_Strategy"
    description: API_Entities_FeatureFlag model
  API_Entities_FeatureFlag_Strategy:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: userWithId
      parameters:
        type: string
        example: '{"userIds": "user1"}'
      scopes:
        "$ref": "#/definitions/API_Entities_FeatureFlag_Scope"
      user_list:
        "$ref": "#/definitions/API_Entities_FeatureFlag_BasicUserList"
  API_Entities_FeatureFlag_Scope:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      environment_scope:
        type: string
        example: production
  API_Entities_FeatureFlag_BasicUserList:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      iid:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: user_list
      user_xids:
        type: string
        example: user1,user2
  postApiV4ProjectsIdFeatureFlags:
    type: object
    properties:
      name:
        type: string
        description: The name of the feature flag
      description:
        type: string
        description: The description of the feature flag
      active:
        type: boolean
        description: The active state of the flag. Defaults to `true`. Supported in
          GitLab 13.3 and later
      version:
        type: string
        description: The version of the feature flag. Must be `new_version_flag`.
          Omit to create a Legacy feature flag.
      strategies:
        type: array
        items:
          type: object
          properties:
            name:
              type: string
              description: The strategy name. Can be `default`, `gradualRolloutUserId`,
                `userWithId`, or `gitlabUserList`. In GitLab 13.5 and later, can be
                `flexibleRollout`
            parameters:
              type: string
              description: The strategy parameters as a JSON-formatted string e.g.
                `{"userIds":"user1"}`
            user_list_id:
              type: integer
              format: int32
              description: The ID of the feature flag user list. If strategy is `gitlabUserList`.
            scopes:
              type: array
              items:
                type: object
                properties:
                  environment_scope:
                    type: string
                    description: The environment scope of the scope
                required:
                - environment_scope
          required:
          - name
    required:
    - name
    description: Create a new feature flag
  putApiV4ProjectsIdFeatureFlagsFeatureFlagName:
    type: object
    properties:
      name:
        type: string
        description: The new name of the feature flag. Supported in GitLab 13.3 and
          later
      description:
        type: string
        description: The description of the feature flag
      active:
        type: boolean
        description: The active state of the flag. Supported in GitLab 13.3 and later
      strategies:
        type: array
        items:
          type: object
          properties:
            id:
              type: integer
              format: int32
              description: The feature flag strategy ID
            name:
              type: string
              description: The strategy name
            parameters:
              type: string
              description: The strategy parameters as a JSON-formatted string e.g.
                `{"userIds":"user1"}`
            user_list_id:
              type: integer
              format: int32
              description: The ID of the feature flag user list
            _destroy:
              type: boolean
              description: Delete the strategy when true
            scopes:
              type: array
              items:
                type: object
                properties:
                  id:
                    type: integer
                    format: int32
                    description: The scope id
                  environment_scope:
                    type: string
                    description: The environment scope of the scope
                  _destroy:
                    type: boolean
                    description: Delete the scope when true
    description: Update a feature flag
  API_Entities_FeatureFlag_UserList:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      iid:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: user_list
      user_xids:
        type: string
        example: user1,user2
      project_id:
        type: integer
        format: int32
        example: 2
      created_at:
        type: string
        format: date-time
        example: '2020-02-04T08:13:10.507Z'
      updated_at:
        type: string
        format: date-time
        example: '2020-02-04T08:13:10.507Z'
      path:
        type: string
      edit_path:
        type: string
    description: API_Entities_FeatureFlag_UserList model
  postApiV4ProjectsIdFeatureFlagsUserLists:
    type: object
    properties:
      name:
        type: string
        description: The name of the list
      user_xids:
        type: string
        description: A comma separated list of external user ids
    required:
    - name
    - user_xids
    description: Create a feature flag user list
  putApiV4ProjectsIdFeatureFlagsUserListsIid:
    type: object
    properties:
      name:
        type: string
        description: The name of the list
      user_xids:
        type: string
        description: A comma separated list of external user ids
    description: Update a feature flag user list
  putApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileNameAuthorize:
    type: object
    properties:
      package_version:
        type: string
        description: Package version
      status:
        type: string
        description: Package status
        enum:
        - default
        - hidden
      path:
        type: integer
        format: int32
    required:
    - package_version
    - path
    description: Workhorse authorize generic package file
  putApiV4ProjectsIdPackagesGenericPackageName*packageVersion(*path)FileName:
    type: object
    properties:
      package_version:
        type: string
        description: Package version
      path:
        type: string
        description: File directory path
      status:
        type: string
        description: Package status
        enum:
        - default
        - hidden
      file:
        type: file
        description: The package file to be published (generated by Multipart middleware)
      select:
        type: string
        enum:
        - package_file
    required:
    - package_version
    - file
    description: Upload package file
  API_Entities_GoModuleVersion:
    type: object
    properties:
      Version:
        type: string
        example: v1.0.0
      Time:
        type: string
        example: 1617822312 -0600
    description: API_Entities_GoModuleVersion model
  postApiV4ProjectsIdPackagesHelmApiChannelCharts:
    type: object
    properties:
      chart:
        type: file
        description: The chart file to be published (generated by Multipart middleware)
    required:
    - chart
    description: Upload a chart
  API_Entities_MergeRequestApprovals:
    type: object
    properties:
      user_has_approved:
        type: boolean
      user_can_approve:
        type: boolean
      approved:
        type: boolean
      approved_by:
        "$ref": "#/definitions/API_Entities_Approvals"
    description: API_Entities_MergeRequestApprovals model
  API_Entities_Approvals:
    type: object
    properties:
      user:
        "$ref": "#/definitions/API_Entities_UserBasic"
  postApiV4ProjectsIdMergeRequestsMergeRequestIidApprove:
    type: object
    properties:
      sha:
        type: string
        description: When present, must have the HEAD SHA of the source branch
      approval_password:
        type: string
        description: Current user's password if project is set to require explicit
          auth on approval
        example: secret
    description: Approve a merge request
  EE_API_Entities_MergeRequestApprovalState:
    type: object
    properties:
      approval_rules_overwritten:
        type: boolean
      rules:
        type: array
        items:
          "$ref": "#/definitions/EE_API_Entities_MergeRequestApprovalStateRule"
    description: EE_API_Entities_MergeRequestApprovalState model
  EE_API_Entities_MergeRequestApprovalStateRule:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: QA
      rule_type:
        type: string
        example: regular
      eligible_approvers:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_UserBasic"
      approvals_required:
        type: integer
        format: int32
        example: 2
      users:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_UserBasic"
      groups:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_Group"
      contains_hidden_groups:
        type: boolean
      section:
        type: string
        example: Backend
      source_rule:
        "$ref": "#/definitions/EE_API_Entities_MergeRequestApprovalRule_SourceRule"
      overridden:
        type: boolean
      code_owner:
        type: boolean
      approved_by:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_UserBasic"
      approved:
        type: boolean
  EE_API_Entities_MergeRequestApprovalRule_SourceRule:
    type: object
    properties:
      approvals_required:
        type: integer
        format: int32
        example: 2
  postApiV4ProjectsIdMergeRequestsMergeRequestIidApprovals:
    type: object
    properties:
      approvals_required:
        type: integer
        format: int32
        description: The amount of approvals required. Must be higher than the project
          approvals
        example: 2
    required:
    - approvals_required
    description: 'Deprecated in 16.0: Use the merge request approvals API instead.
      Change approval-related configuration'
  EE_API_Entities_ApprovalState:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 84
      iid:
        type: integer
        format: int32
        example: 14
      project_id:
        type: integer
        format: int32
        example: 4
      title:
        type: string
        example: Impedit et ut et dolores vero provident ullam est
      description:
        type: string
        example: Repellendus impedit et vel velit dignissimos.
      state:
        type: string
        example: closed
      created_at:
        type: string
        format: date-time
        example: '2022-08-17T12:46:35.053Z'
      updated_at:
        type: string
        format: date-time
        example: '2022-11-14T17:22:01.470Z'
      merge_status:
        type: string
        example: can_be_merged
      approved:
        type: boolean
      approvals_required:
        type: integer
        format: int32
        example: 2
      approvals_left:
        type: integer
        format: int32
        example: 2
      require_password_to_approve:
        type: boolean
      approved_by:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_Approvals"
      suggested_approvers:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_UserBasic"
      approvers:
        type: string
      approver_groups:
        type: string
      user_has_approved:
        type: boolean
      user_can_approve:
        type: boolean
      approval_rules_left:
        type: array
        items:
          "$ref": "#/definitions/EE_API_Entities_ApprovalRuleShort"
      has_approval_rules:
        type: boolean
      merge_request_approvers_available:
        type: boolean
      multiple_approval_rules_available:
        type: boolean
      invalid_approvers_rules:
        type: array
        items:
          "$ref": "#/definitions/EE_API_Entities_ApprovalRuleShort"
    description: EE_API_Entities_ApprovalState model
  EE_API_Entities_ApprovalRuleShort:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: QA
      rule_type:
        type: string
        example: regular
  putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileNameAuthorize:
    type: object
    properties:
      path:
        type: string
        description: File directory path
      status:
        type: string
        description: Package status
        enum:
        - default
        - hidden
    description: Workhorse authorize model package file
  putApiV4ProjectsIdPackagesMlModelsModelVersionIdFiles(*path)FileName:
    type: object
    properties:
      path:
        type: string
        description: File directory path
      status:
        type: string
        description: Package status
        enum:
        - default
        - hidden
      file:
        type: file
        description: The package file to be published (generated by Multipart middleware)
    required:
    - file
    description: Workhorse upload model package file
  putApiV4ProjectsIdPackagesNpmPackageName:
    type: object
    properties:
      versions:
        type: object
        description: Package version info
    required:
    - versions
    description: Create or deprecate NPM package
  putApiV4ProjectsIdPackagesNpmPackage*packageNameDistTagsTag:
    type: object
    properties:
      package_name:
        type: string
        description: Package name
    required:
    - package_name
    description: Create or Update the given tag for the given NPM package and version
  putApiV4ProjectsIdPackagesNuget:
    type: object
    properties:
      package:
        type: file
        description: The package file to be published (generated by Multipart middleware)
    required:
    - package
    description: The NuGet V3 Feed Package Publish endpoint
  putApiV4ProjectsIdPackagesNugetSymbolpackage:
    type: object
    properties:
      package:
        type: file
        description: The package file to be published (generated by Multipart middleware)
    required:
    - package
    description: The NuGet Symbol Package Publish endpoint
  putApiV4ProjectsIdPackagesNugetV2:
    type: object
    properties:
      package:
        type: file
        description: The package file to be published (generated by Multipart middleware)
    required:
    - package
    description: The NuGet V2 Feed Package Publish endpoint
  API_Entities_Nuget_PackagesVersions:
    type: object
    properties:
      versions:
        type: array
        items:
          type: string
          example: 1.3.0.17
    description: API_Entities_Nuget_PackagesVersions model
  postApiV4ProjectsIdDebianDistributions:
    type: object
    properties:
      codename:
        type: string
        description: The Debian Codename
        example: sid
      suite:
        type: string
        description: The Debian Suite
        example: unstable
      origin:
        type: string
        description: The Debian Origin
        example: Grep
      label:
        type: string
        description: The Debian Label
        example: grep.be
      version:
        type: string
        description: The Debian Version
        example: '12'
      description:
        type: string
        description: The Debian Description
        example: My description
      valid_time_duration_seconds:
        type: integer
        format: int32
        description: The duration before the Release file should be considered expired
          by the client
        example: 604800
      components:
        type: array
        description: The list of Components
        example: main
        items:
          type: string
      architectures:
        type: array
        description: The list of Architectures
        example: amd64
        items:
          type: string
    required:
    - codename
    description: Create a Debian Distribution
  putApiV4ProjectsIdDebianDistributionsCodename:
    type: object
    properties:
      suite:
        type: string
        description: The Debian Suite
        example: unstable
      origin:
        type: string
        description: The Debian Origin
        example: Grep
      label:
        type: string
        description: The Debian Label
        example: grep.be
      version:
        type: string
        description: The Debian Version
        example: '12'
      description:
        type: string
        description: The Debian Description
        example: My description
      valid_time_duration_seconds:
        type: integer
        format: int32
        description: The duration before the Release file should be considered expired
          by the client
        example: 604800
      components:
        type: array
        description: The list of Components
        example: main
        items:
          type: string
      architectures:
        type: array
        description: The list of Architectures
        example: amd64
        items:
          type: string
    description: Update a Debian Distribution
  postApiV4ProjectsIdPackagesPypi:
    type: object
    properties:
      content:
        type: file
        description: The package file to be published (generated by Multipart middleware)
      name:
        type: string
        example: my.pypi.package
      version:
        type: string
        example: 1.3.7
      requires_python:
        type: string
        example: ">=3.7"
      md5_digest:
        type: string
        example: 900150983cd24fb0d6963f7d28e17f72
      sha256_digest:
        type: string
        example: ba7816bf8f01cfea414140de5dae2223b00361a396177a9cb410ff61f20015ad
      metadata_version:
        type: string
        example: '2.3'
      author_email:
        type: string
        example: cschultz@example.com, snoopy@peanuts.com
      description:
        type: string
      description_content_type:
        type: string
        example: text/markdown; charset=UTF-8; variant=GFM
      summary:
        type: string
        example: A module for collecting votes from beagles.
      keywords:
        type: string
        example: dog,puppy,voting,election
    required:
    - content
    - name
    - version
    description: The PyPi Package upload endpoint
  postApiV4ProjectsIdReleasesTagNameAssetsLinks:
    type: object
    properties:
      name:
        type: string
        description: The name of the link. Link names must be unique in the release
      url:
        type: string
        description: The URL of the link. Link URLs must be unique in the release.
      direct_asset_path:
        type: string
        description: Optional path for a direct asset link
      filepath:
        type: string
        description: 'Deprecated: optional path for a direct asset link'
      link_type:
        type: string
        description: 'The type of the link: `other`, `runbook`, `image`, or `package`.
          Defaults to `other`'
        enum:
        - other
        - runbook
        - image
        - package
        default: other
    required:
    - name
    - url
    description: Create a release link
  putApiV4ProjectsIdReleasesTagNameAssetsLinksLinkId:
    type: object
    properties:
      name:
        type: string
        description: The name of the link
      url:
        type: string
        description: The URL of the link
      direct_asset_path:
        type: string
        description: Optional path for a direct asset link
      filepath:
        type: string
        description: 'Deprecated: optional path for a direct asset link'
      link_type:
        type: string
        description: 'The type of the link: `other`, `runbook`, `image`, or `package`.
          Defaults to `other`'
        enum:
        - other
        - runbook
        - image
        - package
        default: other
    description: Update a release link
  postApiV4ProjectsIdPackagesRubygemsApiV1Gems:
    type: object
    properties:
      file:
        type: file
        description: The package file to be published (generated by Multipart middleware)
    required:
    - file
    description: Upload a gem
  putApiV4ProjectsIdPackagesTerraformModulesModuleNameModuleSystem*moduleVersionFileAuthorize:
    type: object
    properties:
      module_version:
        type: string
        description: Module version
    required:
    - module_version
    description: Workhorse authorize Terraform Module package file
  postApiV4ProjectsIdTerraformStateNameLock:
    type: object
    properties:
      ID:
        type: string
        description: Terraform state lock ID
      Operation:
        type: string
        description: Terraform operation
      Info:
        type: string
        description: Terraform info
      Who:
        type: string
        description: Terraform state lock owner
      Version:
        type: string
        description: Terraform version
      Created:
        type: string
        description: Terraform state lock timestamp
      Path:
        type: string
        description: Terraform path
    required:
    - ID
    - Operation
    - Info
    - Who
    - Version
    - Created
    - Path
    description: Lock a Terraform state of a certain name
  putApiV4ProjectsIdHooksHookIdUrlVariablesKey:
    type: object
    properties:
      value:
        type: string
        description: The value of the variable
    required:
    - value
    description: Set a url variable
  API_Entities_BatchedBackgroundMigration:
    type: object
    properties:
      id:
        type: string
        example: '1234'
      job_class_name:
        type: string
        example: CopyColumnUsingBackgroundMigrationJob
      table_name:
        type: string
        example: events
      column_name:
        type: string
        example: id
      status:
        type: string
        example: active
      progress:
        type: number
        format: float
        example: 50
      created_at:
        type: string
        format: date-time
        example: '2022-11-28T16:26:39+02:00'
    description: API_Entities_BatchedBackgroundMigration model
  putApiV4AdminBatchedBackgroundMigrationsIdResume:
    type: object
    properties:
      database:
        type: string
        description: The name of the database
        enum:
        - main
        - ci
        - main_clusterwide
        - embedding
        - geo
        default: main
    description: Resume a batched background migration
  putApiV4AdminBatchedBackgroundMigrationsIdPause:
    type: object
    properties:
      database:
        type: string
        description: The name of the database
        enum:
        - main
        - ci
        - main_clusterwide
        - embedding
        - geo
        default: main
    description: Pause a batched background migration
  postApiV4AdminCiVariables:
    type: object
    properties:
      key:
        type: string
        description: The key of the variable. Max 255 characters
      description:
        type: string
        description: The description of the variable
      value:
        type: string
        description: The value of a variable
      protected:
        type: boolean
        description: Whether the variable is protected
      masked:
        type: boolean
        description: Whether the variable is masked
      raw:
        type: boolean
        description: Whether the variable will be expanded
      variable_type:
        type: string
        description: 'The type of a variable. Available types are: env_var (default)
          and file'
        enum:
        - env_var
        - file
    required:
    - key
    - value
    description: Create a new instance-level variable
  putApiV4AdminCiVariablesKey:
    type: object
    properties:
      description:
        type: string
        description: The description of the variable
      value:
        type: string
        description: The value of a variable
      protected:
        type: boolean
        description: Whether the variable is protected
      masked:
        type: boolean
        description: Whether the variable is masked
      raw:
        type: boolean
        description: Whether the variable will be expanded
      variable_type:
        type: string
        description: 'The type of a variable. Available types are: env_var (default)
          and file'
        enum:
        - env_var
        - file
    description: Update an instance-level variable
  API_Entities_Dictionary_Table:
    type: object
    properties:
      table_name:
        type: string
        example: users
      feature_categories:
        type: array
        items:
          type: string
          example: database
    description: API_Entities_Dictionary_Table model
  postApiV4AdminClustersAdd:
    type: object
    properties:
      name:
        type: string
        description: Cluster name
      enabled:
        type: boolean
        description: Determines if cluster is active or not, defaults to true
        default: true
      environment_scope:
        type: string
        description: The associated environment to the cluster
        default: "*"
      namespace_per_environment:
        type: boolean
        description: Deploy each environment to a separate Kubernetes namespace
        default: true
      domain:
        type: string
        description: Cluster base domain
      management_project_id:
        type: integer
        format: int32
        description: The ID of the management project
      managed:
        type: boolean
        description: Determines if GitLab will manage namespaces and service accounts
          for this cluster, defaults to true
        default: true
      platform_kubernetes_attributes:
        type: object
        description: Platform Kubernetes data
        properties:
          api_url:
            type: string
            description: URL to access the Kubernetes API
          token:
            type: string
            description: Token to authenticate against Kubernetes
          ca_cert:
            type: string
            description: TLS certificate (needed if API is using a self-signed TLS
              certificate)
          namespace:
            type: string
            description: Unique namespace related to Project
          authorization_type:
            type: string
            description: Cluster authorization type, defaults to RBAC
            enum:
            - unknown_authorization
            - rbac
            - abac
            default: rbac
        required:
        - api_url
        - token
    required:
    - name
    - platform_kubernetes_attributes
    description: Add existing instance cluster
  putApiV4AdminClustersClusterId:
    type: object
    properties:
      name:
        type: string
        description: Cluster name
      enabled:
        type: boolean
        description: Enable or disable Gitlab's connection to your Kubernetes cluster
      environment_scope:
        type: string
        description: The associated environment to the cluster
      namespace_per_environment:
        type: boolean
        description: Deploy each environment to a separate Kubernetes namespace
        default: true
      domain:
        type: string
        description: Cluster base domain
      management_project_id:
        type: integer
        format: int32
        description: The ID of the management project
      managed:
        type: boolean
        description: Determines if GitLab will manage namespaces and service accounts
          for this cluster
      platform_kubernetes_attributes:
        type: object
        description: Platform Kubernetes data
        properties:
          api_url:
            type: string
            description: URL to access the Kubernetes API
          token:
            type: string
            description: Token to authenticate against Kubernetes
          ca_cert:
            type: string
            description: TLS certificate (needed if API is using a self-signed TLS
              certificate)
          namespace:
            type: string
            description: Unique namespace related to Project
    description: Edit instance cluster
  postApiV4AdminMigrationsTimestampMark:
    type: object
    properties:
      database:
        type: string
        description: The name of the database
        enum:
        - main
        - ci
        - main_clusterwide
        - embedding
        - geo
        default: main
    description: Mark the migration as successfully executed
  API_Entities_System_BroadcastMessage:
    type: object
    properties:
      id:
        type: string
      message:
        type: string
      starts_at:
        type: string
      ends_at:
        type: string
      color:
        type: string
      font:
        type: string
      target_access_levels:
        type: string
      target_path:
        type: string
      broadcast_type:
        type: string
      dismissable:
        type: string
      active:
        type: string
    description: API_Entities_System_BroadcastMessage model
  postApiV4BroadcastMessages:
    type: object
    properties:
      message:
        type: string
        description: Message to display
      starts_at:
        type: string
        format: date-time
        description: Starting time
        default: {}
      ends_at:
        type: string
        format: date-time
        description: Ending time
        default: {}
      color:
        type: string
        description: Background color
      font:
        type: string
        description: Foreground color
      target_access_levels:
        type: array
        description: Target user roles
        items:
          type: integer
          format: int32
          enum:
          - 10
          - 20
          - 30
          - 40
          - 50
      target_path:
        type: string
        description: Target path
      broadcast_type:
        type: string
        description: Broadcast type. Defaults to banner
        enum:
        - banner
        - notification
        default: {}
      dismissable:
        type: boolean
        description: Is dismissable
    required:
    - message
    description: Create a broadcast message
  putApiV4BroadcastMessagesId:
    type: object
    properties:
      message:
        type: string
        description: Message to display
      starts_at:
        type: string
        format: date-time
        description: Starting time
      ends_at:
        type: string
        format: date-time
        description: Ending time
      color:
        type: string
        description: Background color
      font:
        type: string
        description: Foreground color
      target_access_levels:
        type: array
        description: Target user roles
        items:
          type: integer
          format: int32
          enum:
          - 10
          - 20
          - 30
          - 40
          - 50
      target_path:
        type: string
        description: Target path
      broadcast_type:
        type: string
        description: Broadcast Type
        enum:
        - banner
        - notification
      dismissable:
        type: boolean
        description: Is dismissable
    description: Update a broadcast message
  postApiV4Applications:
    type: object
    properties:
      name:
        type: string
        description: Name of the application.
        example: MyApplication
      redirect_uri:
        type: string
        description: Redirect URI of the application.
        example: https://redirect.uri
      scopes:
        type: string
        description: |-
          Scopes of the application. You can specify multiple scopes by separating\
                                           each scope using a space
      confidential:
        type: boolean
        description: |-
          The application is used where the client secret can be kept confidential. Native mobile apps \
                                  and Single Page Apps are considered non-confidential. Defaults to true if not supplied
        default: true
    required:
    - name
    - redirect_uri
    - scopes
    description: Create a new application
  API_Entities_ApplicationWithSecret:
    type: object
    properties:
      id:
        type: string
      application_id:
        type: string
        example: 5832fc6e14300a0d962240a8144466eef4ee93ef0d218477e55f11cf12fc3737
      application_name:
        type: string
        example: MyApplication
      callback_url:
        type: string
        example: https://redirect.uri
      confidential:
        type: boolean
        example: true
      secret:
        type: string
        example: ee1dd64b6adc89cf7e2c23099301ccc2c61b441064e9324d963c46902a85ec34
    description: API_Entities_ApplicationWithSecret model
  API_Entities_Application:
    type: object
    properties:
      id:
        type: string
      application_id:
        type: string
        example: 5832fc6e14300a0d962240a8144466eef4ee93ef0d218477e55f11cf12fc3737
      application_name:
        type: string
        example: MyApplication
      callback_url:
        type: string
        example: https://redirect.uri
      confidential:
        type: boolean
        example: true
    description: API_Entities_Application model
  API_Entities_Avatar:
    type: object
    properties:
      avatar_url:
        type: string
    description: API_Entities_Avatar model
  API_Entities_BulkImport:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      status:
        type: string
        example: finished
        enum:
        - created
        - started
        - finished
        - timeout
        - failed
      source_type:
        type: string
        example: gitlab
      created_at:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      updated_at:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      has_failures:
        type: boolean
        example: false
    description: API_Entities_BulkImport model
  API_Entities_BulkImports:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      bulk_import_id:
        type: integer
        format: int32
        example: 1
      status:
        type: string
        example: created
        enum:
        - created
        - started
        - finished
        - timeout
        - failed
      entity_type:
        type: string
        enum:
        - group
        - project
      source_full_path:
        type: string
        example: source_group
      destination_full_path:
        type: string
        example: some_group/source_project
      destination_name:
        type: string
        example: destination_slug
      destination_slug:
        type: string
        example: destination_slug
      destination_namespace:
        type: string
        example: destination_path
      parent_id:
        type: integer
        format: int32
        example: 1
      namespace_id:
        type: integer
        format: int32
        example: 1
      project_id:
        type: integer
        format: int32
        example: 1
      created_at:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      updated_at:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      failures:
        type: array
        items:
          "$ref": "#/definitions/API_Entities_BulkImports_EntityFailure"
      migrate_projects:
        type: boolean
        example: true
      has_failures:
        type: boolean
        example: false
      stats:
        type: object
    description: API_Entities_BulkImports model
  API_Entities_BulkImports_EntityFailure:
    type: object
    properties:
      relation:
        type: string
        example: label
      exception_message:
        type: string
        example: error message
      exception_class:
        type: string
        example: Exception
      correlation_id_value:
        type: string
        example: dfcf583058ed4508e4c7c617bd7f0edd
      source_url:
        type: string
        example: https://source.gitlab.com/group/-/epics/1
      source_title:
        type: string
        example: title
    description: API_Entities_BulkImports_EntityFailure model
  postApiV4Runners:
    type: object
    properties:
      token:
        type: string
        description: Registration token
      description:
        type: string
        description: Description of the runner
      maintainer_note:
        type: string
        description: 'Deprecated: see `maintenance_note`'
      maintenance_note:
        type: string
        description: Free-form maintenance notes for the runner (1024 characters)
      info:
        type: object
        description: Runner's metadata
        properties:
          name:
            type: string
            description: Runner's name
          version:
            type: string
            description: Runner's version
          revision:
            type: string
            description: Runner's revision
          platform:
            type: string
            description: Runner's platform
          architecture:
            type: string
            description: Runner's architecture
      active:
        type: boolean
        description: 'Deprecated: Use `paused` instead. Specifies if the runner is
          allowed to receive new jobs'
      paused:
        type: boolean
        description: Specifies if the runner should ignore new jobs
      locked:
        type: boolean
        description: Specifies if the runner should be locked for the current project
      access_level:
        type: string
        description: The access level of the runner
        enum:
        - not_protected
        - ref_protected
      run_untagged:
        type: boolean
        description: Specifies if the runner should handle untagged jobs
      tag_list:
        type: array
        description: A list of runner tags
        items:
          type: string
      maximum_timeout:
        type: integer
        format: int32
        description: Maximum timeout that limits the amount of time (in seconds) that
          runners can run jobs
    required:
    - token
    description: Register a new runner
  API_Entities_Ci_RunnerRegistrationDetails:
    type: object
    properties:
      id:
        type: string
      token:
        type: string
      token_expires_at:
        type: string
    description: API_Entities_Ci_RunnerRegistrationDetails model
  postApiV4RunnersVerify:
    type: object
    properties:
      token:
        type: string
        description: The runner's authentication token
      system_id:
        type: string
        description: The runner's system identifier
    required:
    - token
    description: Validate authentication credentials
  postApiV4RunnersResetAuthenticationToken:
    type: object
    properties:
      token:
        type: string
        description: The current authentication token of the runner
    required:
    - token
    description: Reset runner authentication token with current token
  API_Entities_Ci_RunnerDetails:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 8
      description:
        type: string
        example: test-1-20150125
      ip_address:
        type: string
        example: 127.0.0.1
      active:
        type: boolean
        example: true
      paused:
        type: boolean
        example: false
      is_shared:
        type: boolean
        example: true
      runner_type:
        type: string
        example: instance_type
        enum:
        - instance_type
        - group_type
        - project_type
      name:
        type: string
        example: test
      online:
        type: boolean
        example: true
      status:
        type: string
        example: online
      tag_list:
        type: string
      run_untagged:
        type: string
      locked:
        type: string
      maximum_timeout:
        type: string
      access_level:
        type: string
      version:
        type: string
      revision:
        type: string
      platform:
        type: string
      architecture:
        type: string
      contacted_at:
        type: string
      maintenance_note:
        type: string
      projects:
        "$ref": "#/definitions/API_Entities_BasicProjectDetails"
      groups:
        "$ref": "#/definitions/API_Entities_BasicGroupDetails"
    description: API_Entities_Ci_RunnerDetails model
  putApiV4RunnersId:
    type: object
    properties:
      description:
        type: string
        description: The description of the runner
      active:
        type: boolean
        description: 'Deprecated: Use `paused` instead. Flag indicating whether the
          runner is allowed to receive jobs'
      paused:
        type: boolean
        description: Specifies if the runner should ignore new jobs
      tag_list:
        type: array
        description: The list of tags for a runner
        example: "['macos', 'shell']"
        items:
          type: string
      run_untagged:
        type: boolean
        description: Specifies if the runner can execute untagged jobs
      locked:
        type: boolean
        description: Specifies if the runner is locked
      access_level:
        type: string
        description: The access level of the runner
        enum:
        - not_protected
        - ref_protected
      maximum_timeout:
        type: integer
        format: int32
        description: Maximum timeout that limits the amount of time (in seconds) that
          runners can run jobs
      maintenance_note:
        type: string
        description: Free-form maintenance notes for the runner (1024 characters)
    description: Update runner's details
  API_Entities_Ci_JobBasicWithProject:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      status:
        type: string
        example: waiting_for_resource
      stage:
        type: string
        example: deploy
      name:
        type: string
        example: deploy_to_production
      ref:
        type: string
        example: main
      tag:
        type: boolean
      coverage:
        type: number
        format: float
        example: 98.29
      allow_failure:
        type: boolean
      created_at:
        type: string
        format: date-time
        example: '2015-12-24T15:51:21.880Z'
      started_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:30.733Z'
      finished_at:
        type: string
        format: date-time
        example: '2015-12-24T17:54:31.198Z'
      erased_at:
        type: string
        format: date-time
        example: '2015-12-24T18:00:29.728Z'
      duration:
        type: number
        format: float
        example: 0.465
        description: Time spent running
      queued_duration:
        type: number
        format: float
        example: 0.123
        description: Time spent enqueued
      user:
        "$ref": "#/definitions/API_Entities_User"
      commit:
        "$ref": "#/definitions/API_Entities_Commit"
      pipeline:
        "$ref": "#/definitions/API_Entities_Ci_PipelineBasic"
      failure_reason:
        type: string
        example: script_failure
      web_url:
        type: string
        example: https://example.com/foo/bar/-/jobs/1
      project:
        "$ref": "#/definitions/API_Entities_ProjectIdentity"
    description: API_Entities_Ci_JobBasicWithProject model
  postApiV4JobsRequest:
    type: object
    properties:
      token:
        type: string
        description: Runner's authentication token
      system_id:
        type: string
        description: Runner's system identifier
      last_update:
        type: string
        description: Runner's queue last_update token
      info:
        type: object
        description: Runner's metadata
        properties:
          name:
            type: string
            description: Runner's name
          version:
            type: string
            description: Runner's version
          revision:
            type: string
            description: Runner's revision
          platform:
            type: string
            description: Runner's platform
          architecture:
            type: string
            description: Runner's architecture
          executor:
            type: string
            description: Runner's executor
          features:
            type: object
            description: Runner's features
          config:
            type: object
            description: Runner's config
            properties:
              gpus:
                type: string
                description: GPUs enabled
      session:
        type: object
        description: Runner's session data
        properties:
          url:
            type: string
            description: Session's url
          certificate:
            type: string
            description: Session's certificate
          authorization:
            type: string
            description: Session's authorization
    required:
    - token
    description: Request a job
  putApiV4JobsId:
    type: object
    properties:
      token:
        type: string
        description: Job token
      state:
        type: string
        description: 'Job''s status: success, failed'
      checksum:
        type: string
        description: Job's trace CRC32 checksum
      failure_reason:
        type: string
        description: Job's failure_reason
      output:
        type: object
        description: Build log state
        properties:
          checksum:
            type: string
            description: Job's trace CRC32 checksum
          bytesize:
            type: integer
            format: int32
            description: Job's trace size in bytes
      exit_code:
        type: integer
        format: int32
        description: Job's exit code
    required:
    - token
    description: Update a job
  patchApiV4JobsIdTrace:
    type: object
    properties:
      token:
        type: string
        description: Job's authentication token
      debug_trace:
        type: boolean
        description: Enable or Disable the debug trace
    description: Append a patch to the job trace
  postApiV4JobsIdArtifactsAuthorize:
    type: object
    properties:
      token:
        type: string
        description: Job's authentication token
      filesize:
        type: integer
        format: int32
        description: Size of artifact file
      artifact_type:
        type: string
        description: The type of artifact
        enum:
        - archive
        - metadata
        - trace
        - junit
        - sast
        - dependency_scanning
        - container_scanning
        - dast
        - codequality
        - license_scanning
        - performance
        - metrics
        - metrics_referee
        - network_referee
        - lsif
        - dotenv
        - cobertura
        - terraform
        - accessibility
        - cluster_applications
        - secret_detection
        - requirements
        - coverage_fuzzing
        - browser_performance
        - load_performance
        - api_fuzzing
        - cluster_image_scanning
        - cyclonedx
        - requirements_v2
        - annotations
        - repository_xray
        default: archive
    description: Authorize uploading job artifact
  postApiV4JobsIdArtifacts:
    type: object
    properties:
      file:
        type: file
        description: The artifact file to store (generated by Multipart middleware)
      token:
        type: string
        description: Job's authentication token
      expire_in:
        type: string
        description: Specify when artifact should expire
      artifact_type:
        type: string
        description: The type of artifact
        enum:
        - archive
        - metadata
        - trace
        - junit
        - sast
        - dependency_scanning
        - container_scanning
        - dast
        - codequality
        - license_scanning
        - performance
        - metrics
        - metrics_referee
        - network_referee
        - lsif
        - dotenv
        - cobertura
        - terraform
        - accessibility
        - cluster_applications
        - secret_detection
        - requirements
        - coverage_fuzzing
        - browser_performance
        - load_performance
        - api_fuzzing
        - cluster_image_scanning
        - cyclonedx
        - requirements_v2
        - annotations
        - repository_xray
        default: archive
      artifact_format:
        type: string
        description: The format of artifact
        enum:
        - raw
        - zip
        - gzip
        default: zip
      metadata:
        type: file
        description: The artifact metadata to store (generated by Multipart middleware)
      accessibility:
        type: string
        description: Specify accessibility level of artifact private/public
    required:
    - file
    description: Upload a job artifact
  putApiV4PackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionExportFileName:
    type: object
    properties:
      file:
        type: file
        description: The package file to be published (generated by Multipart middleware)
    required:
    - file
    description: Upload recipe package files
  ? putApiV4PackagesConanV1FilesPackageNamePackageVersionPackageUsernamePackageChannelRecipeRevisionPackageConanPackageReferencePackageRevisionFileName
  : type: object
    properties:
      file:
        type: file
        description: The package file to be published (generated by Multipart middleware)
    required:
    - file
    description: Upload package files
  putApiV4PackagesNpmPackage*packageNameDistTagsTag:
    type: object
    properties:
      package_name:
        type: string
        description: Package name
    required:
    - package_name
    description: Create or Update the given tag for the given NPM package and version
  API_Entities_Terraform_ModuleVersions:
    type: object
    properties:
      modules:
        type: string
    description: API_Entities_Terraform_ModuleVersions model
  API_Entities_Terraform_ModuleVersion:
    type: object
    properties:
      name:
        type: string
      provider:
        type: string
      providers:
        type: string
      root:
        type: string
      source:
        type: string
      submodules:
        type: string
      version:
        type: string
      versions:
        type: string
    description: API_Entities_Terraform_ModuleVersion model
  putApiV4UsersIdCustomAttributesKey:
    type: object
    properties:
      value:
        type: string
        description: The value of the custom attribute
    required:
    - value
    description: Set a custom attribute on a user
  postApiV4Users:
    type: object
    properties:
      email:
        type: string
        description: The email of the user
      password:
        type: string
        description: The password of the new user
      reset_password:
        type: boolean
        description: Flag indicating the user will be sent a password reset token
      skip_confirmation:
        type: boolean
        description: Flag indicating the account is confirmed
      force_random_password:
        type: boolean
        description: Flag indicating a random password will be set
      name:
        type: string
        description: The name of the user
      username:
        type: string
        description: The username of the user
      skype:
        type: string
        description: The Skype username
      linkedin:
        type: string
        description: The LinkedIn username
      twitter:
        type: string
        description: The Twitter username
      discord:
        type: string
        description: The Discord user ID
      website_url:
        type: string
        description: The website of the user
      organization:
        type: string
        description: The organization of the user
      projects_limit:
        type: integer
        format: int32
        description: The number of projects a user can create
      extern_uid:
        type: string
        description: The external authentication provider UID
      provider:
        type: string
        description: The external provider
      bio:
        type: string
        description: The biography of the user
      location:
        type: string
        description: The location of the user
      pronouns:
        type: string
        description: The pronouns of the user
      public_email:
        type: string
        description: The public email of the user
      commit_email:
        type: string
        description: The commit email, _private for private commit email
      admin:
        type: boolean
        description: Flag indicating the user is an administrator
      can_create_group:
        type: boolean
        description: Flag indicating the user can create groups
      external:
        type: boolean
        description: Flag indicating the user is an external user
      avatar:
        type: file
        description: Avatar image for user
      theme_id:
        type: integer
        format: int32
        description: The GitLab theme for the user
      color_scheme_id:
        type: integer
        format: int32
        description: The color scheme for the file viewer
      private_profile:
        type: boolean
        description: Flag indicating the user has a private profile
      note:
        type: string
        description: Admin note for this user
      view_diffs_file_by_file:
        type: boolean
        description: Flag indicating the user sees only one file diff per page
      shared_runners_minutes_limit:
        type: integer
        format: int32
        description: Compute minutes quota for this user
      extra_shared_runners_minutes_limit:
        type: integer
        format: int32
        description: "(admin-only) Extra compute minutes quota for this user"
      group_id_for_saml:
        type: integer
        format: int32
        description: ID for group where SAML has been configured
      auditor:
        type: boolean
        description: Flag indicating auditor status of the user
    required:
    - email
    - name
    - username
    description: Create a user. Available only for admins.
  API_Entities_UserWithAdmin:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      username:
        type: string
        example: admin
      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
      created_at:
        type: string
      bio:
        type: string
      location:
        type: string
      public_email:
        type: string
      skype:
        type: string
      linkedin:
        type: string
      twitter:
        type: string
      discord:
        type: string
      website_url:
        type: string
      organization:
        type: string
      job_title:
        type: string
      pronouns:
        type: string
      bot:
        type: string
      work_information:
        type: string
      followers:
        type: string
      following:
        type: string
      is_followed:
        type: string
      local_time:
        type: string
      last_sign_in_at:
        type: string
        format: date-time
        example: '2015-09-03T07:24:01.670Z'
      confirmed_at:
        type: string
        format: date-time
        example: '2015-09-03T07:24:01.670Z'
      last_activity_on:
        type: string
        format: date-time
        example: '2015-09-03T07:24:01.670Z'
      email:
        type: string
        example: john@example.com
      theme_id:
        type: integer
        format: int32
        example: 2
      color_scheme_id:
        type: integer
        format: int32
        example: 1
      projects_limit:
        type: integer
        format: int32
        example: 10
      current_sign_in_at:
        type: string
        format: date-time
        example: '2015-09-03T07:24:01.670Z'
      identities:
        "$ref": "#/definitions/API_Entities_Identity"
      can_create_group:
        type: boolean
        example: true
      can_create_project:
        type: boolean
        example: true
      two_factor_enabled:
        type: boolean
        example: true
      external:
        type: string
      private_profile:
        type: boolean
        example: 'null'
      commit_email:
        type: string
      shared_runners_minutes_limit:
        type: string
      extra_shared_runners_minutes_limit:
        type: string
      scim_identities:
        "$ref": "#/definitions/API_Entities_ScimIdentity"
      is_admin:
        type: string
      note:
        type: string
      namespace_id:
        type: string
      created_by:
        "$ref": "#/definitions/API_Entities_UserBasic"
      email_reset_offered_at:
        type: string
      using_license_seat:
        type: string
      is_auditor:
        type: string
      provisioned_by_group_id:
        type: string
      enterprise_group_id:
        type: string
      enterprise_group_associated_at:
        type: string
    description: API_Entities_UserWithAdmin model
  putApiV4UsersId:
    type: object
    properties:
      email:
        type: string
        description: The email of the user
      password:
        type: string
        description: The password of the new user
      skip_reconfirmation:
        type: boolean
        description: Flag indicating the account skips the confirmation by email
      name:
        type: string
        description: The name of the user
      username:
        type: string
        description: The username of the user
      skype:
        type: string
        description: The Skype username
      linkedin:
        type: string
        description: The LinkedIn username
      twitter:
        type: string
        description: The Twitter username
      discord:
        type: string
        description: The Discord user ID
      website_url:
        type: string
        description: The website of the user
      organization:
        type: string
        description: The organization of the user
      projects_limit:
        type: integer
        format: int32
        description: The number of projects a user can create
      extern_uid:
        type: string
        description: The external authentication provider UID
      provider:
        type: string
        description: The external provider
      bio:
        type: string
        description: The biography of the user
      location:
        type: string
        description: The location of the user
      pronouns:
        type: string
        description: The pronouns of the user
      public_email:
        type: string
        description: The public email of the user
      commit_email:
        type: string
        description: The commit email, _private for private commit email
      admin:
        type: boolean
        description: Flag indicating the user is an administrator
      can_create_group:
        type: boolean
        description: Flag indicating the user can create groups
      external:
        type: boolean
        description: Flag indicating the user is an external user
      avatar:
        type: file
        description: Avatar image for user
      theme_id:
        type: integer
        format: int32
        description: The GitLab theme for the user
      color_scheme_id:
        type: integer
        format: int32
        description: The color scheme for the file viewer
      private_profile:
        type: boolean
        description: Flag indicating the user has a private profile
      note:
        type: string
        description: Admin note for this user
      view_diffs_file_by_file:
        type: boolean
        description: Flag indicating the user sees only one file diff per page
      shared_runners_minutes_limit:
        type: integer
        format: int32
        description: Compute minutes quota for this user
      extra_shared_runners_minutes_limit:
        type: integer
        format: int32
        description: "(admin-only) Extra compute minutes quota for this user"
      group_id_for_saml:
        type: integer
        format: int32
        description: ID for group where SAML has been configured
      auditor:
        type: boolean
        description: Flag indicating auditor status of the user
    description: Update a user. Available only for admins.
  postApiV4UsersUserIdKeys:
    type: object
    properties:
      key:
        type: string
        description: The new SSH key
      title:
        type: string
        description: The title of the new SSH key
      expires_at:
        type: string
        format: date-time
        description: The expiration date of the SSH key in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ)
      usage_type:
        type: string
        description: Scope of usage for the SSH key
        enum:
        - auth_and_signing
        - auth
        - signing
        default: auth_and_signing
    required:
    - key
    - title
    description: Add an SSH key to a specified user. Available only for admins.
  API_Entities_SSHKey:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      title:
        type: string
        example: Sample key 25
      created_at:
        type: string
        format: date-time
        example: '2015-09-03T07:24:44.627Z'
      expires_at:
        type: string
        format: date-time
        example: '2020-09-03T07:24:44.627Z'
      key:
        type: string
        example: |-
          ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1256k6Yjz\
                GGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCdd\
                NaP0L+hM7zhFNzjFvpaMgJw0=
      usage_type:
        type: string
        example: auth
    description: API_Entities_SSHKey model
  postApiV4UsersIdGpgKeys:
    type: object
    properties:
      key:
        type: string
        description: The new GPG key
    required:
    - key
    description: Add a GPG key to a specified user. Available only for admins.
  API_Entities_GpgKey:
    type: object
    properties:
      id:
        type: string
      key:
        type: string
      created_at:
        type: string
    description: API_Entities_GpgKey model
  postApiV4UsersIdEmails:
    type: object
    properties:
      email:
        type: string
        description: The email of the user
      skip_confirmation:
        type: boolean
        description: Skip confirmation of email and assume it is verified
    required:
    - email
    description: Add an email address to a specified user. Available only for admins.
  API_Entities_Email:
    type: object
    properties:
      id:
        type: string
      email:
        type: string
      confirmed_at:
        type: string
    description: API_Entities_Email model
  API_Entities_Membership:
    type: object
    properties:
      source_id:
        type: string
      source_name:
        type: string
      source_type:
        type: string
      access_level:
        type: string
    description: API_Entities_Membership model
  API_Entities_ImpersonationToken:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 2
      name:
        type: string
        example: John Doe
      revoked:
        type: boolean
      created_at:
        type: string
        format: date-time
      scopes:
        type: array
        example:
        - api
      user_id:
        type: integer
        format: int32
        example: 3
      last_used_at:
        type: string
        format: date-time
        example: '2020-08-31T15:53:00.073Z'
      active:
        type: boolean
      expires_at:
        type: string
        format: date-time
        example: '2020-08-31T15:53:00.073Z'
      impersonation:
        type: string
    description: API_Entities_ImpersonationToken model
  postApiV4UsersUserIdImpersonationTokens:
    type: object
    properties:
      name:
        type: string
        description: The name of the impersonation token
      expires_at:
        type: string
        format: date
        description: The expiration date in the format YEAR-MONTH-DAY of the impersonation
          token
      scopes:
        type: array
        description: The array of scopes of the impersonation token
        items:
          type: string
    required:
    - name
    description: Create a impersonation token. Available only for admins.
  API_Entities_ImpersonationTokenWithToken:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 2
      name:
        type: string
        example: John Doe
      revoked:
        type: boolean
      created_at:
        type: string
        format: date-time
      scopes:
        type: array
        example:
        - api
      user_id:
        type: integer
        format: int32
        example: 3
      last_used_at:
        type: string
        format: date-time
        example: '2020-08-31T15:53:00.073Z'
      active:
        type: boolean
      expires_at:
        type: string
        format: date-time
        example: '2020-08-31T15:53:00.073Z'
      token:
        type: string
      impersonation:
        type: string
    description: API_Entities_ImpersonationTokenWithToken model
  postApiV4UsersUserIdPersonalAccessTokens:
    type: object
    properties:
      name:
        type: string
        description: The name of the personal access token
      scopes:
        type: array
        description: The array of scopes of the personal access token
        items:
          type: string
          enum:
          - api
          - read_api
          - read_user
          - create_runner
          - k8s_proxy
          - read_repository
          - write_repository
          - read_observability
          - write_observability
          - ai_features
          - sudo
          - admin_mode
          - read_service_ping
      expires_at:
        type: string
        format: date
        description: The expiration date in the format YEAR-MONTH-DAY of the personal
          access token
    required:
    - name
    - scopes
    description: Create a personal access token. Available only for admins.
  API_Entities_PersonalAccessTokenWithToken:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 2
      name:
        type: string
        example: John Doe
      revoked:
        type: boolean
      created_at:
        type: string
        format: date-time
      scopes:
        type: array
        example:
        - api
      user_id:
        type: integer
        format: int32
        example: 3
      last_used_at:
        type: string
        format: date-time
        example: '2020-08-31T15:53:00.073Z'
      active:
        type: boolean
      expires_at:
        type: string
        format: date-time
        example: '2020-08-31T15:53:00.073Z'
      token:
        type: string
    description: API_Entities_PersonalAccessTokenWithToken model
  API_Entities_Feature:
    type: object
    properties:
      name:
        type: string
        example: experimental_feature
      state:
        type: string
        example: 'off'
      gates:
        "$ref": "#/definitions/API_Entities_FeatureGate"
      definition:
        "$ref": "#/definitions/API_Entities_Feature_Definition"
    description: API_Entities_Feature model
  API_Entities_FeatureGate:
    type: object
    properties:
      key:
        type: string
        example: percentage_of_actors
      value:
        type: integer
        format: int32
        example: 34
  API_Entities_Feature_Definition:
    type: object
    properties:
      name:
        type: string
      feature_issue_url:
        type: string
      introduced_by_url:
        type: string
      rollout_issue_url:
        type: string
      milestone:
        type: string
      log_state_changes:
        type: string
      type:
        type: string
      group:
        type: string
      default_enabled:
        type: string
    description: API_Entities_Feature_Definition model
  postApiV4FeaturesName:
    type: object
    properties:
      value:
        type: string
        description: "`true` or `false` to enable/disable, or an integer for percentage
          of time"
      key:
        type: string
        description: "`percentage_of_actors` or `percentage_of_time` (default)"
      feature_group:
        type: string
        description: A Feature group name
      user:
        type: string
        description: A GitLab username or comma-separated multiple usernames
      group:
        type: string
        description: A GitLab group's path, for example `gitlab-org`, or comma-separated
          multiple group paths
      namespace:
        type: string
        description: A GitLab group or user namespace's path, for example `john-doe`,
          or comma-separated multiple namespace paths. Introduced in GitLab 15.0.
      project:
        type: string
        description: A projects path, for example `gitlab-org/gitlab-foss`, or comma-separated
          multiple project paths
      repository:
        type: string
        description: A repository path, for example `gitlab-org/gitlab-test.git`,
          `gitlab-org/gitlab-test.wiki.git`, `snippets/21.git`, to name a few. Use
          comma to separate multiple repository paths
      force:
        type: boolean
        description: Skip feature flag validation checks, such as a YAML definition
    required:
    - value
    description: Set or create a feature
  EE_API_Entities_Geo_PipelineRefs:
    type: object
    properties:
      pipeline_refs:
        type: array
        items:
          type: string
          example:
          - refs/pipelines/1
    description: EE_API_Entities_Geo_PipelineRefs model
  postApiV4GeoStatus:
    type: object
    properties:
      data:
        type: object
        properties:
          geo_node_id:
            type: integer
            format: int32
            description: Geo Node ID to look up its status
          db_replication_lag_seconds:
            type: integer
            format: int32
            description: DB replication lag in seconds
          last_event_id:
            type: integer
            format: int32
            description: Last event ID
          last_event_date:
            type: string
            format: date-time
            description: Last event date
          cursor_last_event_id:
            type: integer
            format: int32
            description: Cursor last event ID
          cursor_last_event_date:
            type: string
            format: date-time
            description: Cursor last event date
          last_successful_status_check_at:
            type: string
            format: date-time
            description: Last successful status check date
          status_message:
            type: string
            description: Status message
          replication_slots_count:
            type: integer
            format: int32
            description: Replication slots count
          replication_slots_used_count:
            type: integer
            format: int32
            description: Replication slots used count
          replication_slots_max_retained_wal_bytes:
            type: integer
            format: int32
            description: Maximum number of bytes retained in the WAL on the primary
          version:
            type: string
            description: Gitlab version
          revision:
            type: string
            description: Gitlab revision
          status:
            type: object
            properties:
              projects_count:
                type: integer
                format: int32
                description: Projects count
              container_repositories_replication_enabled:
                type: boolean
                description: Container repositories replication enabled
              lfs_objects_count:
                type: integer
                format: int32
                description: LFS objects count
              lfs_objects_checksum_total_count:
                type: integer
                format: int32
                description: LFS objects checksum total count
              lfs_objects_checksummed_count:
                type: integer
                format: int32
                description: LFS objects checksummed count
              lfs_objects_checksum_failed_count:
                type: integer
                format: int32
                description: LFS objects checksum failed count
              lfs_objects_synced_count:
                type: integer
                format: int32
                description: LFS objects synced count
              lfs_objects_failed_count:
                type: integer
                format: int32
                description: LFS objects failed count
              lfs_objects_registry_count:
                type: integer
                format: int32
                description: LFS objects registry count
              lfs_objects_verification_total_count:
                type: integer
                format: int32
                description: LFS objects verification total count
              lfs_objects_verified_count:
                type: integer
                format: int32
                description: LFS objects verified count
              lfs_objects_verification_failed_count:
                type: integer
                format: int32
                description: LFS objects verification failed count
              merge_request_diffs_count:
                type: integer
                format: int32
                description: Merge request diffs count
              merge_request_diffs_checksum_total_count:
                type: integer
                format: int32
                description: Merge request diffs checksum total count
              merge_request_diffs_checksummed_count:
                type: integer
                format: int32
                description: Merge request diffs checksummed count
              merge_request_diffs_checksum_failed_count:
                type: integer
                format: int32
                description: Merge request diffs checksum failed count
              merge_request_diffs_synced_count:
                type: integer
                format: int32
                description: Merge request diffs synced count
              merge_request_diffs_failed_count:
                type: integer
                format: int32
                description: Merge request diffs failed count
              merge_request_diffs_registry_count:
                type: integer
                format: int32
                description: Merge request diffs registry count
              merge_request_diffs_verification_total_count:
                type: integer
                format: int32
                description: Merge request diffs verification total count
              merge_request_diffs_verified_count:
                type: integer
                format: int32
                description: Merge request diffs verified count
              merge_request_diffs_verification_failed_count:
                type: integer
                format: int32
                description: Merge request diffs verified count
              package_files_count:
                type: integer
                format: int32
                description: Packages files count
              package_files_checksum_total_count:
                type: integer
                format: int32
                description: Packages files checksum total count
              package_files_checksummed_count:
                type: integer
                format: int32
                description: Packages files checksummed count
              package_files_checksum_failed_count:
                type: integer
                format: int32
                description: Packages files checksum failed count
              package_files_synced_count:
                type: integer
                format: int32
                description: Packages files synced count
              package_files_failed_count:
                type: integer
                format: int32
                description: Packages files failed count
              package_files_registry_count:
                type: integer
                format: int32
                description: Packages files registry count
              package_files_verification_total_count:
                type: integer
                format: int32
                description: Packages files verification total count
              package_files_verified_count:
                type: integer
                format: int32
                description: Packages files verified count
              package_files_verification_failed_count:
                type: integer
                format: int32
                description: Packages files verification failed count
              terraform_state_versions_count:
                type: integer
                format: int32
                description: Terraform state versions count
              terraform_state_versions_checksum_total_count:
                type: integer
                format: int32
                description: Terraform state versions checksum total count
              terraform_state_versions_checksummed_count:
                type: integer
                format: int32
                description: Terraform state versions checksummed count
              terraform_state_versions_checksum_failed_count:
                type: integer
                format: int32
                description: Terraform state versions checksum failed count
              terraform_state_versions_synced_count:
                type: integer
                format: int32
                description: Terraform state versions synced count
              terraform_state_versions_failed_count:
                type: integer
                format: int32
                description: Terraform state versions failed count
              terraform_state_versions_registry_count:
                type: integer
                format: int32
                description: Terraform state versions registry count
              terraform_state_versions_verification_total_count:
                type: integer
                format: int32
                description: Terraform state versions verification total count
              terraform_state_versions_verified_count:
                type: integer
                format: int32
                description: Terraform state versions verified count
              terraform_state_versions_verification_failed_count:
                type: integer
                format: int32
                description: Terraform state versions verification failed count
              snippet_repositories_count:
                type: integer
                format: int32
                description: Snippet repositories count
              snippet_repositories_checksum_total_count:
                type: integer
                format: int32
                description: Snippet repositories checksum total count
              snippet_repositories_checksummed_count:
                type: integer
                format: int32
                description: Snippet repositories checksummed count
              snippet_repositories_checksum_failed_count:
                type: integer
                format: int32
                description: Snippet repositories checksum failed count
              snippet_repositories_synced_count:
                type: integer
                format: int32
                description: Snippet repositories synced count
              snippet_repositories_failed_count:
                type: integer
                format: int32
                description: Snippet repositories failed count
              snippet_repositories_registry_count:
                type: integer
                format: int32
                description: Snippet repositories registry count
              snippet_repositories_verification_total_count:
                type: integer
                format: int32
                description: Snippet repositories verification total count
              snippet_repositories_verified_count:
                type: integer
                format: int32
                description: Snippet repositories verified count
              snippet_repositories_verification_failed_count:
                type: integer
                format: int32
                description: Snippet repositories verification failed count
              group_wiki_repositories_count:
                type: integer
                format: int32
                description: Group wiki repositories count
              group_wiki_repositories_checksum_total_count:
                type: integer
                format: int32
                description: Group wiki repositories checksum total count
              group_wiki_repositories_checksummed_count:
                type: integer
                format: int32
                description: Group wiki repositories checksummed count
              group_wiki_repositories_checksum_failed_count:
                type: integer
                format: int32
                description: Group wiki repositories checksum failed count
              group_wiki_repositories_synced_count:
                type: integer
                format: int32
                description: Group wiki repositories synced count
              group_wiki_repositories_failed_count:
                type: integer
                format: int32
                description: Group wiki repositories failed count
              group_wiki_repositories_registry_count:
                type: integer
                format: int32
                description: Group wiki repositories registry count
              group_wiki_repositories_verification_total_count:
                type: integer
                format: int32
                description: Group wiki repositories verification total count
              group_wiki_repositories_verified_count:
                type: integer
                format: int32
                description: Group wiki repositories verified count
              group_wiki_repositories_verification_failed_count:
                type: integer
                format: int32
                description: Group wiki repositories verification failed count
              pipeline_artifacts_count:
                type: integer
                format: int32
                description: Pipeline artifacts count
              pipeline_artifacts_checksum_total_count:
                type: integer
                format: int32
                description: Pipeline artifacts checksum total count
              pipeline_artifacts_checksummed_count:
                type: integer
                format: int32
                description: Pipeline artifacts checksummed count
              pipeline_artifacts_checksum_failed_count:
                type: integer
                format: int32
                description: Pipeline artifacts checksum failed count
              pipeline_artifacts_synced_count:
                type: integer
                format: int32
                description: Pipeline artifacts synced count
              pipeline_artifacts_failed_count:
                type: integer
                format: int32
                description: Pipeline artifacts failed count
              pipeline_artifacts_registry_count:
                type: integer
                format: int32
                description: Pipeline artifacts registry count
              pipeline_artifacts_verification_total_count:
                type: integer
                format: int32
                description: Pipeline artifacts verification total count
              pipeline_artifacts_verified_count:
                type: integer
                format: int32
                description: Pipeline artifacts verified count
              pipeline_artifacts_verification_failed_count:
                type: integer
                format: int32
                description: Pipeline artifacts verification failed count
              pages_deployments_count:
                type: integer
                format: int32
                description: Pages deployments count
              pages_deployments_checksum_total_count:
                type: integer
                format: int32
                description: Pages deployments checksum total count
              pages_deployments_checksummed_count:
                type: integer
                format: int32
                description: Pages deployments checksummed count
              pages_deployments_checksum_failed_count:
                type: integer
                format: int32
                description: Pages deployments checksum failed count
              pages_deployments_synced_count:
                type: integer
                format: int32
                description: Pages deployments synced count
              pages_deployments_failed_count:
                type: integer
                format: int32
                description: Pages deployments failed count
              pages_deployments_registry_count:
                type: integer
                format: int32
                description: Pages deployments registry count
              pages_deployments_verification_total_count:
                type: integer
                format: int32
                description: Pages deployments verification total count
              pages_deployments_verified_count:
                type: integer
                format: int32
                description: Pages deployments verified count
              pages_deployments_verification_failed_count:
                type: integer
                format: int32
                description: Pages deployments verification failed count
              uploads_count:
                type: integer
                format: int32
                description: Uploads count
              uploads_checksum_total_count:
                type: integer
                format: int32
                description: Uploads checksum total count
              uploads_checksummed_count:
                type: integer
                format: int32
                description: Uploads checksummed count
              uploads_checksum_failed_count:
                type: integer
                format: int32
                description: Uploads checksum failed count
              uploads_synced_count:
                type: integer
                format: int32
                description: Uploads synced count
              uploads_failed_count:
                type: integer
                format: int32
                description: Uploads failed count
              uploads_registry_count:
                type: integer
                format: int32
                description: Uploads registry count
              uploads_verification_total_count:
                type: integer
                format: int32
                description: Uploads verification total count
              uploads_verified_count:
                type: integer
                format: int32
                description: Uploads verified count
              uploads_verification_failed_count:
                type: integer
                format: int32
                description: Uploads verification failed count
              job_artifacts_count:
                type: integer
                format: int32
                description: Job artifacts count
              job_artifacts_checksum_total_count:
                type: integer
                format: int32
                description: Job artifacts checksum total count
              job_artifacts_checksummed_count:
                type: integer
                format: int32
                description: Job artifacts checksummed count
              job_artifacts_checksum_failed_count:
                type: integer
                format: int32
                description: Job artifacts checksum failed count
              job_artifacts_synced_count:
                type: integer
                format: int32
                description: Job artifacts synced count
              job_artifacts_failed_count:
                type: integer
                format: int32
                description: Job artifacts failed count
              job_artifacts_registry_count:
                type: integer
                format: int32
                description: Job artifacts registry count
              job_artifacts_verification_total_count:
                type: integer
                format: int32
                description: Job artifacts verification total count
              job_artifacts_verified_count:
                type: integer
                format: int32
                description: Job artifacts verified count
              job_artifacts_verification_failed_count:
                type: integer
                format: int32
                description: Job artifacts verification failed count
              ci_secure_files_count:
                type: integer
                format: int32
                description: CI secure files count
              ci_secure_files_checksum_total_count:
                type: integer
                format: int32
                description: CI secure files checksum total count
              ci_secure_files_checksummed_count:
                type: integer
                format: int32
                description: CI secure files checksummed count
              ci_secure_files_checksum_failed_count:
                type: integer
                format: int32
                description: CI secure files checksum failed count
              ci_secure_files_synced_count:
                type: integer
                format: int32
                description: CI secure files synced count
              ci_secure_files_failed_count:
                type: integer
                format: int32
                description: CI secure files failed count
              ci_secure_files_registry_count:
                type: integer
                format: int32
                description: CI secure files registry count
              ci_secure_files_verification_total_count:
                type: integer
                format: int32
                description: CI secure files verification total count
              ci_secure_files_verified_count:
                type: integer
                format: int32
                description: CI secure files verified count
              ci_secure_files_verification_failed_count:
                type: integer
                format: int32
                description: CI secure files verification failed count
              container_repositories_count:
                type: integer
                format: int32
                description: Container repositories count
              container_repositories_checksum_total_count:
                type: integer
                format: int32
                description: Container repositories checksum total count
              container_repositories_checksummed_count:
                type: integer
                format: int32
                description: Container repositories checksummed count
              container_repositories_checksum_failed_count:
                type: integer
                format: int32
                description: Container repositories checksum failed count
              container_repositories_synced_count:
                type: integer
                format: int32
                description: Container repositories synced count
              container_repositories_failed_count:
                type: integer
                format: int32
                description: Container repositories failed count
              container_repositories_registry_count:
                type: integer
                format: int32
                description: Container repositories registry count
              container_repositories_verification_total_count:
                type: integer
                format: int32
                description: Container repositories verification total count
              container_repositories_verified_count:
                type: integer
                format: int32
                description: Container repositories verified count
              container_repositories_verification_failed_count:
                type: integer
                format: int32
                description: Container repositories verification failed count
              git_fetch_event_count_weekly:
                type: integer
                format: int32
                description: Git fetch event count weekly
              git_push_event_count_weekly:
                type: integer
                format: int32
                description: Git push event count weekly
              proxy_remote_requests_event_count_weekly:
                type: integer
                format: int32
                description: Proxy remote requests event count weekly
              proxy_local_requests_event_count_weekly:
                type: integer
                format: int32
                description: Proxy local requests event count weekly
        required:
        - geo_node_id
    description: Posts the current node status to the primary site
  EE_API_Entities_GeoNodeStatus:
    type: object
    properties:
      geo_node_id:
        type: string
      projects_count:
        type: string
      container_repositories_replication_enabled:
        type: string
      lfs_objects_count:
        type: string
      lfs_objects_checksum_total_count:
        type: string
      lfs_objects_checksummed_count:
        type: string
      lfs_objects_checksum_failed_count:
        type: string
      lfs_objects_synced_count:
        type: string
      lfs_objects_failed_count:
        type: string
      lfs_objects_registry_count:
        type: string
      lfs_objects_verification_total_count:
        type: string
      lfs_objects_verified_count:
        type: string
      lfs_objects_verification_failed_count:
        type: string
      merge_request_diffs_count:
        type: string
      merge_request_diffs_checksum_total_count:
        type: string
      merge_request_diffs_checksummed_count:
        type: string
      merge_request_diffs_checksum_failed_count:
        type: string
      merge_request_diffs_synced_count:
        type: string
      merge_request_diffs_failed_count:
        type: string
      merge_request_diffs_registry_count:
        type: string
      merge_request_diffs_verification_total_count:
        type: string
      merge_request_diffs_verified_count:
        type: string
      merge_request_diffs_verification_failed_count:
        type: string
      package_files_count:
        type: string
      package_files_checksum_total_count:
        type: string
      package_files_checksummed_count:
        type: string
      package_files_checksum_failed_count:
        type: string
      package_files_synced_count:
        type: string
      package_files_failed_count:
        type: string
      package_files_registry_count:
        type: string
      package_files_verification_total_count:
        type: string
      package_files_verified_count:
        type: string
      package_files_verification_failed_count:
        type: string
      terraform_state_versions_count:
        type: string
      terraform_state_versions_checksum_total_count:
        type: string
      terraform_state_versions_checksummed_count:
        type: string
      terraform_state_versions_checksum_failed_count:
        type: string
      terraform_state_versions_synced_count:
        type: string
      terraform_state_versions_failed_count:
        type: string
      terraform_state_versions_registry_count:
        type: string
      terraform_state_versions_verification_total_count:
        type: string
      terraform_state_versions_verified_count:
        type: string
      terraform_state_versions_verification_failed_count:
        type: string
      snippet_repositories_count:
        type: string
      snippet_repositories_checksum_total_count:
        type: string
      snippet_repositories_checksummed_count:
        type: string
      snippet_repositories_checksum_failed_count:
        type: string
      snippet_repositories_synced_count:
        type: string
      snippet_repositories_failed_count:
        type: string
      snippet_repositories_registry_count:
        type: string
      snippet_repositories_verification_total_count:
        type: string
      snippet_repositories_verified_count:
        type: string
      snippet_repositories_verification_failed_count:
        type: string
      group_wiki_repositories_count:
        type: string
      group_wiki_repositories_checksum_total_count:
        type: string
      group_wiki_repositories_checksummed_count:
        type: string
      group_wiki_repositories_checksum_failed_count:
        type: string
      group_wiki_repositories_synced_count:
        type: string
      group_wiki_repositories_failed_count:
        type: string
      group_wiki_repositories_registry_count:
        type: string
      group_wiki_repositories_verification_total_count:
        type: string
      group_wiki_repositories_verified_count:
        type: string
      group_wiki_repositories_verification_failed_count:
        type: string
      pipeline_artifacts_count:
        type: string
      pipeline_artifacts_checksum_total_count:
        type: string
      pipeline_artifacts_checksummed_count:
        type: string
      pipeline_artifacts_checksum_failed_count:
        type: string
      pipeline_artifacts_synced_count:
        type: string
      pipeline_artifacts_failed_count:
        type: string
      pipeline_artifacts_registry_count:
        type: string
      pipeline_artifacts_verification_total_count:
        type: string
      pipeline_artifacts_verified_count:
        type: string
      pipeline_artifacts_verification_failed_count:
        type: string
      pages_deployments_count:
        type: string
      pages_deployments_checksum_total_count:
        type: string
      pages_deployments_checksummed_count:
        type: string
      pages_deployments_checksum_failed_count:
        type: string
      pages_deployments_synced_count:
        type: string
      pages_deployments_failed_count:
        type: string
      pages_deployments_registry_count:
        type: string
      pages_deployments_verification_total_count:
        type: string
      pages_deployments_verified_count:
        type: string
      pages_deployments_verification_failed_count:
        type: string
      uploads_count:
        type: string
      uploads_checksum_total_count:
        type: string
      uploads_checksummed_count:
        type: string
      uploads_checksum_failed_count:
        type: string
      uploads_synced_count:
        type: string
      uploads_failed_count:
        type: string
      uploads_registry_count:
        type: string
      uploads_verification_total_count:
        type: string
      uploads_verified_count:
        type: string
      uploads_verification_failed_count:
        type: string
      job_artifacts_count:
        type: string
      job_artifacts_checksum_total_count:
        type: string
      job_artifacts_checksummed_count:
        type: string
      job_artifacts_checksum_failed_count:
        type: string
      job_artifacts_synced_count:
        type: string
      job_artifacts_failed_count:
        type: string
      job_artifacts_registry_count:
        type: string
      job_artifacts_verification_total_count:
        type: string
      job_artifacts_verified_count:
        type: string
      job_artifacts_verification_failed_count:
        type: string
      ci_secure_files_count:
        type: string
      ci_secure_files_checksum_total_count:
        type: string
      ci_secure_files_checksummed_count:
        type: string
      ci_secure_files_checksum_failed_count:
        type: string
      ci_secure_files_synced_count:
        type: string
      ci_secure_files_failed_count:
        type: string
      ci_secure_files_registry_count:
        type: string
      ci_secure_files_verification_total_count:
        type: string
      ci_secure_files_verified_count:
        type: string
      ci_secure_files_verification_failed_count:
        type: string
      container_repositories_count:
        type: string
      container_repositories_checksum_total_count:
        type: string
      container_repositories_checksummed_count:
        type: string
      container_repositories_checksum_failed_count:
        type: string
      container_repositories_synced_count:
        type: string
      container_repositories_failed_count:
        type: string
      container_repositories_registry_count:
        type: string
      container_repositories_verification_total_count:
        type: string
      container_repositories_verified_count:
        type: string
      container_repositories_verification_failed_count:
        type: string
      dependency_proxy_blobs_count:
        type: string
      dependency_proxy_blobs_checksum_total_count:
        type: string
      dependency_proxy_blobs_checksummed_count:
        type: string
      dependency_proxy_blobs_checksum_failed_count:
        type: string
      dependency_proxy_blobs_synced_count:
        type: string
      dependency_proxy_blobs_failed_count:
        type: string
      dependency_proxy_blobs_registry_count:
        type: string
      dependency_proxy_blobs_verification_total_count:
        type: string
      dependency_proxy_blobs_verified_count:
        type: string
      dependency_proxy_blobs_verification_failed_count:
        type: string
      dependency_proxy_manifests_count:
        type: string
      dependency_proxy_manifests_checksum_total_count:
        type: string
      dependency_proxy_manifests_checksummed_count:
        type: string
      dependency_proxy_manifests_checksum_failed_count:
        type: string
      dependency_proxy_manifests_synced_count:
        type: string
      dependency_proxy_manifests_failed_count:
        type: string
      dependency_proxy_manifests_registry_count:
        type: string
      dependency_proxy_manifests_verification_total_count:
        type: string
      dependency_proxy_manifests_verified_count:
        type: string
      dependency_proxy_manifests_verification_failed_count:
        type: string
      project_wiki_repositories_count:
        type: string
      project_wiki_repositories_checksum_total_count:
        type: string
      project_wiki_repositories_checksummed_count:
        type: string
      project_wiki_repositories_checksum_failed_count:
        type: string
      project_wiki_repositories_synced_count:
        type: string
      project_wiki_repositories_failed_count:
        type: string
      project_wiki_repositories_registry_count:
        type: string
      project_wiki_repositories_verification_total_count:
        type: string
      project_wiki_repositories_verified_count:
        type: string
      project_wiki_repositories_verification_failed_count:
        type: string
      design_management_repositories_count:
        type: string
      design_management_repositories_checksum_total_count:
        type: string
      design_management_repositories_checksummed_count:
        type: string
      design_management_repositories_checksum_failed_count:
        type: string
      design_management_repositories_synced_count:
        type: string
      design_management_repositories_failed_count:
        type: string
      design_management_repositories_registry_count:
        type: string
      design_management_repositories_verification_total_count:
        type: string
      design_management_repositories_verified_count:
        type: string
      design_management_repositories_verification_failed_count:
        type: string
      project_repositories_count:
        type: string
      project_repositories_checksum_total_count:
        type: string
      project_repositories_checksummed_count:
        type: string
      project_repositories_checksum_failed_count:
        type: string
      project_repositories_synced_count:
        type: string
      project_repositories_failed_count:
        type: string
      project_repositories_registry_count:
        type: string
      project_repositories_verification_total_count:
        type: string
      project_repositories_verified_count:
        type: string
      project_repositories_verification_failed_count:
        type: string
      git_fetch_event_count_weekly:
        type: string
      git_push_event_count_weekly:
        type: string
      proxy_remote_requests_event_count_weekly:
        type: string
      proxy_local_requests_event_count_weekly:
        type: string
      repositories_checked_in_percentage:
        type: string
      replication_slots_used_in_percentage:
        type: string
      lfs_objects_synced_in_percentage:
        type: string
      lfs_objects_verified_in_percentage:
        type: string
      merge_request_diffs_synced_in_percentage:
        type: string
      merge_request_diffs_verified_in_percentage:
        type: string
      package_files_synced_in_percentage:
        type: string
      package_files_verified_in_percentage:
        type: string
      terraform_state_versions_synced_in_percentage:
        type: string
      terraform_state_versions_verified_in_percentage:
        type: string
      snippet_repositories_synced_in_percentage:
        type: string
      snippet_repositories_verified_in_percentage:
        type: string
      group_wiki_repositories_synced_in_percentage:
        type: string
      group_wiki_repositories_verified_in_percentage:
        type: string
      pipeline_artifacts_synced_in_percentage:
        type: string
      pipeline_artifacts_verified_in_percentage:
        type: string
      pages_deployments_synced_in_percentage:
        type: string
      pages_deployments_verified_in_percentage:
        type: string
      uploads_synced_in_percentage:
        type: string
      uploads_verified_in_percentage:
        type: string
      job_artifacts_synced_in_percentage:
        type: string
      job_artifacts_verified_in_percentage:
        type: string
      ci_secure_files_synced_in_percentage:
        type: string
      ci_secure_files_verified_in_percentage:
        type: string
      container_repositories_synced_in_percentage:
        type: string
      container_repositories_verified_in_percentage:
        type: string
      dependency_proxy_blobs_synced_in_percentage:
        type: string
      dependency_proxy_blobs_verified_in_percentage:
        type: string
      dependency_proxy_manifests_synced_in_percentage:
        type: string
      dependency_proxy_manifests_verified_in_percentage:
        type: string
      project_wiki_repositories_synced_in_percentage:
        type: string
      project_wiki_repositories_verified_in_percentage:
        type: string
      design_management_repositories_synced_in_percentage:
        type: string
      design_management_repositories_verified_in_percentage:
        type: string
      project_repositories_synced_in_percentage:
        type: string
      project_repositories_verified_in_percentage:
        type: string
      repositories_count:
        type: string
      replication_slots_count:
        type: string
      replication_slots_used_count:
        type: string
      healthy:
        type: string
      health:
        type: string
      health_status:
        type: string
      missing_oauth_application:
        type: string
      db_replication_lag_seconds:
        type: string
      replication_slots_max_retained_wal_bytes:
        type: string
      repositories_checked_count:
        type: string
      repositories_checked_failed_count:
        type: string
      last_event_id:
        type: string
      last_event_timestamp:
        type: string
      cursor_last_event_id:
        type: string
      cursor_last_event_timestamp:
        type: string
      last_successful_status_check_timestamp:
        type: string
      version:
        type: string
      revision:
        type: string
      selective_sync_type:
        type: string
      namespaces:
        "$ref": "#/definitions/API_Entities_NamespaceBasic"
      updated_at:
        type: string
      storage_shards:
        "$ref": "#/definitions/StorageShardEntity"
      storage_shards_match:
        type: string
      _links:
        type: object
        properties:
          self:
            type: string
          node:
            type: string
    description: EE_API_Entities_GeoNodeStatus model
  StorageShardEntity:
    type: object
    properties:
      name:
        type: string
  postApiV4GeoProxyGitSshInfoRefsUploadPack:
    type: object
    properties:
      secret_token:
        type: string
        description: Secret token to authenticate by gitlab shell
      data:
        type: object
        properties:
          gl_id:
            type: string
            description: GitLab identifier of user that initiated the clone/pull
          primary_repo:
            type: string
            description: Primary repository to clone/pull
        required:
        - gl_id
        - primary_repo
    required:
    - secret_token
    - data
    description: |-
      Responsible for making HTTP GET /repo.git/info/refs?service=git-upload-pack
                        request from secondary gitlab-shell to primary
  postApiV4GeoProxyGitSshUploadPack:
    type: object
    properties:
      secret_token:
        type: string
      data:
        type: object
        properties:
          gl_id:
            type: string
          primary_repo:
            type: string
        required:
        - gl_id
        - primary_repo
      output:
        type: string
        description: Output from git-upload-pack
    required:
    - secret_token
    - data
    - output
    description: |-
      Responsible for making HTTP POST /repo.git/git-upload-pack
                        request from secondary gitlab-shell to primary
  postApiV4GeoProxyGitSshInfoRefsReceivePack:
    type: object
    properties:
      secret_token:
        type: string
      data:
        type: object
        properties:
          gl_id:
            type: string
          primary_repo:
            type: string
        required:
        - gl_id
        - primary_repo
    required:
    - secret_token
    - data
    description: |-
      Responsible for making HTTP GET /repo.git/info/refs?service=git-receive-pack
                        request from secondary gitlab-shell to primary
  postApiV4GeoProxyGitSshReceivePack:
    type: object
    properties:
      secret_token:
        type: string
      data:
        type: object
        properties:
          gl_id:
            type: string
          primary_repo:
            type: string
        required:
        - gl_id
        - primary_repo
      output:
        type: string
        description: Output from git-receive-pack
    required:
    - secret_token
    - data
    - output
    description: |-
      Responsible for making HTTP POST /repo.git/info/refs?service=git-receive-pack
                        request from secondary gitlab-shell to primary
  postApiV4IntegrationsSlackEvents:
    type: object
    properties:
      token:
        type: string
        description: "(Deprecated by Slack) The request token, unused by GitLab"
      team_id:
        type: string
        description: The Slack workspace ID of where the event occurred
      api_app_id:
        type: string
        description: The Slack app ID
      event:
        type: object
        description: The event object with variable properties
      type:
        type: string
        description: The kind of event this is, usually `event_callback`
      event_id:
        type: string
        description: A unique identifier for this specific event
      event_time:
        type: integer
        format: int32
        description: The epoch timestamp in seconds when this event was dispatched
      authed_users:
        type: array
        description: "(Deprecated by Slack) An array of Slack user IDs"
        items:
          type: string
    description: Receive Slack events
  postApiV4IntegrationsJiraConnectSubscriptions:
    type: object
    properties:
      jwt:
        type: string
        description: JWT token for authorization with the Jira Connect installation
      namespace_path:
        type: string
        description: Path for the namespace that should be subscribed
    required:
    - jwt
    - namespace_path
    description: Subscribe a namespace to a JiraConnectInstallation
  API_Entities_BasicSuccess:
    type: object
    properties:
      success:
        type: object
        properties: {}
    description: API_Entities_BasicSuccess model
  API_Entities_SSHKeyWithUser:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      title:
        type: string
        example: Sample key 25
      created_at:
        type: string
        format: date-time
        example: '2015-09-03T07:24:44.627Z'
      expires_at:
        type: string
        format: date-time
        example: '2020-09-03T07:24:44.627Z'
      key:
        type: string
        example: |-
          ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1256k6Yjz\
                GGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCdd\
                NaP0L+hM7zhFNzjFvpaMgJw0=
      usage_type:
        type: string
        example: auth
      user:
        "$ref": "#/definitions/API_Entities_UserPublic"
    description: API_Entities_SSHKeyWithUser model
  postApiV4Markdown:
    type: object
    properties:
      text:
        type: string
        description: The Markdown text to render
      gfm:
        type: boolean
        description: Render text using GitLab Flavored Markdown. Default is false
      project:
        type: string
        description: Use project as a context when creating references using GitLab
          Flavored Markdown
    required:
    - text
    description: Render an arbitrary Markdown document
  API_Entities_Markdown:
    type: object
    properties:
      html:
        type: string
        example: <p dir=\"auto\">Hello world!</p>"
    description: API_Entities_Markdown model
  putApiV4NamespacesId:
    type: object
    properties:
      shared_runners_minutes_limit:
        type: integer
        format: int32
        description: Compute minutes quota for this namespace
      extra_shared_runners_minutes_limit:
        type: integer
        format: int32
        description: Extra compute minutes for this namespace
      additional_purchased_storage_size:
        type: integer
        format: int32
        description: Additional storage size for this namespace
      additional_purchased_storage_ends_on:
        type: string
        format: date
        description: End of subscription of the additional purchased storage
      gitlab_subscription_attributes:
        type: object
        properties:
          start_date:
            type: string
            format: date
            description: Start date of subscription
          seats:
            type: integer
            format: int32
            description: Number of seats in subscription
          max_seats_used:
            type: integer
            format: int32
            description: Highest number of active users in the last month
          plan_code:
            type: string
            description: Subscription tier code
          end_date:
            type: string
            format: date
            description: End date of subscription
          auto_renew:
            type: boolean
            description: Whether subscription will auto renew on end date
          trial:
            type: boolean
            description: Whether the subscription is a trial
          trial_ends_on:
            type: string
            format: date
            description: End date of trial
          trial_starts_on:
            type: string
            format: date
            description: Start date of trial
          trial_extension_type:
            type: integer
            format: int32
            description: Whether subscription is an extended or reactivated trial
    description: Update a namespace
  API_Entities_Namespace:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 2
      name:
        type: string
        example: project
      path:
        type: string
        example: my_project
      kind:
        type: string
        example: project
      full_path:
        type: string
        example: group/my_project
      parent_id:
        type: integer
        format: int32
        example: 1
      avatar_url:
        type: string
        example: https://example.com/avatar/12345
      web_url:
        type: string
        example: https://example.com/group/my_project
      members_count_with_descendants:
        type: integer
        format: int32
        example: 5
      root_repository_size:
        type: integer
        format: int32
        example: 123
      projects_count:
        type: integer
        format: int32
        example: 123
      shared_runners_minutes_limit:
        type: integer
        format: int32
        example: 133
      extra_shared_runners_minutes_limit:
        type: integer
        format: int32
        example: 133
      additional_purchased_storage_size:
        type: integer
        format: int32
        example: 1000
      additional_purchased_storage_ends_on:
        type: string
        format: date
        example: '2022-06-18'
      billable_members_count:
        type: integer
        format: int32
        example: 2
      seats_in_use:
        type: integer
        format: int32
        example: 5
      max_seats_used:
        type: integer
        format: int32
        example: 100
      max_seats_used_changed_at:
        type: string
        format: date
        example: '2022-06-18'
      end_date:
        type: string
        format: date
        example: '2022-06-18'
      plan:
        type: string
        example: default
      trial_ends_on:
        type: string
        format: date
        example: '2022-06-18'
      trial:
        type: boolean
    description: API_Entities_Namespace model
  postApiV4NamespacesIdGitlabSubscription:
    type: object
    properties:
      start_date:
        type: string
        format: date
        description: The date when subscription was started
      seats:
        type: integer
        format: int32
        description: Number of seats in subscription
      max_seats_used:
        type: integer
        format: int32
        description: Highest number of active users in the last month
      plan_code:
        type: string
        description: Subscription tier code
      end_date:
        type: string
        format: date
        description: End date of subscription
      auto_renew:
        type: boolean
        description: Whether subscription will auto renew on end date
      trial:
        type: boolean
        description: Whether the subscription is a trial
      trial_ends_on:
        type: string
        format: date
        description: End date of trial
      trial_starts_on:
        type: string
        format: date
        description: Start date of trial
      trial_extension_type:
        type: integer
        format: int32
        description: Whether subscription is an extended or reactivated trial
    required:
    - start_date
    description: Create a subscription for the namespace
  API_Entities_GitlabSubscription:
    type: object
    properties:
      plan:
        type: object
        properties:
          code:
            type: string
          name:
            type: string
          trial:
            type: string
          auto_renew:
            type: string
          upgradable:
            type: string
          exclude_guests:
            type: string
      usage:
        type: object
        properties:
          seats_in_subscription:
            type: string
          seats_in_use:
            type: string
          max_seats_used:
            type: string
          seats_owed:
            type: string
      billing:
        type: object
        properties:
          subscription_start_date:
            type: string
          subscription_end_date:
            type: string
          trial_ends_on:
            type: string
    description: API_Entities_GitlabSubscription model
  putApiV4NamespacesIdGitlabSubscription:
    type: object
    properties:
      start_date:
        type: string
        format: date
        description: Start date of subscription
      seats:
        type: integer
        format: int32
        description: Number of seats in subscription
      max_seats_used:
        type: integer
        format: int32
        description: Highest number of active users in the last month
      plan_code:
        type: string
        description: Subscription tier code
      end_date:
        type: string
        format: date
        description: End date of subscription
      auto_renew:
        type: boolean
        description: Whether subscription will auto renew on end date
      trial:
        type: boolean
        description: Whether the subscription is a trial
      trial_ends_on:
        type: string
        format: date
        description: End date of trial
      trial_starts_on:
        type: string
        format: date
        description: Start date of trial
      trial_extension_type:
        type: integer
        format: int32
        description: Whether subscription is an extended or reactivated trial
    description: Update the subscription for the namespace
  postApiV4NamespacesIdStorageLimitExclusion:
    type: object
    properties:
      reason:
        type: string
        description: The reason the Namespace is being excluded
    required:
    - reason
    description: Creates a storage limit exclusion for a Namespace
  API_Entities_Namespaces_Storage_LimitExclusion:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      namespace_id:
        type: integer
        format: int32
        example: 123
      namespace_name:
        type: string
        example: GitLab
      reason:
        type: string
        example: a reason
    description: API_Entities_Namespaces_Storage_LimitExclusion model
  API_Entities_NamespaceExistence:
    type: object
    properties:
      exists:
        type: boolean
      suggests:
        type: array
        items:
          type: string
          example: my-group1
    description: API_Entities_NamespaceExistence model
  API_Entities_PagesDomainBasic:
    type: object
    properties:
      domain:
        type: string
      url:
        type: string
      project_id:
        type: string
      verified:
        type: string
      verification_code:
        type: string
      enabled_until:
        type: string
      auto_ssl_enabled:
        type: string
      certificate_expiration:
        "$ref": "#/definitions/API_Entities_PagesDomainCertificateExpiration"
    description: API_Entities_PagesDomainBasic model
  API_Entities_PagesDomainCertificateExpiration:
    type: object
    properties:
      expired:
        type: string
      expiration:
        type: string
  API_Entities_PersonalAccessToken:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 2
      name:
        type: string
        example: John Doe
      revoked:
        type: boolean
      created_at:
        type: string
        format: date-time
      scopes:
        type: array
        example:
        - api
      user_id:
        type: integer
        format: int32
        example: 3
      last_used_at:
        type: string
        format: date-time
        example: '2020-08-31T15:53:00.073Z'
      active:
        type: boolean
      expires_at:
        type: string
        format: date-time
        example: '2020-08-31T15:53:00.073Z'
    description: API_Entities_PersonalAccessToken model
  postApiV4PersonalAccessTokensSelfRotate:
    type: object
    properties:
      expires_at:
        type: string
        format: date
        description: The expiration date of the token
        example: '2021-01-31'
    description: Rotate a personal access token
  postApiV4PersonalAccessTokensIdRotate:
    type: object
    properties:
      expires_at:
        type: string
        format: date
        description: The expiration date of the token
        example: '2021-01-31'
    description: Rotate personal access token
  postApiV4ProjectRepositoryStorageMoves:
    type: object
    properties:
      source_storage_name:
        type: string
        description: The source storage shard
        enum:
        - default
      destination_storage_name:
        type: string
        description: The destination storage shard
        enum:
        - default
    required:
    - source_storage_name
    description: Schedule bulk project repository storage moves
  API_Entities_Snippet:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      title:
        type: string
        example: test
      description:
        type: string
        example: Ruby test snippet
      visibility:
        type: string
        example: public
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      created_at:
        type: string
        format: date-time
        example: '2012-06-28T10:52:04Z'
      updated_at:
        type: string
        format: date-time
        example: '2012-06-28T10:52:04Z'
      project_id:
        type: integer
        format: int32
        example: 1
      web_url:
        type: string
        example: http://example.com/example/example/snippets/1
      raw_url:
        type: string
        example: http://example.com/example/example/snippets/1/raw
      ssh_url_to_repo:
        type: string
        example: ssh://user@gitlab.example.com/snippets/65.git
      http_url_to_repo:
        type: string
        example: https://gitlab.example.com/snippets/65.git
      file_name:
        type: string
        example: add.rb
      files:
        type: array
        items:
          type: string
          example: e0d123e5f316bef78bfdf5a008837577
      imported:
        type: boolean
        example: false
      imported_from:
        type: string
        example: none
      repository_storage:
        type: string
    description: API_Entities_Snippet model
  API_Entities_PersonalSnippet:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      title:
        type: string
        example: test
      description:
        type: string
        example: Ruby test snippet
      visibility:
        type: string
        example: public
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      created_at:
        type: string
        format: date-time
        example: '2012-06-28T10:52:04Z'
      updated_at:
        type: string
        format: date-time
        example: '2012-06-28T10:52:04Z'
      project_id:
        type: integer
        format: int32
        example: 1
      web_url:
        type: string
        example: http://example.com/example/example/snippets/1
      raw_url:
        type: string
        example: http://example.com/example/example/snippets/1/raw
      ssh_url_to_repo:
        type: string
        example: ssh://user@gitlab.example.com/snippets/65.git
      http_url_to_repo:
        type: string
        example: https://gitlab.example.com/snippets/65.git
      file_name:
        type: string
        example: add.rb
      files:
        type: array
        items:
          type: string
          example: e0d123e5f316bef78bfdf5a008837577
      imported:
        type: boolean
        example: false
      imported_from:
        type: string
        example: none
      repository_storage:
        type: string
    description: API_Entities_PersonalSnippet model
  postApiV4Snippets:
    type: object
    properties:
      title:
        type: string
        description: The title of a snippet
      description:
        type: string
        description: The description of a snippet
      visibility:
        type: string
        description: The visibility of the snippet
        enum:
        - private
        - internal
        - public
        default: internal
      files:
        type: array
        description: An array of files
        items:
          type: object
          properties:
            file_path:
              type: string
              description: The path of a snippet file
            content:
              type: string
              description: The content of a snippet file
          required:
          - file_path
          - content
      content:
        type: string
        description: The content of a snippet
      file_name:
        type: string
        description: The name of a snippet file
    required:
    - title
    - file_name
    description: Create new snippet
  putApiV4SnippetsId:
    type: object
    properties:
      content:
        type: string
        description: The content of a snippet
      description:
        type: string
        description: The description of a snippet
      file_name:
        type: string
        description: The name of a snippet file
      title:
        type: string
        description: The title of a snippet
      visibility:
        type: string
        description: The visibility of the snippet
        enum:
        - private
        - internal
        - public
      files:
        type: array
        description: An array of files to update
        items:
          type: object
          properties:
            action:
              type: string
              description: 'The type of action to perform on the file, must be one
                of: create, update, delete, move'
              enum:
              - create
              - update
              - delete
              - move
            content:
              type: string
              description: The content of a snippet
            file_path:
              type: string
              description: The file path of a snippet file
            previous_path:
              type: string
              description: The previous path of a snippet file
          required:
          - action
    description: Update an existing snippet
  API_Entities_Snippets_RepositoryStorageMove:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      created_at:
        type: string
        format: date-time
        example: '2020-05-07T04:27:17.234Z'
      state:
        type: string
        example: scheduled
      source_storage_name:
        type: string
        example: default
      destination_storage_name:
        type: string
        example: storage1
      error_message:
        type: string
        example: Failed to move repository
      snippet:
        "$ref": "#/definitions/API_Entities_BasicSnippet"
    description: API_Entities_Snippets_RepositoryStorageMove model
  API_Entities_BasicSnippet:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      title:
        type: string
        example: test
      description:
        type: string
        example: Ruby test snippet
      visibility:
        type: string
        example: public
      author:
        "$ref": "#/definitions/API_Entities_UserBasic"
      created_at:
        type: string
        format: date-time
        example: '2012-06-28T10:52:04Z'
      updated_at:
        type: string
        format: date-time
        example: '2012-06-28T10:52:04Z'
      project_id:
        type: integer
        format: int32
        example: 1
      web_url:
        type: string
        example: http://example.com/example/example/snippets/1
      raw_url:
        type: string
        example: http://example.com/example/example/snippets/1/raw
      ssh_url_to_repo:
        type: string
        example: ssh://user@gitlab.example.com/snippets/65.git
      http_url_to_repo:
        type: string
        example: https://gitlab.example.com/snippets/65.git
  postApiV4SnippetsIdRepositoryStorageMoves:
    type: object
    properties:
      destination_storage_name:
        type: string
        description: The destination storage shard
    description: Schedule a snippet repository storage move
  postApiV4SnippetRepositoryStorageMoves:
    type: object
    properties:
      source_storage_name:
        type: string
        description: The source storage shard
        enum:
        - default
      destination_storage_name:
        type: string
        description: The destination storage shard
        enum:
        - default
    required:
    - source_storage_name
    description: Schedule bulk snippet repository storage moves
  putApiV4SuggestionsIdApply:
    type: object
    properties:
      commit_message:
        type: string
        description: A custom commit message to use instead of the default generated
          message or the project's default message
    description: Apply suggestion patch in the Merge Request it was created
  API_Entities_Suggestion:
    type: object
    properties:
      id:
        type: string
      from_line:
        type: string
      to_line:
        type: string
      appliable:
        type: string
      applied:
        type: string
      from_content:
        type: string
      to_content:
        type: string
    description: API_Entities_Suggestion model
  putApiV4SuggestionsBatchApply:
    type: object
    properties:
      ids:
        type: array
        description: An array of the suggestion IDs
        items:
          type: integer
          format: int32
      commit_message:
        type: string
        description: A custom commit message to use instead of the default generated
          message or the project's default message
    required:
    - ids
    description: Apply multiple suggestion patches in the Merge Request where they
      were created
  API_Entities_Hook:
    type: object
    properties:
      id:
        type: string
        example: 1
      url:
        type: string
        example: https://webhook.site
      name:
        type: string
        example: Hook name
      description:
        type: string
        example: Hook description
      created_at:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      push_events:
        type: boolean
      tag_push_events:
        type: boolean
      merge_requests_events:
        type: boolean
      repository_update_events:
        type: boolean
      enable_ssl_verification:
        type: boolean
      alert_status:
        type: symbol
        example: executable
      disabled_until:
        type: string
        format: date-time
        example: '2012-05-28T04:42:42-07:00'
      url_variables:
        type: array
        items:
          type: object
          example:
            token: secr3t
      custom_webhook_template:
        type: string
        example: '{"event":"{{object_kind}}"}'
    description: API_Entities_Hook model
  postApiV4Hooks:
    type: object
    properties:
      url:
        type: string
        description: The URL to send the request to
        example: http://example.com/hook
      name:
        type: string
        description: Name of the hook
      description:
        type: string
        description: Description of the hook
      token:
        type: string
        description: Secret token to validate received payloads; this isn't returned
          in the response
      push_events:
        type: boolean
        description: When true, the hook fires on push events
      tag_push_events:
        type: boolean
        description: When true, the hook fires on new tags being pushed
      merge_requests_events:
        type: boolean
        description: Trigger hook on merge requests events
      repository_update_events:
        type: boolean
        description: Trigger hook on repository update events
      enable_ssl_verification:
        type: boolean
        description: Do SSL verification when triggering the hook
      url_variables:
        type: array
        description: URL variables for interpolation
        items:
          type: object
          properties:
            key:
              type: string
              description: Name of the variable
              example: token
            value:
              type: string
              description: Value of the variable
              example: '123'
          required:
          - key
          - value
    required:
    - url
    description: Add new system hook
  putApiV4HooksHookId:
    type: object
    properties:
      url:
        type: string
        description: The URL to send the request to
      name:
        type: string
        description: Name of the hook
      description:
        type: string
        description: Description of the hook
      token:
        type: string
        description: Secret token to validate received payloads; this isn't returned
          in the response
      push_events:
        type: boolean
        description: When true, the hook fires on push events
      tag_push_events:
        type: boolean
        description: When true, the hook fires on new tags being pushed
      merge_requests_events:
        type: boolean
        description: Trigger hook on merge requests events
      repository_update_events:
        type: boolean
        description: Trigger hook on repository update events
      enable_ssl_verification:
        type: boolean
        description: Do SSL verification when triggering the hook
      url_variables:
        type: array
        description: URL variables for interpolation
        items:
          type: object
          properties:
            key:
              type: string
              description: Name of the variable
              example: token
            value:
              type: string
              description: Value of the variable
              example: '123'
          required:
          - key
          - value
    description: Edit system hook
  putApiV4HooksHookIdUrlVariablesKey:
    type: object
    properties:
      value:
        type: string
        description: The value of the variable
    required:
    - value
    description: Set a url variable
  postApiV4FeatureFlagsUnleashProjectIdClientRegister:
    type: object
    properties:
      instance_id:
        type: string
        description: The instance ID of Unleash Client
      app_name:
        type: string
        description: The application name of Unleash Client
  postApiV4FeatureFlagsUnleashProjectIdClientMetrics:
    type: object
    properties:
      instance_id:
        type: string
        description: The instance ID of Unleash Client
      app_name:
        type: string
        description: The application name of Unleash Client
  postApiV4UsageDataIncrementCounter:
    type: object
    properties:
      event:
        type: string
        description: The event name that should be tracked
        example: i_quickactions_page
    required:
    - event
    description: Track usage data event
  postApiV4UsageDataIncrementUniqueUsers:
    type: object
    properties:
      event:
        type: string
        description: The event name that should be tracked
        example: i_quickactions_page
    required:
    - event
    description: Track usage data event for the current user
  postApiV4UsageDataTrackEvent:
    type: object
    properties:
      event:
        type: string
        description: The event name that should be tracked
        example: i_quickactions_page
      namespace_id:
        type: integer
        format: int32
        description: Namespace ID
        example: 1234
      project_id:
        type: integer
        format: int32
        description: Project ID
        example: 1234
    required:
    - event
    description: Track gitlab internal events
  postApiV4UserKeys:
    type: object
    properties:
      key:
        type: string
        description: The new SSH key
      title:
        type: string
        description: The title of the new SSH key
      expires_at:
        type: string
        format: date-time
        description: The expiration date of the SSH key in ISO 8601 format (YYYY-MM-DDTHH:MM:SSZ)
      usage_type:
        type: string
        description: Scope of usage for the SSH key
        enum:
        - auth_and_signing
        - auth
        - signing
        default: auth_and_signing
    required:
    - key
    - title
    description: Add a new SSH key to the currently authenticated user
  postApiV4UserGpgKeys:
    type: object
    properties:
      key:
        type: string
        description: The new GPG key
    required:
    - key
    description: Add a new GPG key to the currently authenticated user
  putApiV4UserUserIdCreditCardValidation:
    type: object
    properties:
      credit_card_validated_at:
        type: string
        format: date-time
        description: The time when the user's credit card was validated
      credit_card_expiration_month:
        type: integer
        format: int32
        description: The month the credit card expires
      credit_card_expiration_year:
        type: integer
        format: int32
        description: The year the credit card expires
      credit_card_holder_name:
        type: string
        description: The credit card holder name
      credit_card_mask_number:
        type: string
        description: The last 4 digits of credit card number
      credit_card_type:
        type: string
        description: The credit card network name
      zuora_payment_method_xid:
        type: string
        description: The Zuora payment method ID
    required:
    - credit_card_validated_at
    - credit_card_expiration_month
    - credit_card_expiration_year
    - credit_card_holder_name
    - credit_card_mask_number
    - credit_card_type
    description: Update a user's credit_card_validation
  API_Entities_UserCreditCardValidations:
    type: object
    properties:
      user_id:
        type: string
      credit_card_validated_at:
        type: string
    description: API_Entities_UserCreditCardValidations model
  putApiV4UserPreferences:
    type: object
    properties:
      view_diffs_file_by_file:
        type: boolean
        description: Flag indicating the user sees only one file diff per page
      show_whitespace_in_diffs:
        type: boolean
        description: Flag indicating the user sees whitespace changes in diffs
      pass_user_identities_to_ci_jwt:
        type: boolean
        description: Flag indicating the user passes their external identities to
          a CI job as part of a JSON web token.
    description: Update the current user's preferences
  API_Entities_UserPreferences:
    type: object
    properties:
      id:
        type: string
      user_id:
        type: string
      view_diffs_file_by_file:
        type: string
      show_whitespace_in_diffs:
        type: string
      pass_user_identities_to_ci_jwt:
        type: string
    description: API_Entities_UserPreferences model
  postApiV4UserEmails:
    type: object
    properties:
      email:
        type: string
        description: The new email
    required:
    - email
    description: Add new email address to the currently authenticated user
  putApiV4UserStatus:
    type: object
    properties:
      emoji:
        type: string
        description: The emoji to set on the status
      message:
        type: string
        description: The status message to set
      availability:
        type: string
        description: The availability of user to set
      clear_status_after:
        type: string
        description: Automatically clear emoji, message and availability fields after
          a certain time
        enum:
        - 30_minutes
        - 3_hours
        - 8_hours
        - 1_day
        - 3_days
        - 7_days
        - 30_days
    description: Set the status of the current user
  API_Entities_UserStatus:
    type: object
    properties:
      emoji:
        type: string
      message:
        type: string
      availability:
        type: string
      message_html:
        type: string
      clear_status_at:
        type: string
    description: API_Entities_UserStatus model
  patchApiV4UserStatus:
    type: object
    properties:
      emoji:
        type: string
        description: The emoji to set on the status
      message:
        type: string
        description: The status message to set
      availability:
        type: string
        description: The availability of user to set
      clear_status_after:
        type: string
        description: Automatically clear emoji, message and availability fields after
          a certain time
        enum:
        - 30_minutes
        - 3_hours
        - 8_hours
        - 1_day
        - 3_days
        - 7_days
        - 30_days
    description: Set the status of the current user
  putApiV4UserAvatar:
    type: object
    properties:
      avatar:
        type: file
        description: The avatar file (generated by Multipart middleware)
    required:
    - avatar
    description: Set the avatar of the current user
  postApiV4UserRunners:
    type: object
    properties:
      runner_type:
        type: string
        description: Specifies the scope of the runner
        enum:
        - instance_type
        - group_type
        - project_type
      group_id:
        type: integer
        format: int32
        description: The ID of the group that the runner is created in
        example: 1
      project_id:
        type: integer
        format: int32
        description: The ID of the project that the runner is created in
        example: 1
      description:
        type: string
        description: Description of the runner
      maintenance_note:
        type: string
        description: Free-form maintenance notes for the runner (1024 characters)
      paused:
        type: boolean
        description: Specifies if the runner should ignore new jobs (defaults to false)
      locked:
        type: boolean
        description: Specifies if the runner should be locked for the current project
          (defaults to false)
      access_level:
        type: string
        description: The access level of the runner
        enum:
        - not_protected
        - ref_protected
      run_untagged:
        type: boolean
        description: Specifies if the runner should handle untagged jobs  (defaults
          to true)
      tag_list:
        type: array
        description: A list of runner tags
        items:
          type: string
      maximum_timeout:
        type: integer
        format: int32
        description: Maximum timeout that limits the amount of time (in seconds) that
          runners can run jobs
    required:
    - runner_type
    - group_id
    - project_id
    description: Create a runner owned by currently authenticated user
  postApiV4UserPersonalAccessTokens:
    type: object
    properties:
      name:
        type: string
        description: The name of the personal access token
      scopes:
        type: array
        description: The array of scopes of the personal access token
        items:
          type: string
          enum:
          - k8s_proxy
      expires_at:
        type: string
        format: date
        description: The expiration date in the format YEAR-MONTH-DAY of the personal
          access token
        default: {}
    required:
    - name
    - scopes
    description: Create a personal access token with limited scopes for the currently
      authenticated user
  API_Entities_UserCounts:
    type: object
    properties:
      merge_requests:
        type: integer
        format: int32
        example: 10
      assigned_issues:
        type: integer
        format: int32
        example: 10
      assigned_merge_requests:
        type: integer
        format: int32
        example: 10
      review_requested_merge_requests:
        type: integer
        format: int32
        example: 10
      todos:
        type: integer
        format: int32
        example: 10
    description: API_Entities_UserCounts model
  API_Entities_PlanLimit:
    type: object
    properties:
      ci_instance_level_variables:
        type: integer
        format: int32
        example: 25
      ci_pipeline_size:
        type: integer
        format: int32
        example: 0
      ci_active_jobs:
        type: integer
        format: int32
        example: 0
      ci_project_subscriptions:
        type: integer
        format: int32
        example: 2
      ci_pipeline_schedules:
        type: integer
        format: int32
        example: 10
      ci_needs_size_limit:
        type: integer
        format: int32
        example: 50
      ci_registered_group_runners:
        type: integer
        format: int32
        example: 1000
      ci_registered_project_runners:
        type: integer
        format: int32
        example: 1000
      conan_max_file_size:
        type: integer
        format: int32
        example: 3221225472
      enforcement_limit:
        type: integer
        format: int32
        example: 15000
      generic_packages_max_file_size:
        type: integer
        format: int32
        example: 5368709120
      helm_max_file_size:
        type: integer
        format: int32
        example: 5242880
      limits_history:
        type: object
        example: |-
          {"enforcement_limit"=>[{"timestamp"=>1686909124, "user_id"=>1, "username"=>"x", "value"=>5}],
                             "notification_limit"=>[{"timestamp"=>1686909124, "user_id"=>2, "username"=>"y", "value"=>7}]}
      maven_max_file_size:
        type: integer
        format: int32
        example: 3221225472
      notification_limit:
        type: integer
        format: int32
        example: 15000
      npm_max_file_size:
        type: integer
        format: int32
        example: 524288000
      nuget_max_file_size:
        type: integer
        format: int32
        example: 524288000
      pipeline_hierarchy_size:
        type: integer
        format: int32
        example: 1000
      pypi_max_file_size:
        type: integer
        format: int32
        example: 3221225472
      terraform_module_max_file_size:
        type: integer
        format: int32
        example: 1073741824
      storage_size_limit:
        type: integer
        format: int32
        example: 15000
    description: API_Entities_PlanLimit model
  putApiV4ApplicationPlanLimits:
    type: object
    properties:
      plan_name:
        type: string
        description: Name of the plan to update
        enum:
        - default
        - free
        - bronze
        - silver
        - premium
        - gold
        - ultimate
        - ultimate_trial
        - ultimate_trial_paid_customer
        - premium_trial
        - opensource
      ci_instance_level_variables:
        type: integer
        format: int32
        description: Maximum number of Instance-level CI/CD variables that can be
          defined
      ci_pipeline_size:
        type: integer
        format: int32
        description: Maximum number of jobs in a single pipeline
      ci_active_jobs:
        type: integer
        format: int32
        description: Total number of jobs in currently active pipelines
      ci_project_subscriptions:
        type: integer
        format: int32
        description: Maximum number of pipeline subscriptions to and from a project
      ci_pipeline_schedules:
        type: integer
        format: int32
        description: Maximum number of pipeline schedules
      ci_needs_size_limit:
        type: integer
        format: int32
        description: Maximum number of needs dependencies that a job can have
      ci_registered_group_runners:
        type: integer
        format: int32
        description: Maximum number of runners registered per group
      ci_registered_project_runners:
        type: integer
        format: int32
        description: Maximum number of runners registered per project
      conan_max_file_size:
        type: integer
        format: int32
        description: Maximum Conan package file size in bytes
      enforcement_limit:
        type: integer
        format: int32
        description: Maximum storage size for the root namespace enforcement in MiB
      generic_packages_max_file_size:
        type: integer
        format: int32
        description: Maximum generic package file size in bytes
      helm_max_file_size:
        type: integer
        format: int32
        description: Maximum Helm chart file size in bytes
      maven_max_file_size:
        type: integer
        format: int32
        description: Maximum Maven package file size in bytes
      notification_limit:
        type: integer
        format: int32
        description: Maximum storage size for the root namespace notifications in
          MiB
      npm_max_file_size:
        type: integer
        format: int32
        description: Maximum NPM package file size in bytes
      nuget_max_file_size:
        type: integer
        format: int32
        description: Maximum NuGet package file size in bytes
      pypi_max_file_size:
        type: integer
        format: int32
        description: Maximum PyPI package file size in bytes
      terraform_module_max_file_size:
        type: integer
        format: int32
        description: Maximum Terraform Module package file size in bytes
      storage_size_limit:
        type: integer
        format: int32
        description: Maximum storage size for the root namespace in MiB
      pipeline_hierarchy_size:
        type: integer
        format: int32
        description: Maximum number of downstream pipelines in a pipeline's hierarchy
          tree
    required:
    - plan_name
    description: Change plan limits
  API_Entities_Appearance:
    type: object
    properties:
      title:
        type: string
      description:
        type: string
      pwa_name:
        type: string
      pwa_short_name:
        type: string
      pwa_description:
        type: string
      logo:
        type: string
      pwa_icon:
        type: string
      header_logo:
        type: string
      favicon:
        type: string
      new_project_guidelines:
        type: string
      member_guidelines:
        type: string
      profile_image_guidelines:
        type: string
      header_message:
        type: string
      footer_message:
        type: string
      message_background_color:
        type: string
      message_font_color:
        type: string
      email_header_and_footer_enabled:
        type: string
    description: API_Entities_Appearance model
  API_Entities_ApplicationStatistics:
    type: object
    properties:
      forks:
        type: integer
        format: int32
        example: 6
        description: Approximate number of repo forks
      issues:
        type: integer
        format: int32
        example: 121
        description: Approximate number of issues
      merge_requests:
        type: integer
        format: int32
        example: 49
        description: Approximate number of merge requests
      notes:
        type: integer
        format: int32
        example: 6
        description: Approximate number of notes
      snippets:
        type: integer
        format: int32
        example: 4
        description: Approximate number of snippets
      ssh_keys:
        type: integer
        format: int32
        example: 11
        description: Approximate number of SSH keys
      milestones:
        type: integer
        format: int32
        example: 3
        description: Approximate number of milestones
      users:
        type: integer
        format: int32
        example: 22
        description: Approximate number of users
      projects:
        type: integer
        format: int32
        example: 4
        description: Approximate number of projects
      groups:
        type: integer
        format: int32
        example: 1
        description: Approximate number of projects
      active_users:
        type: integer
        format: int32
        example: 21
        description: Number of active users
    description: API_Entities_ApplicationStatistics model
  postApiV4ImportBitbucket:
    type: object
    properties:
      bitbucket_username:
        type: string
        description: BitBucket username
      bitbucket_app_password:
        type: string
        description: BitBucket app password
      repo_path:
        type: string
        description: Repository path
      target_namespace:
        type: string
        description: Target namespace
      new_name:
        type: string
        description: New repository name
    required:
    - bitbucket_username
    - bitbucket_app_password
    - repo_path
    - target_namespace
    description: Import a BitBucket Cloud repository
  ProjectImportEntity:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: GitLab
      full_path:
        type: string
        example: gitlab-org/gitlab
      full_name:
        type: string
        example: GitLab Org / GitLab
      refs_url:
        type: string
      import_source:
        type: string
        example: source/source-repo
      import_status:
        type: string
        example: scheduled
        enum:
        - scheduled
        - started
        - finished
        - failed
        - canceled
      human_import_status_name:
        type: string
        example: canceled
      provider_link:
        type: string
        example: "/source/source-repo"
      import_error:
        type: string
      import_warning:
        type: string
      relation_type:
        type: string
    description: ProjectImportEntity model
  postApiV4ImportBitbucketServer:
    type: object
    properties:
      bitbucket_server_url:
        type: string
        description: Bitbucket Server URL
      bitbucket_server_username:
        type: string
        description: BitBucket Server Username
      personal_access_token:
        type: string
        description: BitBucket Server personal access token/password
      bitbucket_server_project:
        type: string
        description: BitBucket Server Project Key
      bitbucket_server_repo:
        type: string
        description: BitBucket Server Repository Name
      new_name:
        type: string
        description: New repo name
      new_namespace:
        type: string
        description: Namespace to import repo into
      timeout_strategy:
        type: string
        description: Strategy for behavior on timeouts
        enum:
        - optimistic
        - pessimistic
    required:
    - bitbucket_server_url
    - bitbucket_server_username
    - personal_access_token
    - bitbucket_server_project
    - bitbucket_server_repo
    description: Import a BitBucket Server repository
  ProjectEntity:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      name:
        type: string
        example: GitLab
      full_path:
        type: string
        example: gitlab-org/gitlab
      full_name:
        type: string
        example: GitLab Org / GitLab
      refs_url:
        type: string
    description: ProjectEntity model
  postApiV4ImportGithub:
    type: object
    properties:
      personal_access_token:
        type: string
        description: GitHub personal access token
      repo_id:
        type: integer
        format: int32
        description: GitHub repository ID
      new_name:
        type: string
        description: New repo name
      target_namespace:
        type: string
        description: Namespace or group to import repository into
      github_hostname:
        type: string
        description: Custom GitHub enterprise hostname
      optional_stages:
        type: object
        description: Optional stages of import to be performed
      timeout_strategy:
        type: string
        description: Strategy for behavior on timeouts
        enum:
        - optimistic
        - pessimistic
    required:
    - personal_access_token
    - repo_id
    - target_namespace
    description: Import a GitHub project
  postApiV4ImportGithubCancel:
    type: object
    properties:
      project_id:
        type: integer
        format: int32
        description: ID of importing project to be canceled
    required:
    - project_id
    description: Cancel GitHub project import
  postApiV4ImportGithubGists:
    type: object
    properties:
      personal_access_token:
        type: string
        description: GitHub personal access token
    required:
    - personal_access_token
    description: Import User Gists
  postApiV4SlackTrigger:
    type: object
    properties:
      text:
        type: string
        description: Text of the slack command
    required:
    - text
    description: Trigger a global slack command
  API_Entities_Metadata:
    type: object
    properties:
      version:
        type: string
        example: 15.2-pre
      revision:
        type: string
        example: c401a659d0c
      kas:
        type: object
        properties:
          enabled:
            type: boolean
          externalUrl:
            type: string
            example: grpc://gitlab.example.com:8150
          version:
            type: string
            example: 15.0.0
      enterprise:
        type: boolean
    description: API_Entities_Metadata model
  API_Entities_Projects_Topic:
    type: object
    properties:
      id:
        type: string
      name:
        type: string
      title:
        type: string
      description:
        type: string
      total_projects_count:
        type: string
      avatar_url:
        type: string
    description: API_Entities_Projects_Topic model
  API_Entities_Web_Commits:
    type: object
    properties:
      public_key:
        type: string
  postApiV4Topics:
    type: object
    properties:
      name:
        type: string
        description: Slug (name)
      title:
        type: string
        description: Title
      description:
        type: string
        description: Description
      avatar:
        type: file
        description: Avatar image for topic
    required:
    - name
    - title
    description: Create a topic
  putApiV4TopicsId:
    type: object
    properties:
      name:
        type: string
        description: Slug (name)
      title:
        type: string
        description: Title
      description:
        type: string
        description: Description
      avatar:
        type: file
        description: Avatar image for topic
    description: Update a topic
  postApiV4TopicsMerge:
    type: object
    properties:
      source_topic_id:
        type: integer
        format: int32
        description: ID of source project topic
      target_topic_id:
        type: integer
        format: int32
        description: ID of target project topic
    required:
    - source_topic_id
    - target_topic_id
    description: Merge topics
