Deutsche Telekom ApiRoadmap API

Manage ApiRoadmaps

OpenAPI Specification

deutsche-telekom-apiroadmap-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Controlplane Api ApiChangelog ApiRoadmap 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: ApiRoadmap
  description: Manage ApiRoadmaps
paths:
  /apiroadmaps:
    get:
      tags:
      - ApiRoadmap
      summary: Find all ApiRoadmaps
      description: Find all ApiRoadmaps of a Team
      operationId: getAllApiRoadmaps
      parameters:
      - name: cursor
        in: query
        description: cursor for pagination
        required: false
        schema:
          type: string
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiRoadmapListResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:admin:read
        - tardis:hub:all
        - tardis:hub:read
        - tardis:team:all
        - tardis:team:read
    post:
      tags:
      - ApiRoadmap
      summary: Create an ApiRoadmap
      description: Create an ApiRoadmap resource
      operationId: createApiRoadmap
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiRoadmapCreateRequest'
      responses:
        '202':
          description: ACCEPTED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiRoadmapResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:hub:all
        - tardis:team:all
  /apiroadmaps/{apiRoadmapId}:
    get:
      tags:
      - ApiRoadmap
      summary: Find an existing ApiRoadmap
      description: Find an existing ApiRoadmap
      operationId: getApiRoadmap
      parameters:
      - $ref: '#/components/parameters/ApiRoadmapId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiRoadmapResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:admin:read
        - tardis:hub:all
        - tardis:hub:read
        - tardis:team:all
        - tardis:team:read
    put:
      tags:
      - ApiRoadmap
      summary: Update an existing ApiRoadmap
      description: Update an existing ApiRoadmap
      operationId: updateApiRoadmap
      parameters:
      - $ref: '#/components/parameters/ApiRoadmapId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiRoadmapUpdateRequest'
      responses:
        '202':
          description: ACCEPTED
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiRoadmapResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:hub:all
        - tardis:team:all
    delete:
      tags:
      - ApiRoadmap
      summary: Delete an ApiRoadmap
      description: Delete an ApiRoadmap
      operationId: deleteApiRoadmap
      parameters:
      - $ref: '#/components/parameters/ApiRoadmapId'
      responses:
        '204':
          description: DELETED
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:hub:all
        - tardis:team:all
  /apiroadmaps/{apiRoadmapId}/status:
    get:
      tags:
      - ApiRoadmap
      summary: Find an existing ApiRoadmap and return its status
      description: Find an existing ApiRoadmap and return its status
      operationId: getApiRoadmapStatus
      parameters:
      - $ref: '#/components/parameters/ApiRoadmapId'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ResourceStatusResponse'
        '400':
          $ref: '#/components/responses/BadRequest'
        '401':
          $ref: '#/components/responses/Unauthorized'
        '403':
          $ref: '#/components/responses/Forbidden'
        '404':
          $ref: '#/components/responses/NotFound'
        '415':
          $ref: '#/components/responses/UnsupportedMediaType'
        '500':
          $ref: '#/components/responses/ServerError'
      security:
      - OAuth2:
        - tardis:admin:all
        - tardis:admin:read
        - tardis:hub:all
        - tardis:hub:read
        - tardis:team:all
        - tardis:team:read
components:
  responses:
    UnsupportedMediaType:
      description: UNSUPPORTED_MEDIATYPE
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    BadRequest:
      description: BAD_REQUEST
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    NotFound:
      description: NOT_FOUND
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    Forbidden:
      description: FORBIDDEN
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    Unauthorized:
      description: UNAUTHORIZED
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
    ServerError:
      description: SERVER_ERROR
      content:
        application/problem+json:
          schema:
            $ref: '#/components/schemas/Error'
  schemas:
    ApiRoadmap:
      type: object
      required:
      - basePath
      - items
      properties:
        basePath:
          description: The API basePath
          type: string
          example: /eni/test-api/v1
        items:
          description: List of roadmap timeline entries
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/ApiRoadmapItem'
    ApiRoadmapUpdateRequest:
      allOf:
      - $ref: '#/components/schemas/ApiRoadmap'
    ApiRoadmapResponse:
      allOf:
      - $ref: '#/components/schemas/ApiRoadmap'
      - type: object
        properties:
          id:
            description: Unique id of this resource
            type: string
            readOnly: true
            example: my-hub--my-team--my-roadmap
          name:
            description: Name of the roadmap
            type: string
            readOnly: true
            example: my-roadmap
          status:
            $ref: '#/components/schemas/Status'
    ApiRoadmapItem:
      type: object
      required:
      - date
      - title
      - description
      properties:
        date:
          description: Timeline date or period
          type: string
          example: Q1 2024
        title:
          description: Milestone title
          type: string
          example: MVP Release
        description:
          description: Detailed description of the milestone
          type: string
          example: Initial release with core features
        titleUrl:
          description: Optional URL for more information
          type: string
          format: uri
          example: https://example.com/mvp
    ApiRoadmapListResponse:
      type: object
      required:
      - items
      properties:
        _links:
          $ref: '#/components/schemas/Links'
        items:
          type: array
          items:
            $ref: '#/components/schemas/ApiRoadmapResponse'
    State:
      enum:
      - none
      - invalid
      - blocked
      - complete
      type: string
    ApiRoadmapCreateRequest:
      allOf:
      - $ref: '#/components/schemas/ApiRoadmap'
      - type: object
        properties:
          team:
            type: string
            example: hyperion
            description: This field is only used for hub-scoped access to control the target team of the resource. For everything else, it can be ignored
    Links:
      description: HATEOAS links for pagination
      type: object
      required:
      - self
      - next
      properties:
        self:
          type: string
          format: uri
          description: the URI for the current page for requested pagination
        next:
          type: string
          format: uri
          description: the URI for the next page for requested pagination, based on the requested limit value
    OverallStatus:
      description: Status of this resource and all its relevant sub-resources
      enum:
      - invalid
      - processing
      - failed
      - blocked
      - pending
      - complete
      - done
      - none
      type: string
    ResourceStatusResponse:
      description: Response resource which contains information about the status of the resource and all its relevant sub-resources
      required:
      - state
      - processingState
      - overallStatus
      type: object
      properties:
        createdAt:
          type: string
          format: date-time
          description: Time when the resource was created
        processedAt:
          type: string
          format: date-time
          description: Time when the resource was last processed
        state:
          $ref: '#/components/schemas/State'
        processingState:
          $ref: '#/components/schemas/ProcessingState'
        overallStatus:
          $ref: '#/components/schemas/OverallStatus'
        errors:
          description: List of errors that resulted while processing this resource
          type: array
          items:
            $ref: '#/components/schemas/Problem'
        warnings:
          description: List of warnings that resulted while processing this resource
          type: array
          items:
            $ref: '#/components/schemas/Problem'
        infos:
          description: List of infos that resulted while processing this resource
          type: array
          items:
            $ref: '#/components/schemas/Problem'
    Problem:
      type: object
      required:
      - message
      - cause
      properties:
        resource:
          $ref: '#/components/schemas/ResourceRef'
        context:
          type: string
        message:
          type: string
        cause:
          type: string
        details:
          type: string
    StateInfo:
      type: object
      readOnly: true
      required:
      - message
      properties:
        message:
          type: string
        cause:
          type: string
    Error:
      description: RFC-7807 conform object sent on any error
      type: object
      required:
      - type
      - title
      properties:
        type:
          type: string
        title:
          type: string
        status:
          type: number
        detail:
          type: string
        instance:
          type: string
        errorCode:
          type: string
        fields:
          type: array
          items:
            $ref: '#/components/schemas/FieldProblem'
    ProcessingState:
      enum:
      - none
      - pending
      - processing
      - failed
      - done
      type: string
    Status:
      type: object
      readOnly: true
      required:
      - processingState
      - state
      - time
      properties:
        processingState:
          $ref: '#/components/schemas/ProcessingState'
        state:
          $ref: '#/components/schemas/State'
        errors:
          type: array
          items:
            $ref: '#/components/schemas/StateInfo'
        warnings:
          type: array
          items:
            $ref: '#/components/schemas/StateInfo'
        infos:
          type: array
          items:
            $ref: '#/components/schemas/StateInfo'
    ResourceRef:
      type: object
      readOnly: true
      required:
      - apiVersion
      - kind
      - name
      - namespace
      properties:
        apiVersion:
          type: string
        kind:
          type: string
        name:
          type: string
        namespace:
          type: string
        path:
          type: string
    FieldProblem:
      type: object
      required:
      - title
      properties:
        title:
          type: string
        detail:
          type: string
        path:
          type: string
  parameters:
    ApiRoadmapId:
      name: apiRoadmapId
      description: The unique id of this resource following the pattern group--team--basePath
      in: path
      required: true
      schema:
        type: string