From 592db33b09b126ca56ea3c00b81fa01a3f903da6 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Wed, 13 Aug 2025 02:08:57 +0000 Subject: [PATCH 001/103] Update file TS28319_MsacNrm.yaml --- OpenAPI/TS28319_MsacNrm.yaml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/OpenAPI/TS28319_MsacNrm.yaml b/OpenAPI/TS28319_MsacNrm.yaml index ac65e3ebf..18123d826 100644 --- a/OpenAPI/TS28319_MsacNrm.yaml +++ b/OpenAPI/TS28319_MsacNrm.yaml @@ -38,7 +38,7 @@ components: type: string credential: type: string - roleRefList: + roleList: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' Role-Single: @@ -64,10 +64,13 @@ components: properties: ruleName: type: string - resources: - type: string + dataNodeSelector: + oneOf: + - $ref: 'TS28623_ComDefs.yaml#/components/schemas/JexNodeSelectionBasic' + - $ref: 'TS28623_ComDefs.yaml#/components/schemas/JexNodeSelectionAdvanced' operations: type: array + uniqueItems: true items: type: string actions: @@ -77,9 +80,9 @@ components: - DENY componentCData: type: array + uniqueItems: true items: - type: string - + type: string resources-msacNrm: oneOf: - $ref: '#/components/schemas/Identity-Single' -- GitLab From 4ffe93d90d890189dff3605ee800f79a1b03de07 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Wed, 13 Aug 2025 02:17:37 +0000 Subject: [PATCH 002/103] Update file TS28319_MsacNrm.yaml --- OpenAPI/TS28319_MsacNrm.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OpenAPI/TS28319_MsacNrm.yaml b/OpenAPI/TS28319_MsacNrm.yaml index 18123d826..90b4f1615 100644 --- a/OpenAPI/TS28319_MsacNrm.yaml +++ b/OpenAPI/TS28319_MsacNrm.yaml @@ -2,10 +2,10 @@ openapi: 3.0.1 info: title: MSAC NRM - version: 18.0.0 + version: 19.0.0 description: >- OAS 3.0.1 definition of the MSAC NRM - © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). + © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 28.319; MSAC NRM @@ -82,7 +82,7 @@ components: type: array uniqueItems: true items: - type: string + type: string resources-msacNrm: oneOf: - $ref: '#/components/schemas/Identity-Single' -- GitLab From d0c0cb7a49c314a0bfada01594e7b98786443744 Mon Sep 17 00:00:00 2001 From: gautamd Date: Thu, 28 Aug 2025 10:13:00 +0000 Subject: [PATCH 003/103] Edit TS28541_NrNrm.yaml --- OpenAPI/TS28541_NrNrm.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index 30b636f3c..8ed713d86 100755 --- a/OpenAPI/TS28541_NrNrm.yaml +++ b/OpenAPI/TS28541_NrNrm.yaml @@ -2245,6 +2245,8 @@ components: uniqueItems: true items: $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + currentLocation: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' NRECMappingRule-Single: allOf: -- GitLab From f493b98d6e4642d8845eff29338a6035e3ab7c1c Mon Sep 17 00:00:00 2001 From: gautamd Date: Thu, 28 Aug 2025 10:19:13 +0000 Subject: [PATCH 004/103] Edit TS28541_NrNrm.yaml --- OpenAPI/TS28541_NrNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index 8ed713d86..9482d9cce 100755 --- a/OpenAPI/TS28541_NrNrm.yaml +++ b/OpenAPI/TS28541_NrNrm.yaml @@ -2246,7 +2246,7 @@ components: items: $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' currentLocation: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' + $ref: '#/components/schemas/LocationInfo' NRECMappingRule-Single: allOf: -- GitLab From 986983222f08560aeabc621d6f2ea050bcd0bb71 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 11 Aug 2025 03:44:05 +0000 Subject: [PATCH 005/103] Update file TS28312_IntentNrm.yaml --- OpenAPI/TS28312_IntentNrm.yaml | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/OpenAPI/TS28312_IntentNrm.yaml b/OpenAPI/TS28312_IntentNrm.yaml index c0242f0a3..51134e36b 100644 --- a/OpenAPI/TS28312_IntentNrm.yaml +++ b/OpenAPI/TS28312_IntentNrm.yaml @@ -77,6 +77,9 @@ components: type: boolean intentReportControl: $ref: '#/components/schemas/IntentReportControl' + implicitIntentIndex: + type: boolean + default: false intentReportReference: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' intentUtilityFormulaRef: @@ -120,21 +123,15 @@ components: minItems: 1 items: $ref: '#/components/schemas/IntentHandlingCapability' - supportedExpectationTargetInfo: + supportedUtilityList: type: array items: - $ref: '#/components/schemas/SupportedExpectationTargetInfo' + $ref: '#/components/schemas/UtilityDefinition' uniqueItems: true - minItems: 1 Intent: $ref: '#/components/schemas/Intent-Multiple' - IntentReport: - $ref: '#/components/schemas/IntentReport-Multiple' - supportedUtilityList: - type: array - items: - $ref: '#/components/schemas/UtilityDefinition' - uniqueItems: true + IntentReport: + $ref: '#/components/schemas/IntentReport-Multiple' IntentUtilityFormula-Single: description: >- It represents an intent utility function instance. @@ -144,8 +141,6 @@ components: properties: utilityFunctionId: type: string - uniqueItems: true - minItems: 1 utilityParameterList: type: array items: @@ -155,9 +150,11 @@ components: utilityScale: type: number minItems: 1 + default: 0 utilityOffset: type: number minItems: 1 + default: 0 #-------Definition of generic IOCs ----------# #-------Definition of the generic IntentExpectation dataType ----------# -- GitLab From 3a0b207590e08c3b935a6d58514eeb790def92c1 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 11 Aug 2025 03:56:38 +0000 Subject: [PATCH 006/103] Update file TS28312_IntentNrm.yaml --- OpenAPI/TS28312_IntentNrm.yaml | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/OpenAPI/TS28312_IntentNrm.yaml b/OpenAPI/TS28312_IntentNrm.yaml index 51134e36b..c517d7477 100644 --- a/OpenAPI/TS28312_IntentNrm.yaml +++ b/OpenAPI/TS28312_IntentNrm.yaml @@ -191,6 +191,8 @@ components: description: It represents the preference information of the Consumer on expectations. required: - expectationId + - expectationObject + - expectationTargets #-------Definition of the generic IntentExpectation dataType ----------# #-------Definition of the generic ExpectationObject dataType ----------# @@ -499,6 +501,9 @@ components: uniqueItems: true items: $ref: '#/components/schemas/TargetFulfilmentResult' + required: + - expectaitonId + - expectationFulfilmentInfo #-------Definition of the concrete ExpectationFulfilmentResult dataType----------------# #-------Definition of the generic TargetFulfilmentResult dataType----------------# @@ -522,6 +527,9 @@ components: uniqueItems: true items: $ref: '#/components/schemas/Context' + required: + - targetName + - targetFulfilmentInfo #-------Definition of the concrete TargetFulfilmentResult dataType----------------# #-------Definition of the generic IntentConflictReport dataType----------------# @@ -561,7 +569,9 @@ components: enum: - MODIFY - DELETE - + required: + - conflictId + - conflictType #-------Definition of the concrete IntentConflictReport dataType----------------# @@ -604,6 +614,9 @@ components: type: array items: $ref: '#/components/schemas/InFeasibleExpectationInfo' + required: + - feasibilityCheckResult + - infeasibilityReasons InFeasibleExpectationInfo: description: >- It describes the list of InFeasibleExpectationInfo for all infeasible IntentExpectations -- GitLab From 112c701a796b120760e05681b717cdb45bddc376 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 11 Aug 2025 03:59:53 +0000 Subject: [PATCH 007/103] Update file TS28312_IntentNrm.yaml --- OpenAPI/TS28312_IntentNrm.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OpenAPI/TS28312_IntentNrm.yaml b/OpenAPI/TS28312_IntentNrm.yaml index c517d7477..337995a11 100644 --- a/OpenAPI/TS28312_IntentNrm.yaml +++ b/OpenAPI/TS28312_IntentNrm.yaml @@ -501,9 +501,9 @@ components: uniqueItems: true items: $ref: '#/components/schemas/TargetFulfilmentResult' - required: - - expectaitonId - - expectationFulfilmentInfo + required: + - expectaitonId + - expectationFulfilmentInfo #-------Definition of the concrete ExpectationFulfilmentResult dataType----------------# #-------Definition of the generic TargetFulfilmentResult dataType----------------# -- GitLab From f77d5866013141a2dba39821e49b94a4a3738cb7 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 11 Aug 2025 04:08:42 +0000 Subject: [PATCH 008/103] Update file TS28312_IntentNrm.yaml --- OpenAPI/TS28312_IntentNrm.yaml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/OpenAPI/TS28312_IntentNrm.yaml b/OpenAPI/TS28312_IntentNrm.yaml index 337995a11..5feae1235 100644 --- a/OpenAPI/TS28312_IntentNrm.yaml +++ b/OpenAPI/TS28312_IntentNrm.yaml @@ -426,6 +426,8 @@ components: - INTENT_FULFILMENT_REPORT - INTENT_CONFLICT_REPORT - INTENT_FEASIBILITY_CHECK_REPORT + - INTENT_EXPLORATION_REPORT + - INTENT_FULFILMENT_NEGOTIATION_REPORT - INTENT_UTILITY_REPORT reportingConditions: description: >- @@ -439,6 +441,9 @@ components: type: array items: type: string + required: + - reportRecipientAddress + - observationPeriod ReportingCondition: description: >- It describes the specified conditions for intent reporting. @@ -632,6 +637,9 @@ components: type: string readOnly: true description: It describes the list of TargetNames for the InFeasibleTargets + required: + - expectationId + - inFeasibleTargets #-------Definition of the concrete IntentFeasibilityCheckReport dataType----------------# @@ -779,6 +787,10 @@ components: $ref: '#/components/schemas/SupportedExpectationTargetInfo' uniqueItems: true minItems: 1 + required: + - intentHandlingCapabilityId + - supportedExpectationObjectType + - supportedExpectationTargetInfoList SupportedExpectationTargetInfo: description: >- It indicates the detailed information about what the intent driven MnS producer supports for a given supportedExpectationObjectType. -- GitLab From 033d55f1df0e680ebe828e0086dd6fbdcfc19138 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 11 Aug 2025 06:21:15 +0000 Subject: [PATCH 009/103] Update file TS28312_IntentNrm.yaml --- OpenAPI/TS28312_IntentNrm.yaml | 69 +++++++++++++++++++--------------- 1 file changed, 39 insertions(+), 30 deletions(-) diff --git a/OpenAPI/TS28312_IntentNrm.yaml b/OpenAPI/TS28312_IntentNrm.yaml index 5feae1235..93ed5fb29 100644 --- a/OpenAPI/TS28312_IntentNrm.yaml +++ b/OpenAPI/TS28312_IntentNrm.yaml @@ -79,7 +79,7 @@ components: $ref: '#/components/schemas/IntentReportControl' implicitIntentIndex: type: boolean - default: false + default: false intentReportReference: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' intentUtilityFormulaRef: @@ -220,9 +220,9 @@ components: description: >- It describes the list of Context(s) which represents the constraints and conditions to be used as filter information to identify the object(s) to which a given intentExpectation should apply. - #-------Definition of the generic ExpectationObject dataType ----------# + #-------Definition of the generic ExpectationObject dataType ----------# - #-------Definition of the generic dataType --------------# + #-------Definition of the generic dataType --------------# Condition: type: string enum: @@ -255,15 +255,15 @@ components: default: FULFILMENT_WITHOUT_NEGOTIATION FulfilmentStatus: type: string - readOnly: true + readOnly: true enum: - FULFILLED - NOT_FULFILLED - default: NOT_FULFILLED - description: It describes the current status of the intent fulfilment result. + default: NOT_FULFILLED + description: It describes the current status of the intent fulfilment result. NotFulfilledState: type: string - readOnly: true + readOnly: true enum: - ACKNOWLEDGED - COMPLIANT @@ -271,14 +271,14 @@ components: - SUSPENDED - TERMINATED - FULFILMENTFAILED - default: ACKNOWLEDGED - description: It describes the current progress of or the reason for not achieving fulfilment + default: ACKNOWLEDGED + description: It describes the current progress of or the reason for not achieving fulfilment for the intent, intentExpectation or expectationTarget. - An attribute which is used when FulfilmentInfo is implemented for IntentFulfilmentInfo + An attribute which is used when FulfilmentInfo is implemented for IntentFulfilmentInfo FulfilmentInfo: description: >- This dataType represents the properties of a specific fulfilment information for an aspect of - the intent (i.e. either an expectation, a target or the whole intent). + the intent (i.e. either an expectation, a target or the whole intent). type: object properties: fulfilmentStatus: @@ -291,7 +291,7 @@ components: items: type: string readOnly: true - description: An attribute which is used when FulfilmentInfo is implemented for IntentFulfilmentInfo + description: An attribute which is used when FulfilmentInfo is implemented for IntentFulfilmentInfo ExpectationVerb: type: string enum: @@ -304,7 +304,7 @@ components: It desribes the RF reference frequency (i.e. Absolute Radio Frequency Channel Number) and/or the frequency operating band used for a given direction (UL or DL) in FDD or for both UL and DL directions in TDD. - type: object + type: object properties: arfcn: type: integer @@ -342,12 +342,12 @@ components: fiveQI: type: integer minimum: 0 - maximum: 255 + maximum: 255 sNssai: - $ref: 'TS28541_NrNrm.yaml#/components/schemas/Snssai' - #-------Definition of the generic dataType --------------# + $ref: 'TS28541_NrNrm.yaml#/components/schemas/Snssai' + #-------Definition of the generic dataType --------------# - #-------Definition of the generic ExpectationTarget dataType----------# + #-------Definition of the generic ExpectationTarget dataType----------# ExpectationTarget: description: >- This data type represents the target of the IntentExpectation that are required to be achieved. @@ -385,7 +385,7 @@ components: #-------Definition of the generic Context dataType----------------# Context: description: >- - This data type is the "Context" data type without specialisations + This data type is the "Context" data type without specialisations type: object properties: contextAttribute: @@ -443,7 +443,7 @@ components: type: string required: - reportRecipientAddress - - observationPeriod + - observationPeriod ReportingCondition: description: >- It describes the specified conditions for intent reporting. @@ -467,7 +467,7 @@ components: uniqueItems: true items: $ref: "#/components/schemas/ValueRangeType" - - $ref: "#/components/schemas/ValueRangeType" + - $ref: "#/components/schemas/ValueRangeType" #-------Definition of the concrete IntentReportControl dataType----------------# @@ -583,7 +583,7 @@ components: #-------Definition of the generic IntentUtilityReport dataType----------------# IntentUtilityReport: description: >- - It represents the utility function results. + It represents the utility function results. type: object properties: utilityResultList: @@ -607,11 +607,11 @@ components: - FEASIBLE - INFEASIBLE infeasibilityReasons: - description: An attribute which is used when feasibilityCheckResult is INFEASIBLE + description: An attribute which is used when feasibilityCheckResult is INFEASIBLE type: array items: type: string - readOnly: true + readOnly: true enum: - INVALID_INTENT_EXPRESSION - INTENT_CONFLICT @@ -676,6 +676,9 @@ components: $ref: '#/components/schemas/Context' uniqueItems: true minItems: 1 + required: + - expectationId + - targetExplorationResults #-------Definition of the generic IntentExplorationReport dataType----------------# @@ -719,6 +722,9 @@ components: $ref: '#/components/schemas/PossibleImpact' uniqueItems: true minItems: 1 + required: + - possibleIntentOutcomeId + - intentFulfilmentInfo PossibleImpact: description: >- It represents the possible impact of the possible outcome @@ -809,6 +815,8 @@ components: items: $ref: '#/components/schemas/ValueRangeType' - $ref: '#/components/schemas/ValueRangeType' + required: + - supportedTargetName #-------Definition of the concrete IntentHandlingCapability dataType----------------# @@ -832,8 +840,10 @@ components: properties: utilityFunctionId: type: string + readOnly: true utilityResult: type: number + readOnly: true #-------Definition of the concrete UtilityResult dataType----------------# #-------Definition of the generic UtilityDefinition dataType----------------# @@ -844,16 +854,15 @@ components: properties: utilityDefinitionId: type: string + readOnly: true utilityDescription: type: string + readOnly: true utilityParameterList: - oneOf: - - type: array - uniqueItems: true - minItems: 1 - items: - $ref: '#/components/schemas/UtilityParameter' - - $ref: '#/components/schemas/UtilityParameter' + type: array + items: + $ref: '#/components/schemas/UtilityParameter' + uniqueItems: true #-------Definition of the concrete UtilityDefinition dataType----------------# #------Definition of JSON arrays for name-contained IOCs ---------------# -- GitLab From d361513b74d884b4547503876126b6fbcbde856a Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 11 Aug 2025 07:00:15 +0000 Subject: [PATCH 010/103] Update file TS28312_IntentExpectations.yaml --- OpenAPI/TS28312_IntentExpectations.yaml | 60 +++++++++++++------------ 1 file changed, 31 insertions(+), 29 deletions(-) diff --git a/OpenAPI/TS28312_IntentExpectations.yaml b/OpenAPI/TS28312_IntentExpectations.yaml index e0ef86a29..795230c87 100644 --- a/OpenAPI/TS28312_IntentExpectations.yaml +++ b/OpenAPI/TS28312_IntentExpectations.yaml @@ -41,11 +41,11 @@ components: - $ref: '#/components/schemas/HighDLPrbLoadRatioTarget' - $ref: '#/components/schemas/AveULPrbLoadTarget' - $ref: '#/components/schemas/AveDLPrbLoadTarget' - - $ref: "#/components/schemas/RANEnergyConsumptionTarget" - - $ref: "#/components/schemas/RANEnergyEfficiencyTarget" - - $ref: "#/components/schemas/ActiveUEsNumTarget" + - $ref: "#/components/schemas/RANEnergyConsumptionTarget' + - $ref: "#/components/schemas/RANEnergyEfficiencyTarget' + - $ref: "#/components/schemas/ActiveUEsNumTarget' - $ref: '#/components/schemas/PRBsTarget' - - $ref: '#/components/schemas/InterRAThandoverTarget' + - $ref: '#/components/schemas/InterRAThandoverTarget' - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/ExpectationTarget' expectationContexts: type: array @@ -54,10 +54,12 @@ components: type: object oneOf: - $ref: '#/components/schemas/TargetAssuranceTimeContext' - - $ref: '#/components/schemas/SchedulingTimeContext' + - $ref: '#/components/schemas/SchedulingTimeContext' - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' required: - expectationId + - expectationObject + - expectationTargets RadioServiceExpectation: description: >- This data type is the "IntentExpectation" data type with specialisations to represent MnS consumer's expectations for radio service delivering @@ -90,7 +92,9 @@ components: - $ref: '#/components/schemas/SchedulingTimeContext' - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' required: - - expectationId + - expectationId + - expectationObject + - expectationTargets EdgeServiceSupportExpectation: description: >- This data type is the "IntentExpectation" data type with specialisations to represent MnS consumer's expectations for service deployment @@ -128,7 +132,9 @@ components: - $ref: '#/components/schemas/ResourceSharingLevelContext' - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' required: - - expectationId + - expectationId + - expectationObject + - expectationTargets 5GCNetworkExpectation: description: >- This data type is the "IntentExpectation" data type with specialisations to represent MnS consumer's expectations for 5GC network delivering @@ -138,11 +144,8 @@ components: type: string expectationVerb: $ref: "TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb" - expectationObjects: - type: array - uniqueItems: true - items: - $ref: "#/components/schemas/5GCNetworkExpectationObject" + expectationObject: + $ref: "#/components/schemas/5GCNetworkExpectationObject" expectationTargets: type: array uniqueItems: true @@ -174,11 +177,8 @@ components: type: string expectationVerb: $ref: "TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb" - expectationObjects: - type: array - uniqueItems: true - items: - $ref: "#/components/schemas/NetworkMaintenanceExpectationObject" + expectationObject: + $ref: "#/components/schemas/NetworkMaintenanceExpectationObject" expectationTargets: type: array uniqueItems: true @@ -213,6 +213,8 @@ components: - $ref: "TS28312_IntentNrm.yaml#/components/schemas/Context" required: - expectationId + - expectationObject + - expectationTargets #-------Definition of the IntentExpectation dataType ----------# #-------Definition of the scenario specific ExpectationObject dataType ----------# @@ -235,11 +237,11 @@ components: oneOf: - $ref: '#/components/schemas/CoverageAreaPolygonContext' - $ref: '#/components/schemas/CoverageTACContext' - - $ref: '#/components/schemas/TimeBasedAreaContext' - - $ref: '#/components/schemas/CellContext' + - $ref: '#/components/schemas/TimeBasedAreaContext' + - $ref: '#/components/schemas/CellContext' - $ref: '#/components/schemas/PLMNContext' - $ref: '#/components/schemas/DlFrequencyContext' - - $ref: '#/components/schemas/UlFrequencyContext' + - $ref: '#/components/schemas/UlFrequencyContext' - $ref: '#/components/schemas/RATContext' - $ref: "#/components/schemas/UEGroupContext" - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' @@ -263,7 +265,7 @@ components: - $ref: '#/components/schemas/CoverageAreaPolygonContext' - $ref: '#/components/schemas/DlFrequencyContext' - $ref: '#/components/schemas/UlFrequencyContext' - - $ref: '#/components/schemas/CellContext' + - $ref: '#/components/schemas/CellContext' - $ref: '#/components/schemas/ServiceTypeContext' - $ref: '#/components/schemas/UEGroupContext' - $ref: '#/components/schemas/GeoCoordinateContext' @@ -288,7 +290,7 @@ components: - $ref: '#/components/schemas/EdgeIdentificationIdContext' - $ref: '#/components/schemas/EdgeIdentificationLocContext' - $ref: '#/components/schemas/CoverageAreaTAContext' - - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' + - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' 5GCNetworkExpectationObject: description: >- This data type is the "ExpectationObject" data type with specialisations for 5GCNetworkExpectation @@ -328,7 +330,7 @@ components: oneOf: - $ref: "#/components/schemas/MaintenanceVersionContext" - $ref: "#/components/schemas/MaintenanceOrderContext" - - $ref: "#/components/schemas/MaintenanceTypeContext" + - $ref: "#/components/schemas/MaintenanceTypeContext" - $ref: "#/components/schemas/NfTypeContext" - $ref: "#/components/schemas/NfInstanceLocationContext" - $ref: "#/components/schemas/PLMNContext" @@ -339,7 +341,7 @@ components: - $ref: '#/components/schemas/CoverageTACContext' - $ref: '#/components/schemas/PLMNContext' - $ref: '#/components/schemas/DlFrequencyContext' - - $ref: '#/components/schemas/UlFrequencyContext' + - $ref: '#/components/schemas/UlFrequencyContext' - $ref: '#/components/schemas/RATContext' - $ref: "TS28312_IntentNrm.yaml#/components/schemas/Context" #-------Definition of the ExpectationObject dataType ----------# @@ -506,7 +508,7 @@ components: contextCondition: type: string enum: - - Is_less_than + - IS_LESS_THAN contextValueRange: type: number LowDLRANUEThptRatioTarget: @@ -670,7 +672,7 @@ components: description: >- This data type is the "ExpectationTarget" data type with specialisations for RANEnergyConsumptionTarget.It describes the RAN energy consumption target for RAN SubNetwork that the intent expectation is applied. The definition for RAN energy consumption see ECNG-RAN in clause 6.7.3.4.1 in - TS 28.554 [11]. + TS 28.554 [11]. type: object properties: targetName: @@ -733,7 +735,7 @@ components: targetName: type: string enum: - - PRBS + - pRBS targetCondition: type: string enum: @@ -749,7 +751,7 @@ components: targetName: type: string enum: - - INTERRATHANDOVER + - InterRATHandover targetCondition: type: string enum: @@ -1270,7 +1272,7 @@ components: uniqueItems: true items: type: string - TaiContext: + TaiContext: description: >- This data type is the "ObjectContext" data type with specialisations for TaiContext type: object -- GitLab From 0aab2ac412f47b9a5eceb5ec8c843d62b6f674d7 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 11 Aug 2025 07:09:06 +0000 Subject: [PATCH 011/103] Update file TS28312_IntentExpectations.yaml --- OpenAPI/TS28312_IntentExpectations.yaml | 126 ++++++++++++------------ 1 file changed, 63 insertions(+), 63 deletions(-) diff --git a/OpenAPI/TS28312_IntentExpectations.yaml b/OpenAPI/TS28312_IntentExpectations.yaml index 795230c87..10161774f 100644 --- a/OpenAPI/TS28312_IntentExpectations.yaml +++ b/OpenAPI/TS28312_IntentExpectations.yaml @@ -22,9 +22,9 @@ components: expectationId: type: string expectationVerb: - $ref: "TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb" + $ref: 'TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb' expectationObject: - $ref: "#/components/schemas/RadioNetworkExpectationObject" + $ref: '#/components/schemas/RadioNetworkExpectationObject' expectationTargets: type: array uniqueItems: true @@ -41,9 +41,9 @@ components: - $ref: '#/components/schemas/HighDLPrbLoadRatioTarget' - $ref: '#/components/schemas/AveULPrbLoadTarget' - $ref: '#/components/schemas/AveDLPrbLoadTarget' - - $ref: "#/components/schemas/RANEnergyConsumptionTarget' - - $ref: "#/components/schemas/RANEnergyEfficiencyTarget' - - $ref: "#/components/schemas/ActiveUEsNumTarget' + - $ref: '#/components/schemas/RANEnergyConsumptionTarget' + - $ref: '#/components/schemas/RANEnergyEfficiencyTarget' + - $ref: '#/components/schemas/ActiveUEsNumTarget' - $ref: '#/components/schemas/PRBsTarget' - $ref: '#/components/schemas/InterRAThandoverTarget' - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/ExpectationTarget' @@ -68,9 +68,9 @@ components: expectationId: type: string expectationVerb: - $ref: "TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb" + $ref: 'TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb' expectationObject: - $ref: "#/components/schemas/RadioServiceExpectationObject" + $ref: '#/components/schemas/RadioServiceExpectationObject' expectationTargets: type: array uniqueItems: true @@ -94,7 +94,7 @@ components: required: - expectationId - expectationObject - - expectationTargets + - expectationTargets EdgeServiceSupportExpectation: description: >- This data type is the "IntentExpectation" data type with specialisations to represent MnS consumer's expectations for service deployment @@ -143,20 +143,20 @@ components: expectationId: type: string expectationVerb: - $ref: "TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb" + $ref: 'TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb' expectationObject: - $ref: "#/components/schemas/5GCNetworkExpectationObject" + $ref: '#/components/schemas/5GCNetworkExpectationObject' expectationTargets: type: array uniqueItems: true items: type: object oneOf: - - $ref: "#/components/schemas/MaxNumberofPDUsessionsTarget" - - $ref: "#/components/schemas/MaxNumberofRegisteredsubscribersTarget" - - $ref: "#/components/schemas/IncomingDataTarget" - - $ref: "#/components/schemas/OutgoingDataTarget" - - $ref: "TS28312_IntentNrm.yaml#/components/schemas/ExpectationTarget" + - $ref: '#/components/schemas/MaxNumberofPDUsessionsTarget' + - $ref: '#/components/schemas/MaxNumberofRegisteredsubscribersTarget' + - $ref: '#/components/schemas/IncomingDataTarget' + - $ref: '#/components/schemas/OutgoingDataTarget' + - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/ExpectationTarget' expectationContexts: type: array uniqueItems: true @@ -165,7 +165,7 @@ components: oneOf: - $ref: '#/components/schemas/StartTimeContext' - $ref: '#/components/schemas/ResourceSharingLevelContext' - - $ref: "TS28312_IntentNrm.yaml#/components/schemas/Context" + - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' required: - expectationId NetworkMaintenanceExpectation: @@ -176,9 +176,9 @@ components: expectationId: type: string expectationVerb: - $ref: "TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb" + $ref: 'TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb' expectationObject: - $ref: "#/components/schemas/NetworkMaintenanceExpectationObject" + $ref: '#/components/schemas/NetworkMaintenanceExpectationObject' expectationTargets: type: array uniqueItems: true @@ -196,13 +196,13 @@ components: - $ref: '#/components/schemas/HighDLPrbLoadRatioTarget' - $ref: '#/components/schemas/AveULPrbLoadTarget' - $ref: '#/components/schemas/AveDLPrbLoadTarget' - - $ref: "#/components/schemas/RANEnergyConsumptionTarget" - - $ref: "#/components/schemas/RANEnergyEfficiencyTarget" - - $ref: "#/components/schemas/MaxNumberofPDUsessionsTarget" - - $ref: "#/components/schemas/MaxNumberofRegisteredsubscribersTarget" - - $ref: "#/components/schemas/IncomingDataTarget" - - $ref: "#/components/schemas/OutgoingDataTarget" - - $ref: "TS28312_IntentNrm.yaml#/components/schemas/ExpectationTarget" + - $ref: '#/components/schemas/RANEnergyConsumptionTarget' + - $ref: '#/components/schemas/RANEnergyEfficiencyTarget' + - $ref: '#/components/schemas/MaxNumberofPDUsessionsTarget' + - $ref: '#/components/schemas/MaxNumberofRegisteredsubscribersTarget' + - $ref: '#/components/schemas/IncomingDataTarget' + - $ref: '#/components/schemas/OutgoingDataTarget' + - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/ExpectationTarget' expectationContexts: type: array uniqueItems: true @@ -210,7 +210,7 @@ components: type: object oneOf: - $ref: '#/components/schemas/MaintenanceTimeContext' - - $ref: "TS28312_IntentNrm.yaml#/components/schemas/Context" + - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' required: - expectationId - expectationObject @@ -243,7 +243,7 @@ components: - $ref: '#/components/schemas/DlFrequencyContext' - $ref: '#/components/schemas/UlFrequencyContext' - $ref: '#/components/schemas/RATContext' - - $ref: "#/components/schemas/UEGroupContext" + - $ref: '#/components/schemas/UEGroupContext' - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' RadioServiceExpectationObject: description: >- @@ -289,7 +289,7 @@ components: oneOf: - $ref: '#/components/schemas/EdgeIdentificationIdContext' - $ref: '#/components/schemas/EdgeIdentificationLocContext' - - $ref: '#/components/schemas/CoverageAreaTAContext' + - $ref: '#/components/schemas/CoverageAreaTAContext' - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' 5GCNetworkExpectationObject: description: >- @@ -308,13 +308,13 @@ components: items: type: object oneOf: - - $ref: "#/components/schemas/NfTypeContext" - - $ref: "#/components/schemas/NfInstanceLocationContext" - - $ref: "#/components/schemas/PLMNContext" - - $ref: "#/components/schemas/TaiContext" - - $ref: "#/components/schemas/ServingScopeContext" - - $ref: "#/components/schemas/DnnContext" - - $ref: "TS28312_IntentNrm.yaml#/components/schemas/Context" + - $ref: '#/components/schemas/NfTypeContext' + - $ref: '#/components/schemas/NfInstanceLocationContext' + - $ref: '#/components/schemas/PLMNContext' + - $ref: '#/components/schemas/TaiContext' + - $ref: '#/components/schemas/ServingScopeContext' + - $ref: '#/components/schemas/DnnContext' + - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' NetworkMaintenanceExpectationObject: description: >- This data type is the "ExpectationObject" data type with specialisations for NetworkMaintenanceExpectation @@ -328,22 +328,22 @@ components: items: type: object oneOf: - - $ref: "#/components/schemas/MaintenanceVersionContext" - - $ref: "#/components/schemas/MaintenanceOrderContext" - - $ref: "#/components/schemas/MaintenanceTypeContext" - - $ref: "#/components/schemas/NfTypeContext" - - $ref: "#/components/schemas/NfInstanceLocationContext" - - $ref: "#/components/schemas/PLMNContext" - - $ref: "#/components/schemas/TaiContext" - - $ref: "#/components/schemas/ServingScopeContext" - - $ref: "#/components/schemas/DnnContext" + - $ref: '#/components/schemas/MaintenanceVersionContext' + - $ref: '#/components/schemas/MaintenanceOrderContext' + - $ref: '#/components/schemas/MaintenanceTypeContext' + - $ref: '#/components/schemas/NfTypeContext' + - $ref: '#/components/schemas/NfInstanceLocationContext' + - $ref: '#/components/schemas/PLMNContext' + - $ref: '#/components/schemas/TaiContext' + - $ref: '#/components/schemas/ServingScopeContext' + - $ref: '#/components/schemas/DnnContext' - $ref: '#/components/schemas/CoverageAreaPolygonContext' - $ref: '#/components/schemas/CoverageTACContext' - $ref: '#/components/schemas/PLMNContext' - $ref: '#/components/schemas/DlFrequencyContext' - $ref: '#/components/schemas/UlFrequencyContext' - $ref: '#/components/schemas/RATContext' - - $ref: "TS28312_IntentNrm.yaml#/components/schemas/Context" + - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' #-------Definition of the ExpectationObject dataType ----------# @@ -498,7 +498,7 @@ components: description: >- This data type is the "TargetContext" data type with specialisations for LowULRANUEThptContext.It describes the threshold for the low UL RAN UE throughput cells (see average UL RAN UE throughput in gNB and distribution of UL UE throughput in gNB - in TS 28.552[6]) of the RAN SubNetwork that the intent expectation is applied. + in TS 28.552[6]) of the RAN SubNetwork that the intent expectation is applied. type: object properties: contextAttribute: @@ -516,7 +516,7 @@ components: This data type is the "ExpectationTarget" data type with specialisations for LowDLRANUEThptRatioTarget. It describes the low DL RAN UE throughput ratio target for the RAN SubNetwork that the intent expectation is applied.The numerator is the number of the cells with low DL RAN UE throughput, and the denominator is the total number of cells of the - RAN Subnetwork in the specified area. + RAN Subnetwork in the specified area. type: object properties: targetName: @@ -575,7 +575,7 @@ components: description: >- This data type is the "TargetContext" data type with specialisations for HighULPrbLoadContext.It describes the threshold for high uplink PRB load (i.e. UL Total PRB Usage in TS 28.552 [12] to represent the percentage of UL PRBs used) of the cells of the RAN - SubNetwork in the specified area that the intent expectation is applied. + SubNetwork in the specified area that the intent expectation is applied. type: object properties: contextAttribute: @@ -615,7 +615,7 @@ components: description: >- This data type is the "TargetContext" data type with specialisations for HighDLPrbLoadContext.It describes the threshold for high downlink PRB load (i.e. DL Total PRB Usage in TS 28.552 [12] to represent the percentage of DL PRBs used) of the cells of the RAN SubNetwork in the - specified area that the intent expectation is applied. + specified area that the intent expectation is applied. type: object properties: contextAttribute: @@ -689,7 +689,7 @@ components: description: >- This data type is the "ExpectationTarget" data type with specialisations for RANEnergyEfficiencyTarget.It describes the RAN energy efficiency target for RAN SubNetwork that the intent expectation is applied. The unit of this target is bit/J. The definition for RAN energy efficiency target for RAN - SubNetwork see EEMN,DV in clause 6.7.1.1 in TS 28.554 [11]. + SubNetwork see EEMN,DV in clause 6.7.1.1 in TS 28.554 [11]. type: object properties: targetName: @@ -910,7 +910,7 @@ components: 5GSessionContext: description: >- This data type is the "TargetContext" data type with specialisations for 5GSessionContext.It describes the maximum supported 5G PDU session of the 5GC SubNetwork - related to the intent expectation. + related to the intent expectation. type: object properties: contextAttribute: @@ -993,7 +993,7 @@ components: CoverageAreaPolygonContext: description: >- This data type is the "ObjectContext" data type with specialisations for CoverageAreaPolygonContext.It describes the coverage areas for the RAN SubNetwork that the - intent expectation is applied in the form of polygon. + intent expectation is applied in the form of polygon. type: object properties: contextAttribute: @@ -1074,10 +1074,10 @@ components: geoArea: $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' timeWindow: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' PLMNContext: description: >- - This data type is the "ObjectContext" data type with specialisations for PLMNContext + This data type is the "ObjectContext" data type with specialisations for PLMNContext type: object properties: contextAttribute: @@ -1096,7 +1096,7 @@ components: GeoCoordinateContext: description: >- This data type is the "ObjectContext" data type with specialisations for GeoCoordinateContext. - It describes the location (i.e. geocoordinate) that radio service intent is applied. + It describes the location (i.e. geocoordinate) that radio service intent is applied. type: object properties: contextAttribute: @@ -1146,7 +1146,7 @@ components: type: array uniqueItems: true items: - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Frequency' + $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Frequency' RATContext: description: >- This data type is the "ObjectContext" data type with specialisations for RATContext.It describes the RAT supported by the RAN SubNetwork that the intent expectation @@ -1187,7 +1187,7 @@ components: type: array uniqueItems: true items: - $ref: "TS28312_IntentNrm.yaml#/components/schemas/UEGroup" + $ref: "TS28312_IntentNrm.yaml#/components/schemas/UEGroup" EdgeIdentificationIdContext: description: >- This data type is the "ObjectContext" data type with specialisations for EdgeIdentificationIdContext @@ -1235,10 +1235,10 @@ components: type: array uniqueItems: true items: - $ref: "TS28623_ComDefs.yaml#/components/schemas/Tac" + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Tac' NfTypeContext: description: >- - This data type is the "ObjectContext" data type with specialisations for NfTypeContext + This data type is the "ObjectContext" data type with specialisations for NfTypeContext type: object properties: contextAttribute: @@ -1253,8 +1253,8 @@ components: type: array uniqueItems: true items: - $ref: "TS28541_5GcNrm.yaml#/components/schemas/NFType" - NfInstanceLocationContext: + $ref: 'TS28541_5GcNrm.yaml#/components/schemas/NFType' + NfInstanceLocationContext: description: >- This data type is the "ObjectContext" data type with specialisations for NfInstanceLocationContext type: object @@ -1289,7 +1289,7 @@ components: type: array uniqueItems: true items: - $ref: "TS28623_GenericNrm.yaml#/components/schemas/Tai" + $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Tai' ServingScopeContext: description: >- This data type is the "ObjectContext" data type with specialisations for ServingScopeContext @@ -1308,7 +1308,7 @@ components: uniqueItems: true items: type: string - DnnContext: + DnnContext: description: >- This data type is the "ObjectContext" data type with specialisations for DnnContext type: object -- GitLab From 207d364c54eeba2efeb42e770e3f9f824076bcf9 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 7 Aug 2025 06:59:10 +0000 Subject: [PATCH 012/103] Update file TS28623_MnSRegistryNrm.yaml --- OpenAPI/TS28623_MnSRegistryNrm.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/OpenAPI/TS28623_MnSRegistryNrm.yaml b/OpenAPI/TS28623_MnSRegistryNrm.yaml index cfaceb325..518831ec1 100644 --- a/OpenAPI/TS28623_MnSRegistryNrm.yaml +++ b/OpenAPI/TS28623_MnSRegistryNrm.yaml @@ -52,8 +52,10 @@ components: - INTENT_DRIVEN_MANAGEMENT - ML_MODEL_MANAGEMENT - MNS_REGISTRY_AND_DISCOVERY + - MGMTDATA_ REGISTRY_AND_DISCOVERY - MNS_ACCESS_CONTROL_MANAGEMENT - DSO_RAPID_RECOVERY_AND_THRESHOLD MONITORING + - EXTERNALDATA_DISCOVERY_AND_REQUEST #-------- Definition of concrete IOCs -------------------------------------------- MnsRegistry-Single: allOf: -- GitLab From abdd1f25b49e34dc5200360c54c9923f9d71a807 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 7 Aug 2025 07:07:45 +0000 Subject: [PATCH 013/103] Update file TS28623_MnSRegistryNrm.yaml --- OpenAPI/TS28623_MnSRegistryNrm.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OpenAPI/TS28623_MnSRegistryNrm.yaml b/OpenAPI/TS28623_MnSRegistryNrm.yaml index 518831ec1..98f695897 100644 --- a/OpenAPI/TS28623_MnSRegistryNrm.yaml +++ b/OpenAPI/TS28623_MnSRegistryNrm.yaml @@ -45,16 +45,16 @@ components: - HEARTBEAT_CONTROL - HEARTBEAT_NOTIFICATION - ML_MODEL_MANAGEMENT - - MANAGEMENT DATA ANALYTIC + - MANAGEMENT_DATA_ANALYTIC - RANSC_MANAGEMENT - SON_POLICY - COMMUNICATION_SERVICE_ASSURANCE_CONTROL - INTENT_DRIVEN_MANAGEMENT - ML_MODEL_MANAGEMENT - MNS_REGISTRY_AND_DISCOVERY - - MGMTDATA_ REGISTRY_AND_DISCOVERY + - MGMTDATA_REGISTRY_AND_DISCOVERY - MNS_ACCESS_CONTROL_MANAGEMENT - - DSO_RAPID_RECOVERY_AND_THRESHOLD MONITORING + - DSO_RAPID_RECOVERY_AND_THRESHOLD_MONITORING - EXTERNALDATA_DISCOVERY_AND_REQUEST #-------- Definition of concrete IOCs -------------------------------------------- MnsRegistry-Single: -- GitLab From 88ab5c8f95d9e38acca77e1c133f90dfb093a9d2 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Wed, 6 Aug 2025 08:11:30 +0000 Subject: [PATCH 014/103] Update 3 files - /OpenAPI/TS28623_ManagementDataCollectionNrm.yaml - /OpenAPI/TS28623_ExternalDataMgmtNrm.yaml - /OpenAPI/TS28623_FeatureNrm.yaml --- OpenAPI/TS28623_ExternalDataMgmtNrm.yaml | 80 +++++++++++++++++++ OpenAPI/TS28623_FeatureNrm.yaml | 2 +- .../TS28623_ManagementDataCollectionNrm.yaml | 48 ----------- 3 files changed, 81 insertions(+), 49 deletions(-) create mode 100644 OpenAPI/TS28623_ExternalDataMgmtNrm.yaml diff --git a/OpenAPI/TS28623_ExternalDataMgmtNrm.yaml b/OpenAPI/TS28623_ExternalDataMgmtNrm.yaml new file mode 100644 index 000000000..7611663b3 --- /dev/null +++ b/OpenAPI/TS28623_ExternalDataMgmtNrm.yaml @@ -0,0 +1,80 @@ +openapi: 3.0.1 +info: + title: External data management NRM + version: 19.5.0 + description: >- + OAS 3.0.1 definition of the External data type NRM fragment + © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). + All rights reserved. +externalDocs: + description: 3GPP TS 28.623; Generic NRM, External data type NRM fragment + url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.623/ +paths: {} +components: + schemas: + #-------- Definition of types for name-containments ------ + SubNetwork-ncO-ExternalDataMgmtNrm: + type: object + properties: + ExternalDataType: + $ref: '#/components/schemas/ExternalDataType-Multiple' + + +#-------- Definition of types----------------------------------------------------- + + ExternalDataScope: + type: object + properties: + geoAreas: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' + objectInstancesIncluded: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + objectInstancesExcluded: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + +#-------- Definition of concrete IOCs -------------------------------------------- + + ExternalDataType-Single: + allOf: + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - type: object + properties: + attributes: + type: object + properties: + externalDataType: + type: string + mediaLocation: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Uri' + externalDataTypeSchema: + type: string + externalDataScope: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/ExternalDataScope' + +#-------- Definition of YAML arrays for name-contained IOCs ---------------------- + + ExternalDataType-Multiple: + type: array + items: + $ref: '#/components/schemas/ExternalDataType-Single' +#-------- Definitions in TS 28.623 for TS 28.532 --------------------------------- + resources-externalDataMgmtNrm: + oneOf: + - $ref: '#/components/schemas/ExternalDataType-Single' + + diff --git a/OpenAPI/TS28623_FeatureNrm.yaml b/OpenAPI/TS28623_FeatureNrm.yaml index 7a37deb97..b88a0a5cf 100644 --- a/OpenAPI/TS28623_FeatureNrm.yaml +++ b/OpenAPI/TS28623_FeatureNrm.yaml @@ -37,5 +37,5 @@ components: - $ref: 'TS28623_ThresholdMonitorNrm.yaml#/components/schemas/resources-thresholdMonitorNrm' - $ref: 'TS28623_TraceControlNrm.yaml#/components/schemas/resources-traceControlNrm' - $ref: 'TS28310_EnergyInformationNrm.yaml#/components/schemas/resources-energyInformationNrm' - + - $ref: 'TS28623_ExternalDataMgmtNrm.yaml/components/schemas/resources-externalDataMgmtNrm' #----- Definitions in TS 28.623 for TS 28.532 --------------------------# diff --git a/OpenAPI/TS28623_ManagementDataCollectionNrm.yaml b/OpenAPI/TS28623_ManagementDataCollectionNrm.yaml index 5f3a20de4..e5fa3fc9a 100644 --- a/OpenAPI/TS28623_ManagementDataCollectionNrm.yaml +++ b/OpenAPI/TS28623_ManagementDataCollectionNrm.yaml @@ -18,8 +18,6 @@ components: properties: ManagementDataCollection: $ref: '#/components/schemas/ManagementDataCollection-Multiple' - ExternalDataType: - $ref: '#/components/schemas/ExternalDataType-Multiple' #-------Definition of generic IOCs ----------# @@ -62,24 +60,6 @@ components: items: $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' - ExternalDataScope: - type: object - properties: - geoAreas: - type: array - uniqueItems: true - items: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' - objectInstancesIncluded: - type: array - uniqueItems: true - items: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' - objectInstancesExcluded: - type: array - uniqueItems: true - items: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' #-------- Definition of concrete IOCs -------------------------------------------- @@ -114,43 +94,15 @@ components: jobId: type: string - ExternalDataType-Single: - allOf: - - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' - - type: object - properties: - attributes: - type: object - properties: - externalDataType: - type: string - mediaLocation: - type: array - uniqueItems: true - items: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/Uri' - externalDataTypeSchema: - type: string - externalDataScope: - type: array - uniqueItems: true - items: - $ref: '#/components/schemas/ExternalDataScope' - #-------- Definition of YAML arrays for name-contained IOCs ---------------------- ManagementDataCollection-Multiple: type: array items: $ref: '#/components/schemas/ManagementDataCollection-Single' - ExternalDataType-Multiple: - type: array - items: - $ref: '#/components/schemas/ExternalDataType-Single' #-------- Definitions in TS 28.623 for TS 28.532 --------------------------------- resources-mgmtDataCollectionNrm: oneOf: - $ref: '#/components/schemas/ManagementDataCollection-Single' - - $ref: '#/components/schemas/ExternalDataType-Single' -- GitLab From 21220a3630398c3997d9e2214543822ea218aad6 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Wed, 6 Aug 2025 08:18:04 +0000 Subject: [PATCH 015/103] Update file TS28623_ExternalDataMgmtNrm.yaml --- OpenAPI/TS28623_ExternalDataMgmtNrm.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/OpenAPI/TS28623_ExternalDataMgmtNrm.yaml b/OpenAPI/TS28623_ExternalDataMgmtNrm.yaml index 7611663b3..8dedab4ef 100644 --- a/OpenAPI/TS28623_ExternalDataMgmtNrm.yaml +++ b/OpenAPI/TS28623_ExternalDataMgmtNrm.yaml @@ -72,6 +72,7 @@ components: type: array items: $ref: '#/components/schemas/ExternalDataType-Single' + #-------- Definitions in TS 28.623 for TS 28.532 --------------------------------- resources-externalDataMgmtNrm: oneOf: -- GitLab From 498df26cf57c0b836baf85c0b1cee428f572d0a9 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Wed, 6 Aug 2025 08:21:49 +0000 Subject: [PATCH 016/103] Update file TS28623_FeatureNrm.yaml --- OpenAPI/TS28623_FeatureNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28623_FeatureNrm.yaml b/OpenAPI/TS28623_FeatureNrm.yaml index b88a0a5cf..ea4257932 100644 --- a/OpenAPI/TS28623_FeatureNrm.yaml +++ b/OpenAPI/TS28623_FeatureNrm.yaml @@ -37,5 +37,5 @@ components: - $ref: 'TS28623_ThresholdMonitorNrm.yaml#/components/schemas/resources-thresholdMonitorNrm' - $ref: 'TS28623_TraceControlNrm.yaml#/components/schemas/resources-traceControlNrm' - $ref: 'TS28310_EnergyInformationNrm.yaml#/components/schemas/resources-energyInformationNrm' - - $ref: 'TS28623_ExternalDataMgmtNrm.yaml/components/schemas/resources-externalDataMgmtNrm' + - $ref: 'TS28623_ExternalDataMgmtNrm.yaml#/components/schemas/resources-externalDataMgmtNrm' #----- Definitions in TS 28.623 for TS 28.532 --------------------------# -- GitLab From 810e0fcf5844380aa977f8eeb09b6ce53be05b0d Mon Sep 17 00:00:00 2001 From: shixixi Date: Wed, 16 Jul 2025 07:34:24 +0000 Subject: [PATCH 017/103] Edit TS28104_MdaReport.yaml --- OpenAPI/TS28104_MdaReport.yaml | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/OpenAPI/TS28104_MdaReport.yaml b/OpenAPI/TS28104_MdaReport.yaml index 3244b9f61..41ff1894a 100644 --- a/OpenAPI/TS28104_MdaReport.yaml +++ b/OpenAPI/TS28104_MdaReport.yaml @@ -392,6 +392,31 @@ components: items: $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' +#-------- Definition of specific UEThroughputAnalysis MDAoutput ----------------------------- + TrafficCongestionProblemAnalysisoutput: + type: object + properties: + trafficCongestionId: + type: string + trafficCongestionType: + type: string + enum: + - NON_REGULAR_TRAFFIC_CONGESTION + - REGULAR_TRAFFIC_CONGESTION + timeDuration: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + trafficCongestionAreas: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' + trafficCongestionAreas: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' + recommendedActions: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/RecommendedAction' -- GitLab From 6b5debc9cb05ee21dc51552bfae9f1874311e92d Mon Sep 17 00:00:00 2001 From: shixixi Date: Wed, 16 Jul 2025 07:39:13 +0000 Subject: [PATCH 018/103] Edit TS28104_MdaReport.yaml --- OpenAPI/TS28104_MdaReport.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/OpenAPI/TS28104_MdaReport.yaml b/OpenAPI/TS28104_MdaReport.yaml index 41ff1894a..a7596e3df 100644 --- a/OpenAPI/TS28104_MdaReport.yaml +++ b/OpenAPI/TS28104_MdaReport.yaml @@ -405,13 +405,10 @@ components: - REGULAR_TRAFFIC_CONGESTION timeDuration: type: array - uniqueItems: true items: $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' trafficCongestionAreas: $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' - trafficCongestionAreas: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' recommendedActions: type: array uniqueItems: true -- GitLab From 1f1026e754e162d726f12a0384bd528e800ee9b5 Mon Sep 17 00:00:00 2001 From: shixixi Date: Tue, 26 Aug 2025 13:22:52 +0000 Subject: [PATCH 019/103] Edit TS28104_MdaReport.yaml --- OpenAPI/TS28104_MdaReport.yaml | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/OpenAPI/TS28104_MdaReport.yaml b/OpenAPI/TS28104_MdaReport.yaml index a7596e3df..20f6d1335 100644 --- a/OpenAPI/TS28104_MdaReport.yaml +++ b/OpenAPI/TS28104_MdaReport.yaml @@ -46,13 +46,14 @@ components: $ref: 'TS28104_MdaNrm.yaml#/components/schemas/MDAType' mDAOutputList: oneOf: - - $ref: '#/components/schemas/CoverageProblemAnalysisoutput' - - $ref: '#/components/schemas/MobilityPerformanceAnalysisoutput' + - $ref: '#/components/schemas/CoverageProblemAnalysisOutput' + - $ref: '#/components/schemas/MobilityPerformanceAnalysisOutput' - $ref: '#/components/schemas/TrainingDataAnalysisOutput' - $ref: '#/components/schemas/NFScalingDimensioningDataAnalysisOutput' - $ref: '#/components/schemas/PMDataOutput' - $ref: '#/components/schemas/FailurePredictionOutput' - - $ref: '#/components/schemas/PagingOptimizationAnalysisOutput' + - $ref: '#/components/schemas/PagingOptimizationAnalysisOutput' + - $ref: '#/components/schemas/TrafficCongestionProblemAnalysisOutput' - type: array uniqueItems: true items: @@ -146,7 +147,7 @@ components: #-------- Definition of specific MobilityPerformanceAnalysis MDAoutput ----------------------------- - MobilityPerformanceAnalysisoutput: + MobilityPerformanceAnalysisOutput: type: object properties: mobilityPerformanceIssueIdentifier: @@ -162,7 +163,7 @@ components: $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' #-------- Definition of specific CoverageProblemAnalysis MDAoutput ----------------------------- - CoverageProblemAnalysisoutput: + CoverageProblemAnalysisOutput: type: object properties: coverageProblemId: @@ -393,7 +394,7 @@ components: $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' #-------- Definition of specific UEThroughputAnalysis MDAoutput ----------------------------- - TrafficCongestionProblemAnalysisoutput: + TrafficCongestionProblemAnalysisOutput: type: object properties: trafficCongestionId: @@ -414,6 +415,12 @@ components: uniqueItems: true items: $ref: '#/components/schemas/RecommendedAction' + severityLevel: + type: string + enum: + - SLIGHT_CONGESTION + - MODERATE_CONGESTION + - SEVERE_CONGESTION -- GitLab From 23953703a116dda2dcf10758224a00f6ec07197c Mon Sep 17 00:00:00 2001 From: shixixi Date: Thu, 14 Aug 2025 03:47:28 +0000 Subject: [PATCH 020/103] Edit TS28541_NrNrm.yaml --- OpenAPI/TS28541_NrNrm.yaml | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index 30b636f3c..11ead08d2 100755 --- a/OpenAPI/TS28541_NrNrm.yaml +++ b/OpenAPI/TS28541_NrNrm.yaml @@ -1183,6 +1183,8 @@ components: $ref: '#/components/schemas/SsbDuration' uECellBarredAccess: type: array + redCapAccessAllowed: + type: boolean uniqueItems: true items: type: string @@ -1519,6 +1521,38 @@ components: minimum: 0.2 maximum: 0.8 multipleOf: 0.2 + CellReselectionRedcap: + type: object + properties: + sSearchDeltaPStationary: + type: integer + enum: + - 2 + - 3 + - 6 + - 9 + - 12 + - 5 + tSearchDeltaPStationary: + type: integer + enum: + - 5 + - 10 + - 20 + - 30 + - 60 + - 120 + - 180 + - 240 + - 300 + sSearchThresholdP2: + type: integer + minimum: 0 + maximum: 31 + sSearchThresholdQ2: + type: integer + minimum: 0 + maximum: 31 pMax: type: integer minimum: -30 -- GitLab From c9dfb29d8cee5a38df2536fe647328a91e4b7455 Mon Sep 17 00:00:00 2001 From: shixixi Date: Fri, 15 Aug 2025 07:36:00 +0000 Subject: [PATCH 021/103] Edit TS28541_NrNrm.yaml --- OpenAPI/TS28541_NrNrm.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index 11ead08d2..9a700373b 100755 --- a/OpenAPI/TS28541_NrNrm.yaml +++ b/OpenAPI/TS28541_NrNrm.yaml @@ -1183,8 +1183,6 @@ components: $ref: '#/components/schemas/SsbDuration' uECellBarredAccess: type: array - redCapAccessAllowed: - type: boolean uniqueItems: true items: type: string -- GitLab From 26e658fa3aca706758289a295ee184cc295883dd Mon Sep 17 00:00:00 2001 From: Brendan Hassett Date: Thu, 14 Aug 2025 07:45:30 +0000 Subject: [PATCH 022/103] YAML update --- OpenAPI/TS28104_MdaNrm.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/OpenAPI/TS28104_MdaNrm.yaml b/OpenAPI/TS28104_MdaNrm.yaml index 4839ffc8e..d8e0ed23e 100644 --- a/OpenAPI/TS28104_MdaNrm.yaml +++ b/OpenAPI/TS28104_MdaNrm.yaml @@ -24,6 +24,7 @@ components: - SLS_ANALYSIS_NETWORK_SLICE_TRAFFIC_ANALYSIS - SLS_ANALYSIS_E2E_LATENCY_ANALYSIS - SLS_ANALYSIS_NETWORK_SLICE_LOAD_ANALYSIS + - UE_THROUGHPUT_ANALYSIS_TRAFFIC_CONGESTION_PROBLEM_ANALYSIS - SLS_ANALYSIS_EDGE_APPLICATION_DEPLOYMENT_LOCATION_ANALYSIS - SLS_ANALYSIS_EDGE_COMPUTING_PERFORMANCE_ANALYSIS - SLS_ANALYSIS_TRAFFIC_CONGESTION_PREDICTION_ANALYSIS @@ -37,7 +38,7 @@ components: - RESOURCE_ANALYTICS_PHYSICAL_RESOURCE_UTILIZATION_ANALYSIS_NF - RESOURCE_ANALYTICS_5GC_CONTROL_PLANE_CONGESTION_ANALYSIS - PREDICTIONS_PM_DATA - - UE_THROUGHPUT_ANALYSIS_TRAFFIC_CONGESTION_PROBLEM_ANALYSIS + - ATSSS_PERFORMANCE_TRAFFIC_STEERING_ANALYTICS - CORRELATION_ANALYTICS_TRAINING_DATA_ANALYSIS - CORRELATION_ANALYTICS_NF_SCALING_DIMENSIONING_DATA_ANALYSIS -- GitLab From 801cf925cc7bce0f875a3abaf072fcc892faa0fe Mon Sep 17 00:00:00 2001 From: zhaoxxian Date: Fri, 8 Aug 2025 08:28:51 +0000 Subject: [PATCH 023/103] reader location & A-IoT area --- OpenAPI/TS28541_5GcNrm.yaml | 33 ++++++++++++++++++++++++++++++++- OpenAPI/TS28541_NrNrm.yaml | 17 +++++++++++++++++ 2 files changed, 49 insertions(+), 1 deletion(-) diff --git a/OpenAPI/TS28541_5GcNrm.yaml b/OpenAPI/TS28541_5GcNrm.yaml index b99e102d0..c40e1b9fe 100755 --- a/OpenAPI/TS28541_5GcNrm.yaml +++ b/OpenAPI/TS28541_5GcNrm.yaml @@ -3813,6 +3813,35 @@ components: enum: - ALLOW - DENY + AIoTgNBInfo: + type: object + required: + - gNBId + - servedReaderInfoList + properties: + gNBId: + $ref: 'TS28541_NrNrm.yaml#/components/schemas/GnbId' + servedReaderInfoList: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/ServedReaderInfo' + ServedReaderInfo: + type: object + required: + - readerId + - servedAIOTAreas + properties: + readerId: + type: integer + servedAIOTAreas: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/ServedAIOTAreaID' + readerLocation: + type: string + #-------- Definition of types for name-containments ------ SubNetwork-ncO-5GcNrm: @@ -4840,7 +4869,9 @@ components: sBIFqdn: type: string managedNFProfile: - $ref: '#/components/schemas/ManagedNFProfile' + $ref: '#/components/schemas/ManagedNFProfile' + aIOTgNBInfo: + $ref: '#/components/schemas/AIoTgNBInfo' - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/ManagedFunction-ncO' - $ref: '#/components/schemas/ManagedFunction5GC-nc0' - type: object diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index 9a700373b..7cd141f66 100755 --- a/OpenAPI/TS28541_NrNrm.yaml +++ b/OpenAPI/TS28541_NrNrm.yaml @@ -764,6 +764,16 @@ components: uniqueItems: true items: $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet' + ServedAIOTAreaID: + type: object + properties: + pLMNId: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/PlmnId' + nID: + $ref: 'TS28541_5GcNrm.yaml#/components/schemas/Nid' + aIotAreaCode: + type: string + #-------- Definition of types for name-containments ------ @@ -2335,6 +2345,13 @@ components: - COMMAND plmnId: $ref: 'TS28623_ComDefs.yaml#/components/schemas/PlmnId' + servedAIOTAreas: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/ServedAIOTAreaID' + readerLocation: + type: string nRSectorCarrierRef: type: array uniqueItems: true -- GitLab From 3c9ae3391d74a82ff63381414ed9755fae8a658c Mon Sep 17 00:00:00 2001 From: zhaoxxian Date: Fri, 8 Aug 2025 08:32:43 +0000 Subject: [PATCH 024/103] update ref --- OpenAPI/TS28541_5GcNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28541_5GcNrm.yaml b/OpenAPI/TS28541_5GcNrm.yaml index c40e1b9fe..b3a1380d4 100755 --- a/OpenAPI/TS28541_5GcNrm.yaml +++ b/OpenAPI/TS28541_5GcNrm.yaml @@ -3838,7 +3838,7 @@ components: type: array uniqueItems: true items: - $ref: '#/components/schemas/ServedAIOTAreaID' + $ref: 'TS28541_NrNrm.yaml#/components/schemas/ServedAIOTAreaID' readerLocation: type: string -- GitLab From 660809858fb05cdeed4b46d1360f398fc956a4a8 Mon Sep 17 00:00:00 2001 From: Pengxiang Xie Date: Thu, 24 Jul 2025 11:15:24 +0800 Subject: [PATCH 025/103] Edit TS28541_5GcNrm.yaml --- OpenAPI/TS28541_5GcNrm.yaml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/OpenAPI/TS28541_5GcNrm.yaml b/OpenAPI/TS28541_5GcNrm.yaml index b3a1380d4..ca3c0e415 100755 --- a/OpenAPI/TS28541_5GcNrm.yaml +++ b/OpenAPI/TS28541_5GcNrm.yaml @@ -417,7 +417,10 @@ components: authzInfo: type: string hostAddr: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/Host' + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Host' allowedPLMNs: type: array uniqueItems: true @@ -537,11 +540,13 @@ components: minItems: 1 vendorId: $ref: '#/components/schemas/VendorId' - nfServices: - type: array - uniqueItems: true - items: + nfServiceList: + description: > + A map (list of key-value pairs) where serviceInstanceId serves as key of NFService + type: object + additionalProperties: $ref: '#/components/schemas/NFService' + minProperties: 1 supportedVendorSpecificFeatures: description: > A map (list of key-value pairs) where IANA-assigned "SMI Network Management Private Enterprise Codes" serves as key -- GitLab From 88b57f66b2ad436078e1adbe5554ad7f4c33aa92 Mon Sep 17 00:00:00 2001 From: zhaoxxian Date: Fri, 8 Aug 2025 04:08:19 +0000 Subject: [PATCH 026/103] initial NDT NRM stage 3 --- OpenAPI/TS28561_NdtNrm.yaml | 199 ++++++++++++++++++++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 OpenAPI/TS28561_NdtNrm.yaml diff --git a/OpenAPI/TS28561_NdtNrm.yaml b/OpenAPI/TS28561_NdtNrm.yaml new file mode 100644 index 000000000..a0be71c2d --- /dev/null +++ b/OpenAPI/TS28561_NdtNrm.yaml @@ -0,0 +1,199 @@ +openapi: 3.0.1 +info: + title: NDT NRM + version: 19.0.0 + description: >- + OAS 3.0.1 definition of the NDT NRM + © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). + All rights reserved. +externalDocs: + description: 3GPP TS 28.561; Management aspects of Network Digital Twins + url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.561/ +paths: {} +components: + schemas: + + #-------- Definition of types for name-containments ------ + SubNetwork-ncO-NDTNrm: + type: object + properties: + NDTFunction: + $ref: '#/components/schemas/NDTFunction-Multiple' + + #-------Definition of generic IOCs ----------# + NDTFunction-Single: + description: >- + This IOC represents the properties of an NDT Function + allOf: + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - type: object + properties: + supportedNDTCapabilities: + type: array + uniqueItems: true + items: + enum: + - RISKY-ACTIONS_PREDICTION + - EVENTS-IMPACTS_VERIFICATION + - FAULT_INJECTION + - NETWORK_EVENTS_VERIFICATION + - NETWORK_CONFIGURATIONS_VERIFICATION + - AUTOMATION_CONFIGURATION_VERIFICATION + - ML-TRAINING_DATA_GENERATION + - USER_EXPERIENCE_DATA_GENERATION + description: >- + It indicates the different types of NDT application use cases which the NDT is capable of undertaking.. + New values can be added to this list in future releases to support new use cases. + nDTFunctionScope: + $ref: "#/components/schemas/NDTFunctionScope" + + NDTJob-Single: + description: >- + This IOC represents the properties of an NDT job demand created by an MnS consumer. An NDT job represents the requirements for a network simulation/emulation task + allOf: + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - type: object + properties: + nDTCapability: + type: string + enum: + - RISKY-ACTIONS_PREDICTION + - EVENTS-IMPACTS_VERIFICATION + - FAULT_INJECTION + - NETWORK_EVENTS_VERIFICATION + - NETWORK_CONFIGURATIONS_VERIFICATION + - AUTOMATION_CONFIGURATION_VERIFICATION + - ML-TRAINING_DATA_GENERATION + - USER_EXPERIENCE_DATA_GENERATION + description: >- + It indicates the type of application use cases that is desired to be executed. + New values can be added to this list in future releases to support new use cases. + nDTJobSynchScope: + $ref: "#/components/schemas/ScopeDefinition" + nDTJobScenario: + $ref: "#/components/schemas/NDTInputDescription" + nDTJobExecutionRequirements: + $ref: "#/components/schemas/NdtJobExecutionReqts" + collaboratingNDT: + description: >- + It indicates the related NDT Job contributing as a collaborator to the executed NDT Job. It describes the DN of the collaborated NDT Job + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + ndtReportRefList: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + + NDTReport-Single: + description: >- + This IOC represents the properties of an NDT report corresponding to an NDT job + allOf: + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - type: object + properties: + nDTJobOutputData: + type: array + uniqueItems: true + items: + $ref: "#/components/schemas/NDTOutputDataPoint" + description: It indicates the list of NDTOutput(s) that are provided by the NDT function as the output for any task executed in an instantiated NDT job. + ndtJobRef: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + ndtFunctionRef: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + + #-------Definition of the dataType ----------# + NDTFunctionScope: + type: object + properties: + nDTRANScope: + $ref: '#/components/schemas/ScopeDefinition' + nDTCNScope: + $ref: "#/components/schemas/ScopeDefinition" + NDTInputDescription: + type: object + properties: + nDTInputDescriptionId: + type: string + simulationData: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet' + networkEventInfo: + type: string + condition: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + NDTOutputDescription: + type: object + properties: + nDTOutputDescriptionId: + type: string + objectInstance: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + objectAttributeList: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet' + ScopeDefinition: + type: object + oneOf: + - required: [ managedEntitiesScope ] + - required: [ areaScope ] + properties: + managedEntitiesScope: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + areaScope: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' + NdtJobExecutionReqts: + type: object + properties: + maxRuntime: + type: integer + NDTOutputDataPoint: + type: object + properties: + networkState: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/NDTOutputDescription' + networkConfiguration: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/NDTOutputDescription' + observations: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/NDTOutputDescription' + + #------Definition of JSON arrays for name-contained IOCs ---------------# + + NDTJob-Multiple: + type: array + items: + $ref: '#/components/schemas/NDTJob-Single' + + NDTReport-Multiple: + type: array + items: + $ref: '#/components/schemas/NDTReport-Single' + + NDTFunction-Multiple: + type: array + items: + $ref: '#/components/schemas/NDTFunction-Single' + #------Definition of JSON arrays for name-contained IOCs ---------------# + + #----- Definitions in TS 28.561 for TS 28.532 --------------------------# + resources-intentNrm: + oneOf: + - $ref: '#/components/schemas/NDTFunction-Single' + - $ref: '#/components/schemas/NDTJob-Single' + - $ref: '#/components/schemas/NDTReport-Single' -- GitLab From acc3729f6dea79c674143a8f5e418bf2e9520ff1 Mon Sep 17 00:00:00 2001 From: zhaoxxian Date: Fri, 8 Aug 2025 04:24:45 +0000 Subject: [PATCH 027/103] initial NDT NRM stage3 --- OpenAPI/TS28561_NdtNrm.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OpenAPI/TS28561_NdtNrm.yaml b/OpenAPI/TS28561_NdtNrm.yaml index a0be71c2d..df890505e 100644 --- a/OpenAPI/TS28561_NdtNrm.yaml +++ b/OpenAPI/TS28561_NdtNrm.yaml @@ -161,17 +161,17 @@ components: type: array uniqueItems: true items: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NDTOutputDescription' + $ref: '#/components/schemas/NDTOutputDescription' networkConfiguration: type: array uniqueItems: true items: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NDTOutputDescription' + $ref: '#/components/schemas/NDTOutputDescription' observations: type: array uniqueItems: true items: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NDTOutputDescription' + $ref: '#/components/schemas/NDTOutputDescription' #------Definition of JSON arrays for name-contained IOCs ---------------# -- GitLab From e69095df4cf6e4817b8013e48b9ceed11154569c Mon Sep 17 00:00:00 2001 From: zhaoxxian Date: Fri, 8 Aug 2025 07:17:02 +0000 Subject: [PATCH 028/103] Edit TS28561_NdtNrm.yaml --- OpenAPI/TS28561_NdtNrm.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/OpenAPI/TS28561_NdtNrm.yaml b/OpenAPI/TS28561_NdtNrm.yaml index df890505e..eb6fd9c04 100644 --- a/OpenAPI/TS28561_NdtNrm.yaml +++ b/OpenAPI/TS28561_NdtNrm.yaml @@ -33,13 +33,13 @@ components: uniqueItems: true items: enum: - - RISKY-ACTIONS_PREDICTION - - EVENTS-IMPACTS_VERIFICATION + - RISKY_ACTIONS_PREDICTION + - EVENTS_IMPACTS_VERIFICATION - FAULT_INJECTION - NETWORK_EVENTS_VERIFICATION - NETWORK_CONFIGURATIONS_VERIFICATION - AUTOMATION_CONFIGURATION_VERIFICATION - - ML-TRAINING_DATA_GENERATION + - ML_TRAINING_DATA_GENERATION - USER_EXPERIENCE_DATA_GENERATION description: >- It indicates the different types of NDT application use cases which the NDT is capable of undertaking.. @@ -57,13 +57,13 @@ components: nDTCapability: type: string enum: - - RISKY-ACTIONS_PREDICTION - - EVENTS-IMPACTS_VERIFICATION + - RISKY_ACTIONS_PREDICTION + - EVENTS_IMPACTS_VERIFICATION - FAULT_INJECTION - NETWORK_EVENTS_VERIFICATION - NETWORK_CONFIGURATIONS_VERIFICATION - AUTOMATION_CONFIGURATION_VERIFICATION - - ML-TRAINING_DATA_GENERATION + - ML_TRAINING_DATA_GENERATION - USER_EXPERIENCE_DATA_GENERATION description: >- It indicates the type of application use cases that is desired to be executed. -- GitLab From c29e2f05ffef56e3ce95b70773b679358c60f873 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 14 Aug 2025 06:32:24 +0000 Subject: [PATCH 029/103] Update 2 files - /OpenAPI/TS28623_FeatureNrm.yaml - /OpenAPI/TS28561_NdtNrm.yaml --- OpenAPI/TS28561_NdtNrm.yaml | 2 +- OpenAPI/TS28623_FeatureNrm.yaml | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/OpenAPI/TS28561_NdtNrm.yaml b/OpenAPI/TS28561_NdtNrm.yaml index eb6fd9c04..f1ad5965a 100644 --- a/OpenAPI/TS28561_NdtNrm.yaml +++ b/OpenAPI/TS28561_NdtNrm.yaml @@ -192,7 +192,7 @@ components: #------Definition of JSON arrays for name-contained IOCs ---------------# #----- Definitions in TS 28.561 for TS 28.532 --------------------------# - resources-intentNrm: + resources-ndtNrm: oneOf: - $ref: '#/components/schemas/NDTFunction-Single' - $ref: '#/components/schemas/NDTJob-Single' diff --git a/OpenAPI/TS28623_FeatureNrm.yaml b/OpenAPI/TS28623_FeatureNrm.yaml index ea4257932..f9c7ec7ba 100644 --- a/OpenAPI/TS28623_FeatureNrm.yaml +++ b/OpenAPI/TS28623_FeatureNrm.yaml @@ -27,6 +27,7 @@ components: - $ref: 'TS28541_NrNrm.yaml#/components/schemas/resources-nrNrm' - $ref: 'TS28541_5GcNrm.yaml#/components/schemas/resources-5gcNrm' - $ref: 'TS28541_SliceNrm.yaml#/components/schemas/resources-sliceNrm' + - $ref: 'TS28561_NdtNrm.yaml#/components/schemas/resources-ndtNrm:' - $ref: 'TS28623_FileManagementNrm.yaml#/components/schemas/resources-fileMgmtNrm' - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/resources-genericNrm' - $ref: 'TS28623_ManagementDataCollectionNrm.yaml#/components/schemas/resources-mgmtDataCollectionNrm' -- GitLab From 95615cee378b9b29b93e87bd5b9ae134c9eaabff Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 14 Aug 2025 06:41:16 +0000 Subject: [PATCH 030/103] Update 2 files - /OpenAPI/TS28623_FeatureNrm.yaml - /OpenAPI/TS28561_NdtNrm.yaml --- OpenAPI/TS28561_NdtNrm.yaml | 46 ++++++++++++++------------------- OpenAPI/TS28623_FeatureNrm.yaml | 2 +- 2 files changed, 21 insertions(+), 27 deletions(-) diff --git a/OpenAPI/TS28561_NdtNrm.yaml b/OpenAPI/TS28561_NdtNrm.yaml index f1ad5965a..097fb1db5 100644 --- a/OpenAPI/TS28561_NdtNrm.yaml +++ b/OpenAPI/TS28561_NdtNrm.yaml @@ -25,27 +25,19 @@ components: description: >- This IOC represents the properties of an NDT Function allOf: - - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' - type: object properties: supportedNDTCapabilities: type: array uniqueItems: true items: - enum: - - RISKY_ACTIONS_PREDICTION - - EVENTS_IMPACTS_VERIFICATION - - FAULT_INJECTION - - NETWORK_EVENTS_VERIFICATION - - NETWORK_CONFIGURATIONS_VERIFICATION - - AUTOMATION_CONFIGURATION_VERIFICATION - - ML_TRAINING_DATA_GENERATION - - USER_EXPERIENCE_DATA_GENERATION + $ref: '#/components/schemas/NDTCapability' description: >- It indicates the different types of NDT application use cases which the NDT is capable of undertaking.. New values can be added to this list in future releases to support new use cases. nDTFunctionScope: - $ref: "#/components/schemas/NDTFunctionScope" + $ref: '#/components/schemas/NDTFunctionScope' NDTJob-Single: description: >- @@ -55,25 +47,16 @@ components: - type: object properties: nDTCapability: - type: string - enum: - - RISKY_ACTIONS_PREDICTION - - EVENTS_IMPACTS_VERIFICATION - - FAULT_INJECTION - - NETWORK_EVENTS_VERIFICATION - - NETWORK_CONFIGURATIONS_VERIFICATION - - AUTOMATION_CONFIGURATION_VERIFICATION - - ML_TRAINING_DATA_GENERATION - - USER_EXPERIENCE_DATA_GENERATION + $ref: '#/components/schemas/NDTCapability' description: >- It indicates the type of application use cases that is desired to be executed. New values can be added to this list in future releases to support new use cases. nDTJobSynchScope: - $ref: "#/components/schemas/ScopeDefinition" + $ref: '#/components/schemas/ScopeDefinition' nDTJobScenario: - $ref: "#/components/schemas/NDTInputDescription" + $ref: '#/components/schemas/NDTInputDescription' nDTJobExecutionRequirements: - $ref: "#/components/schemas/NdtJobExecutionReqts" + $ref: '#/components/schemas/NdtJobExecutionReqts' collaboratingNDT: description: >- It indicates the related NDT Job contributing as a collaborator to the executed NDT Job. It describes the DN of the collaborated NDT Job @@ -92,7 +75,7 @@ components: type: array uniqueItems: true items: - $ref: "#/components/schemas/NDTOutputDataPoint" + $ref: '#/components/schemas/NDTOutputDataPoint' description: It indicates the list of NDTOutput(s) that are provided by the NDT function as the output for any task executed in an instantiated NDT job. ndtJobRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' @@ -100,13 +83,24 @@ components: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' #-------Definition of the dataType ----------# + NDTCapability: + type: string + enum: + - RISKY_ACTIONS_PREDICTION + - EVENTS_IMPACTS_VERIFICATION + - FAULT_INJECTION + - NETWORK_EVENTS_VERIFICATION + - NETWORK_CONFIGURATIONS_VERIFICATION + - AUTOMATION_CONFIGURATION_VERIFICATION + - ML_TRAINING_DATA_GENERATION + - USER_EXPERIENCE_DATA_GENERATION NDTFunctionScope: type: object properties: nDTRANScope: $ref: '#/components/schemas/ScopeDefinition' nDTCNScope: - $ref: "#/components/schemas/ScopeDefinition" + $ref: '#/components/schemas/ScopeDefinition' NDTInputDescription: type: object properties: diff --git a/OpenAPI/TS28623_FeatureNrm.yaml b/OpenAPI/TS28623_FeatureNrm.yaml index f9c7ec7ba..1623cb649 100644 --- a/OpenAPI/TS28623_FeatureNrm.yaml +++ b/OpenAPI/TS28623_FeatureNrm.yaml @@ -27,7 +27,7 @@ components: - $ref: 'TS28541_NrNrm.yaml#/components/schemas/resources-nrNrm' - $ref: 'TS28541_5GcNrm.yaml#/components/schemas/resources-5gcNrm' - $ref: 'TS28541_SliceNrm.yaml#/components/schemas/resources-sliceNrm' - - $ref: 'TS28561_NdtNrm.yaml#/components/schemas/resources-ndtNrm:' + - $ref: 'TS28561_NdtNrm.yaml#/components/schemas/resources-ndtNrm' - $ref: 'TS28623_FileManagementNrm.yaml#/components/schemas/resources-fileMgmtNrm' - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/resources-genericNrm' - $ref: 'TS28623_ManagementDataCollectionNrm.yaml#/components/schemas/resources-mgmtDataCollectionNrm' -- GitLab From 219335727c1d192c98ff7ebd364a14202bd8157f Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 14 Aug 2025 07:06:30 +0000 Subject: [PATCH 031/103] Update file TS28561_NdtNrm.yaml --- OpenAPI/TS28561_NdtNrm.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/OpenAPI/TS28561_NdtNrm.yaml b/OpenAPI/TS28561_NdtNrm.yaml index 097fb1db5..270a819a8 100644 --- a/OpenAPI/TS28561_NdtNrm.yaml +++ b/OpenAPI/TS28561_NdtNrm.yaml @@ -23,7 +23,7 @@ components: #-------Definition of generic IOCs ----------# NDTFunction-Single: description: >- - This IOC represents the properties of an NDT Function + This IOC represents the properties of an NDT Function allOf: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' - type: object @@ -49,7 +49,7 @@ components: nDTCapability: $ref: '#/components/schemas/NDTCapability' description: >- - It indicates the type of application use cases that is desired to be executed. + It indicates the type of application use cases that is desired to be executed. New values can be added to this list in future releases to support new use cases. nDTJobSynchScope: $ref: '#/components/schemas/ScopeDefinition' @@ -60,15 +60,15 @@ components: collaboratingNDT: description: >- It indicates the related NDT Job contributing as a collaborator to the executed NDT Job. It describes the DN of the collaborated NDT Job - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' ndtReportRefList: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' NDTReport-Single: description: >- - This IOC represents the properties of an NDT report corresponding to an NDT job + This IOC represents the properties of an NDT report corresponding to an NDT job allOf: - - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' - type: object properties: nDTJobOutputData: @@ -172,7 +172,7 @@ components: NDTJob-Multiple: type: array items: - $ref: '#/components/schemas/NDTJob-Single' + $ref: '#/components/schemas/NDTJob-Single' NDTReport-Multiple: type: array @@ -188,6 +188,6 @@ components: #----- Definitions in TS 28.561 for TS 28.532 --------------------------# resources-ndtNrm: oneOf: - - $ref: '#/components/schemas/NDTFunction-Single' + - $ref: '#/components/schemas/NDTFunction-Single' - $ref: '#/components/schemas/NDTJob-Single' - - $ref: '#/components/schemas/NDTReport-Single' + - $ref: '#/components/schemas/NDTReport-Single' -- GitLab From 0868b4b23b39cc7401174283eead9cb8b2ed8cc1 Mon Sep 17 00:00:00 2001 From: lengyelb Date: Fri, 15 Aug 2025 16:52:13 +0200 Subject: [PATCH 032/103] Add new file TS28572_PlanManagement.yaml --- OpenAPI/TS28572_PlanManagement.yaml | 2467 +++++++++++++++++++++++++++ 1 file changed, 2467 insertions(+) create mode 100644 OpenAPI/TS28572_PlanManagement.yaml diff --git a/OpenAPI/TS28572_PlanManagement.yaml b/OpenAPI/TS28572_PlanManagement.yaml new file mode 100644 index 000000000..a9b049958 --- /dev/null +++ b/OpenAPI/TS28572_PlanManagement.yaml @@ -0,0 +1,2467 @@ +openapi: 3.0.0 ##EDITOR get, delete Fallback; FallbackConfigurationDescriptor missing +info: + title: 3GPP Plan Provisioning Management API + version: 1.0.0 + description: API for managing network configuration plans and related jobs + +paths: + /plan-descriptors: + post: + tags: + - Plan Descriptor Management + summary: Create a new plan descriptor + description: Creates a new configuration plan descriptor that can be later activated. + operationId: createPlanDescriptor + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PlanConfigurationDescriptor' + example: + { + "name": "Rollout-5G-Dublin-East", + "version" : "1.0.0", + "description": "This is the plan for the new 5G rollout in Dublin east.", + "customProperties": { + "technology-type": "NR", + "location": "Dublin" + }, + "currentConfigAddress": "http://example.org/3gpp/ProvMnS/v1", + "planConfigContentType" : "application/vnd.3gpp.yang-patch+json", + "planConfig": { + ... + } + } + responses: + '201': + description: Plan descriptor created successfully + headers: + Location: + description: URI of the created plan descriptor. + schema: + type: string + format: uri-reference + example: "/plan-descriptors/my-plan11" + content: + application/json: + schema: + $ref: '#/components/schemas/PlanConfigurationDescriptorResponse' + '400': + description: Invalid request parameters or malformed input. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '409': + description: A plan descriptor with the given ID already exists. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + get: + tags: + - Plan Descriptor Management + summary: Get plan configuration descriptors + description: Retrieve a list of existing plan descriptors. + operationId: getPlanDescriptors + responses: + '200': + description: List of the plan configuration descriptors retrieved successfully. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DescriptorListEntry' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-descriptors/{id}: + parameters: + - in: path + name: id + schema: + type: string + description: Unique identifier of the plan descriptor. + example: "NewNetworkElement10-group-plan-001" + required: true + + get: + tags: + - Plan Descriptor Management + summary: Get a specific plan descriptor by ID + description: Retrieve the details of a single plan descriptor using its unique identifier. + operationId: getPlanDescriptorById + responses: + '200': + description: Plan descriptor retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/PlanConfigurationDescriptorResponse' + '404': + description: Plan descriptor does not exist + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + put: + tags: + - Plan Descriptor Management + summary: Replace a plan descriptor + description: Replace a configuration plan descriptor + operationId: putPlanDescriptor + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PlanConfigurationDescriptor' + example: + { + "name": "Rollout-5G-Dublin-East", + "description": "This is the plan for the new 5G rollout in Dublin east.", + "customProperties": { + "technology-type": "NR", + "location": "Dublin" + }, + "currentConfigAddress": "http://example.org/3gpp/ProvMnS/v1", + "planConfig": { + ... + } + } + responses: + '200': + description: Plan descriptor replaced successfully + content: + application/json: + schema: + $ref: '#/components/schemas/PlanConfigurationDescriptorResponse' ##EDITOR why is a return data needed? Is it not trivial ? TODO remove 200 + '204': + description: Plan descriptor replaced successfully. No content is returned + '400': + description: Invalid request parameters or malformed input. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '404': + description: Plan descriptor not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + delete: + tags: + - Plan Descriptor Management + summary: Delete a plan descriptor by ID + description: Deletes a specific configuration plan descriptor using its unique identifier + operationId: deletePlanDescriptorById + responses: + '204': + description: Plan descriptor deleted successfully. + '404': + description: Plan descriptor not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' ##EDITOR The example in swagger is very strange. The example cannot nbe the same for put and delete. TODO + '409': + description: Conflict - The plan descriptor cannot be deleted due to its current state or dependencies (For example, it is referenced in a plan group descriptor). + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-group-descriptors: + post: + tags: + - Plan Group Descriptor Management + summary: Create a new plan group descriptor + description: Creates a new configuration plan group descriptor that can be later activated. + operationId: createPlanGroupDescriptor + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PlanConfigurationGroupDescriptor' + + responses: + '201': + description: Plan group descriptor created successfully + headers: + Location: + description: URI of the created plan descriptor. + schema: + type: string + format: uri-reference + example: "/plan-group-descriptors/mygroup-11" + content: + application/json: + schema: + $ref: '#/components/schemas/PlanConfigurationGroupDescriptorResponse' + '400': + description: Invalid request parameters or malformed input. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + get: + tags: + - Plan Group Descriptor Management + summary: Get plan configuration descriptors + description: Retrieve a list of existing plan descriptors. + operationId: getPlanGroupDescriptors + responses: + '200': + description: List of the plan configuration descriptors retrieved successfully. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DescriptorListEntry' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-group-descriptors/{id}: + parameters: + - in: path + name: id + schema: + type: string + description: Unique identifier of the plan group descriptor. + example: "NewNetworkElement10-group-plan-001" + required: true + + get: + tags: + - Plan Group Descriptor Management + summary: Get a specific plan group descriptor by ID + description: Retrieve the details of a plan group descriptor using its unique identifier. + operationId: getPlanGroupDescriptorById + responses: + '200': + description: Plan group descriptor retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/PlanConfigurationGroupDescriptorResponse' + '404': + description: Plan group descriptor does not exist + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + put: + tags: + - Plan Group Descriptor Management + summary: Replace a plan group descriptor + description: Replace a configuration plan group descriptor + operationId: putPlanGroupDescriptor + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PlanConfigurationGroupDescriptor' + example: + { + "name": "Rollout-5G-Dublin-East", + "version" : "1.0.0", + "description": "This is the plan for the new 5G rollout in Dublin east.", + "applyMode" : "BEST_EFFORT", + "isOrdered" : true, + "isFailOnMemberConflicts" : true, + "members": [{"type" : "PLAN", "identifier" : "plan-descriptor-001"}, {"type" : "PLAN_GROUP", "identifier" : "plan-group-descriptor-001"}] + } + responses: + '200': + description: Plan group descriptor replaced successfully + content: + application/json: + schema: + $ref: '#/components/schemas/PlanConfigurationGroupDescriptorResponse' + '400': ##EDITOR should we use 422 ? + description: Invalid request parameters or malformed input. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '404': + description: Plan group descriptor not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + delete: + tags: + - Plan Group Descriptor Management + summary: Delete a plan group descriptor by ID + description: Deletes a plan group descriptor using its unique identifier + operationId: deletePlanGroupDescriptorById + responses: + '204': + description: Plan descriptor deleted successfully. + '404': + description: Plan descriptor not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '409': ##EDITOR can you delete a plan or group that is being activated IMHO not. Add here. Can a plan/group be deleted if it is part of a validationJob? IMHJO yes + description: The plan group descriptor cannot be deleted due to its current state or dependencies (For example, it is referenced in a plan group descriptor). + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /trigger-descriptors: + post: + tags: + - Trigger Descriptor Management + summary: Create a new trigger descriptor + description: Creates a new trigger descriptor + operationId: createTriggerDescriptor + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerDescriptor' + + responses: + '201': + description: Trigger descriptor created successfully + headers: + Location: + description: URI of the created trigger descriptor. + schema: + type: string + format: uri-reference + example: "/trigger-descriptors/mytrigger-11" + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerDescriptorResponse' + '400': + description: Invalid request parameters or malformed input. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + get: + tags: + - Trigger Descriptor Management + summary: Get trigger descriptors + description: Retrieve a list of existing trigger descriptors. + operationId: getTriggerDescriptors + responses: + '200': + description: List of the trigger descriptors retrieved successfully. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DescriptorListEntry' + + /trigger-descriptors/{id}: + parameters: + - in: path + name: id + schema: + type: string + description: Unique identifier of the descriptor. + example: "NewNetworkElement10-trigger-001" + required: true + + get: + tags: + - Trigger Descriptor Management + summary: Get a specific trigger descriptor by ID + description: Retrieve the details of a single descriptor using its unique identifier. + operationId: getTriggerDescriptorById + responses: + '200': + description: Plan descriptor retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerDescriptorResponse' + '404': + description: Trigger descriptor not found + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + put: + tags: + - Trigger Descriptor Management + summary: Replace a trigger descriptor + description: Replace a trigger descriptor + operationId: putTriggerDescriptor + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerDescriptor' + responses: + '200': ##EDITOR why do we need 200? Isnt 204 enough ? + description: Trigger descriptor replaced successfully + content: + application/json: + schema: + $ref: '#/components/schemas/TriggerDescriptorResponse' + '204': + description: Trigger descriptor created successfully + '400': + description: Invalid request parameters or malformed input. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '404': + description: Trigger descriptor not found + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + delete: + tags: + - Trigger Descriptor Management + summary: Delete a trigger descriptor by ID + description: Deletes a specific trigger descriptor using its unique identifier + operationId: deleteTriggerDescriptorById + responses: + '204': + description: Trigger descriptor deleted successfully. + '404': + description: Trigger descriptor not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-activation-jobs: ##EDITOR remove plan- from activation-job ActivationJob generally + post: + tags: + - Activation Management + summary: Create a new plan activation job ##EDITOR or group or fallbackdescr + description: Creates and starts a new plan activation job based on an existing plan descriptor. The new job's ID will be generated by the server and returned in the Location header. + operationId: createPlanActivationJob + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PlanActivationJobRequest' + responses: + '201': + description: Plan activation job created successfully. + The response body provides job details, and the Location header points to the new job. + headers: + Location: + description: URI of the created job resource. + schema: + type: string + format: uri-reference + example: "/plan-activation-jobs/myjob-111" + content: + application/json: + schema: + $ref: '#/components/schemas/PlanActivationJobResponse' + '400': + description: Invalid request payload or parameters (e.g., malformed JSON, missing required fields). + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + get: + tags: + - Activation Management + summary: Get plan activation jobs + description: Retrieve a list of plan activation jobs. ##EDITOR describe that the order of items is vendor specific, but it shall be fixed. + operationId: getPlanActivationJobs + parameters: + - in: query + name: job-state + schema: + $ref: '#/components/schemas/JobState' + description: Filter jobs by their current state. + example: "RUNNING" + - in: query + name: limit + schema: + type: integer ##EDIOR this paging is slightly broken. Prposal to remove. + format: int32 + minimum: 1 + description: Maximum number of jobs to return. + - in: query + name: offset + schema: + type: integer + format: int32 + minimum: 0 + default: 0 + description: Number of jobs to skip before starting to collect the result set. + responses: + '200': + description: List of plan activation jobs retrieved successfully. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/JobListEntry' + '400': + description: Invalid query parameters + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-activation-jobs/{id}: + parameters: + - $ref: '#/components/parameters/jobId' + get: + tags: + - Activation Management + summary: Get plan activation job details by ID + description: Retrieve detailed information about a specific plan activation job using its unique identifier. + operationId: getPlanActivationJobById + responses: + '200': + description: Job details retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/PlanActivationJobResponse' + '404': + description: Job not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + delete: + tags: + - Activation Management + summary: Delete a plan activation job by ID + description: Deletes a specific plan activation job, typically if it's not in a terminal state (e.g., running, completed, failed). + operationId: deletePlanActivationJobById + responses: + '204': + description: Job deleted successfully. No content is returned. + '404': + description: Job not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '409': + description: Cannot delete job in its current state (e.g., already running). + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-activation-jobs/{id}/status: + get: + tags: + - Activation Management + summary: Get job status + description: Retrieve the current status of a specific plan activation job using its unique identifier. + operationId: getJobStatus + parameters: + - $ref: '#/components/parameters/jobId' + responses: + '200': + description: Job status retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ActivationJobStatus' + '404': + description: Job not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-activation-jobs/{id}/activation-details: + get: + tags: + - Activation Management + summary: Get activation details + description: Retrieve detailed information about the activation results of a job + operationId: getActivationDetails + parameters: + - $ref: '#/components/parameters/jobId' + responses: + '200': + description: Activation details retrieved successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ExecutionDetails' + '404': + description: Job not found + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-activation-jobs/{id}/status/job-state: + parameters: + - $ref: '#/components/parameters/jobId' + put: + tags: + - Activation Management + summary: Cancel the activation job by modifying the jobState property ##EDITOR harmonize with stage2 where there is a separate cancelRequest or is-cancel-requested boolean. + description: Cancel the activation job by modifying the jobState property + operationId: cancelActivationJobById + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CancelRequest' + example: + { + "jobState": "CANCELLING" + } + responses: + '200': + description: Job cancel request was successfully completed + '202': + description: Job cancel request was accepted and cancellation is ongoing + '400': + description: Bad request . + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '404': + description: Job not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '422': + description: Semantic error - - perhaps jobState not set to correct value. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-validation-jobs: ##EDITOR remove plan- from the name, see stage2 + post: + tags: + - Validation Management + summary: Create a new plan validation job + description: Creates and starts a new plan validation job based on an existing plan descriptor. The new job's ID will be generated by the server and returned in the Location header. + operationId: createPlanValidationJob + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/PlanValidationJobRequest' + responses: + '201': + description: Plan validation job created successfully. + The response body provides job details, and the Location header points to the new job. + headers: + Location: + description: URI of the created job resource. + schema: + type: string + format: uri-reference + example: "/plan-validation-jobs/myjob-111" + content: + application/json: + schema: + $ref: '#/components/schemas/PlanValidationJobResponse' + '400': + description: Invalid request payload or parameters (e.g., malformed JSON, missing required fields). + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + get: + tags: + - Validation Management + summary: Get plan validation jobs + description: Retrieve a list of plan validation jobs. + operationId: getPlanValidationJobs + parameters: + - in: query + name: job-state + schema: + $ref: '#/components/schemas/JobState' + description: Filter jobs by their current status. + example: "RUNNING" + - in: query + name: limit + schema: + type: integer ##EDITOR paging is slightly broken. Same as for activtion-jobs + format: int32 + minimum: 1 + description: Maximum number of jobs to return. + - in: query + name: offset + schema: + type: integer + format: int32 + minimum: 0 + default: 0 + description: Number of jobs to skip before starting to collect the result set. + responses: + '200': + description: List of plan validation jobs retrieved successfully. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/JobListEntry' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-validation-jobs/{id}: + parameters: + - $ref: '#/components/parameters/jobId' + get: + tags: + - Validation Management + summary: Get plan validation job details by ID + description: Retrieve detailed information about a specific plan validation job using its unique identifier. + operationId: getPlanValidationJobById + responses: + '200': + description: Job details retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/PlanValidationJobResponse' + '404': + description: Job not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + delete: + tags: + - Validation Management + summary: Delete a plan validation job by ID + description: Deletes a specific plan validation job, typically if it's not in a terminal state (e.g., running, completed, failed). + operationId: deletePlanValidationJobById + responses: + '204': + description: Job deleted successfully. No content is returned. + '404': + description: Job not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '409': + description: Cannot delete job in its current state (e.g., already running). ##EDITOR I think even a running valaidationjob can be deleted. Do we need this? + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-validation-jobs/{id}/status: + get: + tags: + - Validation Management + summary: Get job status + description: Retrieve the current status of a specific plan validation job using its unique identifier. + operationId: getValidationJobStatus + parameters: + - $ref: '#/components/parameters/jobId' + responses: + '200': + description: Job status retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationJobStatus' + '404': + description: Job not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-validation-jobs/{id}/validation-details: + get: + tags: + - Validation Management + summary: Get validation details + description: Retrieve detailed information about the validation results of a job + operationId: getValidationDetails + parameters: + - $ref: '#/components/parameters/jobId' + - name: expand + in: query + description: Level of detail to return + schema: + type: string + enum: [all] + responses: + '200': + description: Validation details retrieved successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ExecutionDetails' + '404': + description: Job not found + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-validation-jobs/{id}/status/job-state: + parameters: + - $ref: '#/components/parameters/jobId' + put: + tags: + - Validation Management + summary: Cancel the validation job by modifying the jobState property + description: Cancel the validation job by modifying the jobState property ##EDITOR harmonize cancelling with stage2 + operationId: cancelValidationJobById + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CancelRequest' + example: + { + "jobState": "CANCELLING" + } + responses: + '200': + description: Job cancel request was successfully completed + '202': + description: Job cancel request was accepted and cancellation is ongoing + '400': + description: Bad request - perhaps jobState not set to correct value. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '404': + description: Job not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + +components: + parameters: + jobId: + name: id + in: path + description: Unique identifier of the job + required: true + schema: + type: string + example: "myjob-111" + descriptorId: + name: descriptorId + in: path + description: Unique identifier of the plan descriptor + required: true + schema: + type: string + example: "plan-descriptor-001" + + + schemas: + PlanConfigurationDescriptor: + type: object + required: + - planConfigContentType + - planConfig + properties: + id: + type: string + description: Unique id of the plan configuration descriptor + example: "plan-001" + name: + type: string + description: Descriptive name of the plan group configuration descriptor + example: "Rollout-5G-Dublin-East" + version: + type: string + description: The version of the planned configuration. Its format is implementation specific. + example: 1.0.0 + description: + type: string + description: Used to describe the purpose of the plan configuration + example: "This is the plan for the new 5G rollout in Dublin east." + customProperties: + type: object + description: A dynamic set of custom properties provided by client + additionalProperties: true + example: + technology-type: NR + location: Dublin + currentConfigAddress: + type: string + format: uri-reference + description: A reference address to the current configuration associated with the configuration in this descriptor + example: "http://example.org/3gpp/ProvMnS/v1" + applyMode: + type: string + enum: [ATOMIC, BEST_EFFORT, STOP_ON_ERROR] ##EDITOR - SKIP_ON_ERROR open in stage 2 + default : "BEST_EFFORT" + description: Specifies the execution behavior when the plan is activated + example: "BEST_EFFORT" + lastModifiedAt: + type: string + format: date-time + description: the last time the plan was modified + example: "2025-03-06T16:50:26-08:00" + validationState: + type: string + enum: [NOT_VALIDATED, VALIDATING, VALID, INVALID] + default : "NOT_VALIDATED" + description: The validation state of the plan. + example: "NOT_VALIDATED" + lastValidatedAt: + type: string + format: date-time + description: last time the plan was validated + example: "2025-03-06T16:50:29-08:00" + planConfigContentType: + type: string + enum: + - application/vnd.3gpp.json-patch+json + - application/vnd.3gpp.yang-patch+json + description: The format/type of the configuration in planConfig + example: "application/vnd.3gpp.yang-patch+json" + planConfig: + description: "The plan configuration changes" + ##EDITOR's format is TBD + PlanConfigurationDescriptorResponse: + type: object + required: + - id + - applyMode + - lastModifiedAt + - validationState + - planConfigContentType + - planConfig + allOf: + - $ref: '#/components/schemas/PlanConfigurationDescriptor' + properties: + _links: + type: object + description: Hypermedia links for plan descriptor + allOf: + - $ref: '#/components/schemas/SelfLink' + example: + self: + href: "{root-url}/ProvMnS/v1/plan-descriptors/pd-001" + templated: true + type: "application/json" + title: "The newly created PlanConfigurationDescriptor" + + PlanConfigurationGroupDescriptor: + type: object + required : + - members + properties: + id: + type: string + description: Unique id of the plan group configuration descriptor + example: "plan-001" + name: + type: string + description: Descriptive name of the plan group configuration descriptor + example: "Rollout-5G-Dublin-East" + description: + type: string + description: Used to describe the purpose of the plan group configuration + example: "This is the plan for the new 5G rollout in Dublin east." + customProperties: + type: object + description: A dynamic set of custom properties provided by client + additionalProperties: true + example: + technology-type: NR + location: Dublin + isOrdered: + type: boolean + description: Specifies if the members of the planned configuration group are ordered. When ordered, the planned configuration group members shall be validated/activated in the specified order. When not ordered the planned configuration group members can be validated/activated in any order + default: "false" + isFailOnMemberConflicts: + type: boolean + description: Specifies if the activation shall fail on detection of conflicts between planned configuration group members, or if the operations shall be processed as if there were no conflicts + default: "false" + applyMode: + type: string + enum: [ATOMIC, BEST_EFFORT, STOP_ON_ERROR] ##EDITOR - "SKIP_ON_ERROR" under discussion in stage 2 + default : "BEST_EFFORT" + description: Specifies the execution behavior when the plan configuration group is activated + example: "BEST_EFFORT" + lastModifiedAt: + type: string + format: date-time + description: the last time the plan was modified + example: "2025-03-06T16:50:26-08:00" + validationState: + type: string + enum: [NOT_VALIDATED, VALIDATING, VALID, INVALID] + default : "NOT_VALIDATED" + description: The validation state for the last time plan configuration group was validated + example: "NOT_VALIDATED" + lastValidatedAt: + type: string + format: date-time + description: last time the plan was validated + example: "2025-03-06T16:50:29-08:00" + members: + type: array + description: list of plan or plan group descriptor identifiers + items: + type: object + required: + - identifier + properties: + type: + type: string + enum: [PLAN, PLAN_GROUP] + default: PLAN + identifier: + type: string + example: [{"type" : "PLAN", "identifier" : "plan-descriptor-001"}, {"type" : "PLAN_GROUP", "identifier" : "plan-group-descriptor-001"}] + + PlanConfigurationGroupDescriptorResponse: + type: object + required: + - id + - applyMode + - validationState + - isOrdered + - isFailOnMemberConflicts + - members + allOf: + - $ref: '#/components/schemas/PlanConfigurationGroupDescriptor' + properties: + _links: + type: object + description: Hypermedia links for plan descriptor + allOf: + - $ref: '#/components/schemas/SelfLink' + example: + self: + href: "{root-url}/ProvMnS/v1/plan-group-descriptors/pgd-001" + templated: true + type: "application/json" + title: "The newly created PlanConfigurationGroupDescriptor" + + TriggerDescriptor: + type: object + required: + - conditionExpression + - evaluationPeriod + properties: + id: + type: string + description: Unique id of the plan configuration descriptor + example: "trigger-001" + name: + type: string + description: Descriptive name of the trigger descriptor + example: "Rollout-5G-Dublin-East" + description: + type: string + description: Used to describe the purpose of the trigger + example: "This is the plan for the new 5G rollout in Dublin east." + version: + type: string + description: an optional version for the Trigger Descriptor + example: "v1.0" + customProperties: + type: object + description: A dynamic set of custom properties provided by client + additionalProperties: true + example: + technology-type: NR + location: Dublin + conditionExpression: + type: string + description: The condition expression ##BALAZS JEX on NRM - OPEN + activationJobs: + type: array + items: + type : string + description: The identifiers of one or more activation jobs that shall be triggered by this condition. + startAt: + type: string + format: date-time + description: The date and time at which the evaluation of the condition expression shall start. The evaluation result is set to "False" before that date and time. If the information element is not specified, evaluation of the trigger condition shall start immediately. + example: "2025-03-06T16:50:26-08:00" + stopAt: + type: string + format: date-time + description: The date and time at which the evaluation of the condition expression shall stop. The evaluation result is set to "False" after that date and time. If the information element is not specified, evaluation of the trigger condition shall continue until the deletion of the trigger condition descriptor. + example: "2025-03-06T16:50:26-08:00" + currentEvaluationResult: + type: boolean + default : false + description: The current result of evaluating the "condition-expression". + example: false + lastModifiedAt: + type: string + format: date-time + description: The date and time at which the trigger condition was modified the last time by a MnS consumer. Upon creation of the trigger condition descriptor the value of the information element is set to the date and time at which the descriptor is created. + example: "2025-03-06T16:50:29-08:00" + lastTriggeredAt: + type: string + format: date-time + description: Th date and time at which the evaluation result of the trigger condition changed the last time from "False" to "True". + example: "2025-03-06T16:50:29-08:00" + isTriggerActive: + type: boolean + default : false + description: The indication if the trigger can start activation jobs (trigger is active), or if the trigger cannot start activation jobs (trigger is inactive). + example: false + isTriggerOnce: + type: boolean + default : true + description: The boolean indication, if the trigger is disarmed after the first firing. + example: false + evaluationPeriod: + type: integer + description: The evaluation period specifies the interval of time in seconds between two consecutive condition expression evaluations. + hysteresis: + type: integer + description: The hysteresis, when present, specifies that the trigger shall not be activated immediately when the evaluation result changes from false to true or a specified number of times. Values greater or equal to 1 are allowed + + TriggerDescriptorResponse: + type: object + required: + - id + - conditionExpression + - evaluationPeriod + - isTriggerOnce + - currentEvaluationResult + - isTriggerActive + allOf: + - $ref: '#/components/schemas/TriggerDescriptor' + properties: + _links: + type: object + description: Hypermedia links for trigger descriptor + allOf: + - $ref: '#/components/schemas/SelfLink' + example: + self: + href: "{root-url}/ProvMnS/v1/trigger-descriptors/trigger-001" + templated: true + type: "application/json" + title: "The newly created TriggerDescriptor" + + DescriptorListEntry: + type: array + items: + type: object + properties: + id: + type: string + description: id of the descriptor. + example: plan-descriptor-1 + name: + type: string + description: name of the descriptor. + example: Dublin East Rollout + description: + type: string + description: description/purpose of the descriptor. + example: plan-descriptor-1 + required : + - id + - name + + JobListEntry: + type: object + allOf: + - $ref: '#/components/schemas/JobState' + properties: + id: + type: string + description: id of the job. + example: plan-job-1 + name: + type: string + description: name of the job. + example: Dublin East Rollout Job + description: + type: string + description: description/purpose of the job. + example: Job to do dublin east rollout + required : + - id + - name + - jobState + + PlanActivationJob: + type: object + allOf: + - $ref: '#/components/schemas/JobState' + properties: + id: + type: string + description: id of the activation job + example: "job-id-3985199134" + name: + type: string + description: Name of the activation job + example: "Dublin East Cell Deployment" + description: + type: string + description: Human-readable description of the job + example: "Optimize the Dublin area network" + createdFallbackConfigDescrId: ##EDITOR is the name OK ? + type: string + description: Id of the created Fallback Plan Configuration Descriptor + example: "fallback-plan-descriptor-001" + isFallbackEnabled: + type: boolean + description: Whether fallback should be enabled for this job + default: true + serviceImpact: + type: string + enum: [LEAST_SERVICE_IMPACT, SHORTEST_TIME] + description: Additional job-specific parameters + default: "SHORTEST_TIME" + isImmediateActivation: + type: boolean + description: specifies if the activation job shall start immediately or, alternatively, by conditional activation. + default: true + jobDetails: + allOf: + - $ref: '#/components/schemas/JobDetails' + jobState: + allOf: + - $ref: '#/components/schemas/JobState' + activationState: + allOf: + - $ref: '#/components/schemas/ActivationState' + activationDetails: + allOf: + - $ref: '#/components/schemas/LinkObject' + - type: object + properties: + href: + type: string + title: A URI reference to the activation details + example: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/activation-details" ##EDITOR: Why do we force the user to ask for the details in a separate request? + title: ##EDITOR at least the summary should be prsent here. + type: string + enum: + - "Link to the activation details" + method: + type: string + enum: + - "GET" + type: + type: string + description: The content type expected when following this link (MIME type). + default: "application/json" + sourceIdentity: + type: array + description: The user that created and/or started the job. It may indicated a human user and/or one or more applications initiating the job. E.g. ["userid:janedoe", "appid:12314"] + items: + type: string + oneOf: + - type: object + required: + - planConfigDescrId # Alt.1 planConfigDescrId + properties: + planConfigDescrId: + type: string + description: Unique id reference to the plan descriptor to activate + example: "planxyz" + - type: object + required: + - planConfigDescr # Alt.2 planConfigDescr embedded + properties: + planConfigDescr: + type: object + description: Inline plan configuration descriptor to activate + allOf: + - $ref: '#/components/schemas/PlanConfigurationDescriptor' + example: + name: "myjob-111" + applyMode: "BEST_EFFORT" + customProperties: { + techology-type: "NR", + indoor: false + } + planConfig: + ... + - type: object + required: + - planConfigGroupDescrId # Alt.3 planConfigGroupDescrId + properties: + planConfigGroupDescrId: + type: string + description: Unique id reference to the plan group descriptor to activate + example: "plan-group-xyz" + - type: object + required: + - planConfigGroupDescr # Alt.4 planConfigGroupDescr embedded + properties: + planConfigGroupDescr: + type: string + description: Inline plan group descriptor to activate + allOf: + - $ref: '#/components/schemas/PlanConfigurationGroupDescriptor' + ##BALAZS Alt5. fallbackdescriptorId missing + example: + { + id : "myjob-111", + name : "5G-Dublin-East-Rollout", + description : "Optimize the 5G network in Dublin East", + isFallbackEnabled : true, + serviceImpact : "SHORTEST_TIME", + isImmediateActivation : true, + jobState : "CREATED", + jobDetails : "", + startedAt : "", + activationState : "NOT_STARTED", + activationDetails : { + href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/activation-details", + templated: true, + type: "application/json", + title: "The activation details of the plan configuration(s)", + method : "GET" + }, + planConfigDescrId : "plan-descriptor-001", + } + additionalProperties : true + + PlanActivationJobRequest: + type: object + allOf: + - $ref: '#/components/schemas/PlanActivationJob' + example: + { + "name" : "5G-Dublin-East-Rollout", + "description" : "Optimize the 5G network in Dublin East", + "planConfigDescr" : { + "applyMode" : "ATOMIC", + "customProperties" : { + "technology-type": "NR", + "location": "Dublin" + }, + "planConfigContentType" : "application/vnd.3gpp.yang-patch+json", + "planConfig": { + ... + } + } + } + + PlanActivationJobResponse: + type: object + required: + - id + - jobState + - jobDetails + - activationState + - activationDetails + - isImmediateActivation + - isFallbackEnabled + - serviceImpact + allOf: + - $ref: '#/components/schemas/PlanActivationJob' + properties: + _links: + description: Hypermedia links for this resource, including fixed and dynamic relations + allOf: + - $ref: '#/components/schemas/JobLinks' + - type: object + properties: + self: + allOf: + - $ref: '#/components/schemas/LinkObject' ##EDITOR Any other link will conform to LinkObject schema but we shall specify which links to expect + - type: object + properties: + href: + type: string + default: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/{planActivationJobId}" + title: + type: string + enum: + - "Link to the plan activation job" + method: + type: string + enum: + - "GET" + example: + href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/activation-job-001" + title: "Link to the plan activation job" + type: "application/json" + templated: true + method: GET + fallback: + allOf: + - $ref: '#/components/schemas/LinkObject' + description: A URI reference to the fallback plan descriptor + example: + href: "{apiRoot}/ProvMnS/v1/plan-descriptor/myjob-111-fallback" + templated: true + type: "application/json" + title: "A URI reference to the fallback plan descriptor" + method: GET + ##EDITOR other links are missing. We have more in the examples -> additionalProperties to allow any other dynamic links + additionalProperties: + $ref: '#/components/schemas/LinkObject' + example: + self: + href: "{apiRoot}/ProvMnS/1900/plan-activation-jobs/myjob-111" + templated: true + type: "application/json" + title: "The newly created activation job" + method : "GET" + planDescriptor: + href: "{apiRoot}/ProvMnS/v1/plan-descriptors/planxyz" + templated: true + type: "application/json" + title: "plan descriptor link" + method : "GET" + status: + href: "{apiRoot}/ProvMnS/1900/plan-activation-jobs/myjob-111/status" + templated: true + type: "application/json" + title: "activation status link" + method : "GET" + cancel: + href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/status/jos-state" + templated: true + type: "application/json" + title: "cancel the job" + method : "PUT" + fallbackPlan: + href: "{apiRoot}/ProvMnS/v1/plan-descriptors/myfallback-plan-111" + templated: true + type: "application/json" + title: "fallback plan descriptor link" + method : "GET" + + CancelRequest: + type: object + required: + - jobState + properties: + jobState: + type: string + enum : + - CANCELLING + description: set to CANCELLING to cancel a job + example: CANCELLING + + PlanValidationJob: + type: object + allOf: + - $ref: '#/components/schemas/JobState' + properties: + id: + type: string + description: id of the validation job + example: "job-id-3985199134" + name: + type: string + description: Name of the validation job + example: "Dublin East Cell Deployment" + description: + type: string + description: Human-readable description of the job + example: "Optimize the Dublin area network" + jobDetails: + allOf: + - $ref: '#/components/schemas/JobDetails' + jobState: + allOf: + - $ref: '#/components/schemas/JobState' + validationState: + allOf: + - $ref: '#/components/schemas/ValidationState' + validationDetails: + allOf: + - $ref: '#/components/schemas/LinkObject' + - type: object + properties: + href: + type: string + title: A URI reference to the validation details + example: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/validation-details" + title: + type: string + enum: + - "Link to the validation details" + method: + type: string + enum: + - "GET" + type: + type: string + description: The content type expected when following this link (MIME type). + default: "application/json" + sourceIdentity: + type: array + description: The user that created and/or started the job. It may indicated a human user and/or one or more applications initiating the job. E.g. ["userid:janedoe", "appid:12314"] + items: + type: string + oneOf: + - type: object + required: + - planConfigDescrId # Alt.1 planConfigDescrId + properties: + planConfigDescrId: + type: string + description: Unique id reference to the plan descriptor to activate + example: "planxyz" + - type: object + required: + - planConfigDescr # Alt.2 planConfigDescr embedded + properties: + planConfigDescr: + type: object + description: Inline plan configuration descriptor to activate + allOf: + - $ref: '#/components/schemas/PlanConfigurationDescriptor' + example: + name: "myjob-111" + applyMode: "BEST_EFFORT" + customProperties: { + techology-type: "NR", + indoor: false + } + planConfig: + ... + - type: object + required: + - planConfigGroupDescrId # Alt.3 planConfigGroupDescrId + properties: + planConfigGroupDescrId: + type: string + description: Unique id reference to the plan group descriptor to activate + example: "plan-group-xyz" + - type: object + required: + - planConfigGroupDescr # Alt.4 planConfigGroupDescr embedded + properties: + planConfigGroupDescr: + type: string + description: Inline plan group descriptor to activate + allOf: + - $ref: '#/components/schemas/PlanConfigurationGroupDescriptor' + ##EDITOR ALt.5 fallback missing + example: + { + id : "myjob-111", + name : "5G-Dublin-East-Rollout", + description : "Optimize the 5G network in Dublin East", + isFallbackEnabled : true, + serviceImpact : "SHORTEST_TIME", + isImmediateActivation : true, + jobState : "CREATED", + jobDetails : "", + startedAt : "", + activationState : "NOT_STARTED", + activationDetails : { + href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/activation-details", + templated: true, + type: "application/json", + title: "The activation details of the plan configuration(s)", + method : "GET" + }, + planConfigDescrId : "plan-descriptor-001", + } + additionalProperties : true + + PlanValidationJobRequest: + type: object + allOf: + - $ref: '#/components/schemas/PlanValidationJob' + example: + { + "name" : "5G-Dublin-East-Rollout", + "description" : "Optimize the 5G network in Dublin East", + "planDescriptor" : { + "applyMode" : "ATOMIC", + "customProperties" : { + "technology-type": "NR", + "location": "Dublin" + }, + "planConfig": { + ... + } + } + } + + PlanValidationJobResponse: + type: object + required: + - id + - jobState + - jobDetails + - validationState + - validationDetails + allOf: + - $ref: '#/components/schemas/PlanValidationJob' + properties: + _links: + description: Hypermedia links for this resource, including fixed and dynamic relations + allOf: + - $ref: '#/components/schemas/JobLinks' + - type: object + properties: + self: + allOf: + - $ref: '#/components/schemas/LinkObject' # Any other link will conform to LinkObject schema + - type: object + properties: + href: + type: string + default: "{apiRoot}/ProvMnS/v1/plan-validation-jobs/{planValidationJobId}" + title: + type: string + enum: + - "Link to the plan validation job" + method: + type: string + enum: + - "GET" # This means the method MUST be "GET" + example: + href: "{apiRoot}/ProvMnS/v1/plan-validation-jobs/validation-job-001" + title: "Link to the plan validation job" + type: "application/json" + templated: true + method: GET + # additionalProperties to allow any other dynamic links + additionalProperties: + $ref: '#/components/schemas/LinkObject' + example: + self: + href: "{apiRoot}/ProvMnS/1900/plan-activation-jobs/myjob-111" + templated: true + type: "application/json" + title: "The newly created activation job" + method : "GET" + planDescriptor: + href: "{apiRoot}/ProvMnS/v1/plan-descriptors/planxyz" + templated: true + type: "application/json" + title: "plan descriptor link" + method : "GET" + status: + href: "{apiRoot}/ProvMnS/1900/plan-activation-jobs/myjob-111/status" + templated: true + type: "application/json" + title: "activation status link" + method : "GET" + cancel: + href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/cancel" + templated: true + type: "application/json" + title: "cancel the job" + method : "POST" + fallbackPlan: + href: "{apiRoot}/ProvMnS/v1/plan-descriptors/myfallback-plan-111" + templated: true + type: "application/json" + title: "fallback plan descriptor link" + method : "GET" + + AbstractChangeDefinition: + type: object + properties: + operation: + type: string + enum: [create, merge, update, remove] + description: The operation to perform + example: "create" + description: + type: string + description: text describing the change + example: "modify NR cell for optimisation" + target: + type: string + description: Target data node path + example: "/_3gpp-common-subnetwork:SubNetwork=Irl/3gpp-common-mecontext:MeContext=Dublin-1/_3gpp_nrm_managedelement:ManagedElement=1/_3gpp_nrm_nrcelldu:NRCellDU=4" + value: + type: object + additionalProperties: true # Allows any nested properties within 'value' + description: Value to apply (for create/merge/remove operations) + + Change: + allOf: + - $ref: '#/components/schemas/AbstractChangeDefinition' + - type: object + properties: + changeId: + type: string + description: Unique identifier for this change + example: "opId-001" + additionalProperties: true # Allows any nested properties within 'value' + required: + - operation + - target + + JobLinks: + type: object + allOf: + - $ref: '#/components/schemas/SelfLink' + properties: + planDescriptor: + description: A URI reference to the plan (or plan group) configuration descriptor + allOf: + - $ref: '#/components/schemas/LinkObject' # Any other link will conform to LinkObject schema + - type: object + properties: + href: + type: string + default: "{apiRoot}/ProvMnS/v1/plan-descriptors/{planDescriptorId}" + title: + type: string + enum: + - "Link to the plan (or plan group) configuration descriptor" + method: + type: string + enum: + - "GET" # This means the method MUST be "GET" + example: + href: "{apiRoot}/ProvMnS/v1/plan-descriptors/plan-descriptor-001" + title: "Link reference to the plan (or plan group) configuration descriptor" + type: "application/json" + templated: true + method: GET + status: + allOf: + - $ref: '#/components/schemas/LinkObject' # Any other link will conform to LinkObject schema + - type: object + properties: + href: + type: string + default: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/{jobId}/status" + title: + type: string + enum: + - "Link to GET the job status" + method: + type: string + enum: + - "GET" # This means the method MUST be "GET" + description: A URI reference to the status information + example: + href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/status" + title: "Link to GET the job status" + type: "application/json" + templated: true + method: GET + cancel: + allOf: + - $ref: '#/components/schemas/LinkObject' # Any other link will conform to LinkObject schema + - type: object + properties: + href: + type: string + default: "{apiRoot}/ProvMnS/v1/plan-{job-type}-jobs/{jobId}/status/job-state" + title: + type: string + enum: + - "Link to cancel the job" + method: + type: string + enum: + - "PUT" # This means the method MUST be "PUT" + description: A URI reference to cancel the job + example: + href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/cancel" + title: "Link to cancel the job" + type: "application/json" + templated: true + method: POST + + JobState: + type: string + enum: [CREATED, RUNNING, COMPLETED, FAILED, CANCELLING, CANCELLED] + example: "COMPLETED" + + JobDetails: + properties: + jobInformation: + type: string + additionalProperties: true + + ActivationJobStatus: + properties: + jobState: + allOf: + - $ref: '#/components/schemas/JobState' + example: "COMPLETED" + activationState: + allOf: + - $ref: '#/components/schemas/ActivationState' + example: "ACTIVATED" + startedAt: + type: string + format: date-time + example: "2024-12-02T13:16:54.088Z" + stoppedAt: + type: string + format: date-time + example: "2024-12-02T13:16:58.088Z" + + ValidationJobStatus: + properties: + jobState: + allOf: + - $ref: '#/components/schemas/JobState' + example: "COMPLETED" + validationState: + allOf: + - $ref: '#/components/schemas/ValidationState' + example: "VALID" + startedAt: + type: string + format: date-time + example: "2024-12-02T13:16:54.088Z" + stoppedAt: + type: string + format: date-time + example: "2024-12-02T13:16:58.088Z" + + ExecutionDetails: + type: object + description: Details of the execution of the operations that are contained in the planned configuration or planned configuration group referenced in the job. + properties: + results: + type: array + items: + type: object + properties: + planDescriptorId: + type: string + example: "planconfig-descriptor-001" + changes: ##EDITOR format is TBD + type: array + items: + $ref: '#/components/schemas/ChangeStatus' + summary: + $ref: '#/components/schemas/SummaryStatus' + example: + { + "results": { ...}, ##EDITOR format is TBD + "summary" : { + "unprocessed": 0, + "succeeded": 2, + "failed": 3 + } + } + + ValidationState: + type: string + enum: [NOT_VALIDATED, VALIDATING, VALIDATED, VALIDATION_FAILED, PARTIALLY_VALIDATED] + example: "VALIDATED" + + ActivationState: + type: string + enum: [NOT_STARTED, VALIDATING, ACTIVATED, ACTIVATION_FAILED, PARTIALLY_ACTIVATED, ACTIVATION_FAILED_ROLLED_BACK, ACTIVATION_FAILED_ROLLBACK_FAILED] + example: "ACTIVATED" + + ChangeStatus: + type: object + properties: + changeId: + type: string + example: "changeId-001" + state: + type: string + enum: [SUCCEEDED, FAILED, UNPROCESSED] + default: UNPROCESSED + example: "SUCCEEDED" + target: + type: string + example: "/SubNetwork=1/MeContext=2/ManagedElement=3" + errors: + type: array + items: + $ref: '#/components/schemas/ErrorDetail' + conflicts: + type: array + items: + $ref: '#/components/schemas/Conflict' + required: + - changeId ##EDITOR yes or no + - target + - state + example: + changeId: changeId-002-update-config + target: /SubNetwork=1/MeContext=2/ManagedElement=3 + state: FAILED + errors: + - type: VALIDATION_ERROR + title: Validation Error + status: 400 + reason: NEW_ATTRIBUTE_VALUE_INVALID + detail: The provided value 'some-value' for 'someAttr' is not allowed. Valid values are 'some-value-x', 'some-value-y'. + path: /SubNetwork=1/MeContext=2/ManagedElement=3/attributes/someAttr + errorInfo: + attributeName: someAttr + invalidValue: some-value + + SummaryStatus: + type: object + properties: + unprocessed: + type: integer + example: 1 + succeeded: + type: integer + example: 3 + failed: + type: integer + example: 3 + rollbackSucceeded: + type: integer + example: 0 + rollbackFailed: + type: integer + example: 0 + + Conflict: + type: object + allOf: + - $ref: '#/components/schemas/Change' + properties: + planDescriptorId: ##EDITOR if missing the conlict is in same plan config descriptor as the 'source' change -> comment to be added in description + type: string + change: + $ref: '#/components/schemas/Change' + conflictingChanges: + type: array + items: + $ref: '#/components/schemas/ConflictingChange' + example: + { + "planDescriptorId" : "plan-descriptor-001", + "changeId": "optimization-change-A", + "operation": "merge", + "target": "/_3gpp-common-subnetwork:SubNetwork=HQ/NRCellDU=cell-22", + "value" : { + "attributes" : { + "some-attribute-name-a" : "some-attribute-value-b" + } + }, + "conflictingChanges": [ + { + "planDescriptorId": "plan-emergency-fix", + "change": { + "changeId": "fix-power-issue-X", + "operation": "merge", + "target": "/_3gpp-common-subnetwork:SubNetwork=HQ/NRCellDU=cell-22", + "value" : { + "attributes" : { + "some-attribute-name-x" : "some-attribute-value-y" + } + }, + }, + "conflictType": "VALUE_OVERWRITE", + "conflictMessage": "This change attempts to set 'transmitPower' to 45, but 'fix-power-issue-X' from 'plan-emergency-fix' sets it to 40. Only one value can persist.", + "severity": "HIGH" + } + ] + } + + ConflictingChange: + type: object + properties: + planDescriptorId: ##EDITOR if missing the conlict is in same plan config descriptor as the 'source' change -> to add to description + type: string + change: + $ref: '#/components/schemas/Change' + conflictType: + type: string + conflictMessage: + type: string + severity: + type: string + enum: + - LOW + - MEDIUM + - HIGH + - UNKNOWN + default: UNKNOWN + required: + - change + - conflictType + - severity + + ErrorDetail: + type: object + properties: + title: + type: string + description: A short, human-readable summary of the problem type + example: "Data already exists; cannot be created" + status: + type: integer + format: int32 + enum: + - 400 + - 403 + - 404 + - 405 + - 406 + - 408 + - 410 + - 411 + - 413 + - 414 + - 415 + - 422 + - 426 + - 429 + - 451 + type: + type: string + description: The type of the error + enum: + - VALIDATION_ERROR + - REQUEST_OBJECT_TREE_MISMATCH + - IE_NOT_FOUND + - MODIFICATION_NOT_ALLOWED + - RETRIEVAL_NOT_ALLOWED + - SERVER_LIMITATION + - SERVICE_DISABLED + - APPLICATION_LAYER_ERROR + reason: + type: string + enum: + - RESPONSE_TOO_LARGE + - NO_DATA_ACCESS + - QUERY_MALFORMED + - QUERY_PARAM_NAMES_INVALID + - QUERY_PARAM_VALUES_INVALID + - QUERY_PARAMS_MISSING + - QUERY_PARAMS_INCONSISTENT + - ATTRIBUTES_NOT_READABLE + - QUERY_PARAMS_TOO_COMPLEX + - NEW_ATTRIBUTE_VALUE_INVALID + - NEW_ATTRIBUTE_NAME_INVALID + - ATTRIBUTE_NOT_WRITABLE + - ATTRIBUTE_INVARIANT + - ATTRIBUTE_NOT_FOUND + - OBJECT_CREATION_NOT_ALLOWED + - OBJECT_DELETION_NOT_ALLOWED + - NEW_OBJECT_CLASS_NAME_INVALID + - NEW_OBJECT_REPRESENTATION_INVALID + - NEW_OBJECT_CONTAINMENT_INVALID + - NEW_OBJECTS_ID_EXISTS + - NEW_OBJECTS_PARENT_NOT_FOUND + - NEW_OBJECT_ATTRIBUTE_VALUE_MISSING + - OBJECTS_CARDINALITY_INVALID + - OBJECT_NOT_A_LEAF + - OBJECT_NOT_FOUND + - OP_UNKNOWN + - RESOURCE_LOCKED + - SERVICE_LOCKED + - UNKNOWN + example: "UNKNOWN" + detail: + type: string + description: A human-readable explanation specific to this occurrence of the problem. + example: "NRCellDU=1234 already exists in the network" + path: + type: string + example: "/_3gpp-common-subnetwork:SubNetwork=Irl/_3gpp-common-mecontext:MeContext=Dublin-1" + errorInfo : + type: object + description: additional error info (e.g. stackdump) + additionalProperties: true + required: + - type + - title + - status + + # Use oneOf and discriminator to define the mapping + oneOf: + # Define a specific schema for each 'type' enum value + - $ref: '#/components/schemas/ValidationErrorDetails' + - $ref: '#/components/schemas/RequestObjectTreeMismatchDetails' + - $ref: '#/components/schemas/IENotFoundDetails' + - $ref: '#/components/schemas/ModificationNotAllowedDetails' + - $ref: '#/components/schemas/RetrievalNotAllowedDetails' + - $ref: '#/components/schemas/ServerLimitationDetails' + - $ref: '#/components/schemas/ServiceDisabledDetails' + - $ref: '#/components/schemas/ApplicationLayerErrorDetails' + # Add other specific error types here + + discriminator: + propertyName: type # This is the property that determines which oneOf schema applies + mapping: + VALIDATION_ERROR: '#/components/schemas/ValidationErrorDetails' + REQUEST_OBJECT_TREE_MISMATCH: '#/components/schemas/RequestObjectTreeMismatchDetails' + IE_NOT_FOUND: '#/components/schemas/IENotFoundDetails' + MODIFICATION_NOT_ALLOWED: '#/components/schemas/ModificationNotAllowedDetails' + RETRIEVAL_NOT_ALLOWED: '#/components/schemas/RetrievalNotAllowedDetails' + SERVER_LIMITATION: '#/components/schemas/ServerLimitationDetails' + SERVICE_DISABLED: '#/components/schemas/ServiceDisabledDetails' + APPLICATION_LAYER_ERROR: '#/components/schemas/ApplicationLayerErrorDetails' + + # Individual schemas for each specific error type + ValidationErrorDetails: + type: object + properties: + type: + type: string + enum: [VALIDATION_ERROR] + title: + type: string + enum: ["Validation Error"] + status: + type: integer + enum: [400] + + RequestObjectTreeMismatchDetails: + type: object + properties: + type: + type: string + enum: [REQUEST_OBJECT_TREE_MISMATCH] + title: + type: string + enum: ["Request Object Tree Mismatch"] + status: + type: integer + enum: [422] + + IENotFoundDetails: + type: object + properties: + type: + type: string + enum: [IE_NOT_FOUND] + title: + type: string + enum: ["Information Element Not Found"] + status: + type: integer + enum: [400] + + ModificationNotAllowedDetails: + type: object + properties: + type: + type: string + enum: [MODIFICATION_NOT_ALLOWED] + title: + type: string + enum: ["Modification Not Allowed"] + status: + type: integer + enum: [403] + + RetrievalNotAllowedDetails: + type: object + properties: + type: + type: string + enum: [RETRIEVAL_NOT_ALLOWED] + title: + type: string + enum: ["Retrieval Not Allowed"] + status: + type: integer + enum: [403] + + ServerLimitationDetails: + type: object + properties: + type: + type: string + enum: [SERVER_LIMITATION] + title: + type: string + enum: ["Server Limitation"] + status: + type: integer + enum: [500] + + ServiceDisabledDetails: + type: object + properties: + type: + type: string + enum: [SERVICE_DISABLED] + title: + type: string + enum: ["Service Disabled"] + status: + type: integer + enum: [503] + + ApplicationLayerErrorDetails: + type: object + properties: + type: + type: string + enum: [APPLICATION_LAYER_ERROR] + title: + type: string + enum: ["Application Layer Error"] + status: + type: integer + enum: [500] + + LinkObject: + type: object + description: Defines the structure of a single hypermedia link. + properties: + href: + type: string + format: uri-reference # Use uri-reference for relative paths (allows for absolute or relative uri) + description: The target URI of the link. + templated: + type: boolean + description: Indicates if the href is a URI Template (RFC 6570). + default: true + type: + type: string + description: The content type expected when following this link (MIME type). + title: + type: string + description: A human-readable title that describes the link's purpose. + method: + type: string + enum: [GET, POST, PUT, DELETE, PATCH] + description: The HTTP method to use for this action link. + required: + - href + + SelfLink: + type: object + description: Hypermedia links for this resource, including fixed and dynamic relations. + properties: + self: + allOf: + - $ref: '#/components/schemas/LinkObject' + description: A link to the resource itself. + # additionalProperties to allow any other dynamic links + additionalProperties: + $ref: '#/components/schemas/LinkObject' # Any other link will conform to LinkObject schema + required: + - self + example: # demonstrates a typical _links object in an actual response + self: + href: "{root-url}/ProvMnS/v1/plan-descriptors/pd-001" + templated: true + type: "application/json" + title: "The newly created PlanConfigurationDescriptor" + help: + href: "{root-url}/help-service/v1/topics/plan-descriptors" + templated: true + type: "application/json" + title: "online help for the plan descriptor" + + examples: + # Reusable Configuration Change Examples + AddNrCellChange: + summary: Add a new NR Cell (create operation) + value: + operation: create + changeId: add-nr-cell-001 + description: Add new NR cell for initial deployment in Dublin-1 area. + target: /_3gpp-common-subnetwork:SubNetwork=Irl/_3gpp-common-mecontext:MeContext=Dublin-1/_3gpp_nrm_managedelement:ManagedElement=1/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1/_3gpp_nrm_nrcelldu:NRCellDU=4 + value: + ... + UpdateNrCellChange: + summary: Update an existing NR Cell (merge operation) + value: + operation: merge + changeId: update-nr-cell-002 + description: Update administrativeState for existing NRCellDU=1. + target: /_3gpp-common-subnetwork:SubNetwork=North/_3gpp-common-mecontext:MeContext=Dublin-1/_3gpp_nrm_managedelement:ManagedElement=ENB-A/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1/_3gpp_nrm_nrcelldu:NRCellDU=1 + value: + ... + RemoveNrCellChange: + summary: Remove an NR Cell (remove operation) + value: + operation: remove + changeId: remove-nr-cell-003 + description: Decommission NRCellDU=3. + target: /_3gpp-common-subnetwork:SubNetwork=Irl/_3gpp-common-mecontext:MeContext=Dublin-1/_3gpp_nrm_managedelement:ManagedElement=1/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1/_3gpp_nrm_nrcelldu:NRCellDU=3 \ No newline at end of file -- GitLab From d7f4a316ee1f9ec7c7f6187e3a67292c03490f99 Mon Sep 17 00:00:00 2001 From: lengyelb Date: Fri, 15 Aug 2025 17:01:05 +0200 Subject: [PATCH 033/103] Edit TS28572_PlanManagement.yaml --- OpenAPI/TS28572_PlanManagement.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenAPI/TS28572_PlanManagement.yaml b/OpenAPI/TS28572_PlanManagement.yaml index a9b049958..174587a62 100644 --- a/OpenAPI/TS28572_PlanManagement.yaml +++ b/OpenAPI/TS28572_PlanManagement.yaml @@ -1260,7 +1260,7 @@ components: location: Dublin conditionExpression: type: string - description: The condition expression ##BALAZS JEX on NRM - OPEN + description: The condition expression ##EDITOR JEX on NRM - OPEN activationJobs: type: array items: @@ -1488,7 +1488,7 @@ components: description: Inline plan group descriptor to activate allOf: - $ref: '#/components/schemas/PlanConfigurationGroupDescriptor' - ##BALAZS Alt5. fallbackdescriptorId missing + ##EDITOR Alt5. fallbackdescriptorId missing example: { id : "myjob-111", -- GitLab From ef9e0f8cd3b0f68dfcf283d6efaeeca19d0a9ae7 Mon Sep 17 00:00:00 2001 From: lengyelb Date: Tue, 26 Aug 2025 15:22:43 +0200 Subject: [PATCH 034/103] Edit TS28572_PlanManagement.yaml --- OpenAPI/TS28572_PlanManagement.yaml | 1192 +++++++++++++++------------ 1 file changed, 662 insertions(+), 530 deletions(-) diff --git a/OpenAPI/TS28572_PlanManagement.yaml b/OpenAPI/TS28572_PlanManagement.yaml index 174587a62..b1ec7c8cf 100644 --- a/OpenAPI/TS28572_PlanManagement.yaml +++ b/OpenAPI/TS28572_PlanManagement.yaml @@ -1,8 +1,20 @@ -openapi: 3.0.0 ##EDITOR get, delete Fallback; FallbackConfigurationDescriptor missing +openapi: 3.0.0 info: title: 3GPP Plan Provisioning Management API - version: 1.0.0 + version: 19.0.0 description: API for managing network configuration plans and related jobs +externalDocs: + description: 3GPP TS 28.572; Generic management services + url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.572/ +servers: + - url: '{MnSRoot}/ProvPlanMnS/{MnSVersion}' + variables: + MnSRoot: + description: See clause 4.4.2 of TS 32.158 + default: http://example.com/PlanManagement + MnSVersion: + description: Version number of the OpenAPI definition + default: v1 paths: /plan-descriptors: @@ -28,7 +40,7 @@ paths: "location": "Dublin" }, "currentConfigAddress": "http://example.org/3gpp/ProvMnS/v1", - "planConfigContentType" : "application/vnd.3gpp.yang-patch+json", + "configurationContentType" : "application/vnd.3gpp.yang-patch+json", "planConfig": { ... } @@ -149,12 +161,6 @@ paths: } } responses: - '200': - description: Plan descriptor replaced successfully - content: - application/json: - schema: - $ref: '#/components/schemas/PlanConfigurationDescriptorResponse' ##EDITOR why is a return data needed? Is it not trivial ? TODO remove 200 '204': description: Plan descriptor replaced successfully. No content is returned '400': @@ -190,7 +196,7 @@ paths: content: application/problem+json: schema: - $ref: '#/components/schemas/ErrorDetail' ##EDITOR The example in swagger is very strange. The example cannot nbe the same for put and delete. TODO + $ref: '#/components/schemas/ErrorDetail' ##EDITOR The example in swagger is very strange. The example cannot be the same for put and delete. TODO LATER '409': description: Conflict - The plan descriptor cannot be deleted due to its current state or dependencies (For example, it is referenced in a plan group descriptor). content: @@ -319,7 +325,7 @@ paths: "name": "Rollout-5G-Dublin-East", "version" : "1.0.0", "description": "This is the plan for the new 5G rollout in Dublin east.", - "applyMode" : "BEST_EFFORT", + "activationMode" : "BEST_EFFORT", "isOrdered" : true, "isFailOnMemberConflicts" : true, "members": [{"type" : "PLAN", "identifier" : "plan-descriptor-001"}, {"type" : "PLAN_GROUP", "identifier" : "plan-group-descriptor-001"}] @@ -331,7 +337,7 @@ paths: application/json: schema: $ref: '#/components/schemas/PlanConfigurationGroupDescriptorResponse' - '400': ##EDITOR should we use 422 ? + '400': description: Invalid request parameters or malformed input. content: application/problem+json: @@ -365,7 +371,7 @@ paths: application/problem+json: schema: $ref: '#/components/schemas/ErrorDetail' - '409': ##EDITOR can you delete a plan or group that is being activated IMHO not. Add here. Can a plan/group be deleted if it is part of a validationJob? IMHJO yes + '409': description: The plan group descriptor cannot be deleted due to its current state or dependencies (For example, it is referenced in a plan group descriptor). content: application/problem+json: @@ -378,6 +384,90 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' + /fallback-descriptors: + get: + tags: + - Fallback Descriptor Management + summary: Get fallback configuration descriptors + description: Retrieve a list of existing fallback descriptors. + operationId: getFallbackDescriptors + responses: + '200': + description: List of the fallback configuration descriptors retrieved successfully. + content: + application/json: + schema: + type: array + items: + $ref: '#/components/schemas/DescriptorListEntry' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /fallback-descriptor/{id}: + parameters: + - in: path + name: id + schema: + type: string + description: Unique identifier of the fallback descriptor. + example: "Fallback-Dublin-South-plan-001" + required: true + get: + tags: + - Fallback Descriptor Management + summary: Get a specific fallback descriptor by ID + description: Retrieve the details of a single fallback descriptor using its unique identifier. + operationId: getFallbackDescriptorById + responses: + '200': + description: Fallback Plan descriptor retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/FallbackConfigurationDescriptorResponse' + '404': + description: Fallback descriptor does not exist + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + delete: + tags: + - Fallback Descriptor Management + summary: Delete a Fallback descriptor by ID + description: Deletes a specific fallback plan descriptor using its unique identifier + operationId: deleteFallbackDescriptorById + responses: + '204': + description: Fallback descriptor deleted successfully. + '404': + description: Fallback descriptor not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' ##EDITOR The example in swagger is very strange. The example cannot be the same for put and delete. TODO LATER + '409': + description: Conflict - The fallback descriptor cannot be deleted due to its current state. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' /trigger-descriptors: post: tags: @@ -483,12 +573,6 @@ paths: schema: $ref: '#/components/schemas/TriggerDescriptor' responses: - '200': ##EDITOR why do we need 200? Isnt 204 enough ? - description: Trigger descriptor replaced successfully - content: - application/json: - schema: - $ref: '#/components/schemas/TriggerDescriptorResponse' '204': description: Trigger descriptor created successfully '400': @@ -532,19 +616,19 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /plan-activation-jobs: ##EDITOR remove plan- from activation-job ActivationJob generally + /activation-jobs: post: tags: - Activation Management - summary: Create a new plan activation job ##EDITOR or group or fallbackdescr - description: Creates and starts a new plan activation job based on an existing plan descriptor. The new job's ID will be generated by the server and returned in the Location header. - operationId: createPlanActivationJob + summary: Create a new plan activation job + description: Creates and starts a new plan activation job based on an existing plan descriptor (or plan group descriptor or fallback descriptor). The new job's ID will be generated by the server and returned in the Location header. + operationId: createActivationJob requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PlanActivationJobRequest' + $ref: '#/components/schemas/ActivationJobRequest' responses: '201': description: Plan activation job created successfully. @@ -555,11 +639,11 @@ paths: schema: type: string format: uri-reference - example: "/plan-activation-jobs/myjob-111" + example: "/activation-jobs/myjob-111" content: application/json: schema: - $ref: '#/components/schemas/PlanActivationJobResponse' + $ref: '#/components/schemas/ActivationJob' '400': description: Invalid request payload or parameters (e.g., malformed JSON, missing required fields). content: @@ -577,8 +661,8 @@ paths: tags: - Activation Management summary: Get plan activation jobs - description: Retrieve a list of plan activation jobs. ##EDITOR describe that the order of items is vendor specific, but it shall be fixed. - operationId: getPlanActivationJobs + description: Retrieve a list of plan activation jobs. + operationId: getActivationJobs parameters: - in: query name: job-state @@ -586,21 +670,6 @@ paths: $ref: '#/components/schemas/JobState' description: Filter jobs by their current state. example: "RUNNING" - - in: query - name: limit - schema: - type: integer ##EDIOR this paging is slightly broken. Prposal to remove. - format: int32 - minimum: 1 - description: Maximum number of jobs to return. - - in: query - name: offset - schema: - type: integer - format: int32 - minimum: 0 - default: 0 - description: Number of jobs to skip before starting to collect the result set. responses: '200': description: List of plan activation jobs retrieved successfully. @@ -623,7 +692,7 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /plan-activation-jobs/{id}: + /activation-jobs/{id}: parameters: - $ref: '#/components/parameters/jobId' get: @@ -631,14 +700,14 @@ paths: - Activation Management summary: Get plan activation job details by ID description: Retrieve detailed information about a specific plan activation job using its unique identifier. - operationId: getPlanActivationJobById + operationId: getActivationJobById responses: '200': description: Job details retrieved successfully. content: application/json: schema: - $ref: '#/components/schemas/PlanActivationJobResponse' + $ref: '#/components/schemas/ActivationJob' '404': description: Job not found. content: @@ -657,7 +726,7 @@ paths: - Activation Management summary: Delete a plan activation job by ID description: Deletes a specific plan activation job, typically if it's not in a terminal state (e.g., running, completed, failed). - operationId: deletePlanActivationJobById + operationId: deleteActivationJobById responses: '204': description: Job deleted successfully. No content is returned. @@ -680,15 +749,15 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /plan-activation-jobs/{id}/status: + /activation-jobs/{id}/status: + parameters: + - $ref: '#/components/parameters/jobId' get: tags: - Activation Management summary: Get job status description: Retrieve the current status of a specific plan activation job using its unique identifier. operationId: getJobStatus - parameters: - - $ref: '#/components/parameters/jobId' responses: '200': description: Job status retrieved successfully. @@ -708,38 +777,11 @@ paths: application/problem+json: schema: $ref: '#/components/schemas/ErrorDetail' - - /plan-activation-jobs/{id}/activation-details: - get: - tags: - - Activation Management - summary: Get activation details - description: Retrieve detailed information about the activation results of a job - operationId: getActivationDetails - parameters: - - $ref: '#/components/parameters/jobId' - responses: - '200': - description: Activation details retrieved successfully - content: - application/json: - schema: - $ref: '#/components/schemas/ExecutionDetails' - '404': - description: Job not found - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ErrorDetail' - - /plan-activation-jobs/{id}/status/job-state: - parameters: - - $ref: '#/components/parameters/jobId' - put: + patch: tags: - Activation Management - summary: Cancel the activation job by modifying the jobState property ##EDITOR harmonize with stage2 where there is a separate cancelRequest or is-cancel-requested boolean. - description: Cancel the activation job by modifying the jobState property + summary: Cancel the activation job + description: Cancel the activation job operationId: cancelActivationJobById requestBody: required: true @@ -747,21 +789,11 @@ paths: application/json: schema: $ref: '#/components/schemas/CancelRequest' - example: - { - "jobState": "CANCELLING" - } responses: '200': description: Job cancel request was successfully completed '202': description: Job cancel request was accepted and cancellation is ongoing - '400': - description: Bad request . - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ErrorDetail' '404': description: Job not found. content: @@ -769,7 +801,7 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' '422': - description: Semantic error - - perhaps jobState not set to correct value. + description: Semantic error - e.g. job was not in RUNNING state content: application/problem+json: schema: @@ -781,19 +813,42 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /plan-validation-jobs: ##EDITOR remove plan- from the name, see stage2 + /activation-jobs/{id}/activation-details: + get: + tags: + - Activation Management + summary: Get activation details + description: Retrieve detailed information about the activation results of a job + operationId: getActivationDetails + parameters: + - $ref: '#/components/parameters/jobId' + responses: + '200': + description: Activation details retrieved successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ExecutionDetails' + '404': + description: Job not found + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /validation-jobs: post: tags: - Validation Management summary: Create a new plan validation job description: Creates and starts a new plan validation job based on an existing plan descriptor. The new job's ID will be generated by the server and returned in the Location header. - operationId: createPlanValidationJob + operationId: createValidationJob requestBody: required: true content: application/json: schema: - $ref: '#/components/schemas/PlanValidationJobRequest' + $ref: '#/components/schemas/ValidationJobRequest' responses: '201': description: Plan validation job created successfully. @@ -804,11 +859,11 @@ paths: schema: type: string format: uri-reference - example: "/plan-validation-jobs/myjob-111" + example: "/validation-jobs/myjob-111" content: application/json: schema: - $ref: '#/components/schemas/PlanValidationJobResponse' + $ref: '#/components/schemas/ValidationJob' '400': description: Invalid request payload or parameters (e.g., malformed JSON, missing required fields). content: @@ -827,7 +882,7 @@ paths: - Validation Management summary: Get plan validation jobs description: Retrieve a list of plan validation jobs. - operationId: getPlanValidationJobs + operationId: getValidationJobs parameters: - in: query name: job-state @@ -835,21 +890,6 @@ paths: $ref: '#/components/schemas/JobState' description: Filter jobs by their current status. example: "RUNNING" - - in: query - name: limit - schema: - type: integer ##EDITOR paging is slightly broken. Same as for activtion-jobs - format: int32 - minimum: 1 - description: Maximum number of jobs to return. - - in: query - name: offset - schema: - type: integer - format: int32 - minimum: 0 - default: 0 - description: Number of jobs to skip before starting to collect the result set. responses: '200': description: List of plan validation jobs retrieved successfully. @@ -866,7 +906,7 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /plan-validation-jobs/{id}: + /validation-jobs/{id}: parameters: - $ref: '#/components/parameters/jobId' get: @@ -874,14 +914,14 @@ paths: - Validation Management summary: Get plan validation job details by ID description: Retrieve detailed information about a specific plan validation job using its unique identifier. - operationId: getPlanValidationJobById + operationId: getValidationJobById responses: '200': description: Job details retrieved successfully. content: application/json: schema: - $ref: '#/components/schemas/PlanValidationJobResponse' + $ref: '#/components/schemas/ValidationJob' '404': description: Job not found. content: @@ -900,7 +940,7 @@ paths: - Validation Management summary: Delete a plan validation job by ID description: Deletes a specific plan validation job, typically if it's not in a terminal state (e.g., running, completed, failed). - operationId: deletePlanValidationJobById + operationId: deleteValidationJobById responses: '204': description: Job deleted successfully. No content is returned. @@ -910,12 +950,6 @@ paths: application/problem+json: schema: $ref: '#/components/schemas/ErrorDetail' - '409': - description: Cannot delete job in its current state (e.g., already running). ##EDITOR I think even a running valaidationjob can be deleted. Do we need this? - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ErrorDetail' '500': description: Internal server error. content: @@ -923,7 +957,7 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /plan-validation-jobs/{id}/status: + /validation-jobs/{id}/status: get: tags: - Validation Management @@ -951,8 +985,43 @@ paths: application/problem+json: schema: $ref: '#/components/schemas/ErrorDetail' + patch: + tags: + - Activation Management + summary: Cancel the validation job + description: Cancel the validation job + operationId: cancelActivationJobById + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/CancelRequest' + responses: + '200': + description: Job cancel request was successfully completed + '202': + description: Job cancel request was accepted and cancellation is ongoing + '404': + description: Job not found. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '422': + description: Semantic error - e.g. job was not in RUNNING state + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + '500': + description: Internal server error. + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' - /plan-validation-jobs/{id}/validation-details: + /validation-jobs/{id}/validation-details: get: tags: - Validation Management @@ -961,12 +1030,13 @@ paths: operationId: getValidationDetails parameters: - $ref: '#/components/parameters/jobId' - - name: expand + - name: details in: query - description: Level of detail to return + description: Selects the level of details to return. schema: type: string - enum: [all] + enum: [summary, all] + default: all responses: '200': description: Validation details retrieved successfully @@ -981,38 +1051,28 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /plan-validation-jobs/{id}/status/job-state: + /validation-jobs/{id}/cancel-request: parameters: - $ref: '#/components/parameters/jobId' put: tags: - Validation Management - summary: Cancel the validation job by modifying the jobState property - description: Cancel the validation job by modifying the jobState property ##EDITOR harmonize cancelling with stage2 + summary: Cancel the validation job + description: Cancel the validation job operationId: cancelValidationJobById - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CancelRequest' - example: - { - "jobState": "CANCELLING" - } responses: '200': description: Job cancel request was successfully completed '202': description: Job cancel request was accepted and cancellation is ongoing - '400': - description: Bad request - perhaps jobState not set to correct value. + '404': + description: Job not found. content: application/problem+json: schema: $ref: '#/components/schemas/ErrorDetail' - '404': - description: Job not found. + '422': + description: Semantic error - e.g. job was not in RUNNING state content: application/problem+json: schema: @@ -1048,7 +1108,7 @@ components: PlanConfigurationDescriptor: type: object required: - - planConfigContentType + - configurationContentType - planConfig properties: id: @@ -1079,9 +1139,9 @@ components: format: uri-reference description: A reference address to the current configuration associated with the configuration in this descriptor example: "http://example.org/3gpp/ProvMnS/v1" - applyMode: + activationMode: type: string - enum: [ATOMIC, BEST_EFFORT, STOP_ON_ERROR] ##EDITOR - SKIP_ON_ERROR open in stage 2 + enum: [ATOMIC, BEST_EFFORT, STOP_ON_ERROR] default : "BEST_EFFORT" description: Specifies the execution behavior when the plan is activated example: "BEST_EFFORT" @@ -1101,7 +1161,7 @@ components: format: date-time description: last time the plan was validated example: "2025-03-06T16:50:29-08:00" - planConfigContentType: + configurationContentType: type: string enum: - application/vnd.3gpp.json-patch+json @@ -1110,15 +1170,22 @@ components: example: "application/vnd.3gpp.yang-patch+json" planConfig: description: "The plan configuration changes" - ##EDITOR's format is TBD + oneOf: + - type: array + items: + $ref: '#/components/schemas/Change' + - type: object + additionalProperties: + $ref: '#/components/schemas/Change' + description: A map of changes. The key of the map shall have the same value as the changeId. PlanConfigurationDescriptorResponse: type: object required: - id - - applyMode + - activationMode - lastModifiedAt - validationState - - planConfigContentType + - configurationContentType - planConfig allOf: - $ref: '#/components/schemas/PlanConfigurationDescriptor' @@ -1167,9 +1234,9 @@ components: type: boolean description: Specifies if the activation shall fail on detection of conflicts between planned configuration group members, or if the operations shall be processed as if there were no conflicts default: "false" - applyMode: + activationMode: type: string - enum: [ATOMIC, BEST_EFFORT, STOP_ON_ERROR] ##EDITOR - "SKIP_ON_ERROR" under discussion in stage 2 + enum: [ATOMIC, BEST_EFFORT, STOP_ON_ERROR] default : "BEST_EFFORT" description: Specifies the execution behavior when the plan configuration group is activated example: "BEST_EFFORT" @@ -1205,11 +1272,78 @@ components: type: string example: [{"type" : "PLAN", "identifier" : "plan-descriptor-001"}, {"type" : "PLAN_GROUP", "identifier" : "plan-group-descriptor-001"}] + FallbackConfigurationDescriptor: + type: object + required: + - configurationContentType + - planConfig + properties: + id: + type: string + description: Unique id of the fallback configuration descriptor + example: "fallback-001" + name: + type: string + description: Descriptive name of the fallback configuration descriptor + example: "Fallback-Rollout-5G-Dublin-East" + version: + type: string + description: The version of the fallback configuration. Its format is implementation specific. + example: 1.0.0 + description: + type: string + description: Used to describe the purpose of the fallback configuration + example: "Fallback for configuration plan Rollout-5G-Dublin-East." + customProperties: + type: object + description: A dynamic set of custom properties provided by client + additionalProperties: true + example: + technology-type: NR + location: Dublin + activationJob: + type: string + description: The identifier of the related activation job. + configurationContentType: + type: string + enum: + - application/vnd.3gpp.json-patch+json + - application/vnd.3gpp.yang-patch+json + description: The format/type of the configuration in planConfig + example: "application/vnd.3gpp.yang-patch+json" + planConfig: + description: "The fallback configuration." + oneOf: + - type: string + - type: object + additionalProperties: + $ref: '#/components/schemas/Change' + description: A map of changes. The key of the map shall have the same value as the changeId. + FallbackConfigurationDescriptorResponse: + type: object + required: + - id + - configurationContentType + - planConfig + allOf: + - $ref: '#/components/schemas/FallbackConfigurationDescriptor' + properties: + _links: + type: object + description: Hypermedia links for fallback descriptor + allOf: + - $ref: '#/components/schemas/SelfLink' + example: + self: + href: "{root-url}/ProvMnS/v1/fallback-descriptors/pd-001" + templated: true + type: "application/json" + title: "The newly created FallbackConfigurationDescriptor" PlanConfigurationGroupDescriptorResponse: type: object required: - id - - applyMode + - activationMode - validationState - isOrdered - isFailOnMemberConflicts @@ -1260,7 +1394,7 @@ components: location: Dublin conditionExpression: type: string - description: The condition expression ##EDITOR JEX on NRM - OPEN + description: The condition expression ##BALAZS JEX on NRM - OPEN activationJobs: type: array items: @@ -1374,16 +1508,10 @@ components: - id - name - jobState - - PlanActivationJob: - type: object - allOf: - - $ref: '#/components/schemas/JobState' + + ActivationJobRequest: + type: object properties: - id: - type: string - description: id of the activation job - example: "job-id-3985199134" name: type: string description: Name of the activation job @@ -1392,10 +1520,11 @@ components: type: string description: Human-readable description of the job example: "Optimize the Dublin area network" - createdFallbackConfigDescrId: ##EDITOR is the name OK ? - type: string - description: Id of the created Fallback Plan Configuration Descriptor - example: "fallback-plan-descriptor-001" + mnsConsumerId: + type: array + description: The user that created and/or started the job. It may indicated a human user and/or one or more applications initiating the job. E.g. ["userid:janedoe", "appid:12314"] + items: + type: string isFallbackEnabled: type: boolean description: Whether fallback should be enabled for this job @@ -1407,55 +1536,20 @@ components: default: "SHORTEST_TIME" isImmediateActivation: type: boolean - description: specifies if the activation job shall start immediately or, alternatively, by conditional activation. + description: Specifies if the activation job shall start immediately or, alternatively, by conditional activation. default: true - jobDetails: - allOf: - - $ref: '#/components/schemas/JobDetails' - jobState: - allOf: - - $ref: '#/components/schemas/JobState' - activationState: - allOf: - - $ref: '#/components/schemas/ActivationState' - activationDetails: - allOf: - - $ref: '#/components/schemas/LinkObject' - - type: object - properties: - href: - type: string - title: A URI reference to the activation details - example: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/activation-details" ##EDITOR: Why do we force the user to ask for the details in a separate request? - title: ##EDITOR at least the summary should be prsent here. - type: string - enum: - - "Link to the activation details" - method: - type: string - enum: - - "GET" - type: - type: string - description: The content type expected when following this link (MIME type). - default: "application/json" - sourceIdentity: - type: array - description: The user that created and/or started the job. It may indicated a human user and/or one or more applications initiating the job. E.g. ["userid:janedoe", "appid:12314"] - items: - type: string oneOf: - - type: object + - type: object # Alt.1 planConfigDescrId required: - - planConfigDescrId # Alt.1 planConfigDescrId + - planConfigDescrId properties: planConfigDescrId: type: string description: Unique id reference to the plan descriptor to activate example: "planxyz" - - type: object + - type: object # Alt.2 planConfigDescr embedded required: - - planConfigDescr # Alt.2 planConfigDescr embedded + - planConfigDescr properties: planConfigDescr: type: object @@ -1464,14 +1558,14 @@ components: - $ref: '#/components/schemas/PlanConfigurationDescriptor' example: name: "myjob-111" - applyMode: "BEST_EFFORT" + activationMode: "BEST_EFFORT" customProperties: { techology-type: "NR", indoor: false } planConfig: ... - - type: object + - type: object # Alt.3 planConfigGroupDescrId required: - planConfigGroupDescrId # Alt.3 planConfigGroupDescrId properties: @@ -1479,168 +1573,179 @@ components: type: string description: Unique id reference to the plan group descriptor to activate example: "plan-group-xyz" - - type: object + - type: object # Alt.4 planConfigGroupDescr embedded required: - - planConfigGroupDescr # Alt.4 planConfigGroupDescr embedded + - planConfigGroupDescr properties: planConfigGroupDescr: type: string description: Inline plan group descriptor to activate allOf: - $ref: '#/components/schemas/PlanConfigurationGroupDescriptor' - ##EDITOR Alt5. fallbackdescriptorId missing - example: - { - id : "myjob-111", - name : "5G-Dublin-East-Rollout", - description : "Optimize the 5G network in Dublin East", - isFallbackEnabled : true, - serviceImpact : "SHORTEST_TIME", - isImmediateActivation : true, - jobState : "CREATED", - jobDetails : "", - startedAt : "", - activationState : "NOT_STARTED", - activationDetails : { - href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/activation-details", - templated: true, - type: "application/json", - title: "The activation details of the plan configuration(s)", - method : "GET" - }, - planConfigDescrId : "plan-descriptor-001", - } - additionalProperties : true - - PlanActivationJobRequest: - type: object - allOf: - - $ref: '#/components/schemas/PlanActivationJob' - example: - { - "name" : "5G-Dublin-East-Rollout", - "description" : "Optimize the 5G network in Dublin East", - "planConfigDescr" : { - "applyMode" : "ATOMIC", - "customProperties" : { - "technology-type": "NR", - "location": "Dublin" - }, - "planConfigContentType" : "application/vnd.3gpp.yang-patch+json", - "planConfig": { - ... - } - } - } + - type: object # Alt.5 fallbackConfigDescrId + required: + - fallbackConfigDescrId + properties: + fallbackConfigDescrId: + type: string + description: Unique id reference to the fallback descriptor to activate + example: "planxyz" + - PlanActivationJobResponse: + ActivationJob: type: object required: - id - - jobState - - jobDetails - - activationState - - activationDetails + - status - isImmediateActivation - isFallbackEnabled - serviceImpact + - jobDetails + - _links + description: An object representing a plan activation job. allOf: - - $ref: '#/components/schemas/PlanActivationJob' - properties: - _links: - description: Hypermedia links for this resource, including fixed and dynamic relations - allOf: - - $ref: '#/components/schemas/JobLinks' - - type: object - properties: - self: - allOf: - - $ref: '#/components/schemas/LinkObject' ##EDITOR Any other link will conform to LinkObject schema but we shall specify which links to expect - - type: object - properties: - href: - type: string - default: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/{planActivationJobId}" - title: - type: string - enum: - - "Link to the plan activation job" - method: - type: string - enum: - - "GET" - example: - href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/activation-job-001" - title: "Link to the plan activation job" - type: "application/json" - templated: true - method: GET - fallback: - allOf: - - $ref: '#/components/schemas/LinkObject' - description: A URI reference to the fallback plan descriptor - example: - href: "{apiRoot}/ProvMnS/v1/plan-descriptor/myjob-111-fallback" - templated: true - type: "application/json" - title: "A URI reference to the fallback plan descriptor" - method: GET - ##EDITOR other links are missing. We have more in the examples -> additionalProperties to allow any other dynamic links - additionalProperties: - $ref: '#/components/schemas/LinkObject' - example: - self: - href: "{apiRoot}/ProvMnS/1900/plan-activation-jobs/myjob-111" - templated: true - type: "application/json" - title: "The newly created activation job" - method : "GET" - planDescriptor: - href: "{apiRoot}/ProvMnS/v1/plan-descriptors/planxyz" - templated: true - type: "application/json" - title: "plan descriptor link" - method : "GET" + - type: object + properties: + id: + type: string + description: ID of the activation job. + example: "job-id-3985199134" status: - href: "{apiRoot}/ProvMnS/1900/plan-activation-jobs/myjob-111/status" - templated: true - type: "application/json" - title: "activation status link" - method : "GET" - cancel: - href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/status/jos-state" - templated: true - type: "application/json" - title: "cancel the job" - method : "PUT" - fallbackPlan: - href: "{apiRoot}/ProvMnS/v1/plan-descriptors/myfallback-plan-111" - templated: true - type: "application/json" - title: "fallback plan descriptor link" - method : "GET" + $ref: '#/components/schemas/ActivationJobStatus' + jobDetails: + $ref: '#/components/schemas/JobDetails' + activationDetails: + allOf: + - $ref: '#/components/schemas/LinkObject' + - type: object + properties: + href: + type: string + description: A URI reference to the activation details. + example: "{apiRoot}/ProvMnS/v1/activation-jobs/myjob-111/activation-details" + title: + type: string + enum: + - "Link to the activation details" + method: + type: string + enum: + - "GET" + type: + type: string + description: The content type expected when following this link (MIME type). + default: "application/json" + mnsConsumerId: + type: array + description: The user that created and/or started the job. It may indicate a human user and/or one or more applications initiating the job. E.g. ["userid:janedoe", "appid:12314"]. + items: + type: string + _links: + description: Hypermedia links for this resource, including fixed and dynamic relations. + allOf: + - $ref: '#/components/schemas/JobLinks' + - type: object + properties: + self: + allOf: + - $ref: '#/components/schemas/LinkObject' + - type: object + properties: + href: + type: string + default: "{apiRoot}/ProvMnS/v1/activation-jobs/{ActivationJobId}" + title: + type: string + enum: + - "Link to the plan activation job" + method: + type: string + enum: + - "GET" + example: + href: "{apiRoot}/ProvMnS/v1/activation-jobs/activation-job-001" + title: "Link to the plan activation job" + type: "application/json" + templated: true + method: "GET" + fallback: + allOf: + - $ref: '#/components/schemas/LinkObject' + - type: object + description: A URI reference to the fallback plan descriptor. + example: + href: "{apiRoot}/ProvMnS/v1/plan-descriptors/myjob-111-fallback" + templated: true + type: "application/json" + title: "A URI reference to the fallback plan descriptor" + method: "GET" + additionalProperties: + $ref: '#/components/schemas/LinkObject' + - $ref: '#/components/schemas/ActivationJobRequest' + example: + id: "myjob-111" + name: "5G-Dublin-East-Rollout" + description: "Optimize the 5G network in Dublin East" + isFallbackEnabled: true + serviceImpact: "SHORTEST_TIME" + isImmediateActivation: true + status: + jobState: "RUNNING" + startedAt: "" + activationState: "NOT_STARTED" + jobDetails: {} # Assuming this is a simple object + activationDetails: + href: "{apiRoot}/ProvMnS/v1/activation-jobs/myjob-111/activation-details" + templated: true + type: "application/json" + title: "The activation details of the plan configuration(s)" + method: "GET" + planConfigDescrId: "plan-descriptor-001" + _links: + self: + href: "{apiRoot}/ProvMnS/1900/activation-jobs/myjob-111" + templated: true + type: "application/json" + title: "The newly created activation job" + method: "GET" + planDescriptor: + href: "{apiRoot}/ProvMnS/v1/plan-descriptors/planxyz" + templated: true + type: "application/json" + title: "plan descriptor link" + method: "GET" + status: + href: "{apiRoot}/ProvMnS/1900/activation-jobs/myjob-111/status" + templated: true + type: "application/json" + title: "activation status link" + method: "GET" + activation-details: + href: "{apiRoot}/ProvMnS/1900/activation-jobs/myjob-111/activation-details" + templated: true + type: "application/json" + title: "activation details link" + method: "GET" + cancel: + href: "{apiRoot}/ProvMnS/v1/activation-jobs/myjob-111/cancel-request" + templated: true + type: "application/json" + title: "cancel the job" + method: "PUT" + fallbackPlan: + href: "{apiRoot}/ProvMnS/v1/plan-descriptors/myfallback-plan-111" + templated: true + type: "application/json" + title: "fallback plan descriptor link" + method: "GET" + additionalProperties: true - CancelRequest: - type: object - required: - - jobState - properties: - jobState: - type: string - enum : - - CANCELLING - description: set to CANCELLING to cancel a job - example: CANCELLING - - PlanValidationJob: + ValidationJobRequest: type: object - allOf: - - $ref: '#/components/schemas/JobState' + required: + - _links + description: An object representing a plan activation job. properties: - id: - type: string - description: id of the validation job - example: "job-id-3985199134" name: type: string description: Name of the validation job @@ -1649,86 +1754,203 @@ components: type: string description: Human-readable description of the job example: "Optimize the Dublin area network" - jobDetails: - allOf: - - $ref: '#/components/schemas/JobDetails' - jobState: - allOf: - - $ref: '#/components/schemas/JobState' - validationState: - allOf: - - $ref: '#/components/schemas/ValidationState' - validationDetails: - allOf: - - $ref: '#/components/schemas/LinkObject' - - type: object - properties: - href: - type: string - title: A URI reference to the validation details - example: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/validation-details" - title: - type: string - enum: - - "Link to the validation details" - method: - type: string - enum: - - "GET" - type: - type: string - description: The content type expected when following this link (MIME type). - default: "application/json" - sourceIdentity: + validationMode: + type: string + enum: [CONTINUE_ON_ERROR, STOP_ON_ERROR] + default : "CONTINUE_ON_ERROR" + description: Specifies the execution behavior when the plan is activated + mnsConsumerId: type: array description: The user that created and/or started the job. It may indicated a human user and/or one or more applications initiating the job. E.g. ["userid:janedoe", "appid:12314"] items: type: string oneOf: - - type: object + - type: object # Alt.1 planConfigDescrId required: - - planConfigDescrId # Alt.1 planConfigDescrId + - planConfigDescrId properties: planConfigDescrId: type: string - description: Unique id reference to the plan descriptor to activate + description: Unique id reference to the plan descriptor to validate example: "planxyz" - - type: object + - type: object # Alt.2 planConfigDescr embedded required: - - planConfigDescr # Alt.2 planConfigDescr embedded + - planConfigDescr properties: planConfigDescr: type: object - description: Inline plan configuration descriptor to activate + description: Inline plan configuration descriptor to validate allOf: - $ref: '#/components/schemas/PlanConfigurationDescriptor' example: name: "myjob-111" - applyMode: "BEST_EFFORT" + activationMode: "BEST_EFFORT" customProperties: { techology-type: "NR", indoor: false } planConfig: ... - - type: object + - type: object # Alt.3 planConfigGroupDescrId required: - - planConfigGroupDescrId # Alt.3 planConfigGroupDescrId + - planConfigGroupDescrId properties: planConfigGroupDescrId: type: string - description: Unique id reference to the plan group descriptor to activate + description: Unique id reference to the plan group descriptor to validate example: "plan-group-xyz" - - type: object + - type: object # Alt.4 planConfigGroupDescr embedded required: - - planConfigGroupDescr # Alt.4 planConfigGroupDescr embedded + - planConfigGroupDescr properties: planConfigGroupDescr: type: string - description: Inline plan group descriptor to activate + description: Inline plan group descriptor to validate allOf: - $ref: '#/components/schemas/PlanConfigurationGroupDescriptor' - ##EDITOR ALt.5 fallback missing + - type: object # Alt.5 fallbackConfigDescrId + required: + - fallbackConfigDescrId + properties: + fallbackConfigDescrId: + type: string + description: Unique id reference to the fallback descriptor to validate + example: "planxyz" + example: + { + name : "5G-Dublin-East-Rollout", + description : "Optimize the 5G network in Dublin East", + planConfigDescrId : "plan-descriptor-001", + } + additionalProperties : true + + ValidationJob: + type: object + required: + - id + - status + - jobDetails + - validationDetails + - _links + allOf: + - $ref: '#/components/schemas/ValidationJobRequest' + - type: object + properties: + id: + type: string + description: id of the validation job + example: "job-id-3985199134" + status: + allOf: + - $ref: '#/components/schemas/ValidationJobStatus' + jobDetails: + allOf: + - $ref: '#/components/schemas/JobDetails' + validationDetails: + allOf: + - $ref: '#/components/schemas/LinkObject' + - type: object + properties: + href: + type: string + title: A URI reference to the validation details + example: "{apiRoot}/ProvMnS/v1/activation-jobs/myjob-111/validation-details" + title: + type: string + enum: + - "Link to the validation details" + method: + type: string + enum: + - "GET" + type: + type: string + description: The content type expected when following this link (MIME type). + default: "application/json" + _links: + description: Hypermedia links for this resource, including fixed and dynamic relations + allOf: + - $ref: '#/components/schemas/JobLinks' + - type: object + properties: + self: + allOf: + - $ref: '#/components/schemas/LinkObject' # Any other link will conform to LinkObject schema + - type: object + properties: + href: + type: string + default: "{apiRoot}/ProvMnS/v1/validation-jobs/{validationJobId}" + title: + type: string + enum: + - "Link to the plan validation job" + method: + type: string + enum: + - "GET" # This means the method MUST be "GET" + example: + href: "{apiRoot}/ProvMnS/v1/validation-jobs/validation-job-001" + title: "Link to the plan validation job" + type: "application/json" + templated: true + method: GET + cencel: + allOf: + - $ref: '#/components/schemas/LinkObject' # Any other link will conform to LinkObject schema + - type: object + properties: + href: + type: string + default: "{apiRoot}/ProvMnS/v1/validation-jobs/{validationJobId}/status" + title: + type: string + enum: + - "Link to the plan validation job" + method: + type: string + enum: + - "PATCH" # This means the method MUST be "GET" + example: + href: "{apiRoot}/ProvMnS/v1/validation-jobs/validation-job-001/status" + title: "Link to the cancel validation job - cancelRequest : true must be in body" + type: "application/json" + templated: true + method: PUT + + + required : + - self + - cancel + # additionalProperties to allow any other dynamic links + additionalProperties: + $ref: '#/components/schemas/LinkObject' + example: + self: + href: "{apiRoot}/ProvMnS/1900/activation-jobs/myjob-111" + templated: true + type: "application/json" + title: "The newly created activation job" + method : "GET" + planDescriptor: + href: "{apiRoot}/ProvMnS/v1/plan-descriptors/planxyz" + templated: true + type: "application/json" + title: "plan descriptor link" + method : "GET" + status: + href: "{apiRoot}/ProvMnS/1900/activation-jobs/myjob-111/status" + templated: true + type: "application/json" + title: "activation status link" + method : "GET" + cancel: + href: "{apiRoot}/ProvMnS/v1/activation-jobs/myjob-111/status" + templated: true + type: "application/json" + title: "cancel the job" + method : "PATCH" + example: { id : "myjob-111", @@ -1737,121 +1959,41 @@ components: isFallbackEnabled : true, serviceImpact : "SHORTEST_TIME", isImmediateActivation : true, - jobState : "CREATED", - jobDetails : "", - startedAt : "", - activationState : "NOT_STARTED", - activationDetails : { - href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/activation-details", + status : { + jobState : "RUNNING", + jobDetails : {...}, + startedAt : "", + activationState : "NOT_STARTED" + }, + validationDetails : { + href: "{apiRoot}/ProvMnS/v1/activation-jobs/myjob-111/validation-details", templated: true, type: "application/json", - title: "The activation details of the plan configuration(s)", + title: "The validation details of the plan configuration(s)", method : "GET" }, planConfigDescrId : "plan-descriptor-001", } additionalProperties : true - - PlanValidationJobRequest: - type: object - allOf: - - $ref: '#/components/schemas/PlanValidationJob' - example: - { - "name" : "5G-Dublin-East-Rollout", - "description" : "Optimize the 5G network in Dublin East", - "planDescriptor" : { - "applyMode" : "ATOMIC", - "customProperties" : { - "technology-type": "NR", - "location": "Dublin" - }, - "planConfig": { - ... - } - } - } - PlanValidationJobResponse: - type: object - required: - - id - - jobState - - jobDetails - - validationState - - validationDetails - allOf: - - $ref: '#/components/schemas/PlanValidationJob' + CancelRequest: + type: object properties: - _links: - description: Hypermedia links for this resource, including fixed and dynamic relations - allOf: - - $ref: '#/components/schemas/JobLinks' - - type: object - properties: - self: - allOf: - - $ref: '#/components/schemas/LinkObject' # Any other link will conform to LinkObject schema - - type: object - properties: - href: - type: string - default: "{apiRoot}/ProvMnS/v1/plan-validation-jobs/{planValidationJobId}" - title: - type: string - enum: - - "Link to the plan validation job" - method: - type: string - enum: - - "GET" # This means the method MUST be "GET" - example: - href: "{apiRoot}/ProvMnS/v1/plan-validation-jobs/validation-job-001" - title: "Link to the plan validation job" - type: "application/json" - templated: true - method: GET - # additionalProperties to allow any other dynamic links - additionalProperties: - $ref: '#/components/schemas/LinkObject' - example: - self: - href: "{apiRoot}/ProvMnS/1900/plan-activation-jobs/myjob-111" - templated: true - type: "application/json" - title: "The newly created activation job" - method : "GET" - planDescriptor: - href: "{apiRoot}/ProvMnS/v1/plan-descriptors/planxyz" - templated: true - type: "application/json" - title: "plan descriptor link" - method : "GET" - status: - href: "{apiRoot}/ProvMnS/1900/plan-activation-jobs/myjob-111/status" - templated: true - type: "application/json" - title: "activation status link" - method : "GET" - cancel: - href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/cancel" - templated: true - type: "application/json" - title: "cancel the job" - method : "POST" - fallbackPlan: - href: "{apiRoot}/ProvMnS/v1/plan-descriptors/myfallback-plan-111" - templated: true - type: "application/json" - title: "fallback plan descriptor link" - method : "GET" - - AbstractChangeDefinition: + cancelRequest: + type: boolean + description: property to cancel the activation/validation job + example: true + + Change: type: object properties: + changeId: + type: string + description: Unique identifier for this change + example: "opId-001" operation: type: string - enum: [create, merge, update, remove] + enum: [create, merge, update, delete] description: The operation to perform example: "create" description: @@ -1865,18 +2007,8 @@ components: value: type: object additionalProperties: true # Allows any nested properties within 'value' - description: Value to apply (for create/merge/remove operations) - - Change: - allOf: - - $ref: '#/components/schemas/AbstractChangeDefinition' - - type: object - properties: - changeId: - type: string - description: Unique identifier for this change - example: "opId-001" - additionalProperties: true # Allows any nested properties within 'value' + description: Value to apply (for create/update/merge/delete operations) + additionalProperties: true # Allows for any nested properties required: - operation - target @@ -1916,7 +2048,7 @@ components: properties: href: type: string - default: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/{jobId}/status" + default: "{apiRoot}/ProvMnS/v1/activation-jobs/{jobId}/status" title: type: string enum: @@ -1927,7 +2059,7 @@ components: - "GET" # This means the method MUST be "GET" description: A URI reference to the status information example: - href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/status" + href: "{apiRoot}/ProvMnS/v1/activation-jobs/myjob-111/status" title: "Link to GET the job status" type: "application/json" templated: true @@ -1939,7 +2071,7 @@ components: properties: href: type: string - default: "{apiRoot}/ProvMnS/v1/plan-{job-type}-jobs/{jobId}/status/job-state" + default: "{apiRoot}/ProvMnS/v1/plan-{job-type}-jobs/{jobId}/status" title: type: string enum: @@ -1947,18 +2079,18 @@ components: method: type: string enum: - - "PUT" # This means the method MUST be "PUT" + - "PATCH" # This means the method MUST be "PATCH" description: A URI reference to cancel the job example: - href: "{apiRoot}/ProvMnS/v1/plan-activation-jobs/myjob-111/cancel" + href: "{apiRoot}/ProvMnS/v1/activation-jobs/myjob-111/status" title: "Link to cancel the job" type: "application/json" templated: true - method: POST + method: PATCH JobState: type: string - enum: [CREATED, RUNNING, COMPLETED, FAILED, CANCELLING, CANCELLED] + enum: [NOT_STARTED, QUEUED, RUNNING, CANCELLING, CANCELLED, COMPLETED, FAILED] example: "COMPLETED" JobDetails: @@ -2017,7 +2149,7 @@ components: planDescriptorId: type: string example: "planconfig-descriptor-001" - changes: ##EDITOR format is TBD + changes: type: array items: $ref: '#/components/schemas/ChangeStatus' @@ -2025,7 +2157,7 @@ components: $ref: '#/components/schemas/SummaryStatus' example: { - "results": { ...}, ##EDITOR format is TBD + "results": { ...}, "summary" : { "unprocessed": 0, "succeeded": 2, @@ -2035,7 +2167,7 @@ components: ValidationState: type: string - enum: [NOT_VALIDATED, VALIDATING, VALIDATED, VALIDATION_FAILED, PARTIALLY_VALIDATED] + enum: [UNKNOWN, VALIDATION_SUCCEEDED, VALIDATION_FAILED] example: "VALIDATED" ActivationState: @@ -2051,8 +2183,8 @@ components: example: "changeId-001" state: type: string - enum: [SUCCEEDED, FAILED, UNPROCESSED] - default: UNPROCESSED + enum: [NOT_STARTED, PROCESSING, SUCCEEDED, FAILED] + default: NOT_STARTED example: "SUCCEEDED" target: type: string @@ -2066,7 +2198,7 @@ components: items: $ref: '#/components/schemas/Conflict' required: - - changeId ##EDITOR yes or no + - changeId # either the changeId from the plan or the array index in the array of Change; - target - state example: @@ -2087,7 +2219,7 @@ components: SummaryStatus: type: object properties: - unprocessed: + notFinished: type: integer example: 1 succeeded: @@ -2108,7 +2240,7 @@ components: allOf: - $ref: '#/components/schemas/Change' properties: - planDescriptorId: ##EDITOR if missing the conlict is in same plan config descriptor as the 'source' change -> comment to be added in description + planDescriptorId: type: string change: $ref: '#/components/schemas/Change' @@ -2150,7 +2282,7 @@ components: ConflictingChange: type: object properties: - planDescriptorId: ##EDITOR if missing the conlict is in same plan config descriptor as the 'source' change -> to add to description + planDescriptorId: type: string change: $ref: '#/components/schemas/Change' @@ -2452,7 +2584,7 @@ components: UpdateNrCellChange: summary: Update an existing NR Cell (merge operation) value: - operation: merge + operation: update changeId: update-nr-cell-002 description: Update administrativeState for existing NRCellDU=1. target: /_3gpp-common-subnetwork:SubNetwork=North/_3gpp-common-mecontext:MeContext=Dublin-1/_3gpp_nrm_managedelement:ManagedElement=ENB-A/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1/_3gpp_nrm_nrcelldu:NRCellDU=1 @@ -2461,7 +2593,7 @@ components: RemoveNrCellChange: summary: Remove an NR Cell (remove operation) value: - operation: remove + operation: delete changeId: remove-nr-cell-003 description: Decommission NRCellDU=3. target: /_3gpp-common-subnetwork:SubNetwork=Irl/_3gpp-common-mecontext:MeContext=Dublin-1/_3gpp_nrm_managedelement:ManagedElement=1/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1/_3gpp_nrm_nrcelldu:NRCellDU=3 \ No newline at end of file -- GitLab From 6504a5be642a1e56d5eccb8a7172d9549ab6172d Mon Sep 17 00:00:00 2001 From: lengyelb Date: Wed, 27 Aug 2025 00:45:56 +0200 Subject: [PATCH 035/103] Edit TS28572_PlanManagement.yaml added currentConfigTime --- OpenAPI/TS28572_PlanManagement.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/OpenAPI/TS28572_PlanManagement.yaml b/OpenAPI/TS28572_PlanManagement.yaml index b1ec7c8cf..3d33a9a65 100644 --- a/OpenAPI/TS28572_PlanManagement.yaml +++ b/OpenAPI/TS28572_PlanManagement.yaml @@ -1846,6 +1846,9 @@ components: jobDetails: allOf: - $ref: '#/components/schemas/JobDetails' + currentConfigTime: + type: string + format: date-time validationDetails: allOf: - $ref: '#/components/schemas/LinkObject' -- GitLab From 333e2ce3b48f98b43087a77fd2168ea9fa450813 Mon Sep 17 00:00:00 2001 From: lengyelb Date: Tue, 12 Aug 2025 19:21:12 +0200 Subject: [PATCH 036/103] Remove notifyChangedAlarm - Edit TS28111_FaultNotifications.yaml --- OpenAPI/TS28111_FaultNotifications.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/OpenAPI/TS28111_FaultNotifications.yaml b/OpenAPI/TS28111_FaultNotifications.yaml index ffac86e1f..0fa9d70c1 100644 --- a/OpenAPI/TS28111_FaultNotifications.yaml +++ b/OpenAPI/TS28111_FaultNotifications.yaml @@ -35,7 +35,6 @@ paths: - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyNewAlarm' - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyNewSecAlarm' - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyClearedAlarm' - - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyChangedAlarm' - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyChangedAlarmGeneral' - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyChangedSecAlarmGeneral' - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyCorrelatedNotificationChanged' -- GitLab From b7334605f110ab669b04897515c646e7b2b24a62 Mon Sep 17 00:00:00 2001 From: lengyelb Date: Tue, 12 Aug 2025 19:23:47 +0200 Subject: [PATCH 037/103] Remove notifyChangedAlarm - Edit TS28111_FaultNrm.yaml --- OpenAPI/TS28111_FaultNrm.yaml | 21 --------------------- 1 file changed, 21 deletions(-) diff --git a/OpenAPI/TS28111_FaultNrm.yaml b/OpenAPI/TS28111_FaultNrm.yaml index 13a6967dd..eaa9304f9 100644 --- a/OpenAPI/TS28111_FaultNrm.yaml +++ b/OpenAPI/TS28111_FaultNrm.yaml @@ -252,7 +252,6 @@ components: type: string enum: - notifyNewAlarm - - notifyChangedAlarm - notifyChangedAlarmGeneral - notifyAckStateChanged - notifyCorrelatedNotificationChanged @@ -371,26 +370,6 @@ components: type: string clearSystemId: type: string - NotifyChangedAlarm: - allOf: - - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader' - - type: object - required: - - alarmId - - alarmType - - probableCause - - perceivedSeverity - properties: - alarmId: - $ref: '#/components/schemas/AlarmId' - alarmType: - $ref: '#/components/schemas/AlarmType' - probableCause: - $ref: '#/components/schemas/ProbableCause' - specificProblem: - $ref: '#/components/schemas/SpecificProblem' - perceivedSeverity: - $ref: '#/components/schemas/PerceivedSeverity' NotifyChangedAlarmGeneral: allOf: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader' -- GitLab From 78b9d63199a27f36ef14081afa282476a455f3aa Mon Sep 17 00:00:00 2001 From: allwang Date: Thu, 4 Sep 2025 03:23:01 +0000 Subject: [PATCH 038/103] 28.623_Rel19_CR0565_Correction_on MDT_PLMN_List --- OpenAPI/TS28623_TraceControlNrm.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenAPI/TS28623_TraceControlNrm.yaml b/OpenAPI/TS28623_TraceControlNrm.yaml index b335275c8..1740b967a 100644 --- a/OpenAPI/TS28623_TraceControlNrm.yaml +++ b/OpenAPI/TS28623_TraceControlNrm.yaml @@ -1374,8 +1374,6 @@ components: maxItems: 8 reportType: $ref: '#/components/schemas/reportType-Type' - plmnList: - $ref: '#/components/schemas/plmnList-Type' eventListForEventTriggeredMeasurement: $ref: '#/components/schemas/eventListForEventTriggeredMeasurement-Type' areaConfigurationForNeighCell: @@ -1407,6 +1405,8 @@ components: $ref: '#/components/schemas/immediateMDTConfig-Type' loggedMDTConfig: $ref: '#/components/schemas/loggedMDTConfig-Type' + plmnList: + $ref: '#/components/schemas/plmnList-Type' UECoreMeasConfig-Type: description: UE level measurements configuration parameters for 5G system. See details in 3GPP TS 28.622 clause 4.3.x. -- GitLab From fc8b1b8efb820161fd72df08189c4b24ba86604d Mon Sep 17 00:00:00 2001 From: lengyelb Date: Thu, 7 Aug 2025 17:07:50 +0200 Subject: [PATCH 039/103] Added manuallyCleared 3x Edit TS28111_FaultNrm.yaml --- OpenAPI/TS28111_FaultNrm.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/OpenAPI/TS28111_FaultNrm.yaml b/OpenAPI/TS28111_FaultNrm.yaml index eaa9304f9..b86bd3d91 100644 --- a/OpenAPI/TS28111_FaultNrm.yaml +++ b/OpenAPI/TS28111_FaultNrm.yaml @@ -218,6 +218,8 @@ components: securityAlarmDetector: type: string readOnly: true + manuallyCleared: + type: boolean AlarmList-Single: allOf: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' @@ -307,6 +309,8 @@ components: $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet' rootCauseIndicator: type: boolean + manuallyCleared: + type: boolean NotifyNewSecAlarm: allOf: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader' @@ -344,6 +348,8 @@ components: type: string securityAlarmDetector: type: string + manuallyCleared: + type: boolean NotifyClearedAlarm: allOf: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader' -- GitLab From c61f8c03840e31169159c83088d3aff36b2e85f6 Mon Sep 17 00:00:00 2001 From: lengyelb Date: Thu, 28 Aug 2025 13:24:34 +0200 Subject: [PATCH 040/103] manuallCleared -> clearingType Edit TS28111_FaultNrm.yaml --- OpenAPI/TS28111_FaultNrm.yaml | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/OpenAPI/TS28111_FaultNrm.yaml b/OpenAPI/TS28111_FaultNrm.yaml index b86bd3d91..c02b83f78 100644 --- a/OpenAPI/TS28111_FaultNrm.yaml +++ b/OpenAPI/TS28111_FaultNrm.yaml @@ -218,8 +218,12 @@ components: securityAlarmDetector: type: string readOnly: true - manuallyCleared: - type: boolean + clearingType: + type: string + enum: + - MANUAL + - AUTOMATIC + default: AUTOMATIC AlarmList-Single: allOf: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' @@ -348,8 +352,11 @@ components: type: string securityAlarmDetector: type: string - manuallyCleared: - type: boolean + clearingType: + type: string + enum: + - MANUAL + - AUTOMATIC NotifyClearedAlarm: allOf: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader' -- GitLab From fe8d32dea611446ab1df9976370084c6450349a5 Mon Sep 17 00:00:00 2001 From: lengyelb Date: Thu, 28 Aug 2025 13:30:04 +0200 Subject: [PATCH 041/103] -> clearingType 2 Edit TS28111_FaultNrm.yaml --- OpenAPI/TS28111_FaultNrm.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/OpenAPI/TS28111_FaultNrm.yaml b/OpenAPI/TS28111_FaultNrm.yaml index c02b83f78..49619e626 100644 --- a/OpenAPI/TS28111_FaultNrm.yaml +++ b/OpenAPI/TS28111_FaultNrm.yaml @@ -313,8 +313,11 @@ components: $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet' rootCauseIndicator: type: boolean - manuallyCleared: - type: boolean + clearingType: + type: string + enum: + - MANUAL + - AUTOMATIC NotifyNewSecAlarm: allOf: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader' -- GitLab From 5390462d66d8b17385cbcb9c3f4320b24b80a9fb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 17:21:05 +0000 Subject: [PATCH 042/103] Edit TS28623_ComDefs.yaml --- OpenAPI/TS28623_ComDefs.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/OpenAPI/TS28623_ComDefs.yaml b/OpenAPI/TS28623_ComDefs.yaml index 7d4cb0b61..e9689be36 100755 --- a/OpenAPI/TS28623_ComDefs.yaml +++ b/OpenAPI/TS28623_ComDefs.yaml @@ -100,6 +100,11 @@ components: Nid: type: string pattern: '^[A-Fa-f0-9]{11}$' + + CagId: + type: string + pattern: '^[A-Fa-f0-9]{8}$' + PlmnId: description: This datatype is used for writable attribute type: object -- GitLab From 7218874c26f33d3e225a78dabdb6c6d990cd4985 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 17:50:21 +0000 Subject: [PATCH 043/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 43 ++++++++++++++++----------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 8d054aa95..ce6267256 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -151,32 +151,31 @@ components: timer: type: integer AreaScope: - allOf: + oneOf: + - type: array + items: + $ref: '#/components/schemas/EutraCellId' + minItems: 1 + maxItems: 32 + - type: array + items: + $ref: '#/components/schemas/NrCellId' + minItems: 1 + maxItems: 32 + - type: array + items: + $ref: '#/components/schemas/Tac' + minItems: 1 + maxItems: 8 + - type: array + items: + $ref: '#/components/schemas/Tai' + minItems: 1 + maxItems: 8 - type: array items: $ref: '#/components/schemas/NpnId-Type' minItems: 1 - - oneOf: - - type: array - items: - $ref: '#/components/schemas/EutraCellId' - minItems: 1 - maxItems: 32 - - type: array - items: - $ref: '#/components/schemas/NrCellId' - minItems: 1 - maxItems: 32 - - type: array - items: - $ref: '#/components/schemas/Tac' - minItems: 1 - maxItems: 8 - - type: array - items: - $ref: '#/components/schemas/Tai' - minItems: 1 - maxItems: 8 Tai: type: object properties: -- GitLab From 3b2bc0a7cfa2a0e8b1f0bb5e90bca18739594ae6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 17:54:27 +0000 Subject: [PATCH 044/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index ce6267256..d95089162 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -157,11 +157,19 @@ components: $ref: '#/components/schemas/EutraCellId' minItems: 1 maxItems: 32 - - type: array - items: - $ref: '#/components/schemas/NrCellId' - minItems: 1 - maxItems: 32 + - type: object + properties: + nrCellId: + type: array + items: + $ref: '#/components/schemas/NrCellId' + minItems: 1 + maxItems: 32 + nPNIdentityList: + type: array + items: + $ref: '#/components/schemas/NpnId-Type' + minItems: 1 - type: array items: $ref: '#/components/schemas/Tac' -- GitLab From 13df02a0e40b61b17eb8febbb2bdcb80214f490e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 18:00:15 +0000 Subject: [PATCH 045/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index d95089162..5ab6a8493 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -169,7 +169,7 @@ components: type: array items: $ref: '#/components/schemas/NpnId-Type' - minItems: 1 + minItems: 1 - type: array items: $ref: '#/components/schemas/Tac' -- GitLab From 2679082959157fafd8740c8c1126356c3dec788d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 18:12:35 +0000 Subject: [PATCH 046/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 5ab6a8493..8347fbdaa 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -170,11 +170,20 @@ components: items: $ref: '#/components/schemas/NpnId-Type' minItems: 1 - - type: array - items: - $ref: '#/components/schemas/Tac' - minItems: 1 - maxItems: 8 + - type: object + properties: + taclist: + type: array + items: + $ref: '#/components/schemas/Tac' + minItems: 1 + maxItems: 8 + cagIdList: + type: array + items: + $ref: '#/components/schemas/CagId' + minItems: 1 + maxItems: 256 - type: array items: $ref: '#/components/schemas/Tai' -- GitLab From ef6f6c1468e4d53a411daf44ac0103ef797cd16a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 18:19:24 +0000 Subject: [PATCH 047/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 89 +++++++++++++++++++-------------- 1 file changed, 51 insertions(+), 38 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 8347fbdaa..1513a7837 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -151,48 +151,61 @@ components: timer: type: integer AreaScope: - oneOf: - - type: array - items: - $ref: '#/components/schemas/EutraCellId' - minItems: 1 - maxItems: 32 - - type: object - properties: - nrCellId: - type: array - items: - $ref: '#/components/schemas/NrCellId' - minItems: 1 - maxItems: 32 - nPNIdentityList: - type: array - items: - $ref: '#/components/schemas/NpnId-Type' - minItems: 1 - - type: object - properties: - taclist: - type: array - items: - $ref: '#/components/schemas/Tac' - minItems: 1 - maxItems: 8 - cagIdList: - type: array - items: - $ref: '#/components/schemas/CagId' - minItems: 1 - maxItems: 256 - - type: array - items: - $ref: '#/components/schemas/Tai' - minItems: 1 - maxItems: 8 + allOf: - type: array items: $ref: '#/components/schemas/NpnId-Type' minItems: 1 + - oneOf: + - type: array + items: + $ref: '#/components/schemas/EutraCellId' + minItems: 1 + maxItems: 32 + - type: object + properties: + nrCellId: + type: array + items: + $ref: '#/components/schemas/NrCellId' + minItems: 1 + maxItems: 32 + nPNIdentityList: + type: array + items: + $ref: '#/components/schemas/NpnId-Type' + minItems: 1 + - type: object + properties: + taclist: + type: array + items: + $ref: '#/components/schemas/Tac' + minItems: 1 + maxItems: 8 + cagIdList: + type: array + items: + $ref: '#/components/schemas/NpnId-type' + minItems: 1 + maxItems: 256 + - type: object + properties: + tailist: + type: array + items: + $ref: '#/components/schemas/Tai' + minItems: 1 + maxItems: 8 + nPNIdentityList: + type: array + items: + $ref: '#/components/schemas/NpnId-type' + minItems: 1 + - type: array + items: + $ref: '#/components/schemas/NpnId-Type' + minItems: 1 Tai: type: object properties: -- GitLab From 7703eeb5e89e987b5318c3588d10ecebaaf2784d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 18:24:28 +0000 Subject: [PATCH 048/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 1513a7837..5b23fc263 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -186,7 +186,7 @@ components: cagIdList: type: array items: - $ref: '#/components/schemas/NpnId-type' + $ref: '#/components/schemas/NpnId-Type' minItems: 1 maxItems: 256 - type: object @@ -200,7 +200,7 @@ components: nPNIdentityList: type: array items: - $ref: '#/components/schemas/NpnId-type' + $ref: '#/components/schemas/NpnId-Type' minItems: 1 - type: array items: -- GitLab From 3dee509b36053c75023cedef06fcd05870cd6e51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 18:31:07 +0000 Subject: [PATCH 049/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 5b23fc263..41a2f80bb 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -154,8 +154,9 @@ components: allOf: - type: array items: - $ref: '#/components/schemas/NpnId-Type' - minItems: 1 + $ref: 'TS28541_NrNrm.yaml#/components/schemas/PlmnInfoList' + minItems: 0 + maxItems: 16384 - oneOf: - type: array items: @@ -185,9 +186,9 @@ components: maxItems: 8 cagIdList: type: array + uniqueItems: true items: - $ref: '#/components/schemas/NpnId-Type' - minItems: 1 + $ref: 'TS28623_ComDefs.yaml#/components/schemas/CagId' maxItems: 256 - type: object properties: @@ -284,7 +285,7 @@ components: type: array uniqueItems: true items: - type: string + type: 'TS28623_ComDefs.yaml#/components/schemas/CagId' maxItems: 256 nIDList: type: array -- GitLab From 017357335ea58cc83e6f43d5aade6c5e874b0aec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 18:42:30 +0000 Subject: [PATCH 050/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 41a2f80bb..2ab6ed675 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -155,7 +155,6 @@ components: - type: array items: $ref: 'TS28541_NrNrm.yaml#/components/schemas/PlmnInfoList' - minItems: 0 maxItems: 16384 - oneOf: - type: array @@ -186,7 +185,6 @@ components: maxItems: 8 cagIdList: type: array - uniqueItems: true items: $ref: 'TS28623_ComDefs.yaml#/components/schemas/CagId' maxItems: 256 -- GitLab From ab437b904f7cbcc9e4f18dbc84559733c09984b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 18:46:20 +0000 Subject: [PATCH 051/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 2ab6ed675..1e8fa988b 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -154,7 +154,7 @@ components: allOf: - type: array items: - $ref: 'TS28541_NrNrm.yaml#/components/schemas/PlmnInfoList' + $ref: '#/components/schemas/NpnId-Type' maxItems: 16384 - oneOf: - type: array -- GitLab From 09535d3d780a3944132df21632d9ad8aeb3a75d9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 18:50:26 +0000 Subject: [PATCH 052/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 1e8fa988b..01c735b97 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -155,7 +155,7 @@ components: - type: array items: $ref: '#/components/schemas/NpnId-Type' - maxItems: 16384 + minItems: 1 - oneOf: - type: array items: -- GitLab From d5390a2b5ef75ccc41f67360209b582f5f12dc9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 18:56:10 +0000 Subject: [PATCH 053/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 01c735b97..1376bf53b 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -186,7 +186,7 @@ components: cagIdList: type: array items: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/CagId' + $ref: '#/components/schemas/NpnId-Type' maxItems: 256 - type: object properties: -- GitLab From ee682447a634e40ebd4eacc16987a5f1cd9ffd65 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 18:59:12 +0000 Subject: [PATCH 054/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 1376bf53b..acf4f9a08 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -187,6 +187,7 @@ components: type: array items: $ref: '#/components/schemas/NpnId-Type' + minItems: 1 maxItems: 256 - type: object properties: -- GitLab From 0a59aa9cb8506eab4ecc215cfbc8607280a447f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 19:02:42 +0000 Subject: [PATCH 055/103] Edit TS28623_GenericNrm.yaml -- GitLab From 090121913188731cfd5791e870e8a36e354f336a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 19:03:38 +0000 Subject: [PATCH 056/103] Edit TS28623_GenericNrm.yaml -- GitLab From 94af2a483beab4f0e8da9f31fa43a6a95a0f0965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 19:05:46 +0000 Subject: [PATCH 057/103] Edit TS28623_GenericNrm.yaml -- GitLab From 4c8ab9599ab27691f3b2dba7740c099b7e572d09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 19:08:39 +0000 Subject: [PATCH 058/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 97 ++++++++++++++++----------------- 1 file changed, 46 insertions(+), 51 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index acf4f9a08..7330123b4 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -151,61 +151,56 @@ components: timer: type: integer AreaScope: - allOf: + oneOf: + - type: array + items: + $ref: '#/components/schemas/EutraCellId' + minItems: 1 + maxItems: 32 + - type: object + properties: + nrCellId: + type: array + items: + $ref: '#/components/schemas/NrCellId' + minItems: 1 + maxItems: 32 + nPNIdentityList: + type: array + items: + $ref: '#/components/schemas/NpnId-Type' + minItems: 1 + - type: object + properties: + taclist: + type: array + items: + $ref: '#/components/schemas/Tac' + minItems: 1 + maxItems: 8 + cagIdList: + type: array + items: + $ref: '#/components/schemas/NpnId-Type' + minItems: 1 + maxItems: 256 + - type: object + properties: + tailist: + type: array + items: + $ref: '#/components/schemas/Tai' + minItems: 1 + maxItems: 8 + nPNIdentityList: + type: array + items: + $ref: '#/components/schemas/NpnId-Type' + minItems: 1 - type: array items: $ref: '#/components/schemas/NpnId-Type' minItems: 1 - - oneOf: - - type: array - items: - $ref: '#/components/schemas/EutraCellId' - minItems: 1 - maxItems: 32 - - type: object - properties: - nrCellId: - type: array - items: - $ref: '#/components/schemas/NrCellId' - minItems: 1 - maxItems: 32 - nPNIdentityList: - type: array - items: - $ref: '#/components/schemas/NpnId-Type' - minItems: 1 - - type: object - properties: - taclist: - type: array - items: - $ref: '#/components/schemas/Tac' - minItems: 1 - maxItems: 8 - cagIdList: - type: array - items: - $ref: '#/components/schemas/NpnId-Type' - minItems: 1 - maxItems: 256 - - type: object - properties: - tailist: - type: array - items: - $ref: '#/components/schemas/Tai' - minItems: 1 - maxItems: 8 - nPNIdentityList: - type: array - items: - $ref: '#/components/schemas/NpnId-Type' - minItems: 1 - - type: array - items: - $ref: '#/components/schemas/NpnId-Type' - minItems: 1 Tai: type: object properties: -- GitLab From 5f7a490e9f53a9989c7874cd222fca056eafb045 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 19:12:57 +0000 Subject: [PATCH 059/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 7330123b4..1765044b3 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -279,7 +279,7 @@ components: type: array uniqueItems: true items: - type: 'TS28623_ComDefs.yaml#/components/schemas/CagId' + type: string maxItems: 256 nIDList: type: array -- GitLab From d8ee9171684da6e1c7a4aba58509bce626f1e8a5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 19:17:25 +0000 Subject: [PATCH 060/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 37 +++++++++------------------------ 1 file changed, 10 insertions(+), 27 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 1765044b3..1d8efa14c 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -170,33 +170,16 @@ components: items: $ref: '#/components/schemas/NpnId-Type' minItems: 1 - - type: object - properties: - taclist: - type: array - items: - $ref: '#/components/schemas/Tac' - minItems: 1 - maxItems: 8 - cagIdList: - type: array - items: - $ref: '#/components/schemas/NpnId-Type' - minItems: 1 - maxItems: 256 - - type: object - properties: - tailist: - type: array - items: - $ref: '#/components/schemas/Tai' - minItems: 1 - maxItems: 8 - nPNIdentityList: - type: array - items: - $ref: '#/components/schemas/NpnId-Type' - minItems: 1 + - type: array + items: + $ref: '#/components/schemas/Tac' + minItems: 1 + maxItems: 8 + - type: array + items: + $ref: '#/components/schemas/Tai' + minItems: 1 + maxItems: 8 - type: array items: $ref: '#/components/schemas/NpnId-Type' -- GitLab From 0b835b072261ff6f2d6942059f6f924213284e97 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 19:19:42 +0000 Subject: [PATCH 061/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 1d8efa14c..311b42eb7 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -151,7 +151,7 @@ components: timer: type: integer AreaScope: - oneOf: + oneOf: - type: array items: $ref: '#/components/schemas/EutraCellId' -- GitLab From 440f89f3826c839bdd43e6638498ee47e060cdbe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 19:22:38 +0000 Subject: [PATCH 062/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 36 ++++++++++++++++++++++++--------- 1 file changed, 26 insertions(+), 10 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 311b42eb7..a39e2de27 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -170,16 +170,32 @@ components: items: $ref: '#/components/schemas/NpnId-Type' minItems: 1 - - type: array - items: - $ref: '#/components/schemas/Tac' - minItems: 1 - maxItems: 8 - - type: array - items: - $ref: '#/components/schemas/Tai' - minItems: 1 - maxItems: 8 + - type: object + properties: + tacList: + type: array + items: + $ref: '#/components/schemas/Tac' + minItems: 1 + maxItems: 8 + nPNIdentityList: + type: array + items: + $ref: '#/components/schemas/NpnId-Type' + minItems: 1 + - type: object + properties: + taList: + type: array + items: + $ref: '#/components/schemas/Tai' + minItems: 1 + maxItems: 8 + nPNIdentityList: + type: array + items: + $ref: '#/components/schemas/NpnId-Type' + minItems: 1 - type: array items: $ref: '#/components/schemas/NpnId-Type' -- GitLab From cefdad8729dc32792aa7df622c6f3ea3b365e44f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 19:26:08 +0000 Subject: [PATCH 063/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index a39e2de27..ebf9edce4 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -178,10 +178,10 @@ components: $ref: '#/components/schemas/Tac' minItems: 1 maxItems: 8 - nPNIdentityList: + cAGIdList: type: array items: - $ref: '#/components/schemas/NpnId-Type' + type: string minItems: 1 - type: object properties: -- GitLab From f1b2b8526051fd289f19fbd204ebee45384dbeec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 19:28:00 +0000 Subject: [PATCH 064/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index ebf9edce4..59b9074bc 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -278,7 +278,7 @@ components: type: array uniqueItems: true items: - type: string + type: 'TS28623_ComDefs.yaml#/components/schemas/CagId' maxItems: 256 nIDList: type: array -- GitLab From ba0fb02c2d0c80e2877fa98f2b97852667055560 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 19:30:51 +0000 Subject: [PATCH 065/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 59b9074bc..ebf9edce4 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -278,7 +278,7 @@ components: type: array uniqueItems: true items: - type: 'TS28623_ComDefs.yaml#/components/schemas/CagId' + type: string maxItems: 256 nIDList: type: array -- GitLab From 4d0d9aff2859f4b16c9dd4603afe3578817c47b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 19:39:39 +0000 Subject: [PATCH 066/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index ebf9edce4..8c45c5dfe 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -278,7 +278,7 @@ components: type: array uniqueItems: true items: - type: string + $ref: 'TS28623_ComDefs.yaml#/components/schemas/CagId' maxItems: 256 nIDList: type: array -- GitLab From 1a7750a5195794056917424b81661d28cbaeb7c8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 20:05:39 +0000 Subject: [PATCH 067/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 8c45c5dfe..327cecb2d 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -181,8 +181,8 @@ components: cAGIdList: type: array items: - type: string - minItems: 1 + $ref: 'TS28623_ComDefs.yaml#/components/schemas/CagId' + maxItems: 256 - type: object properties: taList: -- GitLab From 894c71e995ba70efe13cfe070d014a6e69ceb785 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 20:11:28 +0000 Subject: [PATCH 068/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 95 +++++++++++++++++---------------- 1 file changed, 50 insertions(+), 45 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 327cecb2d..e4832ee02 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -151,55 +151,60 @@ components: timer: type: integer AreaScope: - oneOf: - - type: array - items: - $ref: '#/components/schemas/EutraCellId' - minItems: 1 - maxItems: 32 - - type: object - properties: - nrCellId: - type: array - items: - $ref: '#/components/schemas/NrCellId' - minItems: 1 - maxItems: 32 - nPNIdentityList: - type: array - items: - $ref: '#/components/schemas/NpnId-Type' - minItems: 1 - - type: object - properties: - tacList: - type: array - items: - $ref: '#/components/schemas/Tac' - minItems: 1 - maxItems: 8 - cAGIdList: - type: array - items: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/CagId' - maxItems: 256 - - type: object - properties: - taList: - type: array - items: - $ref: '#/components/schemas/Tai' - minItems: 1 - maxItems: 8 - nPNIdentityList: - type: array - items: - $ref: '#/components/schemas/NpnId-Type' - minItems: 1 + allOf: - type: array items: $ref: '#/components/schemas/NpnId-Type' minItems: 1 + - oneOf: + - type: array + items: + $ref: '#/components/schemas/EutraCellId' + minItems: 1 + maxItems: 32 + - type: object + properties: + nrCellId: + type: array + items: + $ref: '#/components/schemas/NrCellId' + minItems: 1 + maxItems: 32 + nPNIdentityList: + type: array + items: + $ref: '#/components/schemas/NpnId-Type' + minItems: 1 + - type: object + properties: + tacList: + type: array + items: + $ref: '#/components/schemas/Tac' + minItems: 1 + maxItems: 8 + cAGIdList: + type: array + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/CagId' + maxItems: 256 + - type: object + properties: + taList: + type: array + items: + $ref: '#/components/schemas/Tai' + minItems: 1 + maxItems: 8 + nPNIdentityList: + type: array + items: + $ref: '#/components/schemas/NpnId-Type' + minItems: 1 + - type: array + items: + $ref: '#/components/schemas/NpnId-Type' + minItems: 1 Tai: type: object properties: -- GitLab From 4696e9181d4656f8967276d8d8033284799a5719 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Tue, 12 Aug 2025 20:15:42 +0000 Subject: [PATCH 069/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index e4832ee02..dc84ef0e2 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -154,8 +154,8 @@ components: allOf: - type: array items: - $ref: '#/components/schemas/NpnId-Type' - minItems: 1 + $ref: 'TS28541_NrNrm.yaml#/components/schemas/PlmnInfoList' + maxItems: 16384 - oneOf: - type: array items: -- GitLab From d3b5d1cbec9bd40b6d6e77d61f552f02daf65a9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jose=20Antonio=20Ordo=C3=B1ez=20Lucena?= Date: Wed, 13 Aug 2025 17:21:58 +0000 Subject: [PATCH 070/103] Edit TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index dc84ef0e2..0b5f60128 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -174,7 +174,6 @@ components: type: array items: $ref: '#/components/schemas/NpnId-Type' - minItems: 1 - type: object properties: tacList: @@ -200,7 +199,6 @@ components: type: array items: $ref: '#/components/schemas/NpnId-Type' - minItems: 1 - type: array items: $ref: '#/components/schemas/NpnId-Type' -- GitLab From d746455b31e69d90ff0ff091e2ff5e10e88162da Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 4 Sep 2025 06:22:28 +0000 Subject: [PATCH 071/103] Update file TS28541_NrNrm.yaml --- OpenAPI/TS28541_NrNrm.yaml | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index 9482d9cce..63032ea6a 100755 --- a/OpenAPI/TS28541_NrNrm.yaml +++ b/OpenAPI/TS28541_NrNrm.yaml @@ -764,7 +764,21 @@ components: uniqueItems: true items: $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet' - + LocationInfo: + type: object + properties: + gNBId: + type: integer + pLMNId: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/PlmnId' + cellLocalId: + type: integer + nRTAC: + type: string + tAI: + $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Tai' + geoArea: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' #-------- Definition of types for name-containments ------ SubNetwork-ncO-NrNrm: -- GitLab From 9fc8216c184fc3c2c3973efea9806ad4f7aebc76 Mon Sep 17 00:00:00 2001 From: shumim Date: Wed, 13 Aug 2025 05:50:17 +0000 Subject: [PATCH 072/103] Update file TS28541_NrNrm.yaml --- OpenAPI/TS28541_NrNrm.yaml | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index e413d3d56..1efe8b6cb 100755 --- a/OpenAPI/TS28541_NrNrm.yaml +++ b/OpenAPI/TS28541_NrNrm.yaml @@ -2223,7 +2223,9 @@ components: type: object properties: coverageShapeList: - type: integer + type: array + items: + $ref: '#/components/schemas/coverageShape' downlinkTransmitPowerRange: $ref: '#/components/schemas/ParameterRange' antennaTiltRange: @@ -2236,19 +2238,13 @@ components: $ref: '#/components/schemas/ParameterRange' CCOWeakCoverageParameters-Single: - allOf: - - $ref: '#/components/schemas/CCOParameters-Attr' - - type: object + $ref: '#/components/schemas/CCOParameters-Attr' CCOPilotPollutionParameters-Single: - allOf: - - $ref: '#/components/schemas/CCOParameters-Attr' - - type: object + $ref: '#/components/schemas/CCOParameters-Attr' CCOOvershootCoverageParameters-Single: - allOf: - - $ref: '#/components/schemas/CCOParameters-Attr' - - type: object + $ref: '#/components/schemas/CCOParameters-Attr' NTNFunction-Single: allOf: -- GitLab From da494a6161514df801bd2979c00585675061ff2e Mon Sep 17 00:00:00 2001 From: shumim Date: Wed, 13 Aug 2025 06:02:02 +0000 Subject: [PATCH 073/103] Update file TS28541_NrNrm.yaml --- OpenAPI/TS28541_NrNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index 1efe8b6cb..cb180ffc0 100755 --- a/OpenAPI/TS28541_NrNrm.yaml +++ b/OpenAPI/TS28541_NrNrm.yaml @@ -2225,7 +2225,7 @@ components: coverageShapeList: type: array items: - $ref: '#/components/schemas/coverageShape' + $ref: '#/components/schemas/CoverageShape' downlinkTransmitPowerRange: $ref: '#/components/schemas/ParameterRange' antennaTiltRange: -- GitLab From 5ca609f4e3a6cbc21e9135f132241f1bda7a008e Mon Sep 17 00:00:00 2001 From: shumim Date: Thu, 28 Aug 2025 12:04:19 +0000 Subject: [PATCH 074/103] Update file TS28541_NrNrm.yaml --- OpenAPI/TS28541_NrNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index cb180ffc0..84cc6eb17 100755 --- a/OpenAPI/TS28541_NrNrm.yaml +++ b/OpenAPI/TS28541_NrNrm.yaml @@ -1263,7 +1263,7 @@ components: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' - type: object properties: - bWPlist: + bWPList: type: array uniqueItems: true items: -- GitLab From 026cd039f2630a91e0f6856eb2fc1540675d0a5f Mon Sep 17 00:00:00 2001 From: allwang Date: Thu, 4 Sep 2025 07:21:37 +0000 Subject: [PATCH 075/103] Rel19_CR0569_TS28.623_Corrections_on_Trace_Target --- OpenAPI/TS28623_TraceControlNrm.yaml | 49 +++++++++++++++------------- 1 file changed, 26 insertions(+), 23 deletions(-) diff --git a/OpenAPI/TS28623_TraceControlNrm.yaml b/OpenAPI/TS28623_TraceControlNrm.yaml index 1740b967a..a48a8c58d 100644 --- a/OpenAPI/TS28623_TraceControlNrm.yaml +++ b/OpenAPI/TS28623_TraceControlNrm.yaml @@ -27,6 +27,30 @@ components: #-------- Definition of types used in Trace control NRM fragment------------------ + TraceTarget: + type: object + description: Trace target conveying both the type and value of the target ID. For additional details see 3GPP TS 32.422 + properties: + traceTargetType: + type: string + enum: + - IMSI + - IMEI + - IMEISV + - PUBLIC_ID + - UTRAN_CELL + - EUTRAN_CELL + - NGRAN_CELL + - ENB + - RNC + - GNB + - SUPI + - N4_SESSION_ID + traceTargetValueList: + type: array + items: + type: string + jobType-Type: type: string description: Specifies whether the TraceJob represents only MDT, Logged MBSFN MDT, Trace or a combined Trace and MDT job. Applicable for Trace, MDT, RCEF and RLF reporting. See 3GPP TS 32.422 clause 5.9a for additional details. @@ -457,28 +481,7 @@ components: enum: - FILE_BASED - STREAMING - default: FILE_BASED - - traceTarget-Type: - type: object - description: Trace target conveying both the type and value of the target ID. For additional details see 3GPP TS 32.422 - properties: - TargetIdType: - type: string - enum: - - IMSI - - IMEI - - IMEISV - - PUBLIC_ID - - UTRAN_CELL - - E_UTRAN_CELL - - NG_RAN_CELL - - ENB - - RNC - - GNB - - SUPI - TargetIdValue: - type: string + default: FILE_BASED triggeringEvents-Type: type: object @@ -1531,7 +1534,7 @@ components: traceReportingFormat: $ref: '#/components/schemas/traceReportingFormat-Type' traceTarget: - $ref: '#/components/schemas/traceTarget-Type' + $ref: '#/components/schemas/TraceTarget' traceConfig: $ref: '#/components/schemas/traceConfig-Type' mdtConfig: -- GitLab From 709a389df9a483baad4c975947ea08a25c7d28a4 Mon Sep 17 00:00:00 2001 From: hollmann Date: Fri, 8 Aug 2025 08:57:13 +0000 Subject: [PATCH 076/103] Edit TS28111_FaultNrm.yaml: Added the PC values from stage 2; removed PROBABLE_CAUSE_001-005; updated description --- OpenAPI/TS28111_FaultNrm.yaml | 216 ++++++++++++++++++++++++++++++++-- 1 file changed, 207 insertions(+), 9 deletions(-) diff --git a/OpenAPI/TS28111_FaultNrm.yaml b/OpenAPI/TS28111_FaultNrm.yaml index 49619e626..b1fff7185 100644 --- a/OpenAPI/TS28111_FaultNrm.yaml +++ b/OpenAPI/TS28111_FaultNrm.yaml @@ -45,21 +45,219 @@ components: ProbableCause: description: >- The value of the probable cause may be a specific standardized string, or any - vendor provided string. Probable cause strings are not standardized in the - present document. They may be added in a future version. Up to then the - mapping of the generic probable cause strings "PROBABLE_CAUSE_001" to - "PROBABLE_CAUSE_005" is vendor specific. + vendor provided string. The value of the probable cause may also be an integer. The mapping of integer values to probable causes is vendor specific. oneOf: - anyOf: - type: string enum: - - PROBABLE_CAUSE_001 - - PROBABLE_CAUSE_002 - - PROBABLE_CAUSE_003 - - PROBABLE_CAUSE_004 - - PROBABLE_CAUSE_005 + - INDETERMINATE + - ALARM_INDICATION_SIGNAL + - CALL_SETUP_FAILURE + - DEGRADED_SIGNAL + - FAR_END_RECEIVER_FAILURE + - FRAMING_ERROR + - LOSS_OF_FRAME + - LOSS_OF_POINTER + - LOSS_OF_SIGNAL + - PAYLOAD_TYPE_MISMATCH + - REMOTE_ALARM_INTERFACE + - EXCESSIVE_BIT_ERROR_RATE + - PATH_TRACE_MISMATCH + - UNAVAILABLE + - SIGNAL_LABEL_MISMATCH + - LOSS_OF_MULTI_FRAME + - COMMUNICATIONS_RECEIVE_FAILURE + - COMMUNICATIONS_TRANSMIT_FAILURE + - MODULATION_FAILURE + - DEMODULATION_FAILURE + - BACK_PLANE_FAILURE + - DATA_SET_PROBLEM + - EQUIPMENT_IDENTIFIER_DUPLICATION + - EXTERNAL_IF_DEVICE_PROBLEM + - LINE_CARD_PROBLEM + - MULTIPLEXER_PROBLEM + - NE_IDENTIFIER_DUPLICATION + - POWER_PROBLEM + - PROCESSOR_PROBLEM + - PROTECTION_PATH_FAILURE + - RECEIVER_FAILURE + - REPLACEABLE_UNIT_MISSING + - REPLACEABLE_UNIT_TYPE_MISMATCH + - SYNCHRONIZATION_SOURCE_MISMATCH + - TERMINAL_PROBLEM + - TIMING_PROBLEM + - TRANSMITTER_FAILURE + - TRUNK_CARD_PROBLEM + - REPLACEABLE_UNIT_PROBLEM + - REAL_TIME_CLOCK_FAILURE + - PROTECTION_MECHANISM_FAILURE + - PROTECTING_RESOURCE_FAILURE + - AIR_COMPRESSOR_FAILURE + - AIR_CONDITIONING_FAILURE + - AIR_DRYER_FAILURE + - BATTERY_DISCHARGING + - BATTERY_FAILURE + - COMMERCIAL_POWER_FAILURE + - COOLING_FAN_FAILURE + - ENGINE_FAILURE + - FIRE_DETECTOR_FAILURE + - FUSE_FAILURE + - GENERATOR_FAILURE + - LOW_BATTERY_THRESHOLD + - PUMP_FAILURE + - RECTIFIER_FAILURE + - RECTIFIER_HIGH_VOLTAGE + - RECTIFIER_LOW_F_VOLTAGE + - VENTILATION_SYSTEM_FAILURE + - ENCLOSURE_DOOR_OPEN + - EXPLOSIVE_GAS + - FIRE + - FLOOD + - HIGH_HUMIDITY + - HIGH_TEMPERATURE + - HIGH_WIND + - ICE_BUILD_UP + - INTRUSION_DETECTION + - LOW_FUEL + - LOW_HUMIDITY + - LOW_CABLE_PRESSURE + - LOW_TEMPERATURE + - LOW_WATER + - SMOKE + - TOXIC_GAS + - EXTERNAL_POINT_FAILURE + - STORAGE_CAPACITY_PROBLEM + - MEMORY_MISMATCH + - CORRUPT_DATA + - OUT_OF_CPU_CYCLES + - SOFTWARE_ENVIRONMENT_PROBLEM + - SOFTWARE_DOWNLOAD_FAILURE + - LOSS_OF_REAL_TIME + - REINITIALIZED + - EXCESSIVE_ERROR_RATE + - ADAPTER_ERROR + - APPLICATION_SUBSYSTEM_FAILURE + - BANDWIDTH_REDUCED + - COMMUNICATIONS_PROTOCOL_ERROR + - COMMUNICATIONS_SUBSYSTEM_FAILURE + - CONFIGURATION_OR_CUSTOMIZATION_ERROR + - CONGESTION + - CPU_CYCLES_LIMIT_EXCEEDED + - DATA_SET_OR_MODEM_ERROR + - DTE_DCE_INTERFACE_ERROR + - EQUIPMENT_MALFUNCTION + - EXCESSIVE_VIBRATION + - FILE_ERROR + - HEATING_OR_VENTILATION_OR_COOLING_SYSTEM_PROBLEM + - HUMIDITY_UNACCEPTABLE + - INPUT_OUTPUT_DEVICE_ERROR + - INPUT_DEVICE_ERROR + - LAN_ERROR + - LEAK_DETECTED + - LOCAL_NODE_TRANSMISSION_ERROR + - MATERIAL_SUPPLY_EXHAUSTED + - OUT_OF_MEMORY + - OUTPUT_DEVICE_ERROR + - PERFORMANCE_DEGRADED + - PRESSURE_UNACCEPTABLE + - QUEUE_SIZE_EXCEEDED + - RECEIVE_FAILURE + - REMOTE_NODE_TRANSMISSION_ERROR + - RESOURCE_AT_OR_NEARING_CAPACITY + - RESPONSE_TIME_EXCESSIVE + - RETRANSMISSION_RATE_EXCESSIVE + - SOFTWARE_ERROR + - SOFTWARE_PROGRAM_ABNORMALLY_TERMINATED + - SOFTWARE_PROGRAM_ERROR + - TEMPERATURE_UNACCEPTABLE + - THRESHOLD_CROSSED + - TOXIC_LEAK_DETECTED + - TRANSMIT_FAILURE + - UNDERLYING_RESOURCE_UNAVAILABLE + - VERSION_MISMATCH + - A_BIS_TO_BTS_INTERFACE_FAILURE + - A_BIS_TO_TRX_INTERFACE_FAILURE + - ANTENNA_PROBLEM + - BATTERY_BREAKDOWN + - BATTERY_CHARGING_FAULT + - CLOCK_SYNCHRONIZATION_PROBLEM + - COMBINER_PROBLEM + - DISK_PROBLEM + - EXCESSIVE_RECEIVER_TEMPERATURE + - EXCESSIVE_TRANSMITTER_OUTPUT_POWER + - EXCESSIVE_TRANSMITTER_TEMPERATURE + - FREQUENCY_HOPPING_DEGRADED + - FREQUENCY_HOPPING_FAILURE + - FREQUENCY_REDEFINITION_FAILED + - LINE_INTERFACE_FAILURE + - LINK_FAILURE + - LOSS_OF_SYNCHRONIZATION + - LOST_REDUNDANCY + - MAINS_BREAKDOWN_WITH_BATTERY_BACKUP + - MAINS_BREAKDOWN_WITHOUT_BATTERY_BACKUP + - POWER_SUPPLY_FAILURE + - RECEIVER_ANTENNA_FAULT + - RECEIVER_MULTICOUPLER_FAILURE + - REDUCED_TRANSMITTER_OUTPUT_POWER + - SIGNAL_QUALITY_EVALUATION_FAULT + - TIMESLOT_HARDWARE_FAILURE + - TRANSCEIVER_PROBLEM + - TRANSCODER_PROBLEM + - TRANSCODER_OR_RATE_ADAPTER_PROBLEM + - TRANSMITTER_ANTENNA_FAILURE + - TRANSMITTER_ANTENNA_NOT_ADJUSTED + - TRANSMITTER_LOW_VOLTAGE_OR_CURRENT + - TRANSMITTER_OFF_FREQUENCY + - DATABASE_INCONSISTENCY + - FILE_SYSTEM_CALL_UNSUCCESSFUL + - INPUT_PARAMETER_OUT_OF_RANGE + - INVALID_PARAMETER + - INVALID_POINTER + - MESSAGE_NOT_EXPECTED + - MESSAGE_NOT_INITIALIZED + - MESSAGE_OUT_OF_SEQUENCE + - SYSTEM_CALL_UNSUCCESSFUL + - TIMEOUT_EXPIRED + - VARIABLE_OUT_OF_RANGE + - WATCH_DOG_TIMER_EXPIRED + - COOLING_SYSTEM_FAILURE + - EXTERNAL_EQUIPMENT_FAILURE + - EXTERNAL_POWER_SUPPLY_FAILURE + - EXTERNAL_TRANSMISSION_DEVICE_FAILURE + - REDUCED_ALARM_REPORTING + - REDUCED_EVENT_REPORTING + - RECUCED_LOGGING_CAPABILITY + - SYSTEM_RESOURCES_OVERLOAD + - BROADCAST_CHANNEL_FAILURE + - CONNECTION_ESTABLISHMENT_ERROR + - INVALID_MESSAGE_RECEIVED + - INVALID_MSU_RECEIVED + - LAPD_LINK_PROTOCOL_FAILURE + - LOCAL_ALARM_INDICATION + - REMOTE_ALARM_INDICATION + - ROUTING_FAILURE + - SS7_PROTOCOL_FAILURE + - TRANSMISSION_ERROR + - AUTHENTICATION_FAILURE + - BREACH_OF_CONFIDENTIALITY + - CABLE_TAMPER + - DELAYED_INFORMATION + - DENIAL_OF_SERVICE + - DUPLICATE_INFORMATION + - INFORMATION_MISSING + - INFORMATION_MODIFICATION_DETECTED + - INFORMATION_OUT_OF_SEQUENCE + - INTRUSION_DETECTED + - KEY_EXPIRED + - NON_REPUDIATION_FAILURE + - OUT_OF_HOURS_ACTIVITY + - OUT_OF_SERVICE + - PROCEDURAL_ERROR + - UNAUTHORISED_ACCESS_ATTEMPT + - UNEXPECTED_INFORMATION + - UNSPECIFIED_REASON readOnly: true - type: string readOnly: true -- GitLab From 566844752e9bb8068f0ae00b46ad646fce4006db Mon Sep 17 00:00:00 2001 From: lengyelb Date: Wed, 27 Aug 2025 19:02:01 +0200 Subject: [PATCH 077/103] Added: description: Values are from the (informative) Annex B of 3GPP TS 28.111. Edit TS28111_FaultNrm.yaml --- OpenAPI/TS28111_FaultNrm.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/OpenAPI/TS28111_FaultNrm.yaml b/OpenAPI/TS28111_FaultNrm.yaml index b1fff7185..4e52a1c85 100644 --- a/OpenAPI/TS28111_FaultNrm.yaml +++ b/OpenAPI/TS28111_FaultNrm.yaml @@ -51,6 +51,7 @@ components: oneOf: - anyOf: - type: string + description: Values are from the (informative) Annex B of 3GPP TS 28.111. enum: - INDETERMINATE - ALARM_INDICATION_SIGNAL -- GitLab From 7044125aa999d63b63f4d459fe45b3af4175dae2 Mon Sep 17 00:00:00 2001 From: shixixi Date: Thu, 4 Sep 2025 03:17:00 +0000 Subject: [PATCH 078/103] Edit TS28541_NrNrm.yaml --- OpenAPI/TS28541_NrNrm.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index 84cc6eb17..9bab3d4dd 100755 --- a/OpenAPI/TS28541_NrNrm.yaml +++ b/OpenAPI/TS28541_NrNrm.yaml @@ -159,12 +159,12 @@ components: type: string description: >- Time of day is in HH:MM or H:MM 24-hour format per UTC time zone. - Examples, 20:15:00, 20:15:00-08:00 (for 8 hours behind UTC). + Examples, 20:15, 20:15-08:00 (for 8 hours behind UTC). endTime: type: string description: >- Time of day is in HH:MM or H:MM 24-hour format per UTC time zone. - Examples, 20:15:00, 20:15:00-08:00 (for 8 hours behind UTC). + Examples, 20:15, 20:15-08:00 (for 8 hours behind UTC). daysOfWeek: type: string enum: -- GitLab From 9db832c7d3a46feee17840100ac95356a56c4770 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 4 Sep 2025 14:05:25 +0000 Subject: [PATCH 079/103] Code Moderator manually merge the MR1884 --- OpenAPI/TS28541_5GcNrm.yaml | 40 +++++++++++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/OpenAPI/TS28541_5GcNrm.yaml b/OpenAPI/TS28541_5GcNrm.yaml index ca3c0e415..91a5ade44 100755 --- a/OpenAPI/TS28541_5GcNrm.yaml +++ b/OpenAPI/TS28541_5GcNrm.yaml @@ -1755,6 +1755,21 @@ components: mappingInd: type: boolean default: false + taiList: + type: array + uniqueItems: true + items: + $ref: 'TS29571_CommonData.yaml#/components/schemas/Tai' + minItems: 1 + taiRangeList: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/TaiRange' + minItems: 1 + vflInfo: + $ref: '#/components/schemas/VflInfo' + SnssaiInfoItem: description: > Parameters supported by an NF for a given S-NSSAI Set of parameters supported by NF @@ -3727,6 +3742,31 @@ components: - W_AGF - TWIF - TSN_AF + VflInfo: + description: Indicates the Vfl capability supported by the NWDAF/TrustAF/unTrustAF + type: object + properties: + vflAnalyticsIds: + type: array + uniqueItems: true + items: + $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NwdafEvent' + minItems: 1 + vflCapabilityType: + type: string + enum: + - VFL_SERVER + - VFL_CLIENT + - VFL_SERVER_AND_CLIENT + vflClientAggrCap: + type: boolean + default: false + vflTimeInterval: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + vflInterInfo: + $ref: '#/components/schemas/VendorId' + featureId: + type: string OperationSemantics: type: string -- GitLab From 640ff5a4422fdd253793c4590ad5949cc52c27fd Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 4 Sep 2025 14:13:46 +0000 Subject: [PATCH 080/103] Code Moderator manually merge MR1834 --- OpenAPI/TS28541_5GcNrm.yaml | 72 +++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/OpenAPI/TS28541_5GcNrm.yaml b/OpenAPI/TS28541_5GcNrm.yaml index 91a5ade44..df678448d 100755 --- a/OpenAPI/TS28541_5GcNrm.yaml +++ b/OpenAPI/TS28541_5GcNrm.yaml @@ -960,6 +960,78 @@ components: uniqueItems: true items: $ref: '#/components/schemas/ServiceFeatureMap' + protoDescDl: + $ref: '#/components/schemas/ProtocolDescription' + protoDescUl: + $ref: '#/components/schemas/ProtocolDescription' + + ProtocolDescription: + type: object + properties: + transportProto: + anyOf: + - type: string + enum: + - RTP + - SRTP + - MOQT + - type: string + rtpHeaderExtInfo: + $ref: '#/components/schemas/RtpHeaderExtInfo' + addRtpHeaderExtInfo: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/RtpHeaderExtInfo' + rtpPayloadInfoList: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/RtpPayloadInfo' + mriTransferInfo: + type: string + + + RtpHeaderExtInfo: + description: RTP Header Extension information + type: object + properties: + rtpHeaderExtType: + anyOf: + - type: string + enum: + - PDU_SET_MARKING + - DYN_CHANGING_TRAFFIC_CHAR + - type: string + rtpHeaderExtId: + type: integer + minimum: 1 + maximum: 255 + longFormat: + type: boolean + pduSetSizeActive: + type: boolean + pduSetPduCountActive: + type: boolean + + RtpPayloadInfo: + description: RtpPayloadInfo contains Rtp payload type and format. + type: object + properties: + rtpPayloadTypeList: + type: array + items: + type: integer + minimum: 0 + maximum: 127 + minItems: 1 + rtpPayloadFormat: + anyOf: + - type: string + enum: + - H264 + - H265 + - type: string SnssaiInfo: type: object -- GitLab From f29523ad5f04e4e361ecd45a61f012bc4c40f59d Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 4 Sep 2025 14:23:36 +0000 Subject: [PATCH 081/103] Code Moderator maanually merge MR1810 --- OpenAPI/TS28541_5GcNrm.yaml | 127 ++++++++++++++++++++++++++++++++++-- 1 file changed, 121 insertions(+), 6 deletions(-) diff --git a/OpenAPI/TS28541_5GcNrm.yaml b/OpenAPI/TS28541_5GcNrm.yaml index df678448d..f662c2032 100755 --- a/OpenAPI/TS28541_5GcNrm.yaml +++ b/OpenAPI/TS28541_5GcNrm.yaml @@ -583,6 +583,63 @@ components: items: $ref: '#/components/schemas/SelectionConditions' minItems: 1 + 2G3GLocationArea: + description: 2G/3G Location Area. + type: object + properties: + lai: + $ref: 'TS29571_CommonData.yaml#/components/schemas/LocationAreaId' + rai: + $ref: 'TS29571_CommonData.yaml#/components/schemas/RoutingAreaId' + 2G3GLocationAreaRange: + description: 2G/3G Location Area Range. + type: object + properties: + laiRange: + $ref: '#/components/schemas/LocationAreaIdRange' + raiRange: + $ref: '#/components/schemas/RoutingAreaIdRange' + LocationAreaIdRange: + description: Location Area ID Range. + type: object + required: + - plmnId + - startLac + - endLac + properties: + plmnId: + $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' + startLac: + type: string + pattern: '^[A-Fa-f0-9]{4}$' + endLac: + type: string + pattern: '^[A-Fa-f0-9]{4}$' + RoutingAreaIdRange: + description: Routing Area ID Range. + type: object + required: + - plmnId + - startLac + - endLac + - startRac + - endRac + properties: + plmnId: + $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' + startLac: + type: string + pattern: '^[A-Fa-f0-9]{4}$' + endLac: + type: string + pattern: '^[A-Fa-f0-9]{4}$' + startRac: + type: string + pattern: '^[A-Fa-f0-9]{2}$' + endRac: + type: string + pattern: '^[A-Fa-f0-9]{2}$' + SelectionConditions: description: > It contains the set of conditions that shall be evaluated to determine whether a consumer @@ -2479,12 +2536,43 @@ components: supportedPfcpFeatures: type: string readOnly: true - # upfEvents: - # type: array uniqueItems: true - # items: - # $ref: 'TS29564_Nupf_EventExposure.yaml#/components/schemas/EventType' - # minItems: 1 + upfEvents: + type: array + uniqueItems: true + items: + type: string + minItems: 1 + 2g3gLocationAreaList: + type: array + items: + $ref: '#/components/schemas/2G3GLocationArea' + minItems: 1 + 2g3gLocationAreaRangeList: + type: array + items: + $ref: '#/components/schemas/2G3GLocationAreaRange' + minItems: 1 + preferredEpdgInfoList: + type: array + items: + $ref: '#/components/schemas/IpInterface' + minItems: 1 + preferredWAgfInfoList: + type: array + items: + $ref: '#/components/schemas/IpInterface' + minItems: 1 + preferredTngfInfoList: + type: array + items: + $ref: '#/components/schemas/IpInterface' + minItems: 1 + preferredTwifInfoList: + type: array + items: + $ref: '#/components/schemas/IpInterface' + minItems: 1 PcfInfo: description: Information of a PCF NF Instance @@ -3558,7 +3646,10 @@ components: type: object required: - sNssai - - dnnUpfInfoList + anyOf: + - required: [ dnnUpfInfoList ] + - required: [ dnnUpfInfoListId ] + properties: sNssai: $ref: 'TS29571_CommonData.yaml#/components/schemas/ExtSnssai' @@ -3571,6 +3662,13 @@ components: redundantTransport: type: boolean default: false + interfaceUpfInfoList: + type: array + items: + $ref: '#/components/schemas/InterfaceUpfInfoItem' + minItems: 1 + dnnUpfInfoListId: + type: integer IpIndex: description: Represents the IP Index to be sent from UDM to the SMF (its value can be either an integer or a string) anyOf: @@ -3637,6 +3735,23 @@ components: additionalProperties: type: string minProperties: 1 + interfaceUpfInfoList: + type: array + items: + $ref: '#/components/schemas/InterfaceUpfInfoItem' + minItems: 1 + privateIpv4AddressRangesPerIpDomain: + description: > + Map of private IPv4 Address Ranges Per Ip Domain, where the key of the map is the IP. + Domain. When present, the value of each entry of the map shall contain a IPv4 private + address ranges configured for that IP domain. + type: object + additionalProperties: + type: array + items: + $ref: '#/components/schemas/Ipv4AddressRange' + minItems: 1 + minProperties: 1 not: required: [ networkInstance, dnaiNwInstanceList ] MnpfInfo: -- GitLab From 8ce3d072995461b2cd2df3ecb4b41d5c5b0a9de9 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 4 Sep 2025 14:32:49 +0000 Subject: [PATCH 082/103] Revert "Code Moderator maanually merge MR1810" This reverts commit f29523ad5f04e4e361ecd45a61f012bc4c40f59d --- OpenAPI/TS28541_5GcNrm.yaml | 127 ++---------------------------------- 1 file changed, 6 insertions(+), 121 deletions(-) diff --git a/OpenAPI/TS28541_5GcNrm.yaml b/OpenAPI/TS28541_5GcNrm.yaml index f662c2032..df678448d 100755 --- a/OpenAPI/TS28541_5GcNrm.yaml +++ b/OpenAPI/TS28541_5GcNrm.yaml @@ -583,63 +583,6 @@ components: items: $ref: '#/components/schemas/SelectionConditions' minItems: 1 - 2G3GLocationArea: - description: 2G/3G Location Area. - type: object - properties: - lai: - $ref: 'TS29571_CommonData.yaml#/components/schemas/LocationAreaId' - rai: - $ref: 'TS29571_CommonData.yaml#/components/schemas/RoutingAreaId' - 2G3GLocationAreaRange: - description: 2G/3G Location Area Range. - type: object - properties: - laiRange: - $ref: '#/components/schemas/LocationAreaIdRange' - raiRange: - $ref: '#/components/schemas/RoutingAreaIdRange' - LocationAreaIdRange: - description: Location Area ID Range. - type: object - required: - - plmnId - - startLac - - endLac - properties: - plmnId: - $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' - startLac: - type: string - pattern: '^[A-Fa-f0-9]{4}$' - endLac: - type: string - pattern: '^[A-Fa-f0-9]{4}$' - RoutingAreaIdRange: - description: Routing Area ID Range. - type: object - required: - - plmnId - - startLac - - endLac - - startRac - - endRac - properties: - plmnId: - $ref: 'TS29571_CommonData.yaml#/components/schemas/PlmnId' - startLac: - type: string - pattern: '^[A-Fa-f0-9]{4}$' - endLac: - type: string - pattern: '^[A-Fa-f0-9]{4}$' - startRac: - type: string - pattern: '^[A-Fa-f0-9]{2}$' - endRac: - type: string - pattern: '^[A-Fa-f0-9]{2}$' - SelectionConditions: description: > It contains the set of conditions that shall be evaluated to determine whether a consumer @@ -2536,43 +2479,12 @@ components: supportedPfcpFeatures: type: string readOnly: true + # upfEvents: + # type: array uniqueItems: true - upfEvents: - type: array - uniqueItems: true - items: - type: string - minItems: 1 - 2g3gLocationAreaList: - type: array - items: - $ref: '#/components/schemas/2G3GLocationArea' - minItems: 1 - 2g3gLocationAreaRangeList: - type: array - items: - $ref: '#/components/schemas/2G3GLocationAreaRange' - minItems: 1 - preferredEpdgInfoList: - type: array - items: - $ref: '#/components/schemas/IpInterface' - minItems: 1 - preferredWAgfInfoList: - type: array - items: - $ref: '#/components/schemas/IpInterface' - minItems: 1 - preferredTngfInfoList: - type: array - items: - $ref: '#/components/schemas/IpInterface' - minItems: 1 - preferredTwifInfoList: - type: array - items: - $ref: '#/components/schemas/IpInterface' - minItems: 1 + # items: + # $ref: 'TS29564_Nupf_EventExposure.yaml#/components/schemas/EventType' + # minItems: 1 PcfInfo: description: Information of a PCF NF Instance @@ -3646,10 +3558,7 @@ components: type: object required: - sNssai - anyOf: - - required: [ dnnUpfInfoList ] - - required: [ dnnUpfInfoListId ] - + - dnnUpfInfoList properties: sNssai: $ref: 'TS29571_CommonData.yaml#/components/schemas/ExtSnssai' @@ -3662,13 +3571,6 @@ components: redundantTransport: type: boolean default: false - interfaceUpfInfoList: - type: array - items: - $ref: '#/components/schemas/InterfaceUpfInfoItem' - minItems: 1 - dnnUpfInfoListId: - type: integer IpIndex: description: Represents the IP Index to be sent from UDM to the SMF (its value can be either an integer or a string) anyOf: @@ -3735,23 +3637,6 @@ components: additionalProperties: type: string minProperties: 1 - interfaceUpfInfoList: - type: array - items: - $ref: '#/components/schemas/InterfaceUpfInfoItem' - minItems: 1 - privateIpv4AddressRangesPerIpDomain: - description: > - Map of private IPv4 Address Ranges Per Ip Domain, where the key of the map is the IP. - Domain. When present, the value of each entry of the map shall contain a IPv4 private - address ranges configured for that IP domain. - type: object - additionalProperties: - type: array - items: - $ref: '#/components/schemas/Ipv4AddressRange' - minItems: 1 - minProperties: 1 not: required: [ networkInstance, dnaiNwInstanceList ] MnpfInfo: -- GitLab From e9f2a9edcf14333494c413ad54efc7c50e17c76f Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 4 Sep 2025 14:40:33 +0000 Subject: [PATCH 083/103] Revert "Code Moderator manually merge MR1834" This reverts commit 640ff5a4422fdd253793c4590ad5949cc52c27fd --- OpenAPI/TS28541_5GcNrm.yaml | 72 ------------------------------------- 1 file changed, 72 deletions(-) diff --git a/OpenAPI/TS28541_5GcNrm.yaml b/OpenAPI/TS28541_5GcNrm.yaml index df678448d..91a5ade44 100755 --- a/OpenAPI/TS28541_5GcNrm.yaml +++ b/OpenAPI/TS28541_5GcNrm.yaml @@ -960,78 +960,6 @@ components: uniqueItems: true items: $ref: '#/components/schemas/ServiceFeatureMap' - protoDescDl: - $ref: '#/components/schemas/ProtocolDescription' - protoDescUl: - $ref: '#/components/schemas/ProtocolDescription' - - ProtocolDescription: - type: object - properties: - transportProto: - anyOf: - - type: string - enum: - - RTP - - SRTP - - MOQT - - type: string - rtpHeaderExtInfo: - $ref: '#/components/schemas/RtpHeaderExtInfo' - addRtpHeaderExtInfo: - type: array - uniqueItems: true - items: - $ref: '#/components/schemas/RtpHeaderExtInfo' - rtpPayloadInfoList: - type: array - uniqueItems: true - items: - $ref: '#/components/schemas/RtpPayloadInfo' - mriTransferInfo: - type: string - - - RtpHeaderExtInfo: - description: RTP Header Extension information - type: object - properties: - rtpHeaderExtType: - anyOf: - - type: string - enum: - - PDU_SET_MARKING - - DYN_CHANGING_TRAFFIC_CHAR - - type: string - rtpHeaderExtId: - type: integer - minimum: 1 - maximum: 255 - longFormat: - type: boolean - pduSetSizeActive: - type: boolean - pduSetPduCountActive: - type: boolean - - RtpPayloadInfo: - description: RtpPayloadInfo contains Rtp payload type and format. - type: object - properties: - rtpPayloadTypeList: - type: array - items: - type: integer - minimum: 0 - maximum: 127 - minItems: 1 - rtpPayloadFormat: - anyOf: - - type: string - enum: - - H264 - - H265 - - type: string SnssaiInfo: type: object -- GitLab From a0959ad7873b5549d4dc1019f07d27f4010632e3 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 4 Sep 2025 14:48:33 +0000 Subject: [PATCH 084/103] Revert "Code Moderator manually merge the MR1884" This reverts commit 9db832c7d3a46feee17840100ac95356a56c4770 --- OpenAPI/TS28541_5GcNrm.yaml | 40 ------------------------------------- 1 file changed, 40 deletions(-) diff --git a/OpenAPI/TS28541_5GcNrm.yaml b/OpenAPI/TS28541_5GcNrm.yaml index 91a5ade44..ca3c0e415 100755 --- a/OpenAPI/TS28541_5GcNrm.yaml +++ b/OpenAPI/TS28541_5GcNrm.yaml @@ -1755,21 +1755,6 @@ components: mappingInd: type: boolean default: false - taiList: - type: array - uniqueItems: true - items: - $ref: 'TS29571_CommonData.yaml#/components/schemas/Tai' - minItems: 1 - taiRangeList: - type: array - uniqueItems: true - items: - $ref: '#/components/schemas/TaiRange' - minItems: 1 - vflInfo: - $ref: '#/components/schemas/VflInfo' - SnssaiInfoItem: description: > Parameters supported by an NF for a given S-NSSAI Set of parameters supported by NF @@ -3742,31 +3727,6 @@ components: - W_AGF - TWIF - TSN_AF - VflInfo: - description: Indicates the Vfl capability supported by the NWDAF/TrustAF/unTrustAF - type: object - properties: - vflAnalyticsIds: - type: array - uniqueItems: true - items: - $ref: 'TS29520_Nnwdaf_EventsSubscription.yaml#/components/schemas/NwdafEvent' - minItems: 1 - vflCapabilityType: - type: string - enum: - - VFL_SERVER - - VFL_CLIENT - - VFL_SERVER_AND_CLIENT - vflClientAggrCap: - type: boolean - default: false - vflTimeInterval: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' - vflInterInfo: - $ref: '#/components/schemas/VendorId' - featureId: - type: string OperationSemantics: type: string -- GitLab From a71430510927200772d5332161bd076f35746ca8 Mon Sep 17 00:00:00 2001 From: gautamd Date: Fri, 8 Aug 2025 09:45:40 +0000 Subject: [PATCH 085/103] Add new file --- OpenAPI/CCLNrm | 137 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 OpenAPI/CCLNrm diff --git a/OpenAPI/CCLNrm b/OpenAPI/CCLNrm new file mode 100644 index 000000000..2c1d5feda --- /dev/null +++ b/OpenAPI/CCLNrm @@ -0,0 +1,137 @@ +openapi: 3.0.1 +info: + title: CCL NRM + version: 19.3.0 + description: >- + OAS 3.0.1 definition of the CCL NRM + © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). + All rights reserved. +externalDocs: + description: 3GPP TS 28.567; management aspect of closed control loops + url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.567/ +paths: {} +components: + schemas: + + #-------- Definition of types for name-containments ------ + SubNetwork-ncO-CCLNrm: + type: object + properties: + ClosedControlLoop: + $ref: '#/components/schemas/ClosedControlLoop-Multiple' + + #-------Definition of generic IOCs ----------# + + ClosedControlLoop-Single: + description: >- + This IOC represents the properties of an CCL management information between MnS consumer and MnS producer. + allOf: + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - type: object + properties: + cCLComponentsInfo: + type: array + items: + $ref: '#/components/schemas/CCLComponentsInfo' + description: >- + It indicates information on the constituent components of a CCL. + administrativeState: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/AdministrativeState' + operationalState: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/AdministrativeState' + cCLPriority: + type: integer + minimum: 1 + maximum: 10 + description: This provides the priority of the CCL. This will be the numerical value between 1 to 10, with 1 being the least priority. + cCLComponentList: + type: array + items: + $ref: '#/components/schemas/CCLComponent' + description: >- + It indicates the list of components ating as steps of the CCL. + cCLType: + type: string + enum: + - ENERGYOPTIMIZATION + - SLICEASSURANCE + cCLActionTrigger: + type: array + items: + $ref: '#/components/schemas/CCLTrigger' + description: >- + This defines the criteria/conditions under which the CCL is allowed to take actions.. + desiredBehavior: + type: string + enum: + - DECISION_ACTIVATION + - NOTIFY_RCOMMENDATION + - DO_NOTHING + cCLPurposeRefList: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + CCLScope-Single: + description: It indicates a scope of a CCL. + allOf: + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - type: object + properties: + cCLPurposeRefList: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + CCLReport-Single: + description: This class represents the reported outcomes on a CCL instance. + allOf: + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - type: object + properties: + scopeType: + type: string + enum: + - CCL_MEASUREMENT_SCOPE + - CCL_TARGET_SCOPE + - CCL_CONTROL_SCOPE + - CCL_IMPACT_SCOPE + ConflictManagementAndCoordinationEntity-Single: + description: This defines the conflict management functionality. + allOf: + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - type: object + properties: + coordinationCapability: + type: array + items: + $ref: '#/components/schemas/CoordinationCapability' + description: >- + It indicates a capability of a coordination entity to coordinate CCL conflicts. + coordinatedCCLsScopes + type: string + cCLActionConflictsHandling: + $ref: '#/components/schemas/CCLActionConflictsHandling' + FaultManagement: + description: This IOC represents the Fault Management CCL purpose. + allOf: + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - type: object + properties: + FaultManagementAlarmIdList: + type: string + FaultManagementBackUpObjectRequirement + type: boolean + FaultManagementIsolateObjectRequirement + type: boolean + FaultManagementTimeWindow: + $ref: '#/components/schemas/TimeWindow' + clearUserId: + type: string + + #-------Definition of the generic dataType --------------# + + + #-------Definition of the generic dataType --------------# + + #------Definition of JSON arrays for name-contained IOCs ---------------# + + resources-CCLNrm: + oneOf: + - $ref: '#/components/schemas/ClosedControlLoop-Single' + - $ref: '#/components/schemas/CCLScope-Single' + - $ref: '#/components/schemas/CCLReport-Single' \ No newline at end of file -- GitLab From b4c1b4cfee88e67afb6a0a6aa48e4027eb5fc895 Mon Sep 17 00:00:00 2001 From: gautamd Date: Fri, 8 Aug 2025 09:50:13 +0000 Subject: [PATCH 086/103] Edit CCLNrm --- OpenAPI/CCLNrm | 26 +++++++++++++------------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/OpenAPI/CCLNrm b/OpenAPI/CCLNrm index 2c1d5feda..79729b565 100644 --- a/OpenAPI/CCLNrm +++ b/OpenAPI/CCLNrm @@ -52,21 +52,21 @@ components: It indicates the list of components ating as steps of the CCL. cCLType: type: string - enum: - - ENERGYOPTIMIZATION - - SLICEASSURANCE + enum: + - ENERGYOPTIMIZATION + - SLICEASSURANCE cCLActionTrigger: type: array items: $ref: '#/components/schemas/CCLTrigger' description: >- - This defines the criteria/conditions under which the CCL is allowed to take actions.. - desiredBehavior: + This defines the criteria/conditions for CCL + desiredBehavior: type: string - enum: - - DECISION_ACTIVATION - - NOTIFY_RCOMMENDATION - - DO_NOTHING + enum: + - DECISION_ACTIVATION + - NOTIFY_RCOMMENDATION + - DO_NOTHING cCLPurposeRefList: $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' CCLScope-Single: @@ -102,11 +102,11 @@ components: $ref: '#/components/schemas/CoordinationCapability' description: >- It indicates a capability of a coordination entity to coordinate CCL conflicts. - coordinatedCCLsScopes + coordinatedCCLsScopes: type: string cCLActionConflictsHandling: $ref: '#/components/schemas/CCLActionConflictsHandling' - FaultManagement: + FaultManagement: description: This IOC represents the Fault Management CCL purpose. allOf: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' @@ -114,9 +114,9 @@ components: properties: FaultManagementAlarmIdList: type: string - FaultManagementBackUpObjectRequirement + FaultManagementBackUpObjectRequirement: type: boolean - FaultManagementIsolateObjectRequirement + FaultManagementIsolateObjectRequirement: type: boolean FaultManagementTimeWindow: $ref: '#/components/schemas/TimeWindow' -- GitLab From 78337781cf57470ab7fb61093d609ddb95e7e570 Mon Sep 17 00:00:00 2001 From: gautamd Date: Fri, 8 Aug 2025 10:45:13 +0000 Subject: [PATCH 087/103] Edit CCLNrm --- OpenAPI/CCLNrm | 120 +++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 107 insertions(+), 13 deletions(-) diff --git a/OpenAPI/CCLNrm b/OpenAPI/CCLNrm index 79729b565..5a553205d 100644 --- a/OpenAPI/CCLNrm +++ b/OpenAPI/CCLNrm @@ -56,11 +56,7 @@ components: - ENERGYOPTIMIZATION - SLICEASSURANCE cCLActionTrigger: - type: array - items: - $ref: '#/components/schemas/CCLTrigger' - description: >- - This defines the criteria/conditions for CCL + type: string desiredBehavior: type: string enum: @@ -97,9 +93,7 @@ components: - type: object properties: coordinationCapability: - type: array - items: - $ref: '#/components/schemas/CoordinationCapability' + type: string description: >- It indicates a capability of a coordination entity to coordinate CCL conflicts. coordinatedCCLsScopes: @@ -119,19 +113,119 @@ components: FaultManagementIsolateObjectRequirement: type: boolean FaultManagementTimeWindow: - $ref: '#/components/schemas/TimeWindow' + $ref: 'TS28623_GenericNrm.yaml#/components/schemas/TimeWindow' clearUserId: type: string - #-------Definition of the generic dataType --------------# - +#-------Definition of the generic dataType --------------# + CCLComponentsInfo: + type: object + properties: + cCLComponentId: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + cCLSteps: + type: string + enum: + - DATA_COLLECTION + - ANALYSIS + - DECISION + - EXECUTION + CCLComponent: + type: object + properties: + cCLComponentIdentification: + type: string + cCLComponentRole: + type: string + enum: + - MONITOR + - ANALYSIS + - DECISION + - EXECUTION + - OTHER + FaultManagementCCLReport: + type: object + properties: + GeneratedAlarmResultList: + type: array + items: + type: string + FaultManagementCCLReportTime: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime' + + GeneratedAlarmResult: + type: object + properties: + alarmId: + type: string + alarmClearedStatus: + type: boolean + identifiedRootCauseInformation: + type: string + enhancedCorrelationInformation: + type: array + items: + type: string + + CCLScopeCoordinationCapability: + type: object + properties: + cCLCoordinationCapabilityID: + type: string + + CCLActionConflictsHandling: + type: object + properties: + conflictInformation: + $ref: '#/components/schemas/ConflictInformation' + conflictResolution: + $ref: '#/components/schemas/ConflictResolution' + targetCCL: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + + ConflictInformation: + type: object + properties: + conflictingCCLId: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + conflictingActions: + type: string + + ConflictResolution: + type: object + properties: + conflictingCCLId: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + cCLGoalBreachPercentage: + type: integer + #-------Definition of the generic dataType --------------# - #-------Definition of the generic dataType --------------# #------Definition of JSON arrays for name-contained IOCs ---------------# + ClosedControlLoop-Multiple: + type: array + items: + $ref: '#/components/schemas/ClosedControlLoop-Single' + + CCLScope-Multiple: + type: array + items: + $ref: '#/components/schemas/CCLScope-Single' + + CCLReport-Multiple: + type: array + items: + $ref: '#/components/schemas/CCLReport-Single' + + ConflictManagementAndCoordinationEntity-Multiple: + type: array + items: + $ref: '#/components/schemas/ConflictManagementAndCoordinationEntity-Single' + resources-CCLNrm: oneOf: - $ref: '#/components/schemas/ClosedControlLoop-Single' - $ref: '#/components/schemas/CCLScope-Single' - - $ref: '#/components/schemas/CCLReport-Single' \ No newline at end of file + - $ref: '#/components/schemas/CCLReport-Single' + - $ref: '#/components/schemas/ConflictManagementAndCoordinationEntity-Single' \ No newline at end of file -- GitLab From d425a1dda111f63cde5604b50a5d6516e09898bd Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 4 Sep 2025 13:29:14 +0000 Subject: [PATCH 088/103] Code Moderator udpate the file format and file name --- OpenAPI/{CCLNrm => TS28567_CclNrm.yaml} | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename OpenAPI/{CCLNrm => TS28567_CclNrm.yaml} (95%) diff --git a/OpenAPI/CCLNrm b/OpenAPI/TS28567_CclNrm.yaml similarity index 95% rename from OpenAPI/CCLNrm rename to OpenAPI/TS28567_CclNrm.yaml index 5a553205d..5c995eaf0 100644 --- a/OpenAPI/CCLNrm +++ b/OpenAPI/TS28567_CclNrm.yaml @@ -1,10 +1,10 @@ openapi: 3.0.1 info: title: CCL NRM - version: 19.3.0 + version: 19.0.0 description: >- OAS 3.0.1 definition of the CCL NRM - © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). + © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 28.567; management aspect of closed control loops -- GitLab From 7ce64a153fe08a33988da669f223b075ea05fef8 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Thu, 4 Sep 2025 13:33:26 +0000 Subject: [PATCH 089/103] Update file TS28567_CclNrm.yaml --- OpenAPI/TS28567_CclNrm.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/OpenAPI/TS28567_CclNrm.yaml b/OpenAPI/TS28567_CclNrm.yaml index 5c995eaf0..1cd88fcd3 100644 --- a/OpenAPI/TS28567_CclNrm.yaml +++ b/OpenAPI/TS28567_CclNrm.yaml @@ -113,7 +113,7 @@ components: FaultManagementIsolateObjectRequirement: type: boolean FaultManagementTimeWindow: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/TimeWindow' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' clearUserId: type: string -- GitLab From 5c7f5e41516d918da9dbeb12a5bcc290c2fb0554 Mon Sep 17 00:00:00 2001 From: Hassan Al-Kanani Date: Wed, 13 Aug 2025 10:35:05 +0100 Subject: [PATCH 090/103] this presents the stage 3 for the current draftCR for Rel-19 --- OpenAPI/TS28105_AiMlNrm.yaml | 202 ++++++++++++++++++++++++++++++++++- 1 file changed, 197 insertions(+), 5 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index f76a2a491..a3d667982 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -167,7 +167,12 @@ components: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTimeRo' # FIXME, isOrder/isUnique both as True inferencePerformance: - $ref: '#/components/schemas/ModelPerformance' + $ref: '#/components/schemas/ModelPerformance' + inferenceExplanationInfo: + type: array + uniqueItems: true + items: + type: string outputResult: description: A map (list of key-value pairs) for Inference result name and it's value $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet' @@ -187,7 +192,142 @@ components: - NG_RAN_MOBILITY_OPTIMIZATION VSExtensionType: type: string - + DataStatisticalProperties: + type: object + properties: + uniformlyDistributedTrainingData: + type: boolean + default: FALSE + trainingDataWithOrWithoutOutliers: + type: boolean + default: FALSE + DistributedTrainingExpectation: + type: object + properties: + expectedTrainingTime: + type: integer + dataSplitIndication: + type: boolean + default: FALSE + suggestedTrainingNodeList: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' + PotentialImpactInfo: + type: object + properties: + impactedScope: + $ref: '#/components/schemas/ManagedActivationScope' + impactedPM: + type: array + items: + $ref: '#/components/schemas/ImpactedPM' + ImpactedPM: + type: object + properties: + pMIdentifier: + type: string + readOnly: true + MLKnowldge: + type: object + properties: + mLKnowledgeName: + type: string + readOnly: true + knowledgeType: + type: string + enum: + - TABLE + - STATISTIC + - REGRESSION + readOnly: true + predictorResponseArray: + # array of pair + type: array + description: Array of pair + uniqueItems: true + items: + type: array + description: >- + A pair of DN, First is the DN of a CCL being coordinated represented, + and Second is the DN of that CCL’s CCLScope + minItems: 2 + maxItems: 2 + items: + type: string + EnvironmentScope: + oneOf: + - type: object + #Choice_1.1 managedEntitiesScope + #Choice_1.2 areaScope + #Choice 2 timeWindow + #todo: stage 2 attribute definition missing + SupportedLearningTechnology: + type: object + properties: + learningTechnologyName: + type: array + uniqueItems: true + items: + type: string + enum: + - RL + - FL + - DL + readOnly: true + supportedEnvironment: + type: array + uniqueItems: true + items: + type: string + enum: + - SIMULATION_ENVIONMENTS + - REAL_NETWORK_ENVIONMENTS + readOnly: true + supportedInferenceNameList: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/AIMLInferenceName' + minItems: 1 + RLRequirement: + type: object + properties: + rLEnvironmentType: + type: array + uniqueItems: true + items: + type: string + enum: + - SIMULATION_ENVIONMENTS + - REAL_NETWORK_ENVIONMENTS + rLEnvironmentScope: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/EnvironmentScope' + minItems: 1 + rLImpactedScope: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/EnvironmentScope' + minItems: 1 + rLPerformanceRequirements: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ThresholdMonitorNrm.yaml#/components/schemas/ThresholdInfo' + ClusteringCriteria: + type: object + properties: + performanceMetric: + type: string + taskType: + type: string + allowedClusterTrainingTime: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + preferredModelDiversity: + type: string + #-------- Definition of types for name-containments ------ SubNetwork-ncO-AiMlNrm: type: object @@ -233,6 +373,18 @@ components: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/ManagedFunction-Attr' - type: object properties: + supportedLearningTechnology: + $ref: '#/components/schemas/SupportedLearningTechnology' + mLKnowledge: + $ref: '#/components/schemas/MLKnowldge' + mLTrainingType: + type: string + enum: + - INITIAL_TRAINING + - PRE_SPECIALISED_TRAINING + - RE_TRAINING + - FINE_TUNING + readOnly: true mLModelRepositoryRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/ManagedFunction-ncO' @@ -282,10 +434,35 @@ components: uniqueItems: true items: $ref: '#/components/schemas/ModelPerformance' + rLRequirement: + $ref: '#/components/schemas/RLRequirement' cancelRequest: type: boolean suspendRequest: - type: boolean + type: boolean + trainingDataStatisticalProperties: + $ref: '#/components/schemas/DataStatisticalProperties' + distributedTrainingExpectation: + $ref: '#/components/schemas/DistributedTrainingExpectation' + mLKnowledgeName: + type: string + mLTrainingType: + type: string + enum: + - INITIAL_TRAINING + - PRE_SPECIALISED_TRAINING + - RE_TRAINING + - FINE_TUNING + expectedInferenceScope: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/AIMLInferenceName' + clusteringInfo: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/ClusteringCriteria' mLModelRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' mLModelCoordinationGroupRef: @@ -448,7 +625,7 @@ components: type: boolean default: FALSE mLModelToLoadRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' MLModelLoadingPolicy-Single: allOf: @@ -488,7 +665,7 @@ components: mLModelLoadingPolicyRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' loadedMLModelRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' MLModel-Single: allOf: @@ -524,6 +701,19 @@ components: items: $ref: '#/components/schemas/MLCapabilityInfo' minItems: 1 + mLTrainingType: + type: string + enum: + - INITIAL_TRAINING + - PRE_SPECIALISED_TRAINING + - RE_TRAINING + - FINE_TUNING + readOnly: true + inferenceScope: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/AIMLInferenceName' retrainingEventsMonitorRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' sourceTrainedMLModelRef: @@ -706,6 +896,8 @@ components: items: $ref: '#/components/schemas/InferenceOutput' minItems: 1 + potentialImpactInfo: + $ref: '#/components/schemas/PotentialImpactInfo' mLModelRefList: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' -- GitLab From cba7845d15960ad2e308c837a90a2cb0b1a44137 Mon Sep 17 00:00:00 2001 From: rosabolzek Date: Fri, 15 Aug 2025 12:42:41 +0000 Subject: [PATCH 091/103] stage 3 for the current draftCR for Rel-19_TS28.105 --- OpenAPI/TS28105_AiMlNrm.yaml | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index a3d667982..80768fa3d 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -246,9 +246,7 @@ components: uniqueItems: true items: type: array - description: >- - A pair of DN, First is the DN of a CCL being coordinated represented, - and Second is the DN of that CCL’s CCLScope + description: Array of pair minItems: 2 maxItems: 2 items: @@ -288,6 +286,7 @@ components: items: $ref: '#/components/schemas/AIMLInferenceName' minItems: 1 + readOnly: true RLRequirement: type: object properties: @@ -325,6 +324,8 @@ components: type: string allowedClusterTrainingTime: $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + minItems: 1 + maxItems: 1 preferredModelDiversity: type: string @@ -625,7 +626,7 @@ components: type: boolean default: FALSE mLModelToLoadRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' MLModelLoadingPolicy-Single: allOf: @@ -665,7 +666,8 @@ components: mLModelLoadingPolicyRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' loadedMLModelRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + uniqueItems: true MLModel-Single: allOf: @@ -711,7 +713,6 @@ components: readOnly: true inferenceScope: type: array - uniqueItems: true items: $ref: '#/components/schemas/AIMLInferenceName' retrainingEventsMonitorRef: -- GitLab From 85cd61f2487d9dcd7ab86e1bdd5903309e19c1a3 Mon Sep 17 00:00:00 2001 From: Hassan Al-Kanani Date: Tue, 2 Sep 2025 09:11:10 +0100 Subject: [PATCH 092/103] Edit TS28105_AiMlNrm.yaml --- OpenAPI/TS28105_AiMlNrm.yaml | 104 +++++++++++++++++++++++++++++++++-- 1 file changed, 99 insertions(+), 5 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index 80768fa3d..d50706af0 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -253,11 +253,22 @@ components: type: string EnvironmentScope: oneOf: + #Choice_1.1 managedEntitiesScope + - type: object + properties: + managedEntitiesScope: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' + #Choice_1.2 areaScope - type: object - #Choice_1.1 managedEntitiesScope - #Choice_1.2 areaScope - #Choice 2 timeWindow - #todo: stage 2 attribute definition missing + properties: + areaScope: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' + #Choice 2 timeWindow + - type: object + properties: + timeWindow: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + #todo: stage 2 attribute definition missing SupportedLearningTechnology: type: object properties: @@ -271,7 +282,8 @@ components: - FL - DL readOnly: true - supportedEnvironment: + supportedRLEnvironment: + description: Included when RL is supported. type: array uniqueItems: true items: @@ -280,7 +292,18 @@ components: - SIMULATION_ENVIONMENTS - REAL_NETWORK_ENVIONMENTS readOnly: true + supportedFLRole: + description: Included when FL is supported. + type: array + uniqueItems: true + items: + type: string + enum: [FL_SERVER, FL_CLIENT] + minItems: 1 + maxItems: 2 + readOnly: true supportedInferenceNameList: + description: Types of inference the training technologies can be applied to. type: array uniqueItems: true items: @@ -328,6 +351,77 @@ components: maxItems: 1 preferredModelDiversity: type: string + FLParticipationInfo: + type: object + additionalProperties: false + properties: + fLRole: + type: string + enum: [FL_SERVER, FL_CLIENT] + readOnly: true + isAvailableForFLTraining: + type: boolean + default: FALSE + readOnly: true + candidateFLClientRefList: + description: > + List of MLTrainingFunction DNs capable of acting as FL clients. + Applicable when fLRole = FL_SERVER. + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' + FLRequirement: + type: object + additionalProperties: false + properties: + fLClientSelectionCriteria: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/FLClientSelectionCriteria' + minItems: 1 + FLClientSelectionCriteria: + type: object + additionalProperties: false + properties: + minimumAvailableDataSamples: + type: integer + minimumAvailableTimeDuration: + type: integer + description: Minutes + minimumInterimModelPerformance: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/ModelPerformance' + servingGeoArea: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' + clientRedundancy: + type: boolean + trainingDataWithOrWithoutOutliers: + type: boolean + default: FALSE + uniformlyDistributedTrainingData: + type: boolean + default: FALSE + required: + - minimumAvailableDataSamples + - minimumAvailableTimeDuration + FLReportPerClient: + type: object + additionalProperties: false + properties: + clientRef: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + numberOfDataSamplesUsed: + type: integer + trainingTimeDuration: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + modelPerformanceOnClient: + type: array + items: + $ref: '#/components/schemas/ModelPerformance' #-------- Definition of types for name-containments ------ SubNetwork-ncO-AiMlNrm: -- GitLab From 85be7fe76d2acfa6c52cef6360cf2349c3265f1d Mon Sep 17 00:00:00 2001 From: Hassan Al-Kanani Date: Tue, 2 Sep 2025 10:21:00 +0100 Subject: [PATCH 093/103] Edit TS28105_AiMlNrm.yaml --- OpenAPI/TS28105_AiMlNrm.yaml | 46 ++++++++++++++++++++++++++++-------- 1 file changed, 36 insertions(+), 10 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index d50706af0..a95554330 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -226,6 +226,7 @@ components: pMIdentifier: type: string readOnly: true + MLKnowldge: type: object properties: @@ -251,6 +252,7 @@ components: maxItems: 2 items: type: string + EnvironmentScope: oneOf: #Choice_1.1 managedEntitiesScope @@ -269,6 +271,7 @@ components: timeWindow: $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' #todo: stage 2 attribute definition missing + SupportedLearningTechnology: type: object properties: @@ -282,7 +285,8 @@ components: - FL - DL readOnly: true - supportedRLEnvironment: + + supportedRLEnvironment: description: Included when RL is supported. type: array uniqueItems: true @@ -292,7 +296,8 @@ components: - SIMULATION_ENVIONMENTS - REAL_NETWORK_ENVIONMENTS readOnly: true - supportedFLRole: + + supportedFLRole: description: Included when FL is supported. type: array uniqueItems: true @@ -302,7 +307,8 @@ components: minItems: 1 maxItems: 2 readOnly: true - supportedInferenceNameList: + + supportedInferenceNameList: description: Types of inference the training technologies can be applied to. type: array uniqueItems: true @@ -310,6 +316,7 @@ components: $ref: '#/components/schemas/AIMLInferenceName' minItems: 1 readOnly: true + RLRequirement: type: object properties: @@ -321,23 +328,27 @@ components: enum: - SIMULATION_ENVIONMENTS - REAL_NETWORK_ENVIONMENTS - rLEnvironmentScope: + + rLEnvironmentScope: type: array uniqueItems: true items: $ref: '#/components/schemas/EnvironmentScope' minItems: 1 - rLImpactedScope: + + rLImpactedScope: type: array uniqueItems: true items: $ref: '#/components/schemas/EnvironmentScope' minItems: 1 - rLPerformanceRequirements: + + rLPerformanceRequirements: type: array uniqueItems: true items: $ref: 'TS28623_ThresholdMonitorNrm.yaml#/components/schemas/ThresholdInfo' + ClusteringCriteria: type: object properties: @@ -351,6 +362,7 @@ components: maxItems: 1 preferredModelDiversity: type: string + FLParticipationInfo: type: object additionalProperties: false @@ -368,6 +380,7 @@ components: List of MLTrainingFunction DNs capable of acting as FL clients. Applicable when fLRole = FL_SERVER. $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' + FLRequirement: type: object additionalProperties: false @@ -378,6 +391,7 @@ components: items: $ref: '#/components/schemas/FLClientSelectionCriteria' minItems: 1 + FLClientSelectionCriteria: type: object additionalProperties: false @@ -408,6 +422,7 @@ components: required: - minimumAvailableDataSamples - minimumAvailableTimeDuration + FLReportPerClient: type: object additionalProperties: false @@ -470,6 +485,8 @@ components: properties: supportedLearningTechnology: $ref: '#/components/schemas/SupportedLearningTechnology' + flParticipationInfo: + $ref: '#/components/schemas/FlParticipationInfo' mLKnowledge: $ref: '#/components/schemas/MLKnowldge' mLTrainingType: @@ -509,6 +526,8 @@ components: properties: aIMLInferenceName: $ref: '#/components/schemas/AIMLInferenceName' + flRequirement: + $ref: '#/components/schemas/FLRequirement' candidateTrainingDataSource: type: array uniqueItems: true @@ -629,6 +648,13 @@ components: readOnly: true trainingRequestRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' + flReportPerClient: + type: array + unigueItems: true + items: + $ref: '#/components/schemas/FLReportPerClient' + participatingFLClientRefList: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' trainingProcessRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' lastTrainingRef: @@ -720,7 +746,7 @@ components: type: boolean default: FALSE mLModelToLoadRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' MLModelLoadingPolicy-Single: allOf: @@ -756,11 +782,11 @@ components: type: boolean default: FALSE mLModelLoadingRequestRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' mLModelLoadingPolicyRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' loadedMLModelRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' uniqueItems: true MLModel-Single: -- GitLab From dce1256881a6b97cf91179beff6377c9838135e1 Mon Sep 17 00:00:00 2001 From: Hassan Al-Kanani Date: Tue, 2 Sep 2025 12:01:41 +0100 Subject: [PATCH 094/103] Edit TS28105_AiMlNrm.yaml --- OpenAPI/TS28105_AiMlNrm.yaml | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index a95554330..bb58812c0 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -76,7 +76,6 @@ components: managedActivationScope: $ref: '#/components/schemas/ManagedActivationScope' - SupportedPerfIndicator: type: object properties: @@ -256,20 +255,20 @@ components: EnvironmentScope: oneOf: #Choice_1.1 managedEntitiesScope - - type: object - properties: - managedEntitiesScope: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' - #Choice_1.2 areaScope - type: object - properties: - areaScope: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' + properties: + managedEntitiesScope: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' + #Choice_1.2 areaScope + - type: object + properties: + areaScope: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' #Choice 2 timeWindow - - type: object - properties: - timeWindow: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + - type: object + properties: + timeWindow: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' #todo: stage 2 attribute definition missing SupportedLearningTechnology: -- GitLab From 5a5cbe2c8235f6bd0a31bed55cd3314786f32530 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Tue, 2 Sep 2025 11:55:23 +0000 Subject: [PATCH 095/103] Update file TS28105_AiMlNrm.yaml --- OpenAPI/TS28105_AiMlNrm.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index bb58812c0..3dcb83714 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -485,7 +485,7 @@ components: supportedLearningTechnology: $ref: '#/components/schemas/SupportedLearningTechnology' flParticipationInfo: - $ref: '#/components/schemas/FlParticipationInfo' + $ref: '#/components/schemas/FLParticipationInfo' mLKnowledge: $ref: '#/components/schemas/MLKnowldge' mLTrainingType: @@ -649,11 +649,11 @@ components: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' flReportPerClient: type: array - unigueItems: true + uniqueItems: true items: $ref: '#/components/schemas/FLReportPerClient' - participatingFLClientRefList: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' + participatingFLClientRefList: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' trainingProcessRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' lastTrainingRef: -- GitLab From e6a8b222748bf76262455c356771709071ead721 Mon Sep 17 00:00:00 2001 From: Hassan Al-Kanani Date: Tue, 2 Sep 2025 18:58:11 +0100 Subject: [PATCH 096/103] Edit TS28105_AiMlNrm.yaml --- OpenAPI/TS28105_AiMlNrm.yaml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index 3dcb83714..1ab621f9a 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -226,7 +226,7 @@ components: type: string readOnly: true - MLKnowldge: + MLKnowledge: type: object properties: mLKnowledgeName: @@ -484,10 +484,10 @@ components: properties: supportedLearningTechnology: $ref: '#/components/schemas/SupportedLearningTechnology' - flParticipationInfo: + fLParticipationInfo: $ref: '#/components/schemas/FLParticipationInfo' mLKnowledge: - $ref: '#/components/schemas/MLKnowldge' + $ref: '#/components/schemas/MLKnowledge' mLTrainingType: type: string enum: @@ -525,7 +525,7 @@ components: properties: aIMLInferenceName: $ref: '#/components/schemas/AIMLInferenceName' - flRequirement: + fLRequirement: $ref: '#/components/schemas/FLRequirement' candidateTrainingDataSource: type: array @@ -605,6 +605,8 @@ components: default: FALSE trainingRequestRef: ## Figure 7.3a.1.1.1-1 has no such pointer $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' + participatingFLClientRefList: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' trainingReportRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' mLModelGeneratedRef: @@ -647,13 +649,12 @@ components: readOnly: true trainingRequestRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' - flReportPerClient: + fLReportPerClient: type: array uniqueItems: true items: $ref: '#/components/schemas/FLReportPerClient' - participatingFLClientRefList: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' + trainingProcessRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' lastTrainingRef: -- GitLab From 233fc6f5cebd255cea771194dd50846ba622e09e Mon Sep 17 00:00:00 2001 From: Hassan Al-Kanani Date: Tue, 2 Sep 2025 21:22:50 +0100 Subject: [PATCH 097/103] Edit TS28105_AiMlNrm.yaml --- OpenAPI/TS28105_AiMlNrm.yaml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index 1ab621f9a..6f4388666 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -217,6 +217,7 @@ components: $ref: '#/components/schemas/ManagedActivationScope' impactedPM: type: array + uniqueItems: true items: $ref: '#/components/schemas/ImpactedPM' ImpactedPM: @@ -292,8 +293,8 @@ components: items: type: string enum: - - SIMULATION_ENVIONMENTS - - REAL_NETWORK_ENVIONMENTS + - SIMULATION_ENVIRONMENTS + - REAL_NETWORK_ENVIRONMENTS readOnly: true supportedFLRole: @@ -325,8 +326,8 @@ components: items: type: string enum: - - SIMULATION_ENVIONMENTS - - REAL_NETWORK_ENVIONMENTS + - SIMULATION_ENVIRONMENTS + - REAL_NETWORK_ENVIRONMENTS rLEnvironmentScope: type: array @@ -999,8 +1000,6 @@ components: $ref: '#/components/schemas/MLModelLoadingProcess-Multiple' MLModelLoadingPolicy: $ref: '#/components/schemas/MLModelLoadingPolicy-Multiple' - MLModel: - $ref: '#/components/schemas/MLModel-Multiple' AIMLInferenceReport-Single: allOf: -- GitLab From 281a39bd524f649bcd966a7b843549932c45b249 Mon Sep 17 00:00:00 2001 From: Hassan Al-Kanani Date: Tue, 2 Sep 2025 21:39:58 +0100 Subject: [PATCH 098/103] Edit TS28105_AiMlNrm.yaml --- OpenAPI/TS28105_AiMlNrm.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index 6f4388666..694ad5e72 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -329,21 +329,21 @@ components: - SIMULATION_ENVIRONMENTS - REAL_NETWORK_ENVIRONMENTS - rLEnvironmentScope: + rLEnvironmentScope: type: array uniqueItems: true items: $ref: '#/components/schemas/EnvironmentScope' minItems: 1 - rLImpactedScope: + rLImpactedScope: type: array uniqueItems: true items: $ref: '#/components/schemas/EnvironmentScope' minItems: 1 - rLPerformanceRequirements: + rLPerformanceRequirements: type: array uniqueItems: true items: -- GitLab From ef8e85d0a84ab5196cc7a6a47f8e488a6c665407 Mon Sep 17 00:00:00 2001 From: Hassan Al-Kanani Date: Wed, 3 Sep 2025 12:18:43 +0100 Subject: [PATCH 099/103] Edit TS28105_AiMlNrm.yaml --- OpenAPI/TS28105_AiMlNrm.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index 694ad5e72..5842c489d 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -578,9 +578,9 @@ components: items: $ref: '#/components/schemas/ClusteringCriteria' mLModelRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' mLModelCoordinationGroupRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' MLTrainingProcess-Single: allOf: -- GitLab From 41a697123b87c44b67c11f11db949164dc6dd4fd Mon Sep 17 00:00:00 2001 From: shumim Date: Wed, 3 Sep 2025 15:14:36 +0000 Subject: [PATCH 100/103] To fix indentation issue from line 288-315 --- OpenAPI/TS28105_AiMlNrm.yaml | 58 ++++++++++++++++++------------------ 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index 5842c489d..61de3f262 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -286,36 +286,36 @@ components: - DL readOnly: true - supportedRLEnvironment: - description: Included when RL is supported. - type: array - uniqueItems: true - items: - type: string - enum: - - SIMULATION_ENVIRONMENTS - - REAL_NETWORK_ENVIRONMENTS + supportedRLEnvironment: + description: Included when RL is supported. + type: array + uniqueItems: true + items: + type: string + enum: + - SIMULATION_ENVIRONMENTS + - REAL_NETWORK_ENVIRONMENTS + readOnly: true + + supportedFLRole: + description: Included when FL is supported. + type: array + uniqueItems: true + items: + type: string + enum: [FL_SERVER, FL_CLIENT] + minItems: 1 + maxItems: 2 + readOnly: true + + supportedInferenceNameList: + description: Types of inference the training technologies can be applied to. + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/AIMLInferenceName' + minItems: 1 readOnly: true - - supportedFLRole: - description: Included when FL is supported. - type: array - uniqueItems: true - items: - type: string - enum: [FL_SERVER, FL_CLIENT] - minItems: 1 - maxItems: 2 - readOnly: true - - supportedInferenceNameList: - description: Types of inference the training technologies can be applied to. - type: array - uniqueItems: true - items: - $ref: '#/components/schemas/AIMLInferenceName' - minItems: 1 - readOnly: true RLRequirement: type: object -- GitLab From 13ef5601117e305995701efeb2b99f68971c3c69 Mon Sep 17 00:00:00 2001 From: shumim Date: Wed, 3 Sep 2025 15:28:13 +0000 Subject: [PATCH 101/103] commit again --- OpenAPI/TS28105_AiMlNrm.yaml | 57 +++++++++++++++++------------------- 1 file changed, 27 insertions(+), 30 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index 61de3f262..576ced0a0 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -285,37 +285,34 @@ components: - FL - DL readOnly: true - - supportedRLEnvironment: - description: Included when RL is supported. - type: array - uniqueItems: true - items: - type: string - enum: - - SIMULATION_ENVIRONMENTS - - REAL_NETWORK_ENVIRONMENTS - readOnly: true - - supportedFLRole: - description: Included when FL is supported. - type: array - uniqueItems: true - items: - type: string - enum: [FL_SERVER, FL_CLIENT] - minItems: 1 - maxItems: 2 - readOnly: true - - supportedInferenceNameList: - description: Types of inference the training technologies can be applied to. - type: array - uniqueItems: true - items: - $ref: '#/components/schemas/AIMLInferenceName' - minItems: 1 + supportedRLEnvironment: + description: Included when RL is supported. + type: array + uniqueItems: true + items: + type: string + enum: + - SIMULATION_ENVIRONMENTS + - REAL_NETWORK_ENVIRONMENTS readOnly: true + supportedFLRole: + description: Included when FL is supported. + type: array + uniqueItems: true + items: + type: string + enum: [FL_SERVER, FL_CLIENT] + minItems: 1 + maxItems: 2 + readOnly: true + supportedInferenceNameList: + description: Types of inference the training technologies can be applied to. + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/AIMLInferenceName' + minItems: 1 + readOnly: true RLRequirement: type: object -- GitLab From 7e49eedc31e5cf1e4f4f35fd82549233c5e4a2a1 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Fri, 5 Sep 2025 03:47:05 +0000 Subject: [PATCH 102/103] Code Moderator update the versions --- OpenAPI/TS28104_MdaNrm.yaml | 2 +- OpenAPI/TS28104_MdaReport.yaml | 2 +- OpenAPI/TS28105_AiMlNrm.yaml | 2 +- OpenAPI/TS28111_FaultNotifications.yaml | 4 ++-- OpenAPI/TS28312_IntentExpectations.yaml | 2 +- OpenAPI/TS28312_IntentNrm.yaml | 2 +- OpenAPI/TS28541_5GcNrm.yaml | 2 +- OpenAPI/TS28541_NrNrm.yaml | 2 +- OpenAPI/TS28623_ComDefs.yaml | 2 +- OpenAPI/TS28623_FeatureNrm.yaml | 2 +- OpenAPI/TS28623_GenericNrm.yaml | 2 +- OpenAPI/TS28623_ManagementDataCollectionNrm.yaml | 2 +- OpenAPI/TS28623_MnSRegistryNrm.yaml | 2 +- OpenAPI/TS28623_TraceControlNrm.yaml | 2 +- 14 files changed, 15 insertions(+), 15 deletions(-) diff --git a/OpenAPI/TS28104_MdaNrm.yaml b/OpenAPI/TS28104_MdaNrm.yaml index d8e0ed23e..3a83c1ae4 100644 --- a/OpenAPI/TS28104_MdaNrm.yaml +++ b/OpenAPI/TS28104_MdaNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: MDA NRM - version: 19.2.0 + version: 19.3.0 description: >- OAS 3.0.1 specification of the MDA NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). diff --git a/OpenAPI/TS28104_MdaReport.yaml b/OpenAPI/TS28104_MdaReport.yaml index 20f6d1335..123a99545 100644 --- a/OpenAPI/TS28104_MdaReport.yaml +++ b/OpenAPI/TS28104_MdaReport.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: MDA Report - version: 19.2.0 + version: 19.3.0 description: >- OAS 3.0.1 specification of the MDA Report © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index 576ced0a0..11607de76 100644 --- a/OpenAPI/TS28105_AiMlNrm.yaml +++ b/OpenAPI/TS28105_AiMlNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: AI/ML NRM - version: 19.2.0 + version: 19.3.0 description: >- OAS 3.0.1 specification of the AI/ML NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). diff --git a/OpenAPI/TS28111_FaultNotifications.yaml b/OpenAPI/TS28111_FaultNotifications.yaml index 0fa9d70c1..ee6a249b4 100644 --- a/OpenAPI/TS28111_FaultNotifications.yaml +++ b/OpenAPI/TS28111_FaultNotifications.yaml @@ -1,10 +1,10 @@ openapi: 3.0.1 info: title: Fault Management Notifications - version: 18.1.0 + version: 19.3.0 description: >- OAS 3.0.1 definition of the Fault Supervision MnS - © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). + © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). All rights reserved. externalDocs: description: 3GPP TS 28.111; Fault Management diff --git a/OpenAPI/TS28312_IntentExpectations.yaml b/OpenAPI/TS28312_IntentExpectations.yaml index 10161774f..379962e30 100644 --- a/OpenAPI/TS28312_IntentExpectations.yaml +++ b/OpenAPI/TS28312_IntentExpectations.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: Scenario specific Intent Expectations - version: 19.2.0 + version: 19.3.0 description: >- OAS 3.0.1 definition of scenario specific Intent Expectations © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). diff --git a/OpenAPI/TS28312_IntentNrm.yaml b/OpenAPI/TS28312_IntentNrm.yaml index 93ed5fb29..052f0fdc8 100644 --- a/OpenAPI/TS28312_IntentNrm.yaml +++ b/OpenAPI/TS28312_IntentNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: Intent NRM - version: 19.2.0 + version: 19.3.0 description: >- OAS 3.0.1 definition of the Intent NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). diff --git a/OpenAPI/TS28541_5GcNrm.yaml b/OpenAPI/TS28541_5GcNrm.yaml index ca3c0e415..950193f8c 100755 --- a/OpenAPI/TS28541_5GcNrm.yaml +++ b/OpenAPI/TS28541_5GcNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: 3GPP 5GC NRM - version: 19.4.0 + version: 19.5.0 description: >- OAS 3.0.1 specification of the 5GC NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index 9bab3d4dd..e45e2a6a7 100755 --- a/OpenAPI/TS28541_NrNrm.yaml +++ b/OpenAPI/TS28541_NrNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: NR NRM - version: 19.4.0 + version: 19.5.0 description: >- OAS 3.0.1 specification of the NR NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). diff --git a/OpenAPI/TS28623_ComDefs.yaml b/OpenAPI/TS28623_ComDefs.yaml index e9689be36..71d88b74d 100755 --- a/OpenAPI/TS28623_ComDefs.yaml +++ b/OpenAPI/TS28623_ComDefs.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: Common Type Definitions - version: 19.4.0 + version: 19.5.0 description: >- OAS 3.0.1 specification of common type definitions in the Generic NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). diff --git a/OpenAPI/TS28623_FeatureNrm.yaml b/OpenAPI/TS28623_FeatureNrm.yaml index 1623cb649..503f3d7af 100644 --- a/OpenAPI/TS28623_FeatureNrm.yaml +++ b/OpenAPI/TS28623_FeatureNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: NRM Feautres - version: 19.4.0 + version: 19.5.0 description: >- OAS 3.0.1 definition of the Features of NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 0b5f60128..82befbe22 100755 --- a/OpenAPI/TS28623_GenericNrm.yaml +++ b/OpenAPI/TS28623_GenericNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: Generic NRM - version: 19.4.0 + version: 19.5.0 description: >- OAS 3.0.1 definition of the Generic NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). diff --git a/OpenAPI/TS28623_ManagementDataCollectionNrm.yaml b/OpenAPI/TS28623_ManagementDataCollectionNrm.yaml index e5fa3fc9a..d5ab9f7e6 100644 --- a/OpenAPI/TS28623_ManagementDataCollectionNrm.yaml +++ b/OpenAPI/TS28623_ManagementDataCollectionNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: Management Data Collection NRM - version: 19.4.0 + version: 19.5.0 description: >- OAS 3.0.1 definition of the Management Data Collection NRM fragment © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). diff --git a/OpenAPI/TS28623_MnSRegistryNrm.yaml b/OpenAPI/TS28623_MnSRegistryNrm.yaml index 98f695897..bc038623d 100644 --- a/OpenAPI/TS28623_MnSRegistryNrm.yaml +++ b/OpenAPI/TS28623_MnSRegistryNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: MnS Registry NRM - version: 19.4.0 + version: 19.5.0 description: >- OAS 3.0.1 definition of the MnS Registry NRM fragment © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). diff --git a/OpenAPI/TS28623_TraceControlNrm.yaml b/OpenAPI/TS28623_TraceControlNrm.yaml index a48a8c58d..a1f304f2e 100644 --- a/OpenAPI/TS28623_TraceControlNrm.yaml +++ b/OpenAPI/TS28623_TraceControlNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: Trace Control NRM - version: 19.3.0 + version: 19.4.0 description: >- OAS 3.0.1 definition of the Trace Control NRM fragment © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). -- GitLab From 825628f0641061f5e03bd5afe1c21b4e830779d5 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 8 Sep 2025 02:53:06 +0000 Subject: [PATCH 103/103] Code Moderator update README to include new YAML files --- OpenAPI/README.md | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/OpenAPI/README.md b/OpenAPI/README.md index 8be2519a3..29b3988a9 100644 --- a/OpenAPI/README.md +++ b/OpenAPI/README.md @@ -47,6 +47,10 @@ The links below will open the Swagger Editor/UI and auto-load the OpenAPI YAML f ([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=OpenAPI/TS28623_TraceControlNrm.yaml)) ([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=OpenAPI/TS28623_TraceControlNrm.yaml)) +* External Management Data Management NRM (TS 28.623) +([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=OpenAPI/TS28623_ExternalDataMgmtNrm.yaml)) +([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=OpenAPI/TS28623_ExternalDataMgmtNrm.yaml)) + * Fault Management NRM(TS 28.111) ([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=OpenAPI/TS28111_FaultNrm.yaml)) ([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=OpenAPI/TS28111_FaultNrm.yaml)) @@ -67,6 +71,10 @@ The links below will open the Swagger Editor/UI and auto-load the OpenAPI YAML f ([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=OpenAPI/TS28536_CoslaNrm.yaml)) ([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=OpenAPI/TS28536_CoslaNrm.yaml)) +* CCL NRM (TS 28.567) +([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=OpenAPI/TS28567_CclNrm.yaml)) +([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=OpenAPI/TS28567_CclNrm.yaml)) + * MDA NRM (TS 28.104) ([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=OpenAPI/TS28104_MdaNrm.yaml)) ([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=OpenAPI/TS28104_MdaNrm.yaml)) @@ -107,6 +115,11 @@ The links below will open the Swagger Editor/UI and auto-load the OpenAPI YAML f ([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=OpenAPI/TS28310_EnergyInformationNrm.yaml)) ([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=OpenAPI/TS28310_EnergyInformationNrm.yaml)) +* NDT NRM (TS 28.561) +([Editor](https://forge.3gpp.org/swagger/tools/loader.html?yaml=OpenAPI/TS28561_NdtNrm.yaml)) +([UI](https://forge.3gpp.org/swagger/tools/loader.html?action=ui&yaml=OpenAPI/TS28561_NdtNrm.yaml)) + + ## Management Services (MnS) * Provisioning MnS (TS 28.532) -- GitLab