GitLab CI/CD · Capability

GitLab API — deploy_resources

GitLab API — deploy_resources. 24 operations. Lead operation: List all deploy keys. Self-contained Naftiko capability covering one Gitlab Ci business surface.

Run with Naftiko Gitlab Cideploy_resources

What You Can Do

GET
Getapiv4deploykeys — List all deploy keys
/v1/api/v4/deploy-keys
POST
Postapiv4deploykeys — Create a deploy key
/v1/api/v4/deploy-keys
GET
Getapiv4deploytokens — List all deploy tokens
/v1/api/v4/deploy-tokens
GET
Getapiv4groupsiddeploytokens — List group deploy tokens
/v1/api/v4/groups/{id}/deploy-tokens
POST
Postapiv4groupsiddeploytokens — Create a group deploy token
/v1/api/v4/groups/{id}/deploy-tokens
GET
Getapiv4groupsiddeploytokenstokenid — Get a group deploy token
/v1/api/v4/groups/{id}/deploy-tokens/{token-id}
DELETE
Deleteapiv4groupsiddeploytokenstokenid — Delete a group deploy token
/v1/api/v4/groups/{id}/deploy-tokens/{token-id}
GET
Getapiv4projectsiddeploykeys — List deploy keys for project
/v1/api/v4/projects/{id}/deploy-keys
POST
Postapiv4projectsiddeploykeys — Add deploy key
/v1/api/v4/projects/{id}/deploy-keys
GET
Getapiv4projectsiddeploykeyskeyid — Get a single deploy key
/v1/api/v4/projects/{id}/deploy-keys/{key-id}
PUT
Putapiv4projectsiddeploykeyskeyid — Update deploy key
/v1/api/v4/projects/{id}/deploy-keys/{key-id}
DELETE
Deleteapiv4projectsiddeploykeyskeyid — Delete deploy key
/v1/api/v4/projects/{id}/deploy-keys/{key-id}
POST
Postapiv4projectsiddeploykeyskeyidenable — Enable a deploy key
/v1/api/v4/projects/{id}/deploy-keys/{key-id}/enable
GET
Getapiv4projectsiddeploytokens — List project deploy tokens
/v1/api/v4/projects/{id}/deploy-tokens
POST
Postapiv4projectsiddeploytokens — Create a project deploy token
/v1/api/v4/projects/{id}/deploy-tokens
GET
Getapiv4projectsiddeploytokenstokenid — Get a project deploy token
/v1/api/v4/projects/{id}/deploy-tokens/{token-id}
DELETE
Deleteapiv4projectsiddeploytokenstokenid — Delete a project deploy token
/v1/api/v4/projects/{id}/deploy-tokens/{token-id}
GET
Getapiv4projectsiddeployments — List project deployments
/v1/api/v4/projects/{id}/deployments
POST
Postapiv4projectsiddeployments — Create a deployment
/v1/api/v4/projects/{id}/deployments
GET
Getapiv4projectsiddeploymentsdeploymentid — Get a specific deployment
/v1/api/v4/projects/{id}/deployments/{deployment-id}
PUT
Putapiv4projectsiddeploymentsdeploymentid — Update a deployment
/v1/api/v4/projects/{id}/deployments/{deployment-id}
DELETE
Deleteapiv4projectsiddeploymentsdeploymentid — Delete a specific deployment
/v1/api/v4/projects/{id}/deployments/{deployment-id}
POST
Postapiv4projectsiddeploymentsdeploymentidapproval — Approve or reject a blocked deployment
/v1/api/v4/projects/{id}/deployments/{deployment-id}/approval
GET
Getapiv4projectsiddeploymentsdeploymentidmergerequests — List of merge requests associated with a deployment
/v1/api/v4/projects/{id}/deployments/{deployment-id}/merge-requests

MCP Tools

list-all-deploy-keys

List all deploy keys

read-only idempotent
create-deploy-key

Create a deploy key

list-all-deploy-tokens

List all deploy tokens

read-only idempotent
list-group-deploy-tokens

List group deploy tokens

read-only idempotent
create-group-deploy-token

Create a group deploy token

get-group-deploy-token

Get a group deploy token

read-only idempotent
delete-group-deploy-token

Delete a group deploy token

idempotent
list-deploy-keys-project

List deploy keys for project

read-only idempotent
add-deploy-key

Add deploy key

get-single-deploy-key

Get a single deploy key

read-only idempotent
update-deploy-key

Update deploy key

idempotent
delete-deploy-key

Delete deploy key

idempotent
enable-deploy-key

Enable a deploy key

list-project-deploy-tokens

List project deploy tokens

read-only idempotent
create-project-deploy-token

Create a project deploy token

get-project-deploy-token

Get a project deploy token

read-only idempotent
delete-project-deploy-token

Delete a project deploy token

idempotent
list-project-deployments

List project deployments

read-only idempotent
create-deployment

Create a deployment

get-specific-deployment

Get a specific deployment

read-only idempotent
update-deployment

Update a deployment

idempotent
delete-specific-deployment

Delete a specific deployment

idempotent
approve-reject-blocked-deployment

Approve or reject a blocked deployment

list-merge-requests-associated-deployment

List of merge requests associated with a deployment

read-only idempotent

Capability Spec

gitlab-ci-deploy-resources.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: GitLab API — deploy_resources
  description: 'GitLab API — deploy_resources. 24 operations. Lead operation: List all deploy keys. Self-contained Naftiko
    capability covering one Gitlab Ci business surface.'
  tags:
  - Gitlab Ci
  - deploy_resources
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    GITLAB_CI_API_KEY: GITLAB_CI_API_KEY
capability:
  consumes:
  - type: http
    namespace: gitlab-ci-deploy-resources
    baseUri: https://gitlab.com
    description: GitLab API — deploy_resources business capability. Self-contained, no shared references.
    resources:
    - name: api-v4-deploy_keys
      path: /api/v4/deploy_keys
      operations:
      - name: getapiv4deploykeys
        method: GET
        description: List all deploy keys
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: public
          in: query
          type: boolean
          description: Only return deploy keys that are public
      - name: postapiv4deploykeys
        method: POST
        description: Create a deploy key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: postApiV4DeployKeys
          in: body
          type: string
          required: true
    - name: api-v4-deploy_tokens
      path: /api/v4/deploy_tokens
      operations:
      - name: getapiv4deploytokens
        method: GET
        description: List all deploy tokens
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: active
          in: query
          type: boolean
          description: Limit by active status
    - name: api-v4-groups-id-deploy_tokens
      path: /api/v4/groups/{id}/deploy_tokens
      operations:
      - name: getapiv4groupsiddeploytokens
        method: GET
        description: List group deploy tokens
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: The ID or URL-encoded path of the group owned by the authenticated user
          required: true
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: active
          in: query
          type: boolean
          description: Limit by active status
      - name: postapiv4groupsiddeploytokens
        method: POST
        description: Create a group deploy token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: The ID or URL-encoded path of the group owned by the authenticated user
          required: true
        - name: postApiV4GroupsIdDeployTokens
          in: body
          type: string
          required: true
    - name: api-v4-groups-id-deploy_tokens-token_id
      path: /api/v4/groups/{id}/deploy_tokens/{token_id}
      operations:
      - name: getapiv4groupsiddeploytokenstokenid
        method: GET
        description: Get a group deploy token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: The ID or URL-encoded path of the group owned by the authenticated user
          required: true
        - name: token_id
          in: path
          type: integer
          description: The ID of the deploy token
          required: true
      - name: deleteapiv4groupsiddeploytokenstokenid
        method: DELETE
        description: Delete a group deploy token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: integer
          description: The ID or URL-encoded path of the group owned by the authenticated user
          required: true
        - name: token_id
          in: path
          type: integer
          description: The ID of the deploy token
          required: true
    - name: api-v4-projects-id-deploy_keys
      path: /api/v4/projects/{id}/deploy_keys
      operations:
      - name: getapiv4projectsiddeploykeys
        method: GET
        description: List deploy keys for project
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
      - name: postapiv4projectsiddeploykeys
        method: POST
        description: Add deploy key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: postApiV4ProjectsIdDeployKeys
          in: body
          type: string
          required: true
    - name: api-v4-projects-id-deploy_keys-key_id
      path: /api/v4/projects/{id}/deploy_keys/{key_id}
      operations:
      - name: getapiv4projectsiddeploykeyskeyid
        method: GET
        description: Get a single deploy key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: key_id
          in: path
          type: integer
          description: The ID of the deploy key
          required: true
      - name: putapiv4projectsiddeploykeyskeyid
        method: PUT
        description: Update deploy key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: key_id
          in: path
          type: integer
          description: The ID of the deploy key
          required: true
        - name: putApiV4ProjectsIdDeployKeysKeyId
          in: body
          type: string
          required: true
      - name: deleteapiv4projectsiddeploykeyskeyid
        method: DELETE
        description: Delete deploy key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: key_id
          in: path
          type: integer
          description: The ID of the deploy key
          required: true
    - name: api-v4-projects-id-deploy_keys-key_id-enable
      path: /api/v4/projects/{id}/deploy_keys/{key_id}/enable
      operations:
      - name: postapiv4projectsiddeploykeyskeyidenable
        method: POST
        description: Enable a deploy key
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: key_id
          in: path
          type: integer
          description: The ID of the deploy key
          required: true
    - name: api-v4-projects-id-deploy_tokens
      path: /api/v4/projects/{id}/deploy_tokens
      operations:
      - name: getapiv4projectsiddeploytokens
        method: GET
        description: List project deploy tokens
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: active
          in: query
          type: boolean
          description: Limit by active status
      - name: postapiv4projectsiddeploytokens
        method: POST
        description: Create a project deploy token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: postApiV4ProjectsIdDeployTokens
          in: body
          type: string
          required: true
    - name: api-v4-projects-id-deploy_tokens-token_id
      path: /api/v4/projects/{id}/deploy_tokens/{token_id}
      operations:
      - name: getapiv4projectsiddeploytokenstokenid
        method: GET
        description: Get a project deploy token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: token_id
          in: path
          type: integer
          description: The ID of the deploy token
          required: true
      - name: deleteapiv4projectsiddeploytokenstokenid
        method: DELETE
        description: Delete a project deploy token
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: token_id
          in: path
          type: integer
          description: The ID of the deploy token
          required: true
    - name: api-v4-projects-id-deployments
      path: /api/v4/projects/{id}/deployments
      operations:
      - name: getapiv4projectsiddeployments
        method: GET
        description: List project deployments
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: order_by
          in: query
          type: string
          description: Return deployments ordered by either one of `id`, `iid`, `created_at`, `updated_at` or `ref` fields.
            Default is `id`
        - name: sort
          in: query
          type: string
          description: Return deployments sorted in `asc` or `desc` order. Default is `asc`
        - name: updated_after
          in: query
          type: string
          description: Return deployments updated after the specified date. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`)
        - name: updated_before
          in: query
          type: string
          description: Return deployments updated before the specified date. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`)
        - name: finished_after
          in: query
          type: string
          description: Return deployments finished after the specified date. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`)
        - name: finished_before
          in: query
          type: string
          description: Return deployments finished before the specified date. Expected in ISO 8601 format (`2019-03-15T08:00:00Z`)
        - name: environment
          in: query
          type: string
          description: The name of the environment to filter deployments by
        - name: status
          in: query
          type: string
          description: The status to filter deployments by. One of `created`, `running`, `success`, `failed`, `canceled`,
            or `blocked`
      - name: postapiv4projectsiddeployments
        method: POST
        description: Create a deployment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: postApiV4ProjectsIdDeployments
          in: body
          type: string
          required: true
    - name: api-v4-projects-id-deployments-deployment_id
      path: /api/v4/projects/{id}/deployments/{deployment_id}
      operations:
      - name: getapiv4projectsiddeploymentsdeploymentid
        method: GET
        description: Get a specific deployment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: deployment_id
          in: path
          type: integer
          description: The ID of the deployment
          required: true
      - name: putapiv4projectsiddeploymentsdeploymentid
        method: PUT
        description: Update a deployment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: deployment_id
          in: path
          type: integer
          required: true
        - name: putApiV4ProjectsIdDeploymentsDeploymentId
          in: body
          type: string
          required: true
      - name: deleteapiv4projectsiddeploymentsdeploymentid
        method: DELETE
        description: Delete a specific deployment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: deployment_id
          in: path
          type: integer
          description: The ID of the deployment
          required: true
    - name: api-v4-projects-id-deployments-deployment_id-approval
      path: /api/v4/projects/{id}/deployments/{deployment_id}/approval
      operations:
      - name: postapiv4projectsiddeploymentsdeploymentidapproval
        method: POST
        description: Approve or reject a blocked deployment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: deployment_id
          in: path
          type: integer
          description: The ID of the deployment
          required: true
        - name: postApiV4ProjectsIdDeploymentsDeploymentIdApproval
          in: body
          type: string
          required: true
    - name: api-v4-projects-id-deployments-deployment_id-merge_requests
      path: /api/v4/projects/{id}/deployments/{deployment_id}/merge_requests
      operations:
      - name: getapiv4projectsiddeploymentsdeploymentidmergerequests
        method: GET
        description: List of merge requests associated with a deployment
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: id
          in: path
          type: string
          description: The ID or URL-encoded path of the project owned by the authenticated user
          required: true
        - name: page
          in: query
          type: integer
          description: Current page number
        - name: per_page
          in: query
          type: integer
          description: Number of items per page
        - name: deployment_id
          in: path
          type: integer
          description: The ID of the deployment
          required: true
        - name: author_id
          in: query
          type: integer
          description: Returns merge requests created by the given user `id`. Mutually exclusive with `author_username`. Combine
            with `scope=all` or `scope=assigned_to_me`.
        - name: author_username
          in: query
          type: string
          description: Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.
        - name: assignee_id
          in: query
          type: integer
          description: Returns merge requests assigned to the given user `id`. `None` returns unassigned merge requests. `Any`
            returns merge requests with an assignee.
        - name: assignee_username
          in: query
          type: array
          description: Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.
        - name: reviewer_username
          in: query
          type: string
          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 request
        - name: labels
          in: query
          type: array
          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 o
        - name: milestone
          in: query
          type: string
          description: Returns merge requests for a specific milestone. `None` returns merge requests with no milestone. `Any`
            returns merge requests that have an assigned milestone.
        - name: my_reaction_emoji
          in: query
          type: string
          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 o
        - name: reviewer_id
          in: query
          type: integer
          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
        - name: state
          in: query
          type: string
          description: Returns `all` merge requests or just those that are `opened`, `closed`, `locked`, or `merged`.
        - name: order_by
          in: query
          type: string
          description: Returns merge requests ordered by `created_at`, `label_priority`, `milestone_due`, `popularity`, `priority`,
            `title`, `updated_at` or `merged_at` fields. Introd
        - name: sort
          in: query
          type: string
          description: Returns merge requests sorted in `asc` or `desc` order.
        - name: with_labels_details
          in: query
          type: boolean
          description: 'If `true`, response returns more details for each label in labels field: `:name`,`:color`, `:description`,
            `:description_html`, `:text_color`'
        - name: with_merge_status_recheck
          in: query
          type: boolean
          description: If `true`, this projection requests (but does not guarantee) that the `merge_status` field be recalculated
            asynchronously. Introduced in GitLab 13.0.
        - name: created_after
          in: query
          type: string
          description: Returns merge requests created on or after the given time. Expected in ISO 8601 format.
        - name: created_before
          in: query
          type: string
          description: Returns merge requests created on or before the given time. Expected in ISO 8601 format.
        - name: updated_after
          in: query
          type: string
          description: Returns merge requests updated on or after the given time. Expected in ISO 8601 format.
        - name: updated_before
          in: query
          type: string
          description: Returns merge requests updated on or before the given time. Expected in ISO 8601 format.
        - name: view
          in: query
          type: string
          description: If simple, returns the `iid`, URL, title, description, and basic state of merge request
        - name: scope
          in: query
          type: string
          description: 'Returns merge requests for the given scope: `created_by_me`, `assigned_to_me`, `reviews_for_me` or
            `all`'
        - name: source_branch
          in: query
          type: string
          description: Returns merge requests with the given source branch
        - name: source_project_id
          in: query
          type: integer
          description: Returns merge requests with the given source project id
        - name: target_branch
          in: query
          type: string
          description: Returns merge requests with the given target branch
        - name: search
          in: query
          type: string
          description: Search merge requests against their `title` and `description`.
        - name: in
          in: query
          type: string
          description: Modify the scope of the search attribute. `title`, `description`, or a string joining them with comma.
        - name: wip
          in: query
          type: string
          description: Deprecated. Use `draft` instead. Filter merge requests against their `wip` status. `yes` to return
            only draft merge requests, `no` to return non-draft merge req
        - name: draft
          in: query
          type: boolean
          description: Filter merge requests against their `draft` status. `true` to return only draft merge requests, `false`
            to return non-draft merge requests.
        - name: not[author_id]
          in: query
          type: integer
          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`'
        - name: not[author_username]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.'
        - name: not[assignee_id]
          in: query
          type: integer
          description: '`<Negated>` Returns merge requests assigned to the given user `id`. `None` returns unassigned merge
            requests. `Any` returns merge requests with an assignee.'
        - name: not[assignee_username]
          in: query
          type: array
          description: '`<Negated>` Returns merge requests created by the given `username`. Mutually exclusive with `author_id`.'
        - name: not[reviewer_username]
          in: query
          type: string
          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 m'
        - name: not[labels]
          in: query
          type: array
          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 wit'
        - name: not[milestone]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests for a specific milestone. `None` returns merge requests with no
            milestone. `Any` returns merge requests that have an assigned'
        - name: not[my_reaction_emoji]
          in: query
          type: string
          description: '`<Negated>` Returns merge requests reacted by the authenticated user by the given `emoji`. `None`
            returns issues not given a reaction. `Any` returns issues give'
        - name: not[reviewer_id]
          in: query
          type: integer
          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 me'
        - name: deployed_before
          in: query
          type: string
          description: Returns merge requests deployed before the given date/time. Expected in ISO 8601 format.
        - name: deployed_after
          in: query
          type: string
          description: Returns merge requests deployed after the given date/time. Expected in ISO 8601 format
        - name: environment
          in: query
          type: string
          description: Returns merge requests deployed to the given environment
        - name: approved
          in: query
          type: string
          description: Filters merge requests by their `approved` status. `yes` returns only approved merge requests. `no`
            returns only non-approved merge requests.
        - name: merge_user_id
          in: query
          type: integer
          description: Returns merge requests which have been merged by the user with the given user `id`. Mutually exclusive
            with `merge_user_username`.
        - name: merge_user_username
          in: query
          type: string
          description: Returns merge requests which have been merged by the user with the given `username`. Mutually exclusive
            with `merge_user_id`.
  exposes:
  - type: rest
    namespace: gitlab-ci-deploy-resources-rest
    port: 8080
    description: REST adapter for GitLab API — deploy_resources. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/api/v4/deploy-keys
      name: api-v4-deploy-keys
      description: REST surface for api-v4-deploy_keys.
      operations:
      - method: GET
        name: getapiv4deploykeys
        description: List all deploy keys
        call: gitlab-ci-deploy-resources.getapiv4deploykeys
        with:
          page: rest.page
          per_page: rest.per_page
          public: rest.public
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postapiv4deploykeys
        description: Create a deploy key
        call: gitlab-ci-deploy-resources.postapiv4deploykeys
        with:
          postApiV4DeployKeys: rest.postApiV4DeployKeys
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v4/deploy-tokens
      name: api-v4-deploy-tokens
      description: REST surface for api-v4-deploy_tokens.
      operations:
      - method: GET
        name: getapiv4deploytokens
        description: List all deploy tokens
        call: gitlab-ci-deploy-resources.getapiv4deploytokens
        with:
          page: rest.page
          per_page: rest.per_page
          active: rest.active
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v4/groups/{id}/deploy-tokens
      name: api-v4-groups-id-deploy-tokens
      description: REST surface for api-v4-groups-id-deploy_tokens.
      operations:
      - method: GET
        name: getapiv4groupsiddeploytokens
        description: List group deploy tokens
        call: gitlab-ci-deploy-resources.getapiv4groupsiddeploytokens
        with:
          id: rest.id
          page: rest.page
          per_page: rest.per_page
          active: rest.active
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postapiv4groupsiddeploytokens
        description: Create a group deploy token
        call: gitlab-ci-deploy-resources.postapiv4groupsiddeploytokens
        with:
          id: rest.id
          postApiV4GroupsIdDeployTokens: rest.postApiV4GroupsIdDeployTokens
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v4/groups/{id}/deploy-tokens/{token-id}
      name: api-v4-groups-id-deploy-tokens-token-id
      description: REST surface for api-v4-groups-id-deploy_tokens-token_id.
      operations:
      - method: GET
        name: getapiv4groupsiddeploytokenstokenid
        description: Get a group deploy token
        call: gitlab-ci-deploy-resources.getapiv4groupsiddeploytokenstokenid
        with:
          id: rest.id
          token_id: rest.token_id
        outputParameters:
        - type: object
          mapping: $.
      - method: DELETE
        name: deleteapiv4groupsiddeploytokenstokenid
        description: Delete a group deploy token
        call: gitlab-ci-deploy-resources.deleteapiv4groupsiddeploytokenstokenid
        with:
          id: rest.id
          token_id: rest.token_id
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v4/projects/{id}/deploy-keys
      name: api-v4-projects-id-deploy-keys
      description: REST surface for api-v4-projects-id-deploy_keys.
      operations:
      - method: GET
        name: getapiv4projectsiddeploykeys
        description: List deploy keys for project
        call: gitlab-ci-deploy-resources.getapiv4projectsiddeploykeys
        with:
          id: rest.id
          page: rest.page
          per_page: rest.per_page
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: postapiv4projectsiddeploykeys
        description: Add deploy key
        call: gitlab-ci-deploy-resources.postapiv4projectsiddeploykeys
        with:
          id: rest.id
          postApiV4ProjectsIdDeployKeys: rest.postApiV4ProjectsIdDeployKeys
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/api/v4/projects/{id}/deploy-keys/{key-id}
      name: api-v4-projects-id-deploy-keys-key-id
      description: REST surface for api-v4-projects-id-deploy_keys-key_id.
      operations:
      - method: GET
        name: getapiv4projectsiddeploykeyskeyid
        description: Get a single deploy key
        call: gitlab-ci-deploy-resources.getapiv4projectsiddeploykeyskeyid
        with:
          id: rest.id
          key_id: rest.key_id
        outputParameters:
        - type

# --- truncated at 32 KB (52 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/gitlab-ci/refs/heads/main/capabilities/gitlab-ci-deploy-resources.yaml