Deutsche Telekom ApiSubscription API

After an API is successful subscribed, you are able to use the API. It is only possible to subscribe to the entire API. It is not possible to subscribe only to a single resource

OpenAPI Specification

deutsche-telekom-apisubscription-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Controlplane Api ApiChangelog ApiSubscription 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: ApiSubscription
  description: 'After an API is successful subscribed, you are able to use the API. It is

    only possible to subscribe to the entire API. It is not possible to

    subscribe only to a single resource

    '
paths:
  /applications/{applicationId}/apisubscriptions:
    get:
      tags:
      - ApiSubscription
      summary: Find all ApiSubscriptions
      description: Find all ApiSubscriptions of this application
      operationId: getAllApiSubscriptions
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - $ref: common.yaml#/components/parameters/Limit
      - $ref: common.yaml#/components/parameters/Offset
      - $ref: common.yaml#/components/parameters/Sort
      responses:
        '200':
          description: OK
          headers:
            X-Total-Count:
              $ref: common.yaml#/components/headers/XTotalCount
            X-Result-Count:
              $ref: common.yaml#/components/headers/XResultCount
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSubscriptionListResponse'
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:admin:read
        - tardis:admin:obfuscated
        - tardis:supervisor:read
        - tardis:hub:all
        - tardis:hub:read
        - tardis:hub:obfuscated
        - tardis:team:all
        - tardis:team:read
        - tardis:team:obfuscated
        - tardis:user:all
        - tardis:user:read
        - tardis:user:obfuscated
    post:
      deprecated: true
      tags:
      - ApiSubscription
      summary: Create an ApiSubscription
      description: 'Creating and updating resources is asynchronous, which is why the status

        is given as an answer to a POST/PUT request, since it is possible that

        the resource to be created has not yet been processed at the time the

        response is created. If the status after creation is in state

        "Processing", the resource must be queried with GET to see whether it

        was created successfully or whether errors/warnings are written in the

        status. If the creation/update is incorrect, the processing status will

        be set to blocked. Otherwise to "failed". Status 201 means, that we

        accepted the request and there are no syntactic or semantic errors, but

        there can occur failures in the after processing. That will be shown in

        the status if you request the appropriate resource.

        '
      operationId: createApiSubscription
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSubscriptionCreateRequest'
      responses:
        '202':
          description: ACCEPTED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSubscriptionResponse'
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:hub:all
        - tardis:team:all
        - tardis:user:all
  /applications/{applicationId}/apisubscriptions/{apiSubscriptionName}:
    get:
      tags:
      - ApiSubscription
      summary: Find an existing ApiSubscription
      description: Find an existing ApiSubscription
      operationId: getApiSubscription
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - name: apiSubscriptionName
        description: The name of the ApiSubscription
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSubscriptionResponse'
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '404':
          $ref: common.yaml#/components/responses/NotFound
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:admin:read
        - tardis:admin:obfuscated
        - tardis:supervisor:read
        - tardis:hub:all
        - tardis:hub:read
        - tardis:hub:obfuscated
        - tardis:team:all
        - tardis:team:read
        - tardis:team:obfuscated
        - tardis:user:all
        - tardis:user:read
        - tardis:user:obfuscated
    put:
      deprecated: true
      tags:
      - ApiSubscription
      summary: Update an existing ApiSubscription
      description: 'Creating and updating resources is asynchronous, which is why the status

        is given as an answer to a POST/PUT request, since it is possible that

        the resource to be created has not yet been processed at the time the

        response is created. If the status after creation is in state

        "Processing", the resource must be queried with GET to see whether it

        was created successfully or whether errors/warnings are written in the

        status. If the creation/update is incorrect, the processing status will

        be set to blocked. Otherwise to "failed". Status 201 means, that we

        accepted the request and there are no syntactic or semantic errors, but

        there can occur failures in the after processing. That will be shown in

        the status if you request the appropriate resource.

        '
      operationId: updateApiSubscription
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - name: apiSubscriptionName
        in: path
        description: The name of the ApiSubscription
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiSubscriptionUpdateRequest'
      responses:
        '200':
          description: UPDATE
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiSubscriptionResponse'
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '404':
          $ref: common.yaml#/components/responses/NotFound
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:hub:all
        - tardis:team:all
        - tardis:user:all
    delete:
      deprecated: true
      tags:
      - ApiSubscription
      summary: Delete an ApiSubscription
      description: Delete an ApiSubscription
      operationId: deleteApiSubscription
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - name: apiSubscriptionName
        in: path
        description: The name of the ApiSubscription
        required: true
        schema:
          type: string
      responses:
        '204':
          description: DELETED
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '404':
          $ref: common.yaml#/components/responses/NotFound
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:hub:all
        - tardis:team:all
        - tardis:user:all
  /applications/{applicationId}/apisubscriptions/{apiSubscriptionName}/status:
    get:
      tags:
      - ApiSubscription
      summary: Find an existing ApiSubscription and return its status
      description: Find an existing ApiSubscription and return its status
      operationId: getApiSubscriptionStatus
      parameters:
      - $ref: common.yaml#/components/parameters/ApplicationId
      - name: apiSubscriptionName
        description: The name of the ApiSubscription
        in: path
        required: true
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: common.yaml#/components/schemas/ResourceStatusResponse
        '400':
          $ref: common.yaml#/components/responses/BadRequest
        '401':
          $ref: common.yaml#/components/responses/Unauthorized
        '403':
          $ref: common.yaml#/components/responses/Forbidden
        '404':
          $ref: common.yaml#/components/responses/NotFound
        '415':
          $ref: common.yaml#/components/responses/UnsupportedMediaType
        '500':
          $ref: common.yaml#/components/responses/ServerError
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:admin:read
        - tardis:admin:obfuscated
        - tardis:supervisor:read
        - tardis:hub:all
        - tardis:hub:read
        - tardis:hub:obfuscated
        - tardis:team:all
        - tardis:team:read
        - tardis:team:obfuscated
        - tardis:user:all
        - tardis:user:read
        - tardis:user:obfuscated
components:
  schemas:
    ApiSubscription:
      type: object
      properties:
        basePath:
          description: Must match pattern ^\/[a-zA-Z0-9\/-]*$
          type: string
          example: /my-hub/my-app/v1
          pattern: ^\/[a-zA-Z0-9\/-]*$
        security:
          $ref: '#/components/schemas/SubscriberSecurity'
    SubscriberSecurity:
      discriminator:
        propertyName: type
        mapping:
          oauth2: '#/components/schemas/OAuth2'
          basicAuth: '#/components/schemas/BasicAuth'
      oneOf:
      - $ref: '#/components/schemas/OAuth2'
      - $ref: '#/components/schemas/BasicAuth'
    ApiSubscriptionResponse:
      type: object
      readOnly: true
      allOf:
      - $ref: '#/components/schemas/ApiSubscription'
      - properties:
          name:
            type: string
            readOnly: true
            example: eni-echo-v1
          zone:
            type: string
            readOnly: true
          gatewayUrl:
            type: string
            readOnly: true
            example: https://stargate-playground.live.dhei.telekom.de/eni/echo/v1
          status:
            $ref: common.yaml#/components/schemas/Status
          application:
            $ref: common.yaml#/components/schemas/ApplicationRef
          team:
            $ref: common.yaml#/components/schemas/TeamRef
          approval:
            $ref: '#/components/schemas/Approval'
          failover:
            $ref: '#/components/schemas/SubscriptionFailover'
    ApiSubscriptionListResponse:
      properties:
        paging:
          $ref: common.yaml#/components/schemas/Paging
        _links:
          $ref: common.yaml#/components/schemas/Links
        items:
          type: array
          items:
            $ref: '#/components/schemas/ApiSubscriptionResponse'
    OAuth2:
      type: object
      required:
      - type
      properties:
        type:
          type: string
          enum:
          - oauth2
        tokenEndpoint:
          type: string
        clientId:
          type: string
        clientSecret:
          type: string
        scopes:
          type: array
          items:
            type: string
        username:
          type: string
        password:
          type: string
        refreshToken:
          type: string
        grantType:
          type: string
        tokenRequest:
          type: string
          enum:
          - body
          - header
          description: Specifies if the authentication data should be sent to the external IDP via headers or in the body of the request
    BasicAuth:
      type: object
      required:
      - type
      - username
      - password
      properties:
        type:
          type: string
          enum:
          - basicAuth
        username:
          type: string
        password:
          type: string
    SubscriptionFailover:
      type: array
      readOnly: true
      items:
        type: object
        properties:
          zone:
            type: string
            readOnly: true
            example: aws
          gatewayUrl:
            type: string
            readOnly: true
            example: https://stargate-playground.live.dhei.telekom.de/eni/echo/v1
    ApiSubscriptionUpdateRequest:
      required:
      - basePath
      type: object
      allOf:
      - $ref: '#/components/schemas/ApiSubscription'
    ApiSubscriptionCreateRequest:
      required:
      - basePath
      type: object
      allOf:
      - $ref: '#/components/schemas/ApiSubscription'
    Approval:
      type: object
      readOnly: true
      required:
      - status
      - comment
      properties:
        status:
          type: string
          example: granted
        comment:
          type: string
          example: trusted team
        decider:
          type: string
          example: hyperion@telekom.de
        timestamp:
          type: string
          format: date-time
          example: '2022-09-28T16:05:46.384Z'