3GPP TS 29.522 MBSTMGI API

API for the allocation, deallocation and management of TMGI(s) for MBS. An OpenAPI 3.0.0 document with 2 path(s), API version 1.2.0, published verbatim by 3GPP in 3GPP TS 29.522 as part of the 5G NEF Northbound (Network Exposure) suite and mirrored in the public 3GPP Forge GitLab repository.

OpenAPI Specification

3gpp-ts29522-mbstmgi.yml Raw ↑
openapi: 3.0.0

info:
  title: 3gpp-mbs-tmgi
  version: 1.2.0
  description: |
    API for the allocation, deallocation and management of TMGI(s) for MBS.  
    © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).  
    All rights reserved.

externalDocs:
  description: >
    3GPP TS 29.522 V19.5.0; 5G System; Network Exposure Function Northbound APIs.
  url: 'https://www.3gpp.org/ftp/Specs/archive/29_series/29.522/'

security:
  - {}
  - oAuth2ClientCredentials: []

servers:
  - url: '{apiRoot}/3gpp-mbs-tmgi/v1'
    variables:
      apiRoot:
        default: https://example.com
        description: apiRoot as defined in clause 5.2.4 of 3GPP TS 29.122.

paths:
  /allocate:
    post:
      summary: Request the allocation of TMGI(s) for new MBS session(s) or the refresh of the expiry time of already allocated TMGI(s).
      operationId: AllocateTmgi
      tags:
        - TMGI Allocation or Timer Expiry Refresh
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TmgiAllocRequest'
      responses:
        '200':
          description: >
            OK. Successful case. The allocated TMGI(s) or a refreshed expiry time for the concerned
            already allocated TMGI(s) is/are returned to the requesting AF.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TmgiAllocResponse'
        '307':
          $ref: 'TS29122_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29122_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          description: >
            The request is rejected by the NEF and more details (along with ProblemDetails) may be
            returned.
          content:
            application/problem+json:
              schema:
                $ref: '#/components/schemas/ProblemDetailsTmgiAlloc'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29122_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29122_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29122_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'
      callbacks:
        TmgiTimerExpiryNotification:
          '{$request.body#/notificationUri}':
            post:
              requestBody:
                description: >
                  Represents the MBS TMGI(s) timer expiry notification information (e.g. list of
                  TMGI(s) for which the timer has expired).
                required: true
                content:
                  application/json:
                    schema:
                      $ref: '#/components/schemas/ExpiryNotif'
              responses:
                '204':
                  description: No content. The notification is successfully received.
                '307':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/307'
                '308':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/308'
                '400':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/400'
                '401':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/401'
                '403':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/403'
                '404':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/404'
                '411':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/411'
                '413':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/413'
                '415':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/415'
                '429':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/429'
                '500':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/500'
                '503':
                  $ref: 'TS29122_CommonData.yaml#/components/responses/503'
                default:
                  $ref: 'TS29122_CommonData.yaml#/components/responses/default'

  /deallocate:
    post:
      summary: Request the deallocation of MBS TMGI(s).
      operationId: DeallocateTmgi
      tags:
        - MBS TMGI Deallocation
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TmgiDeallocRequest'
      responses:
        '204':
          description: No Content. Successful case, the TMGI(s) are deallocated.
        '307':
          $ref: 'TS29122_CommonData.yaml#/components/responses/307'
        '308':
          $ref: 'TS29122_CommonData.yaml#/components/responses/308'
        '400':
          $ref: 'TS29122_CommonData.yaml#/components/responses/400'
        '401':
          $ref: 'TS29122_CommonData.yaml#/components/responses/401'
        '403':
          $ref: 'TS29122_CommonData.yaml#/components/responses/403'
        '404':
          $ref: 'TS29122_CommonData.yaml#/components/responses/404'
        '411':
          $ref: 'TS29122_CommonData.yaml#/components/responses/411'
        '413':
          $ref: 'TS29122_CommonData.yaml#/components/responses/413'
        '415':
          $ref: 'TS29122_CommonData.yaml#/components/responses/415'
        '429':
          $ref: 'TS29122_CommonData.yaml#/components/responses/429'
        '500':
          $ref: 'TS29122_CommonData.yaml#/components/responses/500'
        '503':
          $ref: 'TS29122_CommonData.yaml#/components/responses/503'
        default:
          $ref: 'TS29122_CommonData.yaml#/components/responses/default'


components:
  securitySchemes:
    oAuth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: '{tokenUrl}'
          scopes: {}

  schemas: 
    TmgiAllocRequest:
      description: >
        Represents the full set of parameters to initiate an MBS TMGI(s) allocation request
        or the refresh of the expiry time of already allocated TMGI(s).
      type: object
      properties:
        afId:
          type: string
        tmgiParams:
          $ref: 'TS29532_Nmbsmf_TMGI.yaml#/components/schemas/TmgiAllocate'
        notificationUri:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/Uri'
        mbsServiceArea:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MbsServiceArea'
        extMbsServiceArea:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ExternalMbsServiceArea'
        requestTestNotification:
          type: boolean
        websockNotifConfig:
          $ref: 'TS29122_CommonData.yaml#/components/schemas/WebsockNotifConfig'
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - afId
        - tmgiParams
      not:
        required: [mbsServiceArea, extMbsServiceArea]

    TmgiAllocResponse:
      description: >
        Represents MBS TMGI(s) allocation information or the refreshed expiry time for
        already allocated TMGI(s)
      type: object
      properties:
        tmgiInfo:
          $ref: 'TS29532_Nmbsmf_TMGI.yaml#/components/schemas/TmgiAllocated'
        suppFeat:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/SupportedFeatures'
      required:
        - tmgiInfo

    TmgiDeallocRequest:
      description: Represents information to request the deallocation of MBS TMGI(s).
      type: object
      properties:
        afId:
          type: string
        tmgis:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Tmgi'
          minItems: 1
      required:
        - afId
        - tmgis

    ExpiryNotif:
      description: Represents MBS TMGI(s) timer expiry notification information.
      type: object
      properties:
        tmgis:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Tmgi'
          minItems: 1
      required:
        - tmgis

    ReducedMbsServArea:
      description: >
        Represents the reduced MBS Service Area information.
      type: object
      properties:
        reducedMbsServArea:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MbsServiceArea'
        reducedExtMbsServArea:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/ExternalMbsServiceArea'
        reducedMbsServAreas:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/MbsServiceArea'
          minItems: 1
        reducedExtMbsServAreas:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/ExternalMbsServiceArea'
          minItems: 1
      oneOf:
        - required: [reducedMbsServArea]
        - required: [reducedExtMbsServArea]
      allOf:
        - not:
            required: [reducedMbsServArea, reducedExtMbsServAreas]
        - not:
            required: [reducedExtMbsServArea, reducedMbsServAreas]

    ProblemDetailsTmgiAlloc:
      description: >
        Represents an extension to the ProblemDetails data structure with additional error
        information related to TMGI Allocation.
      allOf:
        - $ref: 'TS29122_CommonData.yaml#/components/schemas/ProblemDetails'
        - $ref: '#/components/schemas/ReducedMbsServArea'