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
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: 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'