Deutsche Telekom onboarding API

The onboarding API from Deutsche Telekom — 3 operation(s) for onboarding.

OpenAPI Specification

deutsche-telekom-onboarding-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Controlplane Api ApiChangelog onboarding 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: onboarding
paths:
  /v1/onboarding/environments/{envId}:
    put:
      operationId: upsertEnvironment
      summary: Create or update an environment
      description: Create or update an environment that is identified by its reference in the request body
      tags:
      - onboarding
      parameters:
      - name: envId
        in: path
        description: The id or reference to an environment
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/EnvironmentWriteRequest'
      responses:
        '200':
          $ref: '#/components/responses/OnboardingResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
    delete:
      operationId: deleteEnvironment
      summary: Delete an environment
      description: Delete an environment that is identified by its reference in the request body
      tags:
      - onboarding
      parameters:
      - name: envId
        in: path
        description: The id or reference to an environment
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
  /v1/onboarding/environments/{envId}/teams/{teamId}:
    put:
      operationId: upsertTeam
      summary: Create or update a team
      description: Create or update a team that is identified by its reference in the request body
      tags:
      - onboarding
      parameters:
      - name: envId
        in: path
        description: The id or reference to an environment
        required: true
        schema:
          type: string
      - name: teamId
        in: path
        description: The id or reference to a team
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/TeamWriteRequest'
      responses:
        '200':
          $ref: '#/components/responses/OnboardingResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
    delete:
      operationId: deleteTeam
      summary: Delete a team
      description: Delete a team that is identified by its reference in the request body
      tags:
      - onboarding
      parameters:
      - name: envId
        in: path
        description: The id or reference to an environment
        required: true
        schema:
          type: string
      - name: teamId
        in: path
        description: The id or reference to a team
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
  /v1/onboarding/environments/{envId}/teams/{teamId}/apps/{appId}:
    put:
      operationId: upsertApp
      summary: Create or update an app
      description: Create or update an app that is identified by its reference in the request body
      tags:
      - onboarding
      parameters:
      - name: envId
        in: path
        description: The id or reference to an environment
        required: true
        schema:
          type: string
      - name: teamId
        in: path
        description: The id or reference to a team
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: The id or reference to an app
        required: true
        schema:
          type: string
      requestBody:
        $ref: '#/components/requestBodies/ApplicationWriteRequest'
      responses:
        '200':
          $ref: '#/components/responses/OnboardingResponse'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
    delete:
      operationId: deleteApp
      summary: Delete an app
      description: Delete an app that is identified by its reference in the request body
      tags:
      - onboarding
      parameters:
      - name: envId
        in: path
        description: The id or reference to an environment
        required: true
        schema:
          type: string
      - name: teamId
        in: path
        description: The id or reference to a team
        required: true
        schema:
          type: string
      - name: appId
        in: path
        description: The id or reference to an app
        required: true
        schema:
          type: string
      responses:
        '204':
          $ref: '#/components/responses/NoContent'
        '400':
          $ref: '#/components/responses/ErrorResponse'
        '500':
          $ref: '#/components/responses/ErrorResponse'
components:
  schemas:
    ListSecretItem:
      type: object
      required:
      - name
      - id
      properties:
        name:
          type: string
          description: The name of the secret
        id:
          $ref: '#/components/schemas/SecretRef'
    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
    TeamWriteRequest:
      type: object
      required:
      - secrets
      properties:
        strategy:
          $ref: '#/components/schemas/WriteStrategy'
        secrets:
          type: array
          description: A list of secrets to be created or updated for the team
          minItems: 0
          maxItems: 10
          items:
            $ref: '#/components/schemas/NamedSecret'
    ApplicationWriteRequest:
      type: object
      required:
      - secrets
      properties:
        strategy:
          $ref: '#/components/schemas/WriteStrategy'
        secrets:
          type: array
          description: A list of secrets to be created or updated for the application
          minItems: 0
          maxItems: 10
          items:
            $ref: '#/components/schemas/NamedSecret'
    EnvironmentWriteRequest:
      type: object
      required:
      - secrets
      properties:
        strategy:
          $ref: '#/components/schemas/WriteStrategy'
        secrets:
          type: array
          description: A list of secrets to be created or updated for the environment
          minItems: 0
          maxItems: 10
          items:
            $ref: '#/components/schemas/NamedSecret'
    NamedSecret:
      type: object
      required:
      - name
      - value
      properties:
        name:
          type: string
          description: The name of the secret
        value:
          type: string
          description: The value of the secret
    WriteStrategy:
      type: string
      enum:
      - merge
      - replace
      default: replace
      description: 'The strategy defines how the provided secrets should be applied.

        With "merge", the provided secrets will be merged with the existing secrets. With "replace",

        the provided secrets will replace the existing secrets.

        If not provided, "replace" will be used as default strategy.

        '
  requestBodies:
    TeamWriteRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TeamWriteRequest'
    EnvironmentWriteRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/EnvironmentWriteRequest'
    ApplicationWriteRequest:
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ApplicationWriteRequest'
  responses:
    ErrorResponse:
      description: In case of any error, this object is returned
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/ApiProblem'
    OnboardingResponse:
      description: Successful retrieval of secrets
      content:
        application/json:
          schema:
            type: object
            required:
            - items
            properties:
              items:
                type: array
                description: A list of available secret references
                minItems: 0
                maxItems: 10
                items:
                  $ref: '#/components/schemas/ListSecretItem'
    NoContent:
      description: Successful operation with no content