Commit 28120953 authored by Jesus de Gregorio's avatar Jesus de Gregorio
Browse files

SA#103

parent 55f96dcd
Loading
Loading
Loading
Loading
Loading
+151 −170
Original line number Diff line number Diff line
@@ -2,14 +2,14 @@ openapi: 3.0.0

info:
  title: 'MBS User Service Announcement'
  version: 1.2.0
  version: 1.3.1
  description: |
    MBS User Service Announcement Element units.
    © 2023, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
    © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
    All rights reserved.

externalDocs:
  description: 3GPP TS 26.517 V17.4.0; 5G Multicast-Broadcast User Services; Protocols and Formats
  description: 3GPP TS 26.517 V17.5.1; 5G Multicast-Broadcast User Services; Protocols and Formats
  url: http://www.3gpp.org/ftp/Specs/archive/26_series/26.517/
paths:
  /user-service-descriptions:
@@ -29,9 +29,9 @@ paths:
          # OK
          description: "Success"
          content:
            application/json:
            multipart/related:
              schema:
                $ref: '#/components/schemas/UserServiceDescriptions'
                type: string
        '204':
          # No Content (no matching User Service Descriptions)
          description: "No Matches Found"
@@ -61,9 +61,9 @@ paths:
          # OK
          description: "Success"
          content:
            application/json:
            multipart/related:
              schema:
                $ref: '#/components/schemas/UserServiceDescription'
                type: string
        '404':
          # Not Found
          $ref: 'TS29571_CommonData.yaml#/components/responses/404'
@@ -79,61 +79,106 @@ paths:
components:
  schemas:
    UserServiceDescriptions:
      description: 'A document announcing one or more MBS User Services.'
      type: object
      properties:
        version:
          type: integer
          minimum: 1
        userServiceDescriptions:
          type: array
          items:
            $ref: '#/components/schemas/UserServiceDescription'
          minItems: 1
      required:
        - userServiceDescriptions

    UserServiceDescription:
      description: 'A description of a single MBS User Service.'
      type: object
      properties:
        name:
        serviceIds:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
          minItems: 1
        class:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        names:
          type: array
          items:
            type: object
            properties:
              name:
                type: string
        serviceLanguage:
              lang:
                type: string
                pattern: '^[a-zA-Z]{3}$'
                example: 'eng'
            required:
              - name
              - lang
          minItems: 1
        descriptions:
          type: array
          items:
            type: object
            properties:
              description:
                type: string
        serviceId:
              lang:
                type: string
        distributionSessionDescription:
                pattern: '^[a-zA-Z]{3}$'
                example: 'eng'
            required:
              - description
              - lang
          minItems: 1
        serviceLanguage:
          type: string
          pattern: '^[a-zA-Z]{3}$'
          example: 'eng'
        distributionSessionDescriptions:
          type: array
          items:
            $ref: '#/components/schemas/DistributionSessionDescription'
        appServiceDescription:
          $ref: '#/components/schemas/AppServiceDescription'
        scheduleDescription:
          $ref: '#/components/schemas/ScheduleDescription'
        availabilityInfo:
          $ref: '#/components/schemas/AvailabilityInformation'
          minItems: 1
        serviceScheduleDescriptions:
          type: array
          items:
            $ref: '#/components/schemas/ServiceScheduleDescription'
          minItems: 1
      required:
       - serviceId
        - serviceIds
        - class
        - distributionSessionDescriptions

    DistributionSessionDescription:
      type: object
      properties:
        distributionMethod:
          $ref: '#/components/schemas/DistributionMethod'
        conformanceProfile:
        conformanceProfiles:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
          minItems: 1
        sessionDescriptionLocator:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        objectRepairParameters:
          $ref: '#/components/schemas/AssociatedProcedureDescription'
        dataNetworkName:
          type: string
        mbsAppService:
        applicationServiceDescriptions:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationService'
        unicastAppServices:
          type: array
          items:
            type: object
            properties:
              unicastAppService:
            $ref: '#/components/schemas/ApplicationServiceDescription'
          minItems: 1
        postSessionObjectRepairParameters:
          $ref: '#/components/schemas/ObjectRepairParameters'
        availabilityInfos:
          type: array
          items:
                  $ref: '#/components/schemas/ApplicationService'
            $ref: '#/components/schemas/AvailabilityInformation'
          minItems: 1
        securityDescription:
          $ref: '#/components/schemas/SecurityDescription'
      required:
        - distributionMethod
        - sessionDescriptionLocator
@@ -141,173 +186,109 @@ components:
    DistributionMethod:
      anyOf:
        - type: string
          enum: [OBJECT, PACKET]
          enum:
            - OBJECT
            - PACKET
        - type: string
          description: >
            This string provides forward-compatibility with future
            extensions to the enumeration but is not used to encode
            content defined in the present version of this API.

    AppServiceDescription:
    ApplicationServiceDescription:
      type: object
      properties: 
        mediaEntryPointLocator:
        entryPointLocator:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        mimeType:
          type: string
        identicalContents:
          type: array
          items:
            type: object
            properties:
              unicastAppService:
                type: array
                items:
                  $ref: '#/components/schemas/ApplicationService'
                minItems: 2
        alternativeContents:
          type: array
          items:
              type: array
              items:
                  $ref: '#/components/schemas/ApplicationService'

    ApplicationService:
      type: object
      properties:
        basePattern:
        contentType:
          type: string
          pattern: '^[a-zA-Z]+\/[a-zA-Z]+$'
          example: 'application/dash+xml'
      required:
        - basePattern
        - entryPointLocator
        - contentType

    AvailabilityInformation:
      type: array
      items:
        $ref: '#/components/schemas/AvailabilityInformationBinding'

    AvailabilityInformationBinding:
      type: object
      properties:
        mbsServiceArea:
          type: array
          items:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/MbsServiceArea'
          minItems: 1
        mbsFSAId:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/MbsFsaId'
        radioFrequency:
          type: array
          items:
            type: integer
            minimum: 0
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Uinteger'
          minItems: 1
      required:
        - radioFrequency

    AssociatedProcedureDescription:
      type: object
      properties:
        postObjectRepair:
          $ref: '#/components/schemas/PostObjectRepair'
        mbsObjectRepair:
          $ref: '#/components/schemas/MbsObjectRepair'

    PostObjectRepair:
    ObjectRepairParameters:
      type: object
      properties:
        serviceLocators:
          type: array
          items:
        backOffParameters:
          $ref: '#/components/schemas/BackOffParameters'
        objectDistributionBaseLocator:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
        objectRepairBaseLocator:
          $ref: 'TS26512_CommonData.yaml#/components/schemas/AbsoluteUrl'
    BackOffParameters:
      type: object
      properties:
        offsetTime:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
        randomTimePeriod:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/DurationSec'
      anyOf:
        - required: [offsetTime]
        - required: [randomTimePeriod]

    MbsObjectRepair:
      type: object
      properties:
        sessionDescriptionURI:
           type: string

    ScheduleDescription:
      type: array
      items:
        $ref: '#/components/schemas/ServiceSchedule'

    ServiceSchedule:
    ServiceScheduleDescription:
      type: object
      properties:
        sessionSchedule:
          $ref: '#/components/schemas/SessionSchedule'
        sessionScheduleOverride:
          $ref: '#/components/schemas/SessionScheduleOverride'
        objectSchedule:
          $ref: '#/components/schemas/ObjectSchedule'
        serviceId:
         id:
           type: string
        serviceClass:
          $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
      required:
       - sessionSchedule
       - serviceId
       - serviceClass

    SessionSchedule:
      type: array
      items:
        type: object
        properties:
         version:
           type: integer
           minimum: 1
         start:
           $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
         stop:
           $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
           reoccurencePattern:
             type: string
           numberOfTimes:
             type: integer
             minimum: 1
           reoccurenceStopTime:
             type: string
           index:
             type: integer
           fDTInstanceLocator:
             $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
      required:
        - id
        - version
        - start
        - stop

    SessionScheduleOverride:
      type: array
      items: 
    SecurityDescription:
      type: object
      properties:
          start:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
          stop:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
          index:
            type: integer
          cancelled:
            type: boolean
          sessionDescriptionLocator:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'

    ObjectSchedule:
        mBSSFAddresses:
          type: array
          items:
            $ref: 'TS26512_CommonData.yaml#/components/schemas/AbsoluteUrl'
          minItems: 1
        mBSServiceKeyInfo:
          type: object
          properties:
          objectLocator:
            $ref: 'TS29571_CommonData.yaml#/components/schemas/Uri'
          sessionId:
            mBSId:
              type: string
          objectEtag:
            mBSDomainId:
              type: string
          unicastOnly:
          required:
            - mBSId
            - mBSDomainId
        uICCKeyManagement:
          type: boolean
          deliveryInfo:
            type: array
            items:
              type: object
              properties:
                start:
                  $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
                stop:
                  $ref: 'TS29571_CommonData.yaml#/components/schemas/DateTime'
        2GGBAallowed:
          type: boolean
        backOffParameters:
          $ref: '#/components/schemas/BackOffParameters'
      required:
        - mBSSFAddresses
        - mBSSessionKeyInfo