Deutsche Telekom Clients API

The Clients API from Deutsche Telekom — 24 operation(s) for clients.

OpenAPI Specification

deutsche-telekom-clients-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Controlplane Api ApiChangelog Clients 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: Clients
paths:
  /{realm}/clients:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Get clients belonging to the realm   Returns a list of clients belonging to the realm
      parameters:
      - in: query
        name: clientId
        description: filter by clientId
        schema:
          type: string
        style: form
      - in: query
        name: first
        description: the first result
        schema:
          type: integer
          format: int32
        style: form
      - in: query
        name: max
        description: the max results to return
        schema:
          type: integer
          format: int32
        style: form
      - in: query
        name: search
        description: whether this is a search query or a getClientById query
        schema:
          type: boolean
        style: form
      - in: query
        name: viewableOnly
        description: filter clients that cannot be viewed in full by admin
        schema:
          type: boolean
        style: form
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientRepresentation'
    post:
      tags:
      - Clients
      summary: Create a new client   Client’s client_id must be unique!
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientRepresentation'
        required: true
      responses:
        2XX:
          description: success
  /{realm}/clients/{id}:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Get representation of the client
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientRepresentation'
    put:
      tags:
      - Clients
      summary: Update the client
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClientRepresentation'
        required: true
      responses:
        2XX:
          description: success
    delete:
      tags:
      - Clients
      summary: Delete the client
      responses:
        2XX:
          description: success
  /{realm}/clients/{id}/client-secret:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Get the client secret
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialRepresentation'
    post:
      tags:
      - Clients
      summary: Generate a new secret for the client
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialRepresentation'
  /{realm}/clients/{id}/client-secret/rotated:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Get the rotated client secret
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CredentialRepresentation'
    delete:
      tags:
      - Clients
      summary: Invalidate the rotated secret for the client
      responses:
        2XX:
          description: success
  /{realm}/clients/{id}/default-client-scopes:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Get default client scopes.
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientScopeRepresentation'
  /{realm}/clients/{id}/default-client-scopes/{clientScopeId}:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: clientScopeId
      required: true
      schema:
        type: string
      style: simple
    put:
      tags:
      - Clients
      responses:
        2XX:
          description: success
    delete:
      tags:
      - Clients
      responses:
        2XX:
          description: success
  /{realm}/clients/{id}/evaluate-scopes/generate-example-access-token:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Create JSON with payload of example access token
      parameters:
      - in: query
        name: scope
        schema:
          type: string
        style: form
      - in: query
        name: userId
        schema:
          type: string
        style: form
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AccessToken'
  /{realm}/clients/{id}/evaluate-scopes/protocol-mappers:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Return list of all protocol mappers, which will be used when generating tokens issued for particular client.
      parameters:
      - in: query
        name: scope
        schema:
          type: string
        style: form
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientScopeEvaluateResource-ProtocolMapperEvaluationRepresentation'
  /{realm}/clients/{id}/evaluate-scopes/scope-mappings/{roleContainerId}/granted:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: roleContainerId
      description: either realm name OR client UUID
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Get effective scope mapping of all roles of particular role container, which this client is defacto allowed to have in the accessToken issued for him.
      parameters:
      - in: query
        name: scope
        schema:
          type: string
        style: form
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoleRepresentation'
  /{realm}/clients/{id}/evaluate-scopes/scope-mappings/{roleContainerId}/not-granted:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: roleContainerId
      description: either realm name OR client UUID
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Get roles, which this client doesn’t have scope for and can’t have them in the accessToken issued for him.
      parameters:
      - in: query
        name: scope
        schema:
          type: string
        style: form
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/RoleRepresentation'
  /{realm}/clients/{id}/installation/providers/{providerId}:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: providerId
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      responses:
        2XX:
          description: success
  /{realm}/clients/{id}/management/permissions:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Return object stating whether client Authorization permissions have been initialized or not and a reference
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagementPermissionReference'
    put:
      tags:
      - Clients
      summary: Return object stating whether client Authorization permissions have been initialized or not and a reference
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManagementPermissionReference'
        required: true
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ManagementPermissionReference'
  /{realm}/clients/{id}/nodes:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    post:
      tags:
      - Clients
      summary: Register a cluster node with the client   Manually register cluster node to this client - usually it’s not needed to call this directly as adapter should handle  by sending registration request to Keycloak
      requestBody:
        content:
          application/json:
            schema:
              type: object
              additionalProperties: true
        required: true
      responses:
        2XX:
          description: success
  /{realm}/clients/{id}/nodes/{node}:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: node
      required: true
      schema:
        type: string
      style: simple
    delete:
      tags:
      - Clients
      summary: Unregister a cluster node from the client
      responses:
        2XX:
          description: success
  /{realm}/clients/{id}/offline-session-count:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: 'Get application offline session count   Returns a number of offline user sessions associated with this client   {      "count": number  }'
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
  /{realm}/clients/{id}/offline-sessions:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Get offline sessions for client   Returns a list of offline user sessions associated with this client
      parameters:
      - in: query
        name: first
        description: Paging offset
        schema:
          type: integer
          format: int32
        style: form
      - in: query
        name: max
        description: Maximum results size (defaults to 100)
        schema:
          type: integer
          format: int32
        style: form
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserSessionRepresentation'
  /{realm}/clients/{id}/optional-client-scopes:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Get optional client scopes.
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ClientScopeRepresentation'
  /{realm}/clients/{id}/optional-client-scopes/{clientScopeId}:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: clientScopeId
      required: true
      schema:
        type: string
      style: simple
    put:
      tags:
      - Clients
      responses:
        2XX:
          description: success
    delete:
      tags:
      - Clients
      responses:
        2XX:
          description: success
  /{realm}/clients/{id}/push-revocation:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    post:
      tags:
      - Clients
      summary: Push the client’s revocation policy to its admin URL   If the client has an admin URL, push revocation policy to it.
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalRequestResult'
  /{realm}/clients/{id}/registration-access-token:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    post:
      tags:
      - Clients
      summary: Generate a new registration access token for the client
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClientRepresentation'
  /{realm}/clients/{id}/service-account-user:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Get a user dedicated to the service account
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UserRepresentation'
  /{realm}/clients/{id}/session-count:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: 'Get application session count   Returns a number of user sessions associated with this client   {      "count": number  }'
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
  /{realm}/clients/{id}/test-nodes-available:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Test if registered cluster nodes are available   Tests availability by sending 'ping' request to all cluster nodes.
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GlobalRequestResult'
  /{realm}/clients/{id}/user-sessions:
    parameters:
    - in: path
      name: realm
      description: realm name (not id!)
      required: true
      schema:
        type: string
      style: simple
    - in: path
      name: id
      description: id of client (not client-id)
      required: true
      schema:
        type: string
      style: simple
    get:
      tags:
      - Clients
      summary: Get user sessions for client   Returns a list of user sessions associated with this client
      parameters:
      - in: query
        name: first
        description: Paging offset
        schema:
          type: integer
          format: int32
        style: form
      - in: query
        name: max
        description: Maximum results size (defaults to 100)
        schema:
          type: integer
          format: int32
        style: form
      responses:
        2XX:
          description: success
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/UserSessionRepresentation'
components:
  schemas:
    AccessToken-CertConf:
      type: object
      properties:
        x5t#S256:
          type: string
    CredentialRepresentation:
      type: object
      properties:
        createdDate:
          type: integer
          format: int64
        credentialData:
          type: string
        id:
          type: string
        priority:
          type: integer
          format: int32
        secretData:
          type: string
        temporary:
          type: boolean
        type:
          type: string
        userLabel:
          type: string
        value:
          type: string
    AccessToken:
      type: object
      properties:
        acr:
          type: string
        address:
          $ref: '#/components/schemas/AddressClaimSet'
        allowed-origins:
          type: array
          items:
            type: string
        at_hash:
          type: string
        auth_time:
          type: integer
          format: int64
        authorization:
          $ref: '#/components/schemas/AccessToken-Authorization'
        azp:
          type: string
        birthdate:
          type: string
        c_hash:
          type: string
        category:
          type: string
          enum:
          - INTERNAL
          - ACCESS
          - ID
          - ADMIN
          - USERINFO
        claims_locales:
          type: string
        cnf:
          $ref: '#/components/schemas/AccessToken-CertConf'
        email:
          type: string
        email_verified:
          type: boolean
        exp:
          type: integer
          format: int64
        family_name:
          type: string
        gender:
          type: string
        given_name:
          type: string
        iat:
          type: integer
          format: int64
        iss:
          type: string
        jti:
          type: string
        locale:
          type: string
        middle_name:
          type: string
        name:
          type: string
        nbf:
          type: integer
          format: int64
        nickname:
          type: string
        nonce:
          type: string
        otherClaims:
          type: object
          additionalProperties: true
        phone_number:
          type: string
        phone_number_verified:
          type: boolean
        picture:
          type: string
        preferred_username:
          type: string
        profile:
          type: string
        realm_access:
          $ref: '#/components/schemas/AccessToken-Access'
        s_hash:
          type: string
        scope:
          type: string
        session_state:
          type: string
        sub:
          type: string
        trusted-certs:
          type: array
          items:
            type: string
        typ:
          type: string
        updated_at:
          type: integer
          format: int64
        website:
          type: string
        zoneinfo:
          type: string
    ResourceRepresentation:
      type: object
      properties:
        id:
          type: string
        attributes:
          type: object
          additionalProperties: true
        displayName:
          type: string
        icon_uri:
          type: string
        name:
          type: string
        ownerManagedAccess:
          type: boolean
        scopes:
          type: array
          items:
            $ref: '#/components/schemas/ScopeRepresentation'
        type:
          type: string
        uris:
          type: array
          items:
            type: string
    AccessToken-Authorization:
      type: object
      properties:
        permissions:
          type: array
          items:
            $ref: '#/components/schemas/Permission'
    AddressClaimSet:
      type: object
      properties:
        country:
          type: string
        formatted:
          type: string
        locality:
          type: string
        postal_code:
          type: string
        region:
          type: string
        street_address:
          type: string
    UserRepresentation:
      type: object
      properties:
        access:
          type: object
          additionalProperties: true
        attributes:
          type: object
          additionalProperties: true
        clientConsents:
          type: array
          items:
            $ref: '#/components/schemas/UserConsentRepresentation'
        clientRoles:
          type: object
          additionalProperties: true
        createdTimestamp:
          type: integer
          format: int64
        credentials:
          type: array
          items:
            $ref: '#/components/schemas/CredentialRepresentation'
        disableableCredentialTypes:
          type: array
          items:
            type: string
        email:
          type: string
        emailVerified:
          type: boolean
        enabled:
          type: boolean
        federatedIdentities:
          type: array
          items:
            $ref: '#/components/schemas/FederatedIdentityRepresentation'
        federationLink:
          type: string
        firstName:
          type: string
        groups:
          type: array
          items:
            type: string
        id:
          type: string
        lastName:
          type: string
        notBefore:
          type: integer
          format: int32
        origin:
          type: string
        realmRoles:
          type: array
          items:
            type: string
        requiredActions:
          type: array
          items:
            type: string
        self:
          type: string
        serviceAccountClientId:
          type: string
        username:
          type: string
    FederatedIdentityRepresentation:
      type: object
      properties:
        identityProvider:
          type: string
        userId:
          type: string
        userName:
          type: string
    UserSessionRepresentation:
      type: object
      properties:
        clients:
          type: object
          additionalProperties: true
        id:
          type: string
        ipAddress:
          type: string
        lastAccess:
          type: integer
          format: int64
        start:
          type: integer
          format: int64
        userId:
          type: string
        username:
          type: string
    GlobalRequestResult:
      type: object
      properties:
        failedRequests:
          type: array
          items:
            type: string
        successRequests:
          type: array
          items:
            type: string
    ClientScopeEvaluateResource-ProtocolMapperEvaluationRepresentation:
      type: object
      properties:
        containerId:
          type: string
        containerName:
          type: string
        containerType:
          type: string
        mapperId:
          type: string
        mapperName:
          type: string
        protocolMapper:
          type: string
    Permission:
      type: object
      properties:
        claims:
          type: object
          additionalProperties: true
        rsid:
          type: string
        rsname:
          type: string
        scopes:
          type: array
          items:
            type: string
    ProtocolMapperRepresentation:
      type: object
      properties:
        config:
          type: object
          additionalProperties: true
        id:
          type: string
        name:
          type: string
        protocol:
          type: string
        protocolMapper:
          type: string
    ScopeRepresentation:
      type: object
      properties:
        displayName:
          type: string
        iconUri:
          type: string
        id:
          type: string
        name:
          type: string
        policies:
          type: array
          items:
            $ref: '#/components/schemas/PolicyRepresentation'
        resources:
          type: array
          items:
            $ref: '#/components/schemas/ResourceRepresentation'
    RoleRepresentation-Composites:
      type: object
      properties:
        client:
          type: object
          additionalProperties: true
        realm:
          type: array
          items:
            type: string
    ClientRepresentation:
      type: object
      properties:
        access:
          type: object
          additionalProperties: true
        adminUrl:
          type: string
        alwaysDisplayInConsole:
          type: boolean
        attributes:
          type: object
          additionalProperties: true
        authenticationFlowBindingOverrides:
          type: object
          additionalProperties: true
        authorizationServicesEnabled:
          type: boolean
        authorizationSettings:
          $ref: '#/components/schemas/ResourceServerRepresentation'
        baseUrl:
          type: string
        bearerOnly:
          type: boolean
        clientAuthenticatorType:
          type: string
        clientId:
          type: string
        consentRequired:
          type: boolean
        defaultClientScopes:
          type: array
          items:
            type: string
        defaultRoles:
          type: array
          items:
            type: string
        description:
          type: string
        directAccessGrantsEnabled:
          type: boolean
        enabled:
          type: boolean
        frontchannelLogout:
          type: boolean
        fullScopeAllowed:
          type: boolean
        id:
          type: string
        implicitFlowEnabled:
          type: boolean
        name:
          type: string
        nodeReRegistrationTimeout:
          type: integer
          format: int32
        notBefore:
          type: integer
          format: int32
        optionalClientScopes:
          type: array
          items:
            type: string
        origin:
          type: string
        protocol:
          type: string
        protocolMappers:
          type: array
          items:
            $ref: '#/components/schemas/ProtocolMapperRepresentation'
        publicClient:
          type: boolean
        redirectUris:
          type: array
          items:
            type: string
        registeredNodes:
          type: object
          additionalProperties: true
        registrationAccessToken:
          type: string
        rootUrl:
          type: string
        secret:
          type: string
        serviceAccountsEnabled:
          type: boolean
        standardFlowEnabled:
          type: boolean
        surrogateAuthRequired:
          type: boolean
        webOrigins:
          type: array
          items:
            type: string
    UserConsentRepresentation:
      type: object
      properties:
        clientId:
          type: string
        createdDate:
          type: integer
          format: int64
        grantedClientScopes:
          type: array
          items:
            type: string
        lastUpdatedDate:
          type: integer
          forma

# --- truncated at 32 KB (35 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/deutsche-telekom/refs/heads/main/openapi/deutsche-telekom-clients-api-openapi.yml