From 486b51d8161418a798bb8ea92834d5c88cd85897 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:25:29 +0000 Subject: [PATCH 01/20] Replace TS28104_MdaNrm.yaml --- OpenAPI/TS28104_MdaNrm.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OpenAPI/TS28104_MdaNrm.yaml b/OpenAPI/TS28104_MdaNrm.yaml index 4839ffc8e..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). @@ -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 9de0afa66307b4e44c941bd6f416e6d24110e860 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:26:37 +0000 Subject: [PATCH 02/20] Replace TS28104_MdaReport.yaml --- OpenAPI/TS28104_MdaReport.yaml | 41 +++++++++++++++++++++++++++++----- 1 file changed, 35 insertions(+), 6 deletions(-) diff --git a/OpenAPI/TS28104_MdaReport.yaml b/OpenAPI/TS28104_MdaReport.yaml index 3244b9f61..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). @@ -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: @@ -392,6 +393,34 @@ 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 + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + trafficCongestionAreas: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' + recommendedActions: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/RecommendedAction' + severityLevel: + type: string + enum: + - SLIGHT_CONGESTION + - MODERATE_CONGESTION + - SEVERE_CONGESTION -- GitLab From 942bf8bcc420ed7eac471f869be6a7c400c2f962 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:27:49 +0000 Subject: [PATCH 03/20] Replace TS28105_AiMlNrm.yaml --- OpenAPI/TS28105_AiMlNrm.yaml | 335 +++++++++++++++++++++++++++++++++-- 1 file changed, 322 insertions(+), 13 deletions(-) diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index f76a2a491..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). @@ -76,7 +76,6 @@ components: managedActivationScope: $ref: '#/components/schemas/ManagedActivationScope' - SupportedPerfIndicator: type: object properties: @@ -167,7 +166,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 +191,250 @@ 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 + uniqueItems: true + items: + $ref: '#/components/schemas/ImpactedPM' + ImpactedPM: + type: object + properties: + pMIdentifier: + type: string + readOnly: true + + MLKnowledge: + 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: Array of pair + minItems: 2 + maxItems: 2 + items: + 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 + 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: + learningTechnologyName: + type: array + uniqueItems: true + items: + type: string + enum: + - RL + - 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 + readOnly: true + + RLRequirement: + type: object + properties: + rLEnvironmentType: + type: array + uniqueItems: true + items: + type: string + enum: + - SIMULATION_ENVIRONMENTS + - REAL_NETWORK_ENVIRONMENTS + + 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' + minItems: 1 + 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: type: object @@ -233,6 +480,20 @@ components: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/ManagedFunction-Attr' - type: object properties: + supportedLearningTechnology: + $ref: '#/components/schemas/SupportedLearningTechnology' + fLParticipationInfo: + $ref: '#/components/schemas/FLParticipationInfo' + mLKnowledge: + $ref: '#/components/schemas/MLKnowledge' + 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' @@ -262,6 +523,8 @@ components: properties: aIMLInferenceName: $ref: '#/components/schemas/AIMLInferenceName' + fLRequirement: + $ref: '#/components/schemas/FLRequirement' candidateTrainingDataSource: type: array uniqueItems: true @@ -282,14 +545,39 @@ 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' + $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: @@ -315,6 +603,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: @@ -357,6 +647,12 @@ components: readOnly: true trainingRequestRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' + fLReportPerClient: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/FLReportPerClient' + trainingProcessRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' lastTrainingRef: @@ -448,7 +744,7 @@ components: type: boolean default: FALSE mLModelToLoadRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' MLModelLoadingPolicy-Single: allOf: @@ -484,11 +780,12 @@ 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: allOf: @@ -524,6 +821,18 @@ 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 + items: + $ref: '#/components/schemas/AIMLInferenceName' retrainingEventsMonitorRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' sourceTrainedMLModelRef: @@ -688,8 +997,6 @@ components: $ref: '#/components/schemas/MLModelLoadingProcess-Multiple' MLModelLoadingPolicy: $ref: '#/components/schemas/MLModelLoadingPolicy-Multiple' - MLModel: - $ref: '#/components/schemas/MLModel-Multiple' AIMLInferenceReport-Single: allOf: @@ -706,6 +1013,8 @@ components: items: $ref: '#/components/schemas/InferenceOutput' minItems: 1 + potentialImpactInfo: + $ref: '#/components/schemas/PotentialImpactInfo' mLModelRefList: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' -- GitLab From 3d47ed129183c5b3246de50ed699bb87ed95994d Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:28:34 +0000 Subject: [PATCH 04/20] Replace TS28111_FaultNotifications.yaml --- OpenAPI/TS28111_FaultNotifications.yaml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/OpenAPI/TS28111_FaultNotifications.yaml b/OpenAPI/TS28111_FaultNotifications.yaml index ffac86e1f..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 @@ -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 f38f0ec24efef2120cad29d6a27e4a116c12a101 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:28:54 +0000 Subject: [PATCH 05/20] Replace TS28111_FaultNrm.yaml --- OpenAPI/TS28111_FaultNrm.yaml | 254 ++++++++++++++++++++++++++++++---- 1 file changed, 224 insertions(+), 30 deletions(-) diff --git a/OpenAPI/TS28111_FaultNrm.yaml b/OpenAPI/TS28111_FaultNrm.yaml index 13a6967dd..4e52a1c85 100644 --- a/OpenAPI/TS28111_FaultNrm.yaml +++ b/OpenAPI/TS28111_FaultNrm.yaml @@ -45,21 +45,220 @@ 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 + description: Values are from the (informative) Annex B of 3GPP TS 28.111. 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 @@ -218,6 +417,12 @@ components: securityAlarmDetector: type: string readOnly: true + clearingType: + type: string + enum: + - MANUAL + - AUTOMATIC + default: AUTOMATIC AlarmList-Single: allOf: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' @@ -252,7 +457,6 @@ components: type: string enum: - notifyNewAlarm - - notifyChangedAlarm - notifyChangedAlarmGeneral - notifyAckStateChanged - notifyCorrelatedNotificationChanged @@ -308,6 +512,11 @@ components: $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet' rootCauseIndicator: type: boolean + clearingType: + type: string + enum: + - MANUAL + - AUTOMATIC NotifyNewSecAlarm: allOf: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader' @@ -345,6 +554,11 @@ components: type: string securityAlarmDetector: type: string + clearingType: + type: string + enum: + - MANUAL + - AUTOMATIC NotifyClearedAlarm: allOf: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader' @@ -371,26 +585,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 5f3c044fe7e5420c4b1f6e252120acf6779edc20 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:29:54 +0000 Subject: [PATCH 06/20] Replace TS28312_IntentExpectations.yaml --- OpenAPI/TS28312_IntentExpectations.yaml | 174 ++++++++++++------------ 1 file changed, 88 insertions(+), 86 deletions(-) diff --git a/OpenAPI/TS28312_IntentExpectations.yaml b/OpenAPI/TS28312_IntentExpectations.yaml index e0ef86a29..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). @@ -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,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 @@ -66,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 @@ -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 @@ -137,23 +143,20 @@ components: expectationId: type: string expectationVerb: - $ref: "TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb" - expectationObjects: - type: array - uniqueItems: true - items: - $ref: "#/components/schemas/5GCNetworkExpectationObject" + $ref: 'TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb' + expectationObject: + $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 @@ -162,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: @@ -173,12 +176,9 @@ components: expectationId: type: string expectationVerb: - $ref: "TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb" - expectationObjects: - type: array - uniqueItems: true - items: - $ref: "#/components/schemas/NetworkMaintenanceExpectationObject" + $ref: 'TS28312_IntentNrm.yaml#/components/schemas/ExpectationVerb' + expectationObject: + $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,9 +210,11 @@ 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 + - expectationTargets #-------Definition of the IntentExpectation dataType ----------# #-------Definition of the scenario specific ExpectationObject dataType ----------# @@ -235,13 +237,13 @@ 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: '#/components/schemas/UEGroupContext' - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' RadioServiceExpectationObject: description: >- @@ -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' @@ -287,8 +289,8 @@ components: oneOf: - $ref: '#/components/schemas/EdgeIdentificationIdContext' - $ref: '#/components/schemas/EdgeIdentificationLocContext' - - $ref: '#/components/schemas/CoverageAreaTAContext' - - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' + - $ref: '#/components/schemas/CoverageAreaTAContext' + - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' 5GCNetworkExpectationObject: description: >- This data type is the "ExpectationObject" data type with specialisations for 5GCNetworkExpectation @@ -306,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 @@ -326,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/UlFrequencyContext' - $ref: '#/components/schemas/RATContext' - - $ref: "TS28312_IntentNrm.yaml#/components/schemas/Context" + - $ref: 'TS28312_IntentNrm.yaml#/components/schemas/Context' #-------Definition of the ExpectationObject dataType ----------# @@ -496,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: @@ -506,7 +508,7 @@ components: contextCondition: type: string enum: - - Is_less_than + - IS_LESS_THAN contextValueRange: type: number LowDLRANUEThptRatioTarget: @@ -514,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: @@ -573,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: @@ -613,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: @@ -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: @@ -687,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: @@ -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: @@ -908,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: @@ -991,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: @@ -1072,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: @@ -1094,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: @@ -1144,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 @@ -1185,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 @@ -1233,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: @@ -1251,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 @@ -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 @@ -1287,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 @@ -1306,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 131a52362b0ad378980b290c592bc19c861b2889 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:30:19 +0000 Subject: [PATCH 07/20] Replace TS28312_IntentNrm.yaml --- OpenAPI/TS28312_IntentNrm.yaml | 115 +++++++++++++++++++++------------ 1 file changed, 73 insertions(+), 42 deletions(-) diff --git a/OpenAPI/TS28312_IntentNrm.yaml b/OpenAPI/TS28312_IntentNrm.yaml index c0242f0a3..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). @@ -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 ----------# @@ -194,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 ----------# @@ -221,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: @@ -256,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 @@ -272,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: @@ -292,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: @@ -305,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 @@ -343,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. @@ -386,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: @@ -427,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: >- @@ -440,6 +441,9 @@ components: type: array items: type: string + required: + - reportRecipientAddress + - observationPeriod ReportingCondition: description: >- It describes the specified conditions for intent reporting. @@ -463,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----------------# @@ -502,6 +506,9 @@ components: uniqueItems: true items: $ref: '#/components/schemas/TargetFulfilmentResult' + required: + - expectaitonId + - expectationFulfilmentInfo #-------Definition of the concrete ExpectationFulfilmentResult dataType----------------# #-------Definition of the generic TargetFulfilmentResult dataType----------------# @@ -525,6 +532,9 @@ components: uniqueItems: true items: $ref: '#/components/schemas/Context' + required: + - targetName + - targetFulfilmentInfo #-------Definition of the concrete TargetFulfilmentResult dataType----------------# #-------Definition of the generic IntentConflictReport dataType----------------# @@ -564,14 +574,16 @@ components: enum: - MODIFY - DELETE - + required: + - conflictId + - conflictType #-------Definition of the concrete IntentConflictReport dataType----------------# #-------Definition of the generic IntentUtilityReport dataType----------------# IntentUtilityReport: description: >- - It represents the utility function results. + It represents the utility function results. type: object properties: utilityResultList: @@ -595,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 @@ -607,6 +619,9 @@ components: type: array items: $ref: '#/components/schemas/InFeasibleExpectationInfo' + required: + - feasibilityCheckResult + - infeasibilityReasons InFeasibleExpectationInfo: description: >- It describes the list of InFeasibleExpectationInfo for all infeasible IntentExpectations @@ -622,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----------------# @@ -658,6 +676,9 @@ components: $ref: '#/components/schemas/Context' uniqueItems: true minItems: 1 + required: + - expectationId + - targetExplorationResults #-------Definition of the generic IntentExplorationReport dataType----------------# @@ -701,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 @@ -769,6 +793,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. @@ -787,6 +815,8 @@ components: items: $ref: '#/components/schemas/ValueRangeType' - $ref: '#/components/schemas/ValueRangeType' + required: + - supportedTargetName #-------Definition of the concrete IntentHandlingCapability dataType----------------# @@ -810,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----------------# @@ -822,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 71e082cb209d241a7c073ba0cb8ff195e0b727ef Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:30:45 +0000 Subject: [PATCH 08/20] Replace TS28319_MsacNrm.yaml --- OpenAPI/TS28319_MsacNrm.yaml | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/OpenAPI/TS28319_MsacNrm.yaml b/OpenAPI/TS28319_MsacNrm.yaml index ac65e3ebf..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 @@ -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 - resources-msacNrm: oneOf: - $ref: '#/components/schemas/Identity-Single' -- GitLab From bbc1e97f4966e1604c95efc9fb4c7e131f63b71f Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:31:21 +0000 Subject: [PATCH 09/20] Replace TS28541_5GcNrm.yaml --- OpenAPI/TS28541_5GcNrm.yaml | 50 +++++++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 7 deletions(-) diff --git a/OpenAPI/TS28541_5GcNrm.yaml b/OpenAPI/TS28541_5GcNrm.yaml index b99e102d0..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). @@ -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 @@ -3813,6 +3818,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: 'TS28541_NrNrm.yaml#/components/schemas/ServedAIOTAreaID' + readerLocation: + type: string + #-------- Definition of types for name-containments ------ SubNetwork-ncO-5GcNrm: @@ -4840,7 +4874,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 -- GitLab From 565c8cd35b98591ffaddd75d079ed0b963b9748e Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:31:53 +0000 Subject: [PATCH 10/20] Replace TS28541_NrNrm.yaml --- OpenAPI/TS28541_NrNrm.yaml | 90 +++++++++++++++++++++++++++++++------- 1 file changed, 75 insertions(+), 15 deletions(-) diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index 30b636f3c..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). @@ -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: @@ -764,7 +764,30 @@ 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' + 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 ------ SubNetwork-ncO-NrNrm: @@ -1240,7 +1263,7 @@ components: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' - type: object properties: - bWPlist: + bWPList: type: array uniqueItems: true items: @@ -1519,6 +1542,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 @@ -2168,7 +2223,9 @@ components: type: object properties: coverageShapeList: - type: integer + type: array + items: + $ref: '#/components/schemas/CoverageShape' downlinkTransmitPowerRange: $ref: '#/components/schemas/ParameterRange' antennaTiltRange: @@ -2181,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: @@ -2245,6 +2296,8 @@ components: uniqueItems: true items: $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + currentLocation: + $ref: '#/components/schemas/LocationInfo' NRECMappingRule-Single: allOf: @@ -2303,6 +2356,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 45de5650b3dcfbee29e18ad9a14af919c3eb9bc0 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:32:45 +0000 Subject: [PATCH 11/20] Upload New File --- OpenAPI/TS28561_NdtNrm.yaml | 193 ++++++++++++++++++++++++++++++++++++ 1 file changed, 193 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..270a819a8 --- /dev/null +++ b/OpenAPI/TS28561_NdtNrm.yaml @@ -0,0 +1,193 @@ +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: + $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' + + 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: + $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' + 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/DnListRo' + ndtReportRefList: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' + + 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 ----------# + 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' + 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: '#/components/schemas/NDTOutputDescription' + networkConfiguration: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/NDTOutputDescription' + observations: + type: array + uniqueItems: true + items: + $ref: '#/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-ndtNrm: + oneOf: + - $ref: '#/components/schemas/NDTFunction-Single' + - $ref: '#/components/schemas/NDTJob-Single' + - $ref: '#/components/schemas/NDTReport-Single' -- GitLab From a70cc3e89cb5c71fc3a7a90b88ea67c324149404 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:33:12 +0000 Subject: [PATCH 12/20] Upload New File --- OpenAPI/TS28567_CclNrm.yaml | 231 ++++++++++++++++++++++++++++++++++++ 1 file changed, 231 insertions(+) create mode 100644 OpenAPI/TS28567_CclNrm.yaml diff --git a/OpenAPI/TS28567_CclNrm.yaml b/OpenAPI/TS28567_CclNrm.yaml new file mode 100644 index 000000000..1cd88fcd3 --- /dev/null +++ b/OpenAPI/TS28567_CclNrm.yaml @@ -0,0 +1,231 @@ +openapi: 3.0.1 +info: + title: CCL NRM + version: 19.0.0 + description: >- + OAS 3.0.1 definition of the CCL NRM + © 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 + 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: string + 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: string + 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: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + clearUserId: + type: string + +#-------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 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' + - $ref: '#/components/schemas/ConflictManagementAndCoordinationEntity-Single' \ No newline at end of file -- GitLab From 4ba18d9101cc82ceccc0b435175fc6a2dcae00eb Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:33:30 +0000 Subject: [PATCH 13/20] Upload New File --- OpenAPI/TS28572_PlanManagement.yaml | 2602 +++++++++++++++++++++++++++ 1 file changed, 2602 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..3d33a9a65 --- /dev/null +++ b/OpenAPI/TS28572_PlanManagement.yaml @@ -0,0 +1,2602 @@ +openapi: 3.0.0 +info: + title: 3GPP Plan Provisioning Management API + 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: + 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", + "configurationContentType" : "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: + '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 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: + 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.", + "activationMode" : "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': + 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': + 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' + + /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: + - 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: + '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' + + /activation-jobs: + post: + tags: + - Activation Management + 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/ActivationJobRequest' + 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: "/activation-jobs/myjob-111" + content: + application/json: + schema: + $ref: '#/components/schemas/ActivationJob' + '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. + operationId: getActivationJobs + parameters: + - in: query + name: job-state + schema: + $ref: '#/components/schemas/JobState' + description: Filter jobs by their current state. + example: "RUNNING" + 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' + + /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: getActivationJobById + responses: + '200': + description: Job details retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ActivationJob' + '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: deleteActivationJobById + 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' + + /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 + 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' + patch: + tags: + - Activation Management + summary: Cancel the activation job + description: Cancel the activation 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' + + /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: createValidationJob + requestBody: + required: true + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationJobRequest' + 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: "/validation-jobs/myjob-111" + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationJob' + '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: getValidationJobs + parameters: + - in: query + name: job-state + schema: + $ref: '#/components/schemas/JobState' + description: Filter jobs by their current status. + example: "RUNNING" + 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' + + /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: getValidationJobById + responses: + '200': + description: Job details retrieved successfully. + content: + application/json: + schema: + $ref: '#/components/schemas/ValidationJob' + '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: deleteValidationJobById + responses: + '204': + description: Job deleted successfully. No content is returned. + '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' + + /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' + 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' + + /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: details + in: query + description: Selects the level of details to return. + schema: + type: string + enum: [summary, all] + default: 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' + + /validation-jobs/{id}/cancel-request: + parameters: + - $ref: '#/components/parameters/jobId' + put: + tags: + - Validation Management + summary: Cancel the validation job + description: Cancel the validation job + operationId: cancelValidationJobById + 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' + +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: + - configurationContentType + - 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" + activationMode: + type: string + enum: [ATOMIC, BEST_EFFORT, STOP_ON_ERROR] + 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" + 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 plan configuration changes" + 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 + - activationMode + - lastModifiedAt + - validationState + - configurationContentType + - 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" + activationMode: + type: string + 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" + 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"}] + + 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 + - activationMode + - 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 + + ActivationJobRequest: + type: object + properties: + 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" + 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 + 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 + oneOf: + - type: object # Alt.1 planConfigDescrId + required: + - planConfigDescrId + properties: + planConfigDescrId: + type: string + description: Unique id reference to the plan descriptor to activate + example: "planxyz" + - type: object # Alt.2 planConfigDescr embedded + required: + - planConfigDescr + properties: + planConfigDescr: + type: object + description: Inline plan configuration descriptor to activate + allOf: + - $ref: '#/components/schemas/PlanConfigurationDescriptor' + example: + name: "myjob-111" + activationMode: "BEST_EFFORT" + customProperties: { + techology-type: "NR", + indoor: false + } + planConfig: + ... + - type: object # Alt.3 planConfigGroupDescrId + 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 # Alt.4 planConfigGroupDescr embedded + required: + - planConfigGroupDescr + properties: + planConfigGroupDescr: + type: string + description: Inline plan group descriptor to activate + allOf: + - $ref: '#/components/schemas/PlanConfigurationGroupDescriptor' + - type: object # Alt.5 fallbackConfigDescrId + required: + - fallbackConfigDescrId + properties: + fallbackConfigDescrId: + type: string + description: Unique id reference to the fallback descriptor to activate + example: "planxyz" + + + ActivationJob: + type: object + required: + - id + - status + - isImmediateActivation + - isFallbackEnabled + - serviceImpact + - jobDetails + - _links + description: An object representing a plan activation job. + allOf: + - type: object + properties: + id: + type: string + description: ID of the activation job. + example: "job-id-3985199134" + status: + $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 + + ValidationJobRequest: + type: object + required: + - _links + description: An object representing a plan activation job. + properties: + 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" + 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 # Alt.1 planConfigDescrId + required: + - planConfigDescrId + properties: + planConfigDescrId: + type: string + description: Unique id reference to the plan descriptor to validate + example: "planxyz" + - type: object # Alt.2 planConfigDescr embedded + required: + - planConfigDescr + properties: + planConfigDescr: + type: object + description: Inline plan configuration descriptor to validate + allOf: + - $ref: '#/components/schemas/PlanConfigurationDescriptor' + example: + name: "myjob-111" + activationMode: "BEST_EFFORT" + customProperties: { + techology-type: "NR", + indoor: false + } + planConfig: + ... + - type: object # Alt.3 planConfigGroupDescrId + required: + - planConfigGroupDescrId + properties: + planConfigGroupDescrId: + type: string + description: Unique id reference to the plan group descriptor to validate + example: "plan-group-xyz" + - type: object # Alt.4 planConfigGroupDescr embedded + required: + - planConfigGroupDescr + properties: + planConfigGroupDescr: + type: string + description: Inline plan group descriptor to validate + allOf: + - $ref: '#/components/schemas/PlanConfigurationGroupDescriptor' + - 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' + currentConfigTime: + type: string + format: date-time + 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", + name : "5G-Dublin-East-Rollout", + description : "Optimize the 5G network in Dublin East", + isFallbackEnabled : true, + serviceImpact : "SHORTEST_TIME", + isImmediateActivation : true, + 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 validation details of the plan configuration(s)", + method : "GET" + }, + planConfigDescrId : "plan-descriptor-001", + } + additionalProperties : true + + CancelRequest: + type: object + properties: + 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, delete] + 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/update/merge/delete operations) + additionalProperties: true # Allows for any nested properties + 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/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/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" + title: + type: string + enum: + - "Link to cancel the job" + method: + type: string + enum: + - "PATCH" # This means the method MUST be "PATCH" + description: A URI reference to cancel the job + example: + href: "{apiRoot}/ProvMnS/v1/activation-jobs/myjob-111/status" + title: "Link to cancel the job" + type: "application/json" + templated: true + method: PATCH + + JobState: + type: string + enum: [NOT_STARTED, QUEUED, RUNNING, CANCELLING, CANCELLED, COMPLETED, FAILED] + 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: + type: array + items: + $ref: '#/components/schemas/ChangeStatus' + summary: + $ref: '#/components/schemas/SummaryStatus' + example: + { + "results": { ...}, + "summary" : { + "unprocessed": 0, + "succeeded": 2, + "failed": 3 + } + } + + ValidationState: + type: string + enum: [UNKNOWN, VALIDATION_SUCCEEDED, VALIDATION_FAILED] + 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: [NOT_STARTED, PROCESSING, SUCCEEDED, FAILED] + default: NOT_STARTED + 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 # either the changeId from the plan or the array index in the array of Change; + - 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: + notFinished: + 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: + 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: + 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: 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 + value: + ... + RemoveNrCellChange: + summary: Remove an NR Cell (remove operation) + value: + 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 aa68dfd303e4ef1c10249c5f48e647f37d52d784 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:34:18 +0000 Subject: [PATCH 14/20] Replace TS28623_ComDefs.yaml --- OpenAPI/TS28623_ComDefs.yaml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/OpenAPI/TS28623_ComDefs.yaml b/OpenAPI/TS28623_ComDefs.yaml index 7d4cb0b61..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). @@ -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 460ad9e57eca133a090f4bb01425e46bbc7e38ed Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:34:44 +0000 Subject: [PATCH 15/20] Upload New File --- OpenAPI/TS28623_ExternalDataMgmtNrm.yaml | 81 ++++++++++++++++++++++++ 1 file changed, 81 insertions(+) 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..8dedab4ef --- /dev/null +++ b/OpenAPI/TS28623_ExternalDataMgmtNrm.yaml @@ -0,0 +1,81 @@ +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' + + -- GitLab From 3725817c585cbeb33d177f54b88b81784745043c Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:35:11 +0000 Subject: [PATCH 16/20] Replace TS28623_FeatureNrm.yaml --- OpenAPI/TS28623_FeatureNrm.yaml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/OpenAPI/TS28623_FeatureNrm.yaml b/OpenAPI/TS28623_FeatureNrm.yaml index 7a37deb97..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). @@ -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' @@ -37,5 +38,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 --------------------------# -- GitLab From 11a86e193783aa71418f2ca99af9dd37e544eea2 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:35:40 +0000 Subject: [PATCH 17/20] Replace TS28623_GenericNrm.yaml --- OpenAPI/TS28623_GenericNrm.yaml | 58 ++++++++++++++++++++++++--------- 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 8d054aa95..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). @@ -154,29 +154,55 @@ 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: $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' + - 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' - 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' + $ref: '#/components/schemas/NpnId-Type' minItems: 1 - maxItems: 8 Tai: type: object properties: @@ -255,7 +281,7 @@ components: type: array uniqueItems: true items: - type: string + $ref: 'TS28623_ComDefs.yaml#/components/schemas/CagId' maxItems: 256 nIDList: type: array -- GitLab From 3b8da0bb2127167c2549c781c6c6f61f254ca860 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:36:08 +0000 Subject: [PATCH 18/20] Replace TS28623_ManagementDataCollectionNrm.yaml --- .../TS28623_ManagementDataCollectionNrm.yaml | 50 +------------------ 1 file changed, 1 insertion(+), 49 deletions(-) diff --git a/OpenAPI/TS28623_ManagementDataCollectionNrm.yaml b/OpenAPI/TS28623_ManagementDataCollectionNrm.yaml index 5f3a20de4..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). @@ -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 e8992d69885e4c8275db0b03b7a6d4d63e9bd344 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:36:25 +0000 Subject: [PATCH 19/20] Replace TS28623_MnSRegistryNrm.yaml --- OpenAPI/TS28623_MnSRegistryNrm.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/OpenAPI/TS28623_MnSRegistryNrm.yaml b/OpenAPI/TS28623_MnSRegistryNrm.yaml index cfaceb325..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). @@ -45,15 +45,17 @@ 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 - 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: allOf: -- GitLab From 09aed64665923e13fd0f52b84fb3d4be55cf91b2 Mon Sep 17 00:00:00 2001 From: ruiyue Date: Mon, 22 Sep 2025 09:36:43 +0000 Subject: [PATCH 20/20] Replace TS28623_TraceControlNrm.yaml --- OpenAPI/TS28623_TraceControlNrm.yaml | 55 +++++++++++++++------------- 1 file changed, 29 insertions(+), 26 deletions(-) diff --git a/OpenAPI/TS28623_TraceControlNrm.yaml b/OpenAPI/TS28623_TraceControlNrm.yaml index b335275c8..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). @@ -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 @@ -1374,8 +1377,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 +1408,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. @@ -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