STACKIT Keypairs API

The Keypairs API from STACKIT — 4 operation(s) for keypairs.

Operations 10

GET /v1/keypairs List all SSH keypairs for the requesting user #
POST /v1/keypairs Import a public key #
DELETE /v1/keypairs/{keypairName} Delete an SSH keypair #
GET /v1/keypairs/{keypairName} Get SSH keypair details #
PATCH /v1/keypairs/{keypairName} Update information of an SSH keypair #
GET /v2/keypairs List all SSH keypairs for the requesting user #
POST /v2/keypairs Import a public key #
DELETE /v2/keypairs/{keypairName} Delete an SSH keypair #
GET /v2/keypairs/{keypairName} Get SSH keypair details #
PATCH /v2/keypairs/{keypairName} Update information of an SSH keypair #

Specifications

Schemas & Data

📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-load-balancer-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-load-balancer-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-load-balancer-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-quota-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-target-pool-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-target-pool-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-wafpayload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-wafpayload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-wafresponse-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-patch-managed-rule-set-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-managed-rule-set-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-custom-rule-group-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-members-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-members-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-role-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-add-role-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-add-custom-role-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-roles-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-volume-automation-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-volume-execution-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-volume-template-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-partial-update-volume-automation-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-automations-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-executions-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-distribution-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-logs-search-filters-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-put-custom-domain-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-put-custom-domain-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-custom-domain-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-cache-info-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-certificate-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-certificate-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-certificates-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-delete-certificate-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-project-cost-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-zone-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-partial-update-zone-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-record-set-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-clone-zone-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-partial-update-record-set-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-move-zone-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-dremio-user-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-dremio-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-dremio-user-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-dremio-instance-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-dremio-instance-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-dremio-users-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-instance-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-instance-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-kubernetes-release-list-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-instance-by-name-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-instance-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-instance-list-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-revision-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-function-revision-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-function-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-function-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-pull-credential-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-pull-credential-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-authentication-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-server-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-route-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-nic-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-nic-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-image-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-image-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-intake-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-intake-runner-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-intake-user-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-intake-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-intake-runner-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-intake-user-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-key-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-wrapping-key-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-version-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-key-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-key-ring-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-wrapping-key-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-upload-iplist-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-iplist-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-iplists-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-delete-iplist-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-metrics-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-updates-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-updates-settings-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-updates-settings-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-logs-instance-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-access-token-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-logs-instance-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-logs-instance-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-access-token-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-access-policy-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-instance-token-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-partial-update-instance-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-partial-update-instance-token-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-instance-tokens-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-instances-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-token-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-partial-update-token-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-models-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-token-resp-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-embeddings-model-resp-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-chat-model-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-user-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-user-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-user-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-access-key-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-project-status-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-default-retention-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-delete-credentials-group-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-delete-access-key-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-alert-configs-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-scrape-config-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-scrape-config-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-alert-config-route-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-alert-config-route-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-alert-config-receiver-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-search-skus-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-public-sku-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-public-marketing-data-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-public-product-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-public-category-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-meta-information-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-instance-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-topic-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-subscription-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-subscription-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-topic-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-subscription-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-topic-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-artifactory-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-artifactory-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-replication-adapter-list-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-artifactory-list-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-patch-artifactory-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-organizations-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-folders-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-project-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-project-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-organization-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-folder-details-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-command-details-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-command-template-schema-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-command-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-command-template-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-get-commands-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-new-command-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-application-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-application-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-update-application-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-create-environment-payload-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-environment-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-list-applications-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-quota-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-organization-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-org-manager-response-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-org-manager-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-space-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-platforms-schema.json
📊
JSONSchema
https://artifacts.apis.io/stackit/json-schema/stackit-approle-schema.json

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/stackit:stackit-keypairs-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

stackit-keypairs-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Stackit Keypairs API
  contact:
    email: stackit-iaas@mail.schwarz
    name: STACKIT IaaS Teams
    url: https://support.stackit.cloud/servicedesk
  termsOfService: https://stackit.de/en/imprint
  x-refined-note:
  - x-source differs across the merged source definitions and was not carried
  version: '1.0'
  description: 'Operations tagged Keypairs across 3 of this provider''s published API definitions: stackit-iaas-v1.json, stackit-iaas-v2.json, stackit-iaas-openapi.yml. Each path carries the servers of the definition it was published in.'
servers:
- url: https://iaas.api.{region}stackit.cloud
  variables:
    region:
      default: eu01.
      enum:
      - eu01.
- url: https://iaas.api.stackit.cloud
  variables:
    region:
      default: global
tags:
- name: Keypairs
paths:
  /v1/keypairs:
    get:
      deprecated: true
      description: Get a list of all SSH keypairs assigned to the requesting user.
      operationId: ListKeyPairs
      parameters:
      - $ref: '#/components/parameters/v1LabelSelector'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeyPairListResponse'
          description: List SSH keypairs.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: List all SSH keypairs for the requesting user
      x-stackit-authorization:
        disabled: true
      tags:
      - Keypairs
    post:
      deprecated: true
      description: Import a new public key for the requesting user based on provided public key material. The creation will fail if an SSH keypair with the same name already exists. If a name is not provided it is autogenerated form the ssh-pubkey comment section. If that is also not present it will be the the MD5 fingerprint of the key. For autogenerated names invalid characters will be removed. Supported keypair types are ecdsa, ed25519 and rsa.
      operationId: CreateKeyPair
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateKeyPairPayload'
        description: Request a public key import.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Keypair'
          description: Import of the public key was successful.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Import a public key
      x-stackit-authorization:
        disabled: true
      tags:
      - Keypairs
    servers:
    - url: https://iaas.api.{region}stackit.cloud
      variables:
        region:
          default: eu01.
          enum:
          - eu01.
  /v1/keypairs/{keypairName}:
    parameters:
    - $ref: '#/components/parameters/v1KeypairName'
    delete:
      deprecated: true
      description: Delete an SSH keypair from a user.
      operationId: DeleteKeyPair
      responses:
        '204':
          description: Delete request for an SSH keypair was accepted.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Delete an SSH keypair
      x-stackit-authorization:
        disabled: true
      tags:
      - Keypairs
    get:
      deprecated: true
      description: Get details about an SSH keypair.
      operationId: GetKeyPair
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Keypair'
          description: Show SSH keypair details.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get SSH keypair details
      x-stackit-authorization:
        disabled: true
      tags:
      - Keypairs
    patch:
      deprecated: true
      description: Update labels of the SSH keypair.
      operationId: UpdateKeyPair
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateKeyPairPayload'
        description: Request an update of an SSH keypair.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Keypair'
          description: SSH keypair has been updated.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Update information of an SSH keypair
      x-stackit-authorization:
        disabled: true
      tags:
      - Keypairs
    servers:
    - url: https://iaas.api.{region}stackit.cloud
      variables:
        region:
          default: eu01.
          enum:
          - eu01.
  /v2/keypairs:
    get:
      description: Get a list of all SSH keypairs assigned to the requesting user.
      operationId: getV2Keypairs
      parameters:
      - $ref: '#/components/parameters/v1LabelSelector'
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/KeyPairListResponse'
          description: List SSH keypairs.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: List all SSH keypairs for the requesting user
      x-stackit-authorization:
        disabled: true
      tags:
      - Keypairs
      x-operation-id-source: normalized
      x-operation-id-original: ListKeyPairs
    post:
      description: Import a new public key for the requesting user based on provided public key material. The creation will fail if an SSH keypair with the same name already exists. If a name is not provided it is autogenerated form the ssh-pubkey comment section. If that is also not present it will be the the MD5 fingerprint of the key. For autogenerated names invalid characters will be removed.
      operationId: postV2Keypairs
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateKeyPairPayload'
        description: Request a public key import.
        required: true
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Keypair'
          description: Import of the public key was successful.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '409':
          $ref: '#/components/responses/Conflict'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Import a public key
      x-stackit-authorization:
        disabled: true
      tags:
      - Keypairs
      x-operation-id-source: normalized
      x-operation-id-original: CreateKeyPair
    servers:
    - url: https://iaas.api.stackit.cloud
      variables:
        region:
          default: global
  /v2/keypairs/{keypairName}:
    parameters:
    - $ref: '#/components/parameters/v1KeypairName'
    delete:
      description: Delete an SSH keypair from a user.
      operationId: deleteV2KeypairsByKeypairName
      responses:
        '204':
          description: Delete request for an SSH keypair was accepted.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Delete an SSH keypair
      x-stackit-authorization:
        disabled: true
      tags:
      - Keypairs
      x-operation-id-source: normalized
      x-operation-id-original: DeleteKeyPair
    get:
      description: Get details about an SSH keypair.
      operationId: getV2KeypairsByKeypairName
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Keypair'
          description: Show SSH keypair details.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Get SSH keypair details
      x-stackit-authorization:
        disabled: true
      tags:
      - Keypairs
      x-operation-id-source: normalized
      x-operation-id-original: GetKeyPair
    patch:
      description: Update labels of the SSH keypair.
      operationId: patchV2KeypairsByKeypairName
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateKeyPairPayload'
        description: Request an update of an SSH keypair.
        required: true
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Keypair'
          description: SSH keypair has been updated.
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '500':
          $ref: '#/components/responses/InternalServerError'
      summary: Update information of an SSH keypair
      x-stackit-authorization:
        disabled: true
      tags:
      - Keypairs
      x-operation-id-source: normalized
      x-operation-id-original: UpdateKeyPair
    servers:
    - url: https://iaas.api.stackit.cloud
      variables:
        region:
          default: global
components:
  schemas:
    SSHPublicKey:
      description: Object that represents a public SSH key.
      example: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIDsPd27M449akqCtdFg2+AmRVJz6eWio0oMP9dVg7Xe
      pattern: ^(ssh-rsa|ssh-ed25519|ecdsa-sha2-nistp(256|384|521))\s+[A-Za-z0-9+/]+[=]{0,3}(\s+.+)?\s*$
      type: string
    Keypair:
      description: Object that represents the public key of an SSH keypair and its name.
      properties:
        createdAt:
          allOf:
          - $ref: '#/components/schemas/CreatedAt'
          readOnly: true
        fingerprint:
          allOf:
          - $ref: '#/components/schemas/KeyPairFingerprint'
          readOnly: true
        labels:
          $ref: '#/components/schemas/Labels'
        name:
          $ref: '#/components/schemas/KeyPairName'
        publicKey:
          $ref: '#/components/schemas/SSHPublicKey'
        updatedAt:
          allOf:
          - $ref: '#/components/schemas/UpdatedAt'
          readOnly: true
      required:
      - publicKey
      type: object
    KeyPairFingerprint:
      description: Object that represents an SSH keypair MD5 fingerprint.
      example: de:ad:be:ef:de:ad:be:ef:de:ad:be:ef:de:ad:be:ef
      maxLength: 47
      minLength: 47
      pattern: ^([0-9A-Fa-f]{2}[:-]){15}([0-9A-Fa-f]{2})$
      type: string
    UpdatedAt:
      description: Date-time when resource was last updated.
      example: '2017-07-21T17:32:28Z'
      format: date-time
      type: string
    UpdateKeyPairPayload:
      description: Object that represents an update request body of a public key of an SSH keypair.
      properties:
        labels:
          $ref: '#/components/schemas/Labels'
      type: object
    KeyPairName:
      description: 'The name of an SSH keypair. Allowed characters are letters [a-zA-Z], digits [0-9] and the following special characters: [@._-].'
      example: schluesselbaer26
      maxLength: 127
      pattern: ^[A-Za-z0-9@._-]*$
      type: string
    Error:
      description: Error with HTTP error code and an error message.
      properties:
        code:
          example: 404
          format: int64
          type: integer
          x-stackit-logging: true
        msg:
          $ref: '#/components/schemas/errorMessage'
      required:
      - code
      - msg
      type: object
    errorMessage:
      description: An error message.
      example: Project not found
      type: string
    Labels:
      description: 'Object that represents the labels as key-value pairs of a resource.

        Key constraints: - May contain an optional domain prefix separated by a slash (`/`). - Domain prefix must be less than or equal to 250 characters. - Domain prefix must ba a valid DNS subdomain containing only lowercase alphanumerics (`[a-z0-9]`) and dashes (`-`), separated by dots (`.`). - Length (excluding the domain prefix) must be between 1 and 63 characters. - Must begin and end with an alphanumerical character (`[a-z0-9A-Z]`). - May contain dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics in between. - Keys starting with the prefix `stackit-` or having a domain prefix of `stackit.cloud` (including its subdomains, e.g., `*.stackit.cloud/`) are reserved for system use.

        Value constraints: - Must be less than or equal to 63 characters long (can be empty). - If not empty it must begin and end with an alphanumeric character (`[a-z0-9A-Z]`). - May contain dashes (`-`), underscores (`_`), dots (`.`), and alphanumerics in between.

        A resource can have a maximum of 64 labels. Reserved labels are excluded from this count. Providing a `null` value for a key will remove that key.'
      example:
        key: value
      format: json
      type: object
    CreateKeyPairPayload:
      description: Object that represents the public key of an SSH keypair and its name.
      properties:
        createdAt:
          allOf:
          - $ref: '#/components/schemas/CreatedAt'
          readOnly: true
        fingerprint:
          allOf:
          - $ref: '#/components/schemas/KeyPairFingerprint'
          readOnly: true
        labels:
          $ref: '#/components/schemas/Labels'
        name:
          $ref: '#/components/schemas/KeyPairName'
        publicKey:
          $ref: '#/components/schemas/SSHPublicKey'
        updatedAt:
          allOf:
          - $ref: '#/components/schemas/UpdatedAt'
          readOnly: true
      required:
      - publicKey
      type: object
    CreatedAt:
      description: Date-time when resource was created.
      example: '2017-07-21T17:32:28Z'
      format: date-time
      type: string
    KeyPairListResponse:
      description: SSH keypair list response.
      properties:
        items:
          $ref: '#/components/schemas/KeyPairList'
      required:
      - items
      type: object
    KeyPairList:
      description: A list of SSH keypairs.
      items:
        $ref: '#/components/schemas/Keypair'
      type: array
  responses:
    InternalServerError:
      content:
        application/json:
          example:
            code: 500
            msg: internal server error
          schema:
            $ref: '#/components/schemas/Error'
      description: Internal Server Error, returns a 500 if something is broken on IaaS API Side.
    NotFound:
      content:
        application/json:
          examples:
            AreaNotFound:
              value:
                code: 404
                msg: area not found
            KeypairNotFound:
              value:
                code: 404
                msg: keypair not found
            NetworkNotFound:
              value:
                code: 404
                msg: network not found
            NetworkRangeNotFound:
              value:
                code: 404
                msg: network range not found
            OrganizationNotFound:
              value:
                code: 404
                msg: organization not found
            ProjectNotFound:
              value:
                code: 404
                msg: project not found
            RequestNotFound:
              value:
                code: 404
                msg: request not found
            RouteNotFound:
              value:
                code: 404
                msg: route not found
          schema:
            $ref: '#/components/schemas/Error'
      description: The object was not found.
    Forbidden:
      content:
        application/json:
          example:
            code: 403
            msg: Forbidden
          schema:
            $ref: '#/components/schemas/Error'
      description: A request which was forbidden.
    Conflict:
      content:
        application/json:
          example:
            code: 409
            msg: Conflict
          schema:
            $ref: '#/components/schemas/Error'
      description: A conflict has occurred.
    Unauthorized:
      content:
        application/json:
          example:
            code: 401
            msg: Unauthorized
          schema:
            $ref: '#/components/schemas/Error'
      description: A request which was not authorized.
    BadRequest:
      content:
        application/json:
          examples:
            InvalidAffinityGroupPolicy:
              value:
                code: 400
                msg: The affinity group policy is not supported
            InvalidBootDeviceSize:
              value:
                code: 400
                msg: boot device size is not valid or missing
            InvalidMachineType:
              value:
                code: 400
                msg: machine type is not valid
            InvalidParameter:
              value:
                code: 400
                msg: 'request body has an error: doesn''t match schema: Error at "/name": value must be a string'
            InvalidPublicKey:
              value:
                code: 400
                msg: invalid pubkey
            InvalidUUID:
              value:
                code: 400
                msg: invalid uuid
          schema:
            $ref: '#/components/schemas/Error'
      description: A bad request.
  parameters:
    v1LabelSelector:
      description: Filter resources by labels.
      in: query
      name: label_selector
      schema:
        type: string
    v1KeypairName:
      description: The name of an SSH keypair.
      example: keypair-123
      in: path
      name: keypairName
      required: true
      schema:
        $ref: '#/components/schemas/KeyPairName'
x-refined-from:
- stackit-iaas-v1.json
- stackit-iaas-v2.json
- stackit-iaas-openapi.yml