GitLab CI/CD keys API

Operations about keys

OpenAPI Specification

gitlab-ci-keys-api-openapi.yml Raw ↑
swagger: '2.0'
info:
  title: GitLab access_requests keys API
  version: v4
  description: Operations related to access requests
host: gitlab.com
produces:
- application/json
tags:
- name: keys
  description: Operations about keys
paths:
  /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/API_Entities_SshCertificate'
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: 404 Not Found
      tags:
      - keys
      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/API_Entities_SshCertificate'
        '400':
          description: Bad request
        '401':
          description: Unauthorized
        '403':
          description: Forbidden
        '404':
          description: Not found
      tags:
      - keys
      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:
      - keys
      operationId: deleteApiV4GroupsIdSshCertificatesSshCertificatesId
  /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\\\n        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\\\n        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
definitions:
  API_Entities_CustomAttribute:
    type: object
    properties:
      key:
        type: string
        example: foo
      value:
        type: string
        example: bar
    required:
    - key
    - value
    description: API_Entities_CustomAttribute model
  API_Entities_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'
      last_used_at:
        type: string
        format: date-time
        example: '2020-09-03T07:24:44.627Z'
      key:
        type: string
        example: "ssh-rsa AAAAB3NzaC1yc2EAAAABJQAAAIEAiPWx6WM4lhHNedGfBpPJNPpZ7yKu+dnn1SJejgt1256k6Yjz\\\n      GGphH2TUxwKzxcKDKKezwkpfnxPkSMkuEspGRt/aZZ9wa++Oi7Qkr8prgHc4soW6NUlfDzpvZK2H5E7eQaSeP3SAwGmQKUFHCdd\\\n      NaP0L+hM7zhFNzjFvpaMgJw0="
      usage_type:
        type: string
        example: auth
      user:
        $ref: '#/definitions/API_Entities_UserPublic'
    required:
    - id
    - title
    - created_at
    - expires_at
    - last_used_at
    - key
    - usage_type
    - user
    description: API_Entities_SSHKeyWithUser model
  API_Entities_UserWithAdmin:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      username:
        type: string
        example: admin
      public_email:
        type: string
        example: john@example.com
      name:
        type: string
        example: Administrator
      state:
        type: string
        example: active
      locked:
        type: boolean
      avatar_url:
        type: string
        example: https://gravatar.com/avatar/1
      avatar_path:
        type: string
        example: /user/avatar/28/The-Big-Lebowski-400-400.png
      custom_attributes:
        type: array
        items:
          $ref: '#/definitions/API_Entities_CustomAttribute'
      web_url:
        type: string
        example: https://gitlab.example.com/root
      created_at:
        type: string
      bio:
        type: string
      location:
        type: string
      linkedin:
        type: string
      twitter:
        type: string
      discord:
        type: string
      website_url:
        type: string
      github:
        type: string
      job_title:
        type: string
      pronouns:
        type: string
      organization:
        type: string
      bot:
        type: boolean
      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: boolean
      private_profile:
        type: boolean
        example: false
      commit_email:
        type: string
      preferred_language:
        type: string
        example: en
      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'
      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
    required:
    - id
    - username
    - public_email
    - name
    - state
    - locked
    - avatar_url
    - web_url
    - bio
    - location
    - linkedin
    - twitter
    - discord
    - website_url
    - github
    - job_title
    - pronouns
    - organization
    - bot
    - work_information
    - local_time
    - last_sign_in_at
    - confirmed_at
    - last_activity_on
    - email
    - theme_id
    - color_scheme_id
    - projects_limit
    - current_sign_in_at
    - identities
    - can_create_group
    - can_create_project
    - two_factor_enabled
    - external
    - private_profile
    - commit_email
    - preferred_language
    - shared_runners_minutes_limit
    - extra_shared_runners_minutes_limit
    - scim_identities
    - is_admin
    - note
    - namespace_id
    - created_by
    - using_license_seat
    description: API_Entities_UserWithAdmin model
  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'
    required:
    - id
    - title
    - key
    - created_at
    description: 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_UserBasic:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      username:
        type: string
        example: admin
      public_email:
        type: string
        example: john@example.com
      name:
        type: string
        example: Administrator
      state:
        type: string
        example: active
      locked:
        type: boolean
      avatar_url:
        type: string
        example: https://gravatar.com/avatar/1
      avatar_path:
        type: string
        example: /user/avatar/28/The-Big-Lebowski-400-400.png
      custom_attributes:
        type: array
        items:
          $ref: '#/definitions/API_Entities_CustomAttribute'
      web_url:
        type: string
        example: https://gitlab.example.com/root
    required:
    - id
    - username
    - public_email
    - name
    - state
    - locked
    - avatar_url
    - web_url
    description: API_Entities_UserBasic model
  API_Entities_Identity:
    type: object
    properties:
      provider:
        type: string
      extern_uid:
        type: string
      saml_provider_id:
        type: string
    required:
    - provider
    - extern_uid
    - saml_provider_id
  API_Entities_UserPublic:
    type: object
    properties:
      id:
        type: integer
        format: int32
        example: 1
      username:
        type: string
        example: admin
      public_email:
        type: string
        example: john@example.com
      name:
        type: string
        example: Administrator
      state:
        type: string
        example: active
      locked:
        type: boolean
      avatar_url:
        type: string
        example: https://gravatar.com/avatar/1
      avatar_path:
        type: string
        example: /user/avatar/28/The-Big-Lebowski-400-400.png
      custom_attributes:
        type: array
        items:
          $ref: '#/definitions/API_Entities_CustomAttribute'
      web_url:
        type: string
        example: https://gitlab.example.com/root
      created_at:
        type: string
      bio:
        type: string
      location:
        type: string
      linkedin:
        type: string
      twitter:
        type: string
      discord:
        type: string
      website_url:
        type: string
      github:
        type: string
      job_title:
        type: string
      pronouns:
        type: string
      organization:
        type: string
      bot:
        type: boolean
      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: boolean
      private_profile:
        type: boolean
        example: false
      commit_email:
        type: string
      preferred_language:
        type: string
        example: en
      shared_runners_minutes_limit:
        type: string
      extra_shared_runners_minutes_limit:
        type: string
      scim_identities:
        $ref: '#/definitions/API_Entities_ScimIdentity'
    required:
    - id
    - username
    - public_email
    - name
    - state
    - locked
    - avatar_url
    - web_url
    - bio
    - location
    - linkedin
    - twitter
    - discord
    - website_url
    - github
    - job_title
    - pronouns
    - organization
    - bot
    - work_information
    - local_time
    - last_sign_in_at
    - confirmed_at
    - last_activity_on
    - email
    - theme_id
    - color_scheme_id
    - projects_limit
    - current_sign_in_at
    - identities
    - can_create_group
    - can_create_project
    - two_factor_enabled
    - external
    - private_profile
    - commit_email
    - preferred_language
    - shared_runners_minutes_limit
    - extra_shared_runners_minutes_limit
    - scim_identities
    description: API_Entities_UserPublic model
  API_Entities_ScimIdentity:
    type: object
    properties:
      extern_uid:
        type: string
      group_id:
        type: string
      active:
        type: string
    required:
    - extern_uid
    - group_id
    - active
securityDefinitions:
  access_token_header:
    type: apiKey
    name: PRIVATE-TOKEN
    in: header
  access_token_query:
    type: apiKey
    name: private_token
    in: query