From eed71032fad29af1c4b7ee114487d13ebb5854a4 Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Mon, 8 Dec 2025 10:38:22 +0000 Subject: [PATCH 1/3] CR26264-CR0007r2 [S4-252049|SP-251437] as supplied by Imed Bouazizi (Qualcomm) on 2025-12-05. --- README.md | 123 +++++- TS26264_CommonData.yaml | 61 +++ TS26264_Mbar_Management_Assets.yaml | 273 ++++++++++++ ...Mbar_Management_AssociatedInformation.yaml | 90 ++++ ...Mbar_Management_AvatarRepresentations.yaml | 314 ++++++++++++++ TS26264_Mbar_Management_Avatars.yaml | 317 ++++++++++++++ TS26264_Mbar_Management_Sessions.yaml | 399 ++++++++++++++++++ 7 files changed, 1570 insertions(+), 7 deletions(-) mode change 100644 => 100755 README.md create mode 100755 TS26264_CommonData.yaml create mode 100755 TS26264_Mbar_Management_Assets.yaml create mode 100755 TS26264_Mbar_Management_AssociatedInformation.yaml create mode 100755 TS26264_Mbar_Management_AvatarRepresentations.yaml create mode 100755 TS26264_Mbar_Management_Avatars.yaml create mode 100755 TS26264_Mbar_Management_Sessions.yaml diff --git a/README.md b/README.md old mode 100644 new mode 100755 index bc5c604e..6c2ce474 --- 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: -[![pipeline status](https://forge.3gpp.org/rep/all/5G_APIs/badges/REL-19/pipeline.svg)](https://forge.3gpp.org/rep/all/5G_APIs/commits/REL-19) +[![pipeline status](https://forge.3gpp.org/rep/all/5G_APIs/badges/Rel19-draft-TSG110/pipeline.svg)](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 100755 index 00000000..8c0ae256 --- /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.0.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] \ No newline at end of file diff --git a/TS26264_Mbar_Management_Assets.yaml b/TS26264_Mbar_Management_Assets.yaml new file mode 100755 index 00000000..620075a4 --- /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.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: + /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 V19.0.0.' + 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 100755 index 00000000..5818c468 --- /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.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: + /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 100755 index 00000000..7dba802f --- /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.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: + /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 100755 index 00000000..d87d3245 --- /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.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: + /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 V19.0.0' + 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 multi-part 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 100755 index 00000000..d918e535 --- /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' -- GitLab From c7bc146ca8ae746b66ce3358f806c4fa9299880f Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Mon, 8 Dec 2025 10:41:15 +0000 Subject: [PATCH 2/3] Change file mode to 644 octal. --- README.md | 0 TS26264_CommonData.yaml | 0 TS26264_Mbar_Management_Assets.yaml | 0 TS26264_Mbar_Management_AssociatedInformation.yaml | 0 TS26264_Mbar_Management_AvatarRepresentations.yaml | 0 TS26264_Mbar_Management_Avatars.yaml | 0 TS26264_Mbar_Management_Sessions.yaml | 0 7 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 README.md mode change 100755 => 100644 TS26264_CommonData.yaml mode change 100755 => 100644 TS26264_Mbar_Management_Assets.yaml mode change 100755 => 100644 TS26264_Mbar_Management_AssociatedInformation.yaml mode change 100755 => 100644 TS26264_Mbar_Management_AvatarRepresentations.yaml mode change 100755 => 100644 TS26264_Mbar_Management_Avatars.yaml mode change 100755 => 100644 TS26264_Mbar_Management_Sessions.yaml diff --git a/README.md b/README.md old mode 100755 new mode 100644 diff --git a/TS26264_CommonData.yaml b/TS26264_CommonData.yaml old mode 100755 new mode 100644 diff --git a/TS26264_Mbar_Management_Assets.yaml b/TS26264_Mbar_Management_Assets.yaml old mode 100755 new mode 100644 diff --git a/TS26264_Mbar_Management_AssociatedInformation.yaml b/TS26264_Mbar_Management_AssociatedInformation.yaml old mode 100755 new mode 100644 diff --git a/TS26264_Mbar_Management_AvatarRepresentations.yaml b/TS26264_Mbar_Management_AvatarRepresentations.yaml old mode 100755 new mode 100644 diff --git a/TS26264_Mbar_Management_Avatars.yaml b/TS26264_Mbar_Management_Avatars.yaml old mode 100755 new mode 100644 diff --git a/TS26264_Mbar_Management_Sessions.yaml b/TS26264_Mbar_Management_Sessions.yaml old mode 100755 new mode 100644 -- GitLab From 07e6d5d1cf6bb27a6c450974e0d2da8ee8363893 Mon Sep 17 00:00:00 2001 From: Richard Bradbury Date: Mon, 8 Dec 2025 11:01:05 +0000 Subject: [PATCH 3/3] Fixed target specification version number to V19.1.0. --- TS26264_CommonData.yaml | 4 ++-- TS26264_Mbar_Management_Assets.yaml | 4 ++-- TS26264_Mbar_Management_AssociatedInformation.yaml | 2 +- TS26264_Mbar_Management_AvatarRepresentations.yaml | 2 +- TS26264_Mbar_Management_Avatars.yaml | 6 +++--- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/TS26264_CommonData.yaml b/TS26264_CommonData.yaml index 8c0ae256..c2834b20 100644 --- a/TS26264_CommonData.yaml +++ b/TS26264_CommonData.yaml @@ -8,7 +8,7 @@ info: All rights reserved. externalDocs: - description: 'TS 26.264 v19.0.0; IMS-based AR Real-Time Communication' + 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: {} @@ -58,4 +58,4 @@ components: 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] \ No newline at end of file + required: [avatarId, assets, supportedAnimations, infoUpdatedAt] diff --git a/TS26264_Mbar_Management_Assets.yaml b/TS26264_Mbar_Management_Assets.yaml index 620075a4..ea34d961 100644 --- a/TS26264_Mbar_Management_Assets.yaml +++ b/TS26264_Mbar_Management_Assets.yaml @@ -12,7 +12,7 @@ tags: description: 'Avatar Asset Management' externalDocs: - description: 'TS 26.264 v19.0.0; IMS-based AR Real-Time Communication' + 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: @@ -241,7 +241,7 @@ components: schemas: Asset: type: object - description: 'Asset resource as defined in Table B.1-7 of TS 26.264 V19.0.0.' + description: 'Asset resource as defined in Table B.1-7 of TS 26.264.' required: - namespace properties: diff --git a/TS26264_Mbar_Management_AssociatedInformation.yaml b/TS26264_Mbar_Management_AssociatedInformation.yaml index 5818c468..8f2617ac 100644 --- a/TS26264_Mbar_Management_AssociatedInformation.yaml +++ b/TS26264_Mbar_Management_AssociatedInformation.yaml @@ -12,7 +12,7 @@ tags: description: 'Associated Information for Base Avatars' externalDocs: - description: 'TS 26.264 v19.0.0; IMS-based AR Real-Time Communication' + 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: diff --git a/TS26264_Mbar_Management_AvatarRepresentations.yaml b/TS26264_Mbar_Management_AvatarRepresentations.yaml index 7dba802f..d778f306 100644 --- a/TS26264_Mbar_Management_AvatarRepresentations.yaml +++ b/TS26264_Mbar_Management_AvatarRepresentations.yaml @@ -12,7 +12,7 @@ tags: description: 'Avatar Representation Management' externalDocs: - description: 'TS 26.264 v19.0.0; IMS-based AR Real-Time Communication' + 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: diff --git a/TS26264_Mbar_Management_Avatars.yaml b/TS26264_Mbar_Management_Avatars.yaml index d87d3245..5f518f05 100644 --- a/TS26264_Mbar_Management_Avatars.yaml +++ b/TS26264_Mbar_Management_Avatars.yaml @@ -12,7 +12,7 @@ tags: description: 'Base Avatar Management' externalDocs: - description: 'TS 26.264 v19.0.0; IMS-based AR Real-Time Communication' + 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: @@ -288,7 +288,7 @@ components: schemas: Avatar: type: object - description: 'Avatar resource as defined in Table B.1-5 of TS 26.264 V19.0.0' + description: 'Avatar resource as defined in Table B.1-5 of TS 26.264' required: - ownerId properties: @@ -309,7 +309,7 @@ components: 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 multi-part mime part with MIME type "model/vnd.mpeg.arf+zip"' + - 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' -- GitLab