Deutsche Telekom secrets API

Everything regarding storing and resolving secrets

OpenAPI Specification

deutsche-telekom-secrets-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Controlplane Api ApiChangelog secrets API
  description: API of the TARDIS control plane. With this API configuration connectivity between different Tardis instances in ensured
  contact:
    name: TARDIS
    url: https://developer.telekom.de/docs/src/tardis_customer_handbook/support/
    email: FMB_TARDIS_Support@telekom.de
  version: 1.0.0
  x-api-category: TARDIS
  x-vendor: false
servers:
- url: https://api.telekom.de/controlplane/v1
tags:
- name: secrets
  description: Everything regarding storing and resolving secrets
paths:
  /v1/secrets:
    get:
      operationId: listSecrets
      summary: Get one or multiple secrets
      description: Get a list of secrets that are identified by the provided references in the request body
      tags:
      - secrets
      parameters:
      - $ref: '#/components/parameters/QuerySecretId'
      responses:
        '200':
          $ref: '#/components/responses/SecretListReponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
  /v1/secrets/{secretId}:
    get:
      operationId: getSecret
      summary: Get a specific secret
      description: Get a specific secret identified by its reference or ID
      tags:
      - secrets
      parameters:
      - $ref: '#/components/parameters/SecretId'
      responses:
        '200':
          $ref: '#/components/responses/SecretResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
    put:
      operationId: putSecret
      summary: Create or update a secret
      description: Create or update a secret that is identified by its reference in the request body
      tags:
      - secrets
      parameters:
      - $ref: '#/components/parameters/SecretId'
      requestBody:
        $ref: '#/components/requestBodies/SecretWriteRequest'
      responses:
        '200':
          $ref: '#/components/responses/SecretWriteResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
components:
  parameters:
    QuerySecretId:
      name: secretId
      in: query
      description: The id or reference to a secret
      schema:
        type: array
        items:
          $ref: '#/components/schemas/SecretRef'
    SecretId:
      name: secretId
      in: path
      description: The id or reference to a secret
      allowEmptyValue: false
      required: true
      schema:
        $ref: '#/components/schemas/SecretRef'
  responses:
    ErrorResponse:
      description: In case of any error, this object is returned
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ApiProblem'
    SecretWriteResponse:
      description: Successful creation or update of a secret
      content:
        application/json:
          schema:
            type: object
            required:
            - id
            properties:
              id:
                $ref: '#/components/schemas/SecretRef'
    SecretResponse:
      description: Successful retrieval of secrets
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/Secret'
    SecretListReponse:
      description: Successful retrieval of secrets
      content:
        application/json:
          schema:
            type: object
            required:
            - items
            properties:
              items:
                type: array
                description: A list of secrets
                minItems: 1
                maxItems: 10
                items:
                  $ref: '#/components/schemas/Secret'
  schemas:
    ApiProblem:
      description: Based on https://www.rfc-editor.org/rfc/rfc9457.html
      type: object
      required:
      - type
      - status
      - title
      - detail
      properties:
        type:
          type: string
        status:
          type: integer
        title:
          type: string
        detail:
          type: string
        instance:
          type: string
    SecretRef:
      description: A reference to a secret
      type: string
    Secret:
      type: object
      required:
      - id
      - value
      properties:
        id:
          $ref: '#/components/schemas/SecretRef'
        value:
          type: string
          description: If empty, a random secret will be generated
  requestBodies:
    SecretWriteRequest:
      content:
        application/json:
          schema:
            type: object
            required:
            - value
            properties:
              value:
                description: "This is the value of the secret.\nIf set to `{{rotate}}`, the secret will be randomly generated\nand rotated. \nOtherwise, you can set any string value.\n"
                example: '{{rotate}}'
                type: string