diff --git a/README.md b/README.md
index bc5c604e327d39de70fdd912a917522bbb7fc567..6c2ce474b528507627a606dda2328e7f8c57932c 100644
--- a/README.md
+++ b/README.md
@@ -1,13 +1,13 @@
-# OpenAPI Specification Files for 3GPP 5G Core Network (Release 19)
+# {-[DRAFT]-} OpenAPI Specification Files for 3GPP 5G Core Network (Release 19)
© 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved.
-API version: **September 2025**
+API version: **October/November 2025**
Release status: **{+ Open +}**
Other releases: [Rel-18 (Frozen)](https://forge.3gpp.org/rep/all/5G_APIs/tree/REL-18), [Rel-17 (Frozen)](https://forge.3gpp.org/rep/all/5G_APIs/tree/REL-17), [Rel-16 (Frozen)](https://forge.3gpp.org/rep/all/5G_APIs/tree/REL-16), [Rel-15 (Frozen)](https://forge.3gpp.org/rep/all/5G_APIs/tree/REL-15)
OpenAPI validation status:
-[](https://forge.3gpp.org/rep/all/5G_APIs/commits/REL-19)
+[](https://forge.3gpp.org/rep/all/5G_APIs/commits/Rel19-draft-TSG110)
#### Tools
* API Parser/Linter to parse OpenAPI files with APIDevTools Swagger Parser/Validator and run a number of lint rules to improve API quality
@@ -260,6 +260,12 @@ The links below will open the Swagger Editor/UI and auto-load the OpenAPI YAML f
* VFL Inference
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29591_Nnef_VFLInference.yaml))
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29591_Nnef_VFLInference.yaml))
+* Training
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29591_Nnef_Training.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29591_TS29591_Nnef_Training.yaml))
+* VFL Training
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29591_Nnef_VFLTraining.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29591_Nnef_VFLTraining.yaml))
## PCF (Policy Control Function)
* Policy Authorization
@@ -597,6 +603,14 @@ The links below will open the Swagger Editor/UI and auto-load the OpenAPI YAML f
* Ambient IoT Data Management Service
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29369_Nadm_DM.yaml))
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29369_Nadm_DM.yaml))
+* Ambient IoT Security Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29369_Nadm_Sec.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29369_Nadm_Sec.yaml))
+
+## EIF (Energy Information Function)
+* EIF Event Exposure Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29566_Neif_EventExposure.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29566_Neif_EventExposure.yaml))
# Northbound and Application Layer APIs
## CAPIF (Common API Framework)
@@ -1021,6 +1035,9 @@ These APIs are not part of the 5G Core Network; these APIs are exposed by the 4G
* ADAE UE RAT Connectivity Analytics
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29549_SS_ADAE_UeRatConnectivityAnalytics.yaml))
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29549_SS_ADAE_UeRatConnectivityAnalytics.yaml))
+* ADAE Data Network Energy Analytics
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29549_SS_ADAE_DN_energy_analytics.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29549_SS_ADAE_DN_energy_analytics.yaml))
* AADRF Data Management
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29549_SS_AADRF_DataManagement.yaml))
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29549_SS_AADRF_DataManagement.yaml))
@@ -1036,9 +1053,24 @@ These APIs are not part of the 5G Core Network; these APIs are exposed by the 4G
* SAn Server Spatial Anchors Discovery Service
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29437_SS_SAnDiscovery.yaml))
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29437_SS_SAnDiscovery.yaml))
+* SAn Server Spatial Anchors Usage Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29437_SS_SAnUsage.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29437_SS_SAnUsage.yaml))
* SM Server Data Source Registration Service
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS24550_SS_SmDataSourceRegistration.yaml))
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS24550_SS_SmDataSourceRegistration.yaml))
+* SM Server Spatial Maps Management Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29437_SS_SmManagement.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29437_SS_SmManagement.yaml))
+* SM Server Spatial Maps Discovery Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29437_SS_SmDiscovery.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29437_SS_SmDiscovery.yaml))
+* SM Server Spatial Maps Localization Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29437_SS_SmLocalization.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29437_SS_SmLocalization.yaml))
+* SM Server Data Source Discovery Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29437_SS_SmDataSourceDiscovery.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29437_SS_SmDataSourceDiscovery.yaml))
* SM Server SMAS registration Service
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29437_SS_SmSmasRegistration.yaml))
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29437_SS_SmSmasRegistration.yaml))
@@ -1187,6 +1219,15 @@ These APIs are not part of the 5G Core Network; these APIs are exposed by the 4G
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29583_PIN_ASServiceContinuity.yaml))
## AIML App (Artificial Intelligence Machine Learning Application)
+* AIMLE transfer learning (TL) enablement service (server)
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS24560_Aimles_UeTLModelSelectionAssistance.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS24560_Aimles_UeTLModelSelectionAssistance.yaml))
+* AIMLE transfer learning (TL) enablement service (client)
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS24560_Aimlec_ClientDataProcessing.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS24560_Aimlec_ClientDataProcessing.yaml))
+* AIMLE client participation service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS24560_Aimlec_AIMLEClientParticipation.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS24560_Aimlec_AIMLEClientParticipation.yaml))
* AIMLE client registration service
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS24560_Aimles_AIMLEClientRegistration.yaml))
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS24560_Aimles_AIMLEClientRegistration.yaml))
@@ -1223,15 +1264,39 @@ These APIs are not part of the 5G Core Network; these APIs are exposed by the 4G
* AIMLE Data Management Service
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_AIMLES_DataManagement.yaml))
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_AIMLES_DataManagement.yaml))
+* AIMLE Federated Learning Member Group Support Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_AIMLES_FLMemberGroupSupport.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_AIMLES_FLMemberGroupSupport.yaml))
* AIMLE Hierarchical Computing Assist Service
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_AIMLES_HierarchicalComputingAssist.yaml))
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_AIMLES_HierarchicalComputingAssist.yaml))
+* AIMLE Machine Learning Model Performance Monitor Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_AIMLES_MLModelPerfMonitor.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_AIMLES_MLModelPerfMonitor.yaml))
* AIMLE ML Model Retrieval Service
-([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_Aimles_MLModelRetrieval.yaml))
-([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_Aimles_MLModelRetrieval.yaml))
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_AIMLES_MLModelRetrieval.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_AIMLES_MLModelRetrieval.yaml))
+* AIMLE ML Model Training Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_AIMLES_MLModelTraining.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_AIMLES_MLModelTraining.yaml))
+* AIMLES_ML Model Update Request Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_AIMLES_MLModelUpdate.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_AIMLES_MLModelUpdate.yaml))
+* AIMLE Split Operation Event Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_AIMLES_SplitOpEvent.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_AIMLES_SplitOpEvent.yaml))
* AIMLE Split Operation Node Registration Service
-([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_Aimles_SplitOpNodeRegistration.yaml))
-([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_Aimles_SplitOpNodeRegistration.yaml))
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_AIMLES_SplitOpNodeRegistration.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_AIMLES_SplitOpNodeRegistration.yaml))
+* AIMLE Transfer Learning Model Selection Assistance Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_AIMLES_TLModelSelectionAssistance.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_AIMLES_TLModelSelectionAssistance.yaml))
+* Machine Learning Federated Learning Events Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_MLR_FLEvents.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_MLR_FLEvents.yaml))
+* AIMLE Repository Federated Member Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_MLR_FLMember.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_MLR_FLMember.yaml))
* MLR ML Model Management Service
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_MLR_MLModelManagement.yaml))
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_MLR_MLModelManagement.yaml))
@@ -1239,6 +1304,20 @@ These APIs are not part of the 5G Core Network; these APIs are exposed by the 4G
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29482_MLR_ModelInformationDiscovery.yaml))
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29482_MLR_ModelInformationDiscovery.yaml))
+## MMTel (Multimedia Telephony)
+* MMTel DC Application Management Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29392_MMTel_DCAppManagement.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29392_MMTel_DCAppManagement.yaml))
+* MMTel Enabler Server DC Application Call Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29392_MMTel_DCAppCall.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29392_MMTel_DCAppCall.yaml))
+* MMTel Enabler Server Call Event Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29392_MMTel_CallEvent.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29392_MMTel_CallEvent.yaml))
+* MMTel Enabler Server Call Control Service
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS29392_MMTel_CallControl.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS29392_MMTel_CallControl.yaml))
+
# Media Delivery TS 26.510
* Common Data Types
([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS26510_CommonData.yaml))
@@ -1373,6 +1452,36 @@ These APIs are not part of the 5G Core Network; these APIs are exposed by the 4G
([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS26512_M5_NetworkAssistance.yaml))
+
+# Avatar Call BAR Base Avatar Management TS 26.264
+
+* Common Data Types
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS26264_CommonData.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS26264_CommonData.yaml))
+
+## BAR Management APIs
+
+* Mbar Management Avatars
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS26264_Mbar_Management_Avatars.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS26264_Mbar_Management_Avatars.yaml))
+
+* Mbar Management Assets
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS26264_Mbar_Management_Assets.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS26264_Mbar_Management_Assets.yaml))
+
+* Mbar Management Associated Information
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS26264_Mbar_Management_AssociatedInformation.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS26264_Mbar_Management_AssociatedInformation.yaml))
+
+* Mbar Management Avatar Representations
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS26264_Mbar_Management_AvatarRepresentations.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS26264_Mbar_Management_AvatarRepresentations.yaml))
+
+* Mbar Management Sessions
+([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=TS26264_Mbar_Management_Sessions.yaml))
+([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=TS26264_Mbar_Management_Sessions.yaml))
+
+
# 3GPP SA5 models and MnS OpenAPI definitions
## Network Resource Models (NRM)
diff --git a/TS26264_CommonData.yaml b/TS26264_CommonData.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c2834b20e238803042205a9c7ead3b159bcb42e9
--- /dev/null
+++ b/TS26264_CommonData.yaml
@@ -0,0 +1,61 @@
+openapi: 3.0.0
+info:
+ title: TS26264_CommonData
+ version: 1.0.0
+ description: |
+ Common Data Types for IMS-based AR Real-Time Communication
+ © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+ All rights reserved.
+
+externalDocs:
+ description: 'TS 26.264 V19.1.0; IMS-based AR Real-Time Communication'
+ url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.264/'
+
+paths: {}
+
+components:
+ schemas:
+
+ ###################################################
+ # Annex B.1.7: Associated Information (Table B.1-9)
+ ###################################################
+ AssociatedInfo:
+ type: object
+ description: 'Associated information metadata for Base Avatars and Assets'
+ properties:
+ avatarId:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ avatarMetadata:
+ type: object
+ description: 'Metadata related to the Avatar'
+ assets:
+ type: array
+ items:
+ type: object
+ properties:
+ assetLoDs:
+ type: array
+ items:
+ type: object
+ properties:
+ level:
+ type: string
+ description: 'Level of detail identifier.'
+ size:
+ type: integer
+ description: 'The size in bytes associated with this LoD'
+ description: 'A list of available LoDs for the corresponding asset with size information'
+ description: 'A list of assets associated with the Base Avatar'
+ selectionInfo:
+ type: object
+ description: 'Provides information that the user can use to select this avatar, including name, nickname, usage context, and images of renditions'
+ supportedAnimations:
+ type: array
+ items:
+ type: string
+ description: 'A list of the URNs that identify the supported animation frameworks by this base avatar'
+ infoUpdatedAt:
+ type: number
+ format: int64
+ description: 'A timestamp (in wall clock time) describing the time of the last update to the associated information'
+ required: [avatarId, assets, supportedAnimations, infoUpdatedAt]
diff --git a/TS26264_Mbar_Management_Assets.yaml b/TS26264_Mbar_Management_Assets.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ea34d961a79c00b375d21a5f7886422f2d873627
--- /dev/null
+++ b/TS26264_Mbar_Management_Assets.yaml
@@ -0,0 +1,273 @@
+openapi: 3.0.0
+info:
+ title: Mbar_Management_Assets
+ version: 1.0.0
+ description: |
+ Base Avatar Repository Management API - Assets
+ © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+ All rights reserved.
+
+tags:
+ - name: Assets
+ description: 'Avatar Asset Management'
+
+externalDocs:
+ description: 'TS 26.264 V19.1.0; IMS-based AR Real-Time Communication'
+ url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.264/'
+
+servers:
+ - url: '{apiRoot}/3gpp-mbar-management/v1'
+ variables:
+ apiRoot:
+ default: https://example.com
+ description: apiRoot as defined in 3GPP TS 29.501
+
+security:
+ - {}
+ - OAuth2: []
+
+paths:
+ /avatars/{avatarId}/assets:
+ parameters:
+ - name: avatarId
+ in: path
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ description: 'The unique identifier of the parent Avatar resource'
+ post:
+ tags:
+ - Assets
+ operationId: createAsset
+ summary: 'Create a new asset resource in the BAR'
+ description: 'Create a new Asset resource in the BAR under the parent Base Avatar.'
+ security:
+ - OAuth2:
+ - asset_create
+ requestBody:
+ description: 'A JSON representation of an Asset'
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Asset'
+ responses:
+ '201':
+ description: 'Asset Created'
+ headers:
+ Location:
+ description: 'URL of the newly created Asset resource'
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/Url'
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ asset:
+ $ref: '#/components/schemas/Asset'
+ description: 'A JSON representation of an Asset'
+ assetData:
+ type: array
+ items:
+ type: string
+ format: binary
+ description: 'Array of binary files for the asset components.'
+ required:
+ - asset
+ encoding:
+ asset:
+ contentType: application/json
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '403':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/403'
+ '411':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/411'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '415':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/415'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+
+ /avatars/{avatarId}/assets/{assetId}:
+ parameters:
+ - name: avatarId
+ in: path
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ description: 'The unique identifier of the Avatar resource'
+ - name: assetId
+ in: path
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ description: 'The unique identifier of the Asset resource'
+ get:
+ tags:
+ - Assets
+ operationId: getAsset
+ summary: 'Retrieve a previously created or uploaded asset'
+ security:
+ - OAuth2:
+ - asset_retrieve
+ responses:
+ '200':
+ description: 'Success'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Asset'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+ put:
+ tags:
+ - Assets
+ operationId: updateAsset
+ summary: 'Upload or update asset data'
+ security:
+ - OAuth2:
+ - asset_update
+ requestBody:
+ description: 'A JSON representation of an Asset'
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Asset'
+ responses:
+ '200':
+ description: 'Asset Updated'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Asset'
+ '204':
+ description: 'Asset Unchanged'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '403':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/403'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '411':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/411'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '415':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/415'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+ delete:
+ tags:
+ - Assets
+ operationId: deleteAsset
+ summary: 'Remove and delete an asset'
+ security:
+ - OAuth2:
+ - asset_delete
+ responses:
+ '204':
+ description: 'Asset Deleted'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+
+components:
+ securitySchemes:
+ OAuth2:
+ type: oauth2
+ flows:
+ clientCredentials:
+ tokenUrl: '{tokenUrl}'
+ scopes:
+ asset_create: Create Asset resource
+ asset_retrieve: Retrieve Asset resource
+ asset_update: Update Asset resource
+ asset_delete: Delete Asset resource
+
+ schemas:
+ Asset:
+ type: object
+ description: 'Asset resource as defined in Table B.1-7 of TS 26.264.'
+ required:
+ - namespace
+ properties:
+ assetId:
+ allOf:
+ - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ - readOnly: true
+ description: 'A unique identifier assigned to an asset by the BAR on creation. The assetId is scoped by the avatarId'
+ namespace:
+ type: string
+ description: 'A namespace defining the intended usage of the asset, as exemplified by names such as "human/head" or "accessory/hat"'
+ example: 'human/head'
+ LoD:
+ type: array
+ items:
+ type: string
+ description: 'A list of available LoDs for the corresponding asset'
+ assetData:
+ type: array
+ items:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/Url'
+ description: |
+ List of URLs that point to the asset data. For creation/update of an asset, all components shall be provided as part of a multi-part mime body.
+ The primary URL shall reference an ARF document describing all components.
+ associatedInfo:
+ allOf:
+ - $ref: 'TS26264_CommonData.yaml#/components/schemas/AssociatedInfo'
+ - readOnly: true
+ description: 'Associated information related to the Asset'
diff --git a/TS26264_Mbar_Management_AssociatedInformation.yaml b/TS26264_Mbar_Management_AssociatedInformation.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8f2617acd2e5600a64620c215f52f918542ce83f
--- /dev/null
+++ b/TS26264_Mbar_Management_AssociatedInformation.yaml
@@ -0,0 +1,90 @@
+openapi: 3.0.0
+info:
+ title: Mbar_Management_AssociatedInformation
+ version: 1.0.0
+ description: |
+ Base Avatar Repository Management API - Associated Information
+ © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+ All rights reserved.
+
+tags:
+ - name: AssociatedInformation
+ description: 'Associated Information for Base Avatars'
+
+externalDocs:
+ description: 'TS 26.264 V19.1.0; IMS-based AR Real-Time Communication'
+ url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.264/'
+
+servers:
+ - url: '{apiRoot}/3gpp-mbar-management/v1'
+ variables:
+ apiRoot:
+ default: https://example.com
+ description: apiRoot as defined in 3GPP TS 29.501
+
+security:
+ - {}
+ - OAuth2: []
+
+paths:
+ /avatars/{avatarId}/associatedInfo:
+ parameters:
+ - name: avatarId
+ in: path
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ description: 'The unique identifier of the Avatar resource'
+ get:
+ tags:
+ - AssociatedInformation
+ operationId: getAssociatedInformation
+ summary: 'Retrieve associated information corresponding to a Base Avatar'
+ security:
+ - OAuth2:
+ - associated_info_retrieve
+ responses:
+ '200':
+ description: 'Success'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AssociatedInformation'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+
+components:
+ securitySchemes:
+ OAuth2:
+ type: oauth2
+ flows:
+ clientCredentials:
+ tokenUrl: '{tokenUrl}'
+ scopes:
+ associated_info_retrieve: Retrieve Associated Information
+
+ schemas:
+ AssociatedInformation:
+ type: object
+ description: 'A representation of Associated Information resource'
+ required:
+ - associatedInfo
+ properties:
+ associatedInfo:
+ $ref: 'TS26264_CommonData.yaml#/components/schemas/AssociatedInfo'
diff --git a/TS26264_Mbar_Management_AvatarRepresentations.yaml b/TS26264_Mbar_Management_AvatarRepresentations.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d778f306f6aa1014ec6762de81653938cdaae96c
--- /dev/null
+++ b/TS26264_Mbar_Management_AvatarRepresentations.yaml
@@ -0,0 +1,314 @@
+openapi: 3.0.0
+info:
+ title: Mbar_Management_AvatarRepresentations
+ version: 1.0.0
+ description: |
+ Base Avatar Repository Management API - Avatar Representations
+ © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+ All rights reserved.
+
+tags:
+ - name: AvatarRepresentations
+ description: 'Avatar Representation Management'
+
+externalDocs:
+ description: 'TS 26.264 V19.1.0; IMS-based AR Real-Time Communication'
+ url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.264/'
+
+servers:
+ - url: '{apiRoot}/3gpp-mbar-management/v1'
+ variables:
+ apiRoot:
+ default: https://example.com
+ description: apiRoot as defined in 3GPP TS 29.501
+
+security:
+ - {}
+ - OAuth2: []
+
+paths:
+ /avatars/{avatarId}/representations:
+ parameters:
+ - name: avatarId
+ in: path
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ description: 'The unique identifier of the Avatar resource'
+ post:
+ tags:
+ - AvatarRepresentations
+ operationId: createAvatarRepresentation
+ summary: 'Create an Avatar Representation resource in the BAR'
+ security:
+ - OAuth2:
+ - avatar_representation_create
+ requestBody:
+ description: 'A JSON representation of an Avatar Representation'
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AvatarRepresentation'
+ responses:
+ '201':
+ description: 'Avatar Representation Created'
+ headers:
+ Location:
+ description: 'URL of the newly created Avatar Representation resource'
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/Url'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AvatarRepresentation'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '403':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/403'
+ '411':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/411'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '415':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/415'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+
+ /avatars/{avatarId}/representations/{avatarRepresentationId}:
+ parameters:
+ - name: avatarId
+ in: path
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ description: 'The unique identifier of the parent Avatar resource'
+ - name: avatarRepresentationId
+ in: path
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ description: 'The unique identifier of the Avatar Representation resource'
+ get:
+ tags:
+ - AvatarRepresentations
+ operationId: getAvatarRepresentation
+ summary: 'Retrieve a previously created Avatar Representation resource'
+ security:
+ - OAuth2:
+ - avatar_representation_retrieve
+ responses:
+ '200':
+ description: 'Success'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AvatarRepresentation'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+ put:
+ tags:
+ - AvatarRepresentations
+ operationId: updateAvatarRepresentation
+ summary: 'Update Avatar Representation resource'
+ security:
+ - OAuth2:
+ - avatar_representation_update
+ requestBody:
+ description: 'A JSON representation of an Avatar Representation'
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AvatarRepresentation'
+ responses:
+ '200':
+ description: 'Avatar Representation Updated'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AvatarRepresentation'
+ '204':
+ description: 'Avatar Representation Unchanged'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '403':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/403'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '411':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/411'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '415':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/415'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+ patch:
+ tags:
+ - AvatarRepresentations
+ operationId: patchAvatarRepresentation
+ summary: 'Patch Avatar Representation resource'
+ security:
+ - OAuth2:
+ - avatar_representation_update
+ requestBody:
+ description: 'A JSON representation of an Avatar Representation'
+ required: true
+ content:
+ application/merge-patch+json:
+ schema:
+ $ref: '#/components/schemas/AvatarRepresentation'
+ application/json-patch+json:
+ schema:
+ $ref: '#/components/schemas/AvatarRepresentation'
+ responses:
+ '200':
+ description: 'Patched Avatar Representation'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/AvatarRepresentation'
+ '204':
+ description: 'Avatar Representation Unchanged'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '403':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/403'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '411':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/411'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '415':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/415'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+ delete:
+ tags:
+ - AvatarRepresentations
+ operationId: deleteAvatarRepresentation
+ summary: 'Remove and delete an Avatar Representation'
+ security:
+ - OAuth2:
+ - avatar_representation_delete
+ responses:
+ '204':
+ description: 'Avatar Representation Deleted'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+
+components:
+ securitySchemes:
+ OAuth2:
+ type: oauth2
+ flows:
+ clientCredentials:
+ tokenUrl: '{tokenUrl}'
+ scopes:
+ avatar_representation_create: Create Avatar Representation resource
+ avatar_representation_retrieve: Retrieve Avatar Representation resource
+ avatar_representation_update: Update Avatar Representation resource
+ avatar_representation_delete: Delete Avatar Representation resource
+
+ schemas:
+ AvatarRepresentation:
+ type: object
+ description: 'A representation of an Avatar Representation resource'
+ required:
+ - ownerId
+ - assetIds
+ - assetLoDs
+ properties:
+ avatarRepresentationId:
+ allOf:
+ - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ - readOnly: true
+ description: 'A unique identifier assigned to an Avatar Representation by the BAR on creation'
+ ownerId:
+ type: string
+ description: 'A unique identifier identifying the subscriber (owner) associated with the base avatar'
+ assetIds:
+ type: array
+ items:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ description: 'Identifies the assets to be shared'
+ assetLoDs:
+ type: array
+ items:
+ type: object
+ properties:
+ assetId:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ allowedLoDs:
+ type: array
+ items:
+ type: string
+ description: 'Identifies the allowed LoDs for each asset selected'
+ publishTime:
+ type: number
+ format: int64
+ readOnly: true
+ description: 'Describes the issue time or latest update time (in wall clock time) of the Avatar Representation'
diff --git a/TS26264_Mbar_Management_Avatars.yaml b/TS26264_Mbar_Management_Avatars.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..5f518f053fc36db0b231acbd106219b63465ce88
--- /dev/null
+++ b/TS26264_Mbar_Management_Avatars.yaml
@@ -0,0 +1,317 @@
+openapi: 3.0.0
+info:
+ title: Mbar_Management_Avatars
+ version: 1.0.0
+ description: |
+ Base Avatar Repository Management API - Avatars
+ © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+ All rights reserved.
+
+tags:
+ - name: Avatars
+ description: 'Base Avatar Management'
+
+externalDocs:
+ description: 'TS 26.264 V19.1.0; IMS-based AR Real-Time Communication'
+ url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.264/'
+
+servers:
+ - url: '{apiRoot}/3gpp-mbar-management/v1'
+ variables:
+ apiRoot:
+ default: https://example.com
+ description: apiRoot as defined in 3GPP TS 29.501
+
+security:
+ - {}
+ - OAuth2: []
+
+paths:
+ /avatars:
+ post:
+ tags:
+ - Avatars
+ operationId: createAvatar
+ summary: 'Create a new Base Avatar resource in the BAR'
+ security:
+ - OAuth2:
+ - avatar_create
+ requestBody:
+ required: true
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ avatar:
+ $ref: '#/components/schemas/Avatar'
+ description: 'A JSON representation of an Avatar'
+ avatarContainer:
+ type: string
+ format: binary
+ description: 'Binary ARF container file for the base avatar.'
+ required:
+ - avatar
+ encoding:
+ avatar:
+ contentType: application/json
+ avatarContainer:
+ contentType: model/vnd.mpeg.arf+zip
+ responses:
+ '201':
+ description: 'Avatar Created'
+ headers:
+ Location:
+ description: 'URL of the newly created Avatar resource'
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/Url'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Avatar'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '403':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/403'
+ '411':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/411'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '415':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/415'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+
+ /avatars/{avatarId}:
+ parameters:
+ - name: avatarId
+ in: path
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ description: 'The unique identifier of the Avatar resource'
+ get:
+ tags:
+ - Avatars
+ operationId: getAvatar
+ summary: 'Retrieve a Base Avatar'
+ description: 'Retrieves a previously created or uploaded base avatar in the BAR.'
+ security:
+ - OAuth2:
+ - avatar_retrieve
+ responses:
+ '200':
+ description: 'Success'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Avatar'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+ put:
+ tags:
+ - Avatars
+ operationId: updateAvatar
+ summary: 'Upload or update Base Avatar data'
+ description: 'Updates the Base Avatar data for the specified Avatar ID.'
+ security:
+ - OAuth2:
+ - avatar_update
+ requestBody:
+ description: 'A JSON representation of an Avatar'
+ required: true
+ content:
+ multipart/form-data:
+ schema:
+ type: object
+ properties:
+ avatarContainer:
+ type: string
+ format: binary
+ description: 'Binary avatar container.'
+ encoding:
+ avatarContainer:
+ contentType: model/vnd.mpeg.arf+zip
+ responses:
+ '200':
+ description: 'Avatar Updated'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Avatar'
+ '204':
+ description: 'Avatar Unchanged'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '403':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/403'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '411':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/411'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '415':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/415'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+ patch:
+ tags:
+ - Avatars
+ operationId: patchAvatar
+ summary: 'Patch Base Avatar data'
+ security:
+ - OAuth2:
+ - avatar_update
+ requestBody:
+ description: 'A JSON representation of an Avatar'
+ required: true
+ content:
+ application/merge-patch+json:
+ schema:
+ $ref: '#/components/schemas/Avatar'
+ application/json-patch+json:
+ schema:
+ $ref: '#/components/schemas/Avatar'
+ responses:
+ '200':
+ description: 'Patched Avatar'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Avatar'
+ '204':
+ description: 'Avatar Unchanged'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '403':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/403'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '411':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/411'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '415':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/415'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+ delete:
+ tags:
+ - Avatars
+ operationId: deleteAvatar
+ summary: 'Remove and delete a Base Avatar.'
+ description: 'Removes an Avatar resource, including its associated container, as well as its related assets and associated information'
+ security:
+ - OAuth2:
+ - avatar_delete
+ responses:
+ '204':
+ description: 'Avatar Deleted'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+
+components:
+ securitySchemes:
+ OAuth2:
+ type: oauth2
+ flows:
+ clientCredentials:
+ tokenUrl: '{tokenUrl}'
+ scopes:
+ avatar_create: Create Avatar resource
+ avatar_retrieve: Retrieve Avatar resource
+ avatar_update: Update Avatar resource
+ avatar_delete: Delete Avatar resource
+
+ schemas:
+ Avatar:
+ type: object
+ description: 'Avatar resource as defined in Table B.1-5 of TS 26.264'
+ required:
+ - ownerId
+ properties:
+ avatarId:
+ allOf:
+ - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ - readOnly: true
+ description: 'A unique identifier assigned to a Base Avatar by the BAR on creation'
+ ownerId:
+ type: string
+ description: 'A unique identifier identifying the subscriber (owner) associated with the base avatar'
+ assetIds:
+ type: array
+ items:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ readOnly: true
+ description: 'A list of asset IDs for the assets associated with the Base Avatar'
+ avatarContainer:
+ allOf:
+ - $ref: 'TS26510_CommonData.yaml#/components/schemas/Url'
+ - description: 'Payload containing the Base Avatar data and associated assets. For creation and update operations, the URL shall point to a multipart MIME part with MIME type "model/vnd.mpeg.arf+zip"'
+ associatedInfo:
+ allOf:
+ - $ref: 'TS26264_CommonData.yaml#/components/schemas/AssociatedInfo'
+ - readOnly: true
+ description: 'Associated information related to the Base Avatar'
diff --git a/TS26264_Mbar_Management_Sessions.yaml b/TS26264_Mbar_Management_Sessions.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d918e53554e8d4745d56d92918835b25f45714be
--- /dev/null
+++ b/TS26264_Mbar_Management_Sessions.yaml
@@ -0,0 +1,399 @@
+openapi: 3.0.0
+info:
+ title: Mbar_Management_Sessions
+ version: 1.0.0
+ description: |
+ Base Avatar Repository Management API - Sessions
+ © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
+ All rights reserved.
+
+tags:
+ - name: Sessions
+ description: 'Session Management for Avatar Usage'
+
+externalDocs:
+ description: 'TS 26.264 v19.0.0; IMS-based AR Real-Time Communication'
+ url: 'https://www.3gpp.org/ftp/Specs/archive/26_series/26.264/'
+
+servers:
+ - url: '{apiRoot}/3gpp-mbar-management/v1'
+ variables:
+ apiRoot:
+ default: https://example.com
+ description: apiRoot as defined in 3GPP TS 29.501
+
+security:
+ - {}
+ - OAuth2: []
+
+paths:
+ /sessions:
+ post:
+ tags:
+ - Sessions
+ operationId: createSession
+ summary: 'Create a Session resource in the BAR'
+ security:
+ - OAuth2:
+ - session_create
+ requestBody:
+ description: 'A JSON representation of a Session'
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Session'
+ responses:
+ '201':
+ description: 'Session Created'
+ headers:
+ Location:
+ description: 'URL of the newly created Session resource'
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/Url'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Session'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '403':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/403'
+ '411':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/411'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '415':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/415'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+
+ /sessions/{sessionId}:
+ parameters:
+ - name: sessionId
+ in: path
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ description: 'The unique identifier of the Session resource'
+ get:
+ tags:
+ - Sessions
+ operationId: getSession
+ summary: 'Retrieve a previously created Session resource'
+ security:
+ - OAuth2:
+ - session_retrieve
+ responses:
+ '200':
+ description: 'Success'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Session'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+ put:
+ tags:
+ - Sessions
+ operationId: updateSession
+ summary: 'Update Session resource'
+ security:
+ - OAuth2:
+ - session_update
+ requestBody:
+ description: 'A JSON representation of a Session'
+ required: true
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Session'
+ responses:
+ '200':
+ description: 'Session Updated'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/Session'
+ '204':
+ description: 'Session Unchanged'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '403':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/403'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '411':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/411'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '415':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/415'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+ delete:
+ tags:
+ - Sessions
+ operationId: deleteSession
+ summary: 'Remove and delete the Session and revoke its associated access token'
+ security:
+ - OAuth2:
+ - session_delete
+ responses:
+ '204':
+ description: 'Session Deleted'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+
+ /sessions/{sessionId}/token:
+ parameters:
+ - name: sessionId
+ in: path
+ required: true
+ schema:
+ $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ description: 'The unique identifier of the Session resource'
+ get:
+ tags:
+ - Sessions
+ operationId: getSessionToken
+ summary: 'Return current token metadata for the Session'
+ security:
+ - OAuth2:
+ - session_token_retrieve
+ responses:
+ '200':
+ description: 'Success'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SessionAccess'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+ post:
+ tags:
+ - Sessions
+ operationId: rotateSessionToken
+ summary: 'Issue a new short lived access token for the Session and invalidate the previous token'
+ security:
+ - OAuth2:
+ - session_token_rotate
+ responses:
+ '200':
+ description: 'New token issued'
+ content:
+ application/json:
+ schema:
+ $ref: '#/components/schemas/SessionAccess'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+ delete:
+ tags:
+ - Sessions
+ operationId: revokeSessionToken
+ summary: 'Revoke the current Session token without deleting the Session'
+ security:
+ - OAuth2:
+ - session_token_revoke
+ responses:
+ '204':
+ description: 'Token Revoked'
+ '400':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/400'
+ '401':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/401'
+ '404':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/404'
+ '410':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/410'
+ '413':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/413'
+ '414':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/414'
+ '500':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/500'
+ '503':
+ $ref: 'TS29571_CommonData.yaml#/components/responses/503'
+ default:
+ $ref: 'TS29571_CommonData.yaml#/components/responses/default'
+
+components:
+ securitySchemes:
+ OAuth2:
+ type: oauth2
+ flows:
+ clientCredentials:
+ tokenUrl: '{tokenUrl}'
+ scopes:
+ session_create: Create Session resource
+ session_retrieve: Retrieve Session resource
+ session_update: Update Session resource
+ session_delete: Delete Session resource
+ session_token_retrieve: Retrieve Session Token metadata
+ session_token_rotate: Rotate Session Token
+ session_token_revoke: Revoke Session Token
+
+ schemas:
+ Session:
+ type: object
+ description: 'A representation of a Session resource'
+ required:
+ - avatarId
+ - avatarRepresentationId
+ - ownerId
+ - creatorId
+ - callStartTime
+ - callEndTime
+ properties:
+ sessionId:
+ allOf:
+ - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ - readOnly: true
+ description: 'Unique identifier assigned by the BAR upon session creation'
+ avatarId:
+ allOf:
+ - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ - readOnly: true
+ description: 'A unique identifier assigned to a base avatar by the BAR'
+ avatarRepresentationId:
+ allOf:
+ - $ref: 'TS26510_CommonData.yaml#/components/schemas/ResourceId'
+ - readOnly: true
+ description: 'A unique identifier assigned to an Avatar Representation by the BAR'
+ ownerId:
+ type: string
+ description: 'A unique identifier identifying the subscriber (owner) associated with the base avatar'
+ creatorId:
+ type: string
+ description: 'A unique identifier identifying the creator of the session resource'
+ callStartTime:
+ type: number
+ description: 'The wall clock time at the start time of an avatar call period'
+ callEndTime:
+ type: number
+ description: 'Specifies the end time (in wall clock time) of an avatar call period'
+ publishTime:
+ type: number
+ readOnly: true
+ description: 'Describes the issue time or latest update time (in wall clock time) of the session resource'
+ accessToken:
+ allOf:
+ - $ref: '#/components/schemas/SessionAccess'
+ - readOnly: true
+ description: 'Access token and validity for dereferencing BAR resources within the scope of this session'
+
+ SessionAccess:
+ type: object
+ description: 'Session access token information'
+ required:
+ - token
+ - issuedAt
+ - expiresAt
+ properties:
+ token:
+ $ref: '#/components/schemas/SessionToken'
+ issuedAt:
+ type: number
+ description: 'Token issuance time (ms since epoch)'
+ expiresAt:
+ type: number
+ description: 'Absolute expiry (ms since epoch). Tokens are short lived and shall not exceed operator policy TTL'
+
+ SessionToken:
+ type: object
+ description: 'Session token'
+ required:
+ - scheme
+ - value
+ properties:
+ scheme:
+ type: string
+ description: 'Token scheme; "bearer" shall be supported'
+ enum:
+ - bearer
+ value:
+ type: string
+ description: 'Opaque token value. Its internal structure is operator specific'