diff --git a/OpenAPI/TS28105_AiMlNrm.yaml b/OpenAPI/TS28105_AiMlNrm.yaml index 11607de76ad3aaae5e94d8c5b1d0830328b370cb..4dd21ebfb369d5b431b48d4ea329c939527c0920 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.3.0 + version: 19.4.0 description: >- OAS 3.0.1 specification of the AI/ML NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -376,7 +376,7 @@ components: description: > List of MLTrainingFunction DNs capable of acting as FL clients. Applicable when fLRole = FL_SERVER. - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' FLRequirement: type: object @@ -425,7 +425,7 @@ components: additionalProperties: false properties: clientRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' numberOfDataSamplesUsed: type: integer trainingTimeDuration: @@ -604,7 +604,7 @@ components: 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' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' trainingReportRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' mLModelGeneratedRef: @@ -981,7 +981,7 @@ components: - ACTIVATED - DEACTIVATED managedActivationScope: - $ref: '#/components/schemas/AIMLManagementPolicy' + $ref: '#/components/schemas/ManagedActivationScope' usedByFunctionRefList: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' mLModelRefList: diff --git a/OpenAPI/TS28111_FaultNrm.yaml b/OpenAPI/TS28111_FaultNrm.yaml index 4e52a1c85ce23ee74eb955e10685222fb32bffc7..143549151f322282d92791def2891b3e4746bd55 100644 --- a/OpenAPI/TS28111_FaultNrm.yaml +++ b/OpenAPI/TS28111_FaultNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: Fault Management NRM - version: 19.2.0 + version: 19.3.0 description: >- OAS 3.0.1 definition of the Fault Supervision MnS © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -229,7 +229,7 @@ components: - EXTERNAL_TRANSMISSION_DEVICE_FAILURE - REDUCED_ALARM_REPORTING - REDUCED_EVENT_REPORTING - - RECUCED_LOGGING_CAPABILITY + - REDUCED_LOGGING_CAPABILITY - SYSTEM_RESOURCES_OVERLOAD - BROADCAST_CHANNEL_FAILURE - CONNECTION_ESTABLISHMENT_ERROR diff --git a/OpenAPI/TS28312_IntentNrm.yaml b/OpenAPI/TS28312_IntentNrm.yaml index 052f0fdc81b274ceeb533cfe1daf1b8e3871c209..c751a6ce3c7f5452ef99e25e7946b544cd2950bc 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.3.0 + version: 19.4.0 description: >- OAS 3.0.1 definition of the Intent NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -26,7 +26,7 @@ components: description: >- This IOC represents the properties of an Intent driven management information between MnS consumer and MnS producer. allOf: - - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' - type: object properties: userLabel: @@ -38,20 +38,20 @@ components: items: type: object oneOf: - - $ref: "#/components/schemas/IntentExpectation" - - $ref: "TS28312_IntentExpectations.yaml#/components/schemas/RadioNetworkExpectation" - - $ref: "TS28312_IntentExpectations.yaml#/components/schemas/EdgeServiceSupportExpectation" - - $ref: "TS28312_IntentExpectations.yaml#/components/schemas/5GCNetworkExpectation" - - $ref: "TS28312_IntentExpectations.yaml#/components/schemas/RadioServiceExpectation" - - $ref: "TS28312_IntentExpectations.yaml#/components/schemas/NetworkMaintenanceExpectation" + - $ref: '#/components/schemas/IntentExpectation' + - $ref: 'TS28312_IntentExpectations.yaml#/components/schemas/RadioNetworkExpectation' + - $ref: 'TS28312_IntentExpectations.yaml#/components/schemas/EdgeServiceSupportExpectation' + - $ref: 'TS28312_IntentExpectations.yaml#/components/schemas/5GCNetworkExpectation' + - $ref: 'TS28312_IntentExpectations.yaml#/components/schemas/RadioServiceExpectation' + - $ref: 'TS28312_IntentExpectations.yaml#/components/schemas/NetworkMaintenanceExpectation' intentMgmtPurpose: - $ref: "#/components/schemas/IntentMgmtPurpose" + $ref: '#/components/schemas/IntentMgmtPurpose' contextSelectivity: - $ref: "#/components/schemas/Selectivity" + $ref: '#/components/schemas/Selectivity' consumerSatisfactionIndexThreshold: type: integer expectationSelectivity: - $ref: "#/components/schemas/Selectivity" + $ref: '#/components/schemas/Selectivity' intentContexts: type: array uniqueItems: true @@ -65,6 +65,7 @@ components: enum: - ACTIVATED - DEACTIVATED + default: ACTIVATED description: >- It describes the intent administrative state. This attribute is used when MnS consumer-suspension mechanism is supported @@ -76,7 +77,10 @@ components: intentPreemptionCapability: type: boolean intentReportControl: - $ref: '#/components/schemas/IntentReportControl' + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/IntentReportControl' implicitIntentIndex: type: boolean default: false @@ -85,9 +89,9 @@ components: intentUtilityFormulaRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' IntentReport-Single: - description: It represents intent report information from MnS producer to MnS consumer. + description: It represents intent report information from MnS producer to MnS consumer. allOf: - - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' - type: object properties: intentFulfilmentReport: @@ -101,8 +105,11 @@ components: $ref: '#/components/schemas/IntentFeasibilityCheckReport' intentExplorationReport: $ref: '#/components/schemas/IntentExplorationReport' - intentUtilityReport: - $ref: '#/components/schemas/IntentUtilityReport' + intentUtilityReports: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/IntentUtilityReport' intentFulfilmentNegotiationReport: $ref: '#/components/schemas/IntentFulfilmentNegotiationReport' lastUpdatedTime: @@ -132,6 +139,8 @@ components: $ref: '#/components/schemas/Intent-Multiple' IntentReport: $ref: '#/components/schemas/IntentReport-Multiple' + IntentUtilityFormula: + $ref: '#/components/schemas/IntentUtilityFormula-Multiple' IntentUtilityFormula-Single: description: >- It represents an intent utility function instance. @@ -146,14 +155,11 @@ components: items: $ref: '#/components/schemas/UtilityParameter' uniqueItems: true - minItems: 1 utilityScale: type: number - minItems: 1 - default: 0 + default: 1 utilityOffset: type: number - minItems: 1 default: 0 #-------Definition of generic IOCs ----------# @@ -235,7 +241,7 @@ components: - IS_NOT_ONE_OF - IS_EQUAL_TO_OR_LESS_THAN - IS_EQUAL_TO_OR_GREATER_THAN - - IS_ALL_OF + - IS_ALL_OF Selectivity: type: string enum: @@ -244,7 +250,7 @@ components: - ANY_OF IntentMgmtPurpose: description: >- - It describes the MnS consumer requirements for the management purpose (required procedures) + It describes the MnS consumer requirements for the management purpose (required procedures) of the created or modified intent instance type: string enum: @@ -303,7 +309,7 @@ components: description: >- 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. + for both UL and DL directions in TDD. type: object properties: arfcn: @@ -421,18 +427,15 @@ components: expectedReportTypes: description: >- It indicates the type of IntentReports. - type: string - enum: - - INTENT_FULFILMENT_REPORT - - INTENT_CONFLICT_REPORT - - INTENT_FEASIBILITY_CHECK_REPORT - - INTENT_EXPLORATION_REPORT - - INTENT_FULFILMENT_NEGOTIATION_REPORT - - INTENT_UTILITY_REPORT + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/ExpectedReportType' reportingConditions: description: >- It indicates the specified conditions for intent reporting. type: array + uniqueItems: true items: $ref: '#/components/schemas/ReportingCondition' reportingTargets: @@ -444,6 +447,15 @@ components: required: - reportRecipientAddress - observationPeriod + ExpectedReportType: + type: string + enum: + - INTENT_FULFILMENT_REPORT + - INTENT_CONFLICT_REPORT + - INTENT_FEASIBILITY_CHECK_REPORT + - INTENT_EXPLORATION_REPORT + - INTENT_FULFILMENT_NEGOTIATION_REPORT + - INTENT_UTILITY_REPORT ReportingCondition: description: >- It describes the specified conditions for intent reporting. @@ -466,8 +478,8 @@ components: - type: array uniqueItems: true items: - $ref: "#/components/schemas/ValueRangeType" - - $ref: "#/components/schemas/ValueRangeType" + $ref: '#/components/schemas/ValueRangeType' + - $ref: '#/components/schemas/ValueRangeType' #-------Definition of the concrete IntentReportControl dataType----------------# @@ -475,7 +487,7 @@ components: IntentFulfilmentReport: description: >- It includes the intentFulfilmentInfo and expectationFulfilmetResult. - This attribute shall be supported when intent fulfilment information is supported by IntentReport + This attribute shall be supported when intent fulfilment information is supported by IntentReport type: object properties: intentFulfilmentInfo: @@ -514,7 +526,7 @@ components: #-------Definition of the generic TargetFulfilmentResult dataType----------------# TargetFulfilmentResult: description: >- - This data type includes targetFulfilmentInfo and targetAchievedValue for each ExpectationTarget. + This data type includes targetFulfilmentInfo and targetAchievedValue for each ExpectationTarget. type: object properties: targetName: @@ -524,7 +536,7 @@ components: $ref: '#/components/schemas/FulfilmentInfo' targetAchievedValue: description: >- - It describes the value that has been achieved for the expectation target at the time at which + It describes the value that has been achieved for the expectation target at the time at which the report is generated. $ref: "#/components/schemas/ValueRangeType" targetContexts: @@ -534,7 +546,7 @@ components: $ref: '#/components/schemas/Context' required: - targetName - - targetFulfilmentInfo + - targetFulfilmentInfo #-------Definition of the concrete TargetFulfilmentResult dataType----------------# #-------Definition of the generic IntentConflictReport dataType----------------# @@ -562,7 +574,7 @@ components: description: >- This will be present if the value of conflictType is EXPECTATION_CONFLICT. It describes the expectationId of the conflicting IntentExpectation with an Intent type: string - readOnly: true + readOnly: true conflictingTarget: description: >- This will be present if the value of conflictType is TARGET_CONFLICT. It describes the targetName of the conflicting ExpectationTarget with an IntentExpectation @@ -570,7 +582,7 @@ components: readOnly: true recommendedSolutions: type: string - readOnly: true + readOnly: true enum: - MODIFY - DELETE @@ -609,6 +621,7 @@ components: infeasibilityReasons: description: An attribute which is used when feasibilityCheckResult is INFEASIBLE type: array + uniqueItems: true items: type: string readOnly: true @@ -633,6 +646,7 @@ components: readOnly: true inFeasibleTargets: type: array + uniqueItems: true items: type: string readOnly: true @@ -796,7 +810,7 @@ components: required: - intentHandlingCapabilityId - supportedExpectationObjectType - - supportedExpectationTargetInfoList + - supportedExpectationTargetInfoList SupportedExpectationTargetInfo: description: >- It indicates the detailed information about what the intent driven MnS producer supports for a given supportedExpectationObjectType. @@ -816,7 +830,7 @@ components: $ref: '#/components/schemas/ValueRangeType' - $ref: '#/components/schemas/ValueRangeType' required: - - supportedTargetName + - supportedTargetName #-------Definition of the concrete IntentHandlingCapability dataType----------------# @@ -835,7 +849,7 @@ components: #-------Definition of the generic UtilityResult dataType----------------# UtilityResult: description: >- - It represents the inputs for the specified Intent Utility Function. + It provides the result for the specified Intent Utility Function. type: object properties: utilityFunctionId: @@ -847,7 +861,7 @@ components: #-------Definition of the concrete UtilityResult dataType----------------# #-------Definition of the generic UtilityDefinition dataType----------------# - UtilityDefinition: + UtilityDefinition: description: >- It represents the inputs for the specified Intent Utility Function. type: object @@ -892,7 +906,7 @@ components: #----- Definitions in TS 28.312 for TS 28.532 --------------------------# resources-intentNrm: oneOf: - - $ref: '#/components/schemas/IntentHandlingFunction-Single' + - $ref: '#/components/schemas/IntentHandlingFunction-Single' - $ref: '#/components/schemas/Intent-Single' - $ref: '#/components/schemas/IntentReport-Single' - $ref: '#/components/schemas/IntentUtilityFormula-Single' diff --git a/OpenAPI/TS28532_FileDataReportingMnS.yaml b/OpenAPI/TS28532_FileDataReportingMnS.yaml index 033a67bc5dae16b1d8d2076323633d8d63b0d0b0..65702eee286075878bc2fde8814d128fcfa18a26 100644 --- a/OpenAPI/TS28532_FileDataReportingMnS.yaml +++ b/OpenAPI/TS28532_FileDataReportingMnS.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: File Data Reporting MnS - version: 19.1.0 + version: 20.0.0 description: >- OAS 3.0.1 definition of the File Data Reporting MnS © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -69,109 +69,6 @@ paths: application/json: schema: $ref: 'TS28623_ComDefs.yaml#/components/schemas/ErrorResponse' - /subscriptions: - post: - summary: Create a subscription - description: >- - To create a subscription the representation of the subscription is - POSTed on the /subscriptions collection resource. - requestBody: - required: true - content: - application/json: - schema: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/Subscription' - responses: - '201': - description: >- - Success case ("201 Created"). - The representation of the newly created subscription resource shall - be returned. - content: - application/json: - schema: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/Subscription' - headers: - Location: - description: URI of the newly created subscription resource - required: true - schema: - type: string - default: - description: Error case. - content: - application/json: - schema: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/ErrorResponse' - callbacks: - notifyFileReady: - '{request.body#/consumerReference}': - post: - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/NotifyFileReady' - responses: - '204': - description: >- - Success case ("204 No Content"). - The notification is successfully delivered. The response message - body is absent. - default: - description: Error case. - content: - application/json: - schema: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/ErrorResponse' - notifyFilePreparationError: - '{request.body#/consumerReference}': - post: - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/NotifyFilePreparationError' - responses: - '204': - description: >- - Success case ("204 No Content"). - The notification is successfully delivered. The response message - body is absent. - default: - description: Error case. - content: - application/json: - schema: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/ErrorResponse' - /subscriptions/{subscriptionId}: - delete: - summary: Delete a subscription - description: >- - The subscription is deleted by deleting the corresponding subscription - resource. The resource to be deleted is identified with the path - component of the URI. - parameters: - - name: subscriptionId - in: path - description: Identifies the subscription to be deleted. - required: true - schema: - type: string - responses: - '204': - description: >- - Success case ("204 No Content"). - The subscription resource has been deleted. The response message body - is absent. - default: - description: Error case. - content: - application/json: - schema: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/ErrorResponse' components: schemas: FileDataType: diff --git a/OpenAPI/TS28532_ProvMnS.yaml b/OpenAPI/TS28532_ProvMnS.yaml index e24a69104a1e966833c25447a7326bc560fe773b..270a363c016d309c6ba9e70263892887eedd12a3 100755 --- a/OpenAPI/TS28532_ProvMnS.yaml +++ b/OpenAPI/TS28532_ProvMnS.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: Provisioning MnS - version: 19.1.0 + version: 19.2.0 description: >- OAS 3.0.1 definition of the Provisioning MnS © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -388,9 +388,9 @@ paths: With HTTP DELETE one resource is deleted. The resources to be deleted is identified with the target URI. responses: - '200': + '204': description: >- - Success case ("200 OK"). + Success case ("204 No Content"). This status code is returned, when the resource has been successfully deleted. The response body is empty. default: diff --git a/OpenAPI/TS28541_5GcNrm.yaml b/OpenAPI/TS28541_5GcNrm.yaml index 66849e0fd6f31fb031e40a5457d71dfb3cb27023..bca078523f31fa47543a10d53229965a4a070dde 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: 20.0.0 + version: 20.1.0 description: >- OAS 3.0.1 specification of the 5GC NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -837,6 +837,17 @@ components: type: integer thresholdRtt: type: integer + QFReportingThreshold: + type: object + properties: + thresholdDlCongestionInfo: + type: integer + thresholdUlCongestionInfo: + type: integer + thresholdDlDataRate: + type: integer + thresholdUlDataRate: + type: integer QosData: type: object @@ -1128,7 +1139,11 @@ components: protoDescDl: $ref: '#/components/schemas/ProtocolDescription' protoDescUl: - $ref: '#/components/schemas/ProtocolDescription' + $ref: '#/components/schemas/ProtocolDescription' + expTranInd: + type: boolean + default: false + ProtocolDescription: type: object properties: @@ -1792,6 +1807,16 @@ components: items: $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' minItems: 1 + nfTypeList: + type: array + items: + $ref: '#/components/schemas/NFType' + minItems: 1 + nfSetIdList: + type: array + items: + $ref: 'TS29571_CommonData.yaml#/components/schemas/NfSetId' + minItems: 1 NwdafInfo: description: Information of a NWDAF NF Instance type: object @@ -2219,6 +2244,7 @@ components: type: integer minimum: 0 maximum: 4294967295 + format: int64 trpMappingInfoList: type: array uniqueItems: true @@ -2767,6 +2793,10 @@ components: type: boolean default: false readOnly: true + urspEpsSupport: + type: boolean + default: false + readOnly: true A2xCapability: description: Information of the supported A2X Capability by the PCF @@ -3254,6 +3284,7 @@ components: type: integer minimum: 0 maximum: 4294967295 + format: int64 ngeNbId: type: string pattern: '^(MacroNGeNB-[A-Fa-f0-9]{5}|LMacroNGeNB-[A-Fa-f0-9]{6}|SMacroNGeNB-[A-Fa-f0-9]{5})$' @@ -3972,6 +4003,18 @@ components: items: $ref: '#/components/schemas/Ipv6PrefixRange' minItems: 1 + supiRanges: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/SupiRange' + minItems: 1 + gpsiRanges: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/IdentityRange' + minItems: 1 NfInfo: description: Information of a generic NF Instance type: object @@ -4191,6 +4234,26 @@ components: #$ref: 'TS28541_NrNrm.yaml#/components/schemas/ServedAIOTAreaID' readerLocation: type: string + AIoTNRFMapping: + type: object + required: + - aIOTFdN + - internalTargetArea + properties: + aIOTFdN: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + internalTargetArea: + $ref: 'TS28541_NrNrm.yaml#/components/schemas/ServedAIOTAreaID' + AIoTNEFMapping: + type: object + required: + - targetAreaAF + - internalTargetArea + properties: + targetAreaAF: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' + internalTargetArea: + $ref: 'TS28623_GenericNrm.yaml#/components/schemas/AreaScope' VflInfo: description: Indicates the Vfl capability supported by the NWDAF/TrustAF/unTrustAF type: object @@ -4764,7 +4827,9 @@ components: nrfInfo: $ref: '#/components/schemas/NrfInfo' managedNFProfile: - $ref: '#/components/schemas/ManagedNFProfile' + $ref: '#/components/schemas/ManagedNFProfile' + aIoTNRFMapping: + $ref: '#/components/schemas/AIoTNRFMapping' - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/ManagedFunction-ncO' - $ref: '#/components/schemas/ManagedFunction5GC-nc0' - type: object @@ -5022,7 +5087,9 @@ components: type: boolean readOnly: true nefInfo: - $ref: '#/components/schemas/NefInfo' + $ref: '#/components/schemas/NefInfo' + AIoTNEFMapping: + $ref: '#/components/schemas/AIoTNEFMapping' - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/ManagedFunction-ncO' - $ref: '#/components/schemas/ManagedFunction5GC-nc0' - type: object @@ -6146,6 +6213,18 @@ components: allOf: - type: object properties: + requestedQoSMonitoring: + type: string + enum: + - DLPD + - ULPD + - RPPD + - DLCI + - ULCI + - DLDR + - ULDR + - DLAB + - ULAB qFQoSMonitoringState: type: string enum: @@ -6177,6 +6256,8 @@ components: default: true qFPacketDelayThresholds: $ref: '#/components/schemas/QFPacketDelayThresholdsType' + qFReportingThresholds: + $ref: '#/components/schemas/QFReportingThreshold' qFMinimumWaitTime: type: integer qFMeasurementPeriod: diff --git a/OpenAPI/TS28541_NrNrm.yaml b/OpenAPI/TS28541_NrNrm.yaml index d1dad3791e20fe29cbf3065d814a7d764d4f7894..2d4a13446e9d98e34d14b5fce332dd678c83015f 100755 --- a/OpenAPI/TS28541_NrNrm.yaml +++ b/OpenAPI/TS28541_NrNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: NR NRM - version: 20.0.0 + version: 20.1.0 description: >- OAS 3.0.1 specification of the NR NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -19,6 +19,7 @@ components: type: integer minimum: 0 maximum: 4294967295 + format: int64 GnbIdLength: type: integer minimum: 22 @@ -30,10 +31,12 @@ components: type: integer minimum: 0 maximum: 68719476735 + format: int64 GnbCuUpId: type: integer minimum: 0 maximum: 68719476735 + format: int64 readOnly: true Sst: @@ -109,6 +112,7 @@ components: uniqueItems: true items: $ref: '#/components/schemas/GeNBId' + deprecated: true NrPci: type: integer @@ -682,6 +686,7 @@ components: default: 0 minimum: 0 maximum: 8589934591 + format: int64 eccentricity: type: integer default: 0 @@ -787,7 +792,33 @@ components: nID: $ref: 'TS28541_5GcNrm.yaml#/components/schemas/Nid' aIotAreaCode: - type: string + type: string + MnrOamIPConfig: + type: object + properties: + caraConfiguration: + $ref: '#/components/schemas/CaraConfiguration' + seGwConfiguration: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/HostAddr' + scsConfiguration: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/HostAddr' + CaraConfiguration: + type: object + properties: + caraAddress: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/HostAddr' + portNumber: + type: integer + path: + type: string + subjectName: + type: string + protocol: + type: string + enum: + - HTTP + - HTTPS + #-------- Definition of types for name-containments ------ SubNetwork-ncO-NrNrm: type: object @@ -819,7 +850,7 @@ components: CESManagementFunction: $ref: '#/components/schemas/CESManagementFunction-Single' RedCapAccessCriteria: - $ref: '#/components/schemas/RedCapAccessCriteria-Single' + $ref: '#/components/schemas/RedCapAccessCriteria-Multiple' Configurable5QISet: $ref: 'TS28541_5GcNrm.yaml#/components/schemas/Configurable5QISet-Multiple' RimRSGlobal: @@ -834,6 +865,8 @@ components: $ref: '#/components/schemas/NRECMappingRule-Multiple' MWAB: $ref: '#/components/schemas/MWAB-Multiple' + IAB: + $ref: '#/components/schemas/IAB-Multiple' NRFemtoGW: $ref: '#/components/schemas/NRFemtoGW-Single' @@ -860,6 +893,8 @@ components: $ref: '#/components/schemas/CPCIConfigurationFunction-Single' CESManagementFunction: $ref: '#/components/schemas/CESManagementFunction-Single' + RedCapAccessCriteria: + $ref: '#/components/schemas/RedCapAccessCriteria-Multiple' Configurable5QISet: $ref: 'TS28541_5GcNrm.yaml#/components/schemas/Configurable5QISet-Multiple' Dynamic5QISet: @@ -870,6 +905,8 @@ components: $ref: '#/components/schemas/NRECMappingRule-Multiple' MWAB: $ref: '#/components/schemas/MWAB-Multiple' + IAB: + $ref: '#/components/schemas/IAB-Multiple' NRFemtoGW: $ref: '#/components/schemas/NRFemtoGW-Single' @@ -915,6 +952,8 @@ components: $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' dynamic5QISetRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + iABRef: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/ManagedFunction-ncO' - type: object properties: @@ -1071,7 +1110,7 @@ components: dDAPSHOControl: type: boolean dLTMControl: - type: boolean + type: boolean mappedCellIdInfoList: $ref: '#/components/schemas/MappedCellIdInfoList' qceIdMappingInfoList: @@ -1079,9 +1118,11 @@ components: mdtUserConsentReqList: $ref: '#/components/schemas/MdtUserConsentReqList' mWABRef: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' nRECMappingRuleRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + iABRef: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' nRFemtoGWRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/ManagedFunction-ncO' @@ -1224,7 +1265,9 @@ components: type: string enum: - REDCAP_1RX - - REDCAP_2RX + - REDCAP_2RX + - EREDCAP_1RX + - EREDCAP_2RX nRSectorCarrierRef: type: array uniqueItems: true @@ -1505,6 +1548,8 @@ components: type: boolean isMLBAllowed: type: boolean + dCLTMControl: + type: boolean EUtranCellRelation-Single: allOf: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' @@ -2311,6 +2356,8 @@ components: attributes: type: object properties: + mnrOamIPConfig: + $ref: '#/components/schemas/MnrOamIPConfig' administrativeState: $ref: 'TS28623_ComDefs.yaml#/components/schemas/AdministrativeState' operationalState: @@ -2325,6 +2372,8 @@ components: uniqueItems: true items: $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' + currentLocation: + $ref: '#/components/schemas/LocationInfo' NRECMappingRule-Single: allOf: @@ -2395,6 +2444,18 @@ components: uniqueItems: true items: $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + IAB-Single: + allOf: + - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' + - type: object + properties: + attributes: + type: object + properties: + mrnOamIPConfig: + $ref: '#/components/schemas/MnrOamIPConfig' + currentLocation: + $ref: '#/components/schemas/LocationInfo' NRFemtoGW-Single: allOf: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' @@ -2593,6 +2654,11 @@ components: type: array items: $ref: '#/components/schemas/AIOTReader-Single' + IAB-Multiple: + type: array + items: + $ref: '#/components/schemas/IAB-Single' + #-------- Definitions in TS 28.541 for TS 28.532 --------------------------------- @@ -2665,4 +2731,5 @@ components: - $ref: '#/components/schemas/NTNTimeBasedConfig-Single' - $ref: '#/components/schemas/RedCapAccessCriteria-Single' - $ref: '#/components/schemas/AIOTReader-Single' + - $ref: '#/components/schemas/IAB-Single' diff --git a/OpenAPI/TS28561_NdtNrm.yaml b/OpenAPI/TS28561_NdtNrm.yaml index 270a819a8dad34d740bcc10220977b04c76ce994..31d58a42f8787142558a5d3ed940b1a283312509 100644 --- a/OpenAPI/TS28561_NdtNrm.yaml +++ b/OpenAPI/TS28561_NdtNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: NDT NRM - version: 19.0.0 + version: 19.1.0 description: >- OAS 3.0.1 definition of the NDT NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -38,6 +38,8 @@ components: New values can be added to this list in future releases to support new use cases. nDTFunctionScope: $ref: '#/components/schemas/NDTFunctionScope' + nDTFunctionRefList: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnList' NDTJob-Single: description: >- @@ -61,9 +63,10 @@ components: 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: + nDTReportRefList: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' + nDTJobRefList: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnListRo' - NDTReport-Single: description: >- This IOC represents the properties of an NDT report corresponding to an NDT job @@ -77,18 +80,17 @@ components: 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: + nDTJobRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + #-------Definition of the dataType ----------# NDTCapability: type: string enum: - RISKY_ACTIONS_PREDICTION - EVENTS_IMPACTS_VERIFICATION - - FAULT_INJECTION + - NETWORK_ISSUE_INDUCEMENT - NETWORK_EVENTS_VERIFICATION - NETWORK_CONFIGURATIONS_VERIFICATION - AUTOMATION_CONFIGURATION_VERIFICATION @@ -106,15 +108,13 @@ components: properties: nDTInputDescriptionId: type: string - simulationData: + simulationDataDescriptor: type: array uniqueItems: true items: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet' + $ref: '#/components/schemas/SimulationDataDescriptor' networkEventInfo: type: string - condition: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' NDTOutputDescription: type: object properties: @@ -166,6 +166,43 @@ components: uniqueItems: true items: $ref: '#/components/schemas/NDTOutputDescription' + SimulationDataDescriptor: + type: object + properties: + simulationData: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/SimulationData' + condition: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' + SimulationData: + type: object + properties: + performanceData: + type: array + uniqueItems: true + items: + $ref: '#/components/schemas/PerformanceData' + mDTData: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet' + configurationData: + type: array + uniqueItems: true + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet' + PerformanceData: + type: object + properties: + performanceDataName: + type: string + performanceDataValue: + type: integer + performanceDataScalingFactor: + type: integer #------Definition of JSON arrays for name-contained IOCs ---------------# diff --git a/OpenAPI/TS28567_CclNrm.yaml b/OpenAPI/TS28567_CclNrm.yaml index 1cd88fcd3225e5b056e588b91e831f9ec4c7128e..f8f6c70dbef643426609da3ce62e2204173e1dde 100644 --- a/OpenAPI/TS28567_CclNrm.yaml +++ b/OpenAPI/TS28567_CclNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: CCL NRM - version: 19.0.0 + version: 19.1.0 description: >- OAS 3.0.1 definition of the CCL NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -28,13 +28,13 @@ components: allOf: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' - type: object - properties: + properties: cCLComponentsInfo: type: array items: $ref: '#/components/schemas/CCLComponentsInfo' description: >- - It indicates information on the constituent components of a CCL. + It indicates information on the constituent components of a CCL. administrativeState: $ref: 'TS28623_ComDefs.yaml#/components/schemas/AdministrativeState' operationalState: @@ -106,23 +106,25 @@ components: - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top' - type: object properties: - FaultManagementAlarmIdList: - type: string - FaultManagementBackUpObjectRequirement: + faultManagementAlarmIdList: + type: array + items: + type: string + faultManagementBackUpObjectRequirement: type: boolean - FaultManagementIsolateObjectRequirement: + faultManagementIsolateObjectRequirement: type: boolean - FaultManagementTimeWindow: + faultManagementTimeWindow: $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' clearUserId: - type: string + type: string #-------Definition of the generic dataType --------------# CCLComponentsInfo: type: object properties: - cCLComponentId: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn' + cCLComponentInfoId: + type: string cCLSteps: type: string enum: @@ -146,11 +148,11 @@ components: FaultManagementCCLReport: type: object properties: - GeneratedAlarmResultList: + generatedAlarmResultList: type: array items: type: string - FaultManagementCCLReportTime: + faultManagementCCLReportTime: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime' GeneratedAlarmResult: diff --git a/OpenAPI/TS28572_PlanManagement.yaml b/OpenAPI/TS28572_PlanManagement.yaml index 3d33a9a65a0c431ddc2dfa7574b0feff618395e7..312cf8bd3637505a11ae144271d3a903ac9f95e0 100644 --- a/OpenAPI/TS28572_PlanManagement.yaml +++ b/OpenAPI/TS28572_PlanManagement.yaml @@ -1,17 +1,17 @@ openapi: 3.0.0 info: title: 3GPP Plan Provisioning Management API - version: 19.0.0 + version: 19.1.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}' + - url: '{MnSRoot}/plan-management/{MnSVersion}' variables: MnSRoot: description: See clause 4.4.2 of TS 32.158 - default: http://example.com/PlanManagement + default: http://example.com/cm MnSVersion: description: Version number of the OpenAPI definition default: v1 @@ -31,20 +31,42 @@ paths: 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": { - ... - } - } + 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" + configChangesContentType: "YANG" + configChanges: + modifyOperator: create + changeId: add-nr-cell-001 + comment: Add new NR cell for initial deployment in Dublin-4 area. + target: /SubNetwork=Irl/MeContext=Dublin-1/ManagedElement=1/GNBDUFunction=1 + value: + NRCellDU: + - id: '4' + attributes: + userLabel: Dublin-1-Cell-4 + administrativeState: UNLOCKED + multipart/form-data: + schema: + type: object + properties: + name: + type: string + description: name of the plan (metadata). + example: + name: "Rollout-5G-Dublin-East" + version: + type: string + description: version of the plan (metadata). + example: + version: "1.0.0" + file: + type: string + format: binary + description: The file containing the planDescriptor information. responses: '201': description: Plan descriptor created successfully @@ -90,9 +112,10 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/DescriptorListEntry' + type: object # <-- Response body is an object + properties: + items: # <-- The array is nested inside the 'items' property + $ref: '#/components/schemas/DescriptorListEntry' '500': description: Internal server error. content: @@ -155,8 +178,7 @@ paths: "technology-type": "NR", "location": "Dublin" }, - "currentConfigAddress": "http://example.org/3gpp/ProvMnS/v1", - "planConfig": { + "configChanges": { ... } } @@ -263,9 +285,10 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/DescriptorListEntry' + type: object # <-- Response body is an object + properties: + items: # <-- The array is nested inside the 'items' property + $ref: '#/components/schemas/DescriptorListEntry' '500': description: Internal server error. content: @@ -397,9 +420,10 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/DescriptorListEntry' + type: object # <-- Response body is an object + properties: + items: # <-- The array is nested inside the 'items' property + $ref: '#/components/schemas/DescriptorListEntry' '500': description: Internal server error. content: @@ -407,7 +431,7 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /fallback-descriptor/{id}: + /fallback-descriptors/{id}: parameters: - in: path name: id @@ -521,9 +545,10 @@ paths: content: application/json: schema: - type: array - items: - $ref: '#/components/schemas/DescriptorListEntry' + type: object # <-- Response body is an object + properties: + items: # <-- The array is nested inside the 'items' property + $ref: '#/components/schemas/DescriptorListEntry' /trigger-descriptors/{id}: parameters: @@ -616,7 +641,7 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /activation-jobs: + /plan-activation-jobs: post: tags: - Activation Management @@ -639,11 +664,11 @@ paths: schema: type: string format: uri-reference - example: "/activation-jobs/myjob-111" + example: "/plan-activation-jobs/myjob-111" content: application/json: schema: - $ref: '#/components/schemas/ActivationJob' + $ref: '#/components/schemas/ActivationJobResponse' '400': description: Invalid request payload or parameters (e.g., malformed JSON, missing required fields). content: @@ -692,7 +717,7 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /activation-jobs/{id}: + /plan-activation-jobs/{id}: parameters: - $ref: '#/components/parameters/jobId' get: @@ -707,7 +732,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ActivationJob' + $ref: '#/components/schemas/ActivationJobResponse' '404': description: Job not found. content: @@ -749,15 +774,15 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /activation-jobs/{id}/status: - parameters: - - $ref: '#/components/parameters/jobId' + /plan-activation-jobs/{id}/status: get: tags: - Activation Management summary: Get job status description: Retrieve the current status of a specific plan activation job using its unique identifier. operationId: getJobStatus + parameters: + - $ref: '#/components/parameters/jobId' responses: '200': description: Job status retrieved successfully. @@ -777,18 +802,39 @@ paths: application/problem+json: schema: $ref: '#/components/schemas/ErrorDetail' - patch: + + /plan-activation-jobs/{id}/activation-details: + get: + tags: + - Activation Management + summary: Get activation details + description: Retrieve detailed information about the activation results of a job + operationId: getActivationDetails + parameters: + - $ref: '#/components/parameters/jobId' + responses: + '200': + description: Activation details retrieved successfully + content: + application/json: + schema: + $ref: '#/components/schemas/ExecutionDetails' + '404': + description: Job not found + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' + + /plan-activation-jobs/{id}/cancel-request: + parameters: + - $ref: '#/components/parameters/jobId' + put: 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 @@ -813,30 +859,7 @@ paths: 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: + /plan-validation-jobs: post: tags: - Validation Management @@ -863,7 +886,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ValidationJob' + $ref: '#/components/schemas/ValidationJobResponse' '400': description: Invalid request payload or parameters (e.g., malformed JSON, missing required fields). content: @@ -888,17 +911,23 @@ paths: name: job-state schema: $ref: '#/components/schemas/JobState' - description: Filter jobs by their current status. - example: "RUNNING" + description: Filter jobs by their current state. + example: "COMPLETED" # Example state for validation jobs responses: '200': - description: List of plan validation jobs retrieved successfully. + description: List of plan validation jobs retrieved successfully. content: application/json: schema: type: array items: - $ref: '#/components/schemas/JobListEntry' + $ref: '#/components/schemas/JobListEntry' + '400': + description: Invalid query parameters + content: + application/problem+json: + schema: + $ref: '#/components/schemas/ErrorDetail' '500': description: Internal server error. content: @@ -906,7 +935,7 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /validation-jobs/{id}: + /plan-validation-jobs/{id}: parameters: - $ref: '#/components/parameters/jobId' get: @@ -921,7 +950,7 @@ paths: content: application/json: schema: - $ref: '#/components/schemas/ValidationJob' + $ref: '#/components/schemas/ValidationJobResponse' '404': description: Job not found. content: @@ -957,7 +986,7 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /validation-jobs/{id}/status: + /plan-validation-jobs/{id}/status: get: tags: - Validation Management @@ -985,43 +1014,8 @@ paths: application/problem+json: schema: $ref: '#/components/schemas/ErrorDetail' - patch: - tags: - - Activation Management - summary: Cancel the validation job - description: Cancel the validation job - operationId: cancelActivationJobById - requestBody: - required: true - content: - application/json: - schema: - $ref: '#/components/schemas/CancelRequest' - responses: - '200': - description: Job cancel request was successfully completed - '202': - description: Job cancel request was accepted and cancellation is ongoing - '404': - description: Job not found. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ErrorDetail' - '422': - description: Semantic error - e.g. job was not in RUNNING state - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ErrorDetail' - '500': - description: Internal server error. - content: - application/problem+json: - schema: - $ref: '#/components/schemas/ErrorDetail' - /validation-jobs/{id}/validation-details: + /plan-validation-jobs/{id}/validation-details: get: tags: - Validation Management @@ -1051,7 +1045,7 @@ paths: schema: $ref: '#/components/schemas/ErrorDetail' - /validation-jobs/{id}/cancel-request: + /plan-validation-jobs/{id}/cancel-request: parameters: - $ref: '#/components/parameters/jobId' put: @@ -1105,20 +1099,78 @@ components: schemas: + PlanConfigurationDescriptor: type: object required: - - configurationContentType - - planConfig + - configChanges + allOf: + - $ref: '#/components/schemas/PlanConfigurationDescriptorCommonProperties' + properties: + configChanges: + description: "The plan configuration changes" + type: array + items: + $ref: '#/components/schemas/ConfigChange' + + PlanConfigurationDescriptorResponse: + type: object + required: + - id + - activationMode + - lastModifiedAt + - validationState + - configChangesContentType + - configChanges + allOf: + - $ref: '#/components/schemas/PlanConfigurationDescriptorCommonProperties' + properties: + configChanges: + description: "The plan configuration changes" + type: array + items: + $ref: '#/components/schemas/ConfigChangeInResponse' + validationState: + type: string + enum: [NOT_VALIDATED, VALIDATING, VALID, INVALID] + default : NOT_VALIDATED + description: The validation state of the plan. + example: NOT_VALIDATED + lastModifiedAt: + type: string + format: date-time + description: the last time the plan was modified + example: 2025-03-06T16:50:26-08:00 + lastValidatedAt: + type: string + format: date-time + description: last time the plan was validated + example: 2025-03-06T16:50:29-08:00 + _links: + type: object + description: Hypermedia links for plan descriptor + allOf: + - $ref: '#/components/schemas/SelfLink' + example: + self: + href: "{root-url}/plan-management/v1/plan-descriptors/pd-001" + templated: true + type: "application/json" + title: "The newly created PlanConfigurationDescriptor" + + PlanConfigurationDescriptorCommonProperties: + type: object + required: + - configChangesContentType properties: id: type: string description: Unique id of the plan configuration descriptor - example: "plan-001" + example: plan-001 name: type: string description: Descriptive name of the plan group configuration descriptor - example: "Rollout-5G-Dublin-East" + example: Rollout-5G-Dublin-East version: type: string description: The version of the planned configuration. Its format is implementation specific. @@ -1126,7 +1178,7 @@ components: 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." + 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 @@ -1134,73 +1186,21 @@ components: 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" + 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: + example: BEST_EFFORT + configChangesContentType: type: string enum: - - application/vnd.3gpp.json-patch+json - - application/vnd.3gpp.yang-patch+json + - YANG + - OPENAPI + default: YANG 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" + example: YANG + PlanConfigurationGroupDescriptor: type: object @@ -1240,17 +1240,17 @@ components: 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" + lastModifiedAt: + type: string + format: date-time + description: the last time the plan was modified + example: "2025-03-06T16:50:26-08:00" lastValidatedAt: type: string format: date-time @@ -1260,42 +1260,92 @@ components: 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: + $ref: '#/components/schemas/Member' + example: + - planConfigDescrId: pcd-network-101 + - planConfigGroupDescrId: pgc-europe-east-group + - planConfigDescrId: pcd-radio-tuning-005 + - planConfigGroupDescrId: pgc-5g-core-rollout + + PlanConfigurationGroupDescriptorResponse: 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 + - 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}/plan-management/v1/plan-group-descriptors/pgd-001" + templated: true + type: "application/json" + title: "The newly created PlanConfigurationGroupDescriptor" + + + Member: + type: object + description: Defines a member identified by EITHER a single Plan Configuration Descriptor ID + OR a Plan Configuration Group Descriptor ID, but not both. + properties: + planConfigDescrId: + type: string + description: Unique id of the plan configuration descriptor. + example: "pcd-001" + planConfigGroupDescrId: + type: string + description: Unique id of the plan configuration group descriptor. + example: "pgc-001" + + # The oneOf keyword enforces that the instance must validate against exactly one subschema. + oneOf: + # Option 1: Must contain planConfigDescrId + - required: + - planConfigDescrId + # explicitly forbid the other property to ensure strict mutual exclusivity + not: + required: [ planConfigGroupDescrId ] + + # Option 2: Must contain planConfigGroupDescrId + - required: + - planConfigGroupDescrId + # explicitly forbid the other property + not: + required: [ planConfigDescrId ] + + FallbackConfigurationDescriptor: + type: object + required: + - configChangesContentType + - configChanges + 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: @@ -1307,24 +1357,26 @@ components: 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." + - YANG + - OPENAPI + description: The format/type of the configuration in configChanges + example: YANG + fallbackConfig: + description: The fallback configuration. oneOf: - type: string - type: object additionalProperties: - $ref: '#/components/schemas/Change' + $ref: '#/components/schemas/ConfigChange' 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 + - fallbackConfig allOf: - $ref: '#/components/schemas/FallbackConfigurationDescriptor' properties: @@ -1335,33 +1387,10 @@ components: - $ref: '#/components/schemas/SelfLink' example: self: - href: "{root-url}/ProvMnS/v1/fallback-descriptors/pd-001" + href: "{root-url}/plan-management/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" + title: "The newly created FallbackConfigurationDescriptor" TriggerDescriptor: type: object @@ -1461,7 +1490,7 @@ components: - $ref: '#/components/schemas/SelfLink' example: self: - href: "{root-url}/ProvMnS/v1/trigger-descriptors/trigger-001" + href: "{root-url}/plan-management/v1/trigger-descriptors/trigger-001" templated: true type: "application/json" title: "The newly created TriggerDescriptor" @@ -1508,10 +1537,16 @@ components: - id - name - jobState - - ActivationJobRequest: - type: object + + ActivationJob: + type: object + allOf: + - $ref: '#/components/schemas/JobState' properties: + id: + type: string + description: id of the activation job + example: "job-id-3985199134" name: type: string description: Name of the activation job @@ -1522,9 +1557,13 @@ components: 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"] + description: The consumer 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 + createdFallbackConfigDescrId: + type: string + description: Id of the created Fallback Plan Configuration Descriptor + example: "fallback-plan-descriptor-001" isFallbackEnabled: type: boolean description: Whether fallback should be enabled for this job @@ -1538,6 +1577,36 @@ components: type: boolean description: Specifies if the activation job shall start immediately or, alternatively, by conditional activation. default: true + jobState: + allOf: + - $ref: '#/components/schemas/JobState' + jobDetails: + allOf: + - $ref: '#/components/schemas/JobDetails' + activationState: + allOf: + - $ref: '#/components/schemas/ActivationState' + activationDetails: + allOf: + - $ref: '#/components/schemas/LinkObject' + - type: object + properties: + href: + type: string + title: A URI reference to the activation details + example: "{apiRoot}/plan-management/v1/plan-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" oneOf: - type: object # Alt.1 planConfigDescrId required: @@ -1563,7 +1632,7 @@ components: techology-type: "NR", indoor: false } - planConfig: + configChanges: ... - type: object # Alt.3 planConfigGroupDescrId required: @@ -1590,162 +1659,146 @@ components: type: string description: Unique id reference to the fallback descriptor to activate example: "planxyz" - + example: + { + id : "myjob-111", + name : "5G-Dublin-East-Rollout", + description : "Optimize the 5G network in Dublin East", + isFallbackEnabled : true, + serviceImpact : "SHORTEST_TIME", + isImmediateActivation : true, + jobState : "CREATED", + jobDetails : "", + startedAt : "", + activationState : "NOT_STARTED", + activationDetails : { + href: "{apiRoot}/plan-management/v1/plan-activation-jobs/myjob-111/activation-details", + templated: true, + type: "application/json", + title: "The activation details of the plan configuration(s)", + method : "GET" + }, + planConfigDescrId : "plan-descriptor-001", + } + additionalProperties : true + + ActivationJobRequest: + type: object + allOf: + - $ref: '#/components/schemas/ActivationJob' + example: + { + "name" : "5G-Dublin-East-Rollout", + "description" : "Optimize the 5G network in Dublin East", + "planConfigDescr" : { + "activationMode" : "ATOMIC", + "customProperties" : { + "technology-type": "NR", + "location": "Dublin" + }, + "configChangesContentType" : "application/vnd.3gpp.yang-patch+json", + "configChanges": { + ... + } + } + } - ActivationJob: + ActivationJobResponse: type: object required: - id - - status + - jobState + - jobDetails + - activationState + - activationDetails - 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" + - $ref: '#/components/schemas/ActivationJob' + properties: _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 + 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}/plan-management/v1/plan-activation-jobs/{ActivationJobId}" + title: + type: string + enum: + - "Link to the plan activation job" + method: + type: string + enum: + - "GET" + example: + href: "{apiRoot}/plan-management/v1/plan-activation-jobs/activation-job-001" + title: "Link to the plan activation job" + type: "application/json" + templated: true + method: GET + fallback: + allOf: + - $ref: '#/components/schemas/LinkObject' + description: A URI reference to the fallback plan descriptor + example: + href: "{apiRoot}/plan-management/v1/plan-descriptor/myjob-111-fallback" + templated: true + type: "application/json" + title: "A URI reference to the fallback plan descriptor" + method: GET + ##EDITOR other links are missing. We have more in the examples -> additionalProperties to allow any other dynamic links LATER + additionalProperties: + $ref: '#/components/schemas/LinkObject' + example: + self: + href: "{apiRoot}/plan-management/1900/plan-activation-jobs/myjob-111" + templated: true + type: "application/json" + title: "The newly created activation job" + method : "GET" + planDescriptor: + href: "{apiRoot}/plan-management/v1/plan-descriptors/planxyz" + templated: true + type: "application/json" + title: "plan descriptor link" + method : "GET" + status: + href: "{apiRoot}/plan-management/1900/plan-activation-jobs/myjob-111/status" + templated: true + type: "application/json" + title: "activation status link" + method : "GET" + cancel: + href: "{apiRoot}/plan-management/v1/plan-activation-jobs/myjob-111/cancel-request" + templated: true + type: "application/json" + title: "cancel the job" + method : "PUT" + fallbackPlan: + href: "{apiRoot}/plan-management/v1/plan-descriptors/myfallback-plan-111" + templated: true + type: "application/json" + title: "fallback plan descriptor link" + method : "GET" - ValidationJobRequest: + ValidationJob: type: object - required: - - _links - description: An object representing a plan activation job. + allOf: + - $ref: '#/components/schemas/JobState' properties: + id: + type: string + description: id of the validation job + example: "job-id-3985199134" name: type: string description: Name of the validation job @@ -1754,16 +1807,17 @@ components: type: string description: Human-readable description of the job example: "Optimize the Dublin area network" + mnsConsumerId: + type: array + description: The consumer 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 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: @@ -1789,7 +1843,7 @@ components: techology-type: "NR", indoor: false } - planConfig: + configChanges: ... - type: object # Alt.3 planConfigGroupDescrId required: @@ -1816,187 +1870,146 @@ components: type: string description: Unique id reference to the fallback descriptor to validate example: "planxyz" + additionalProperties : true + + ValidationJobRequest: + type: object + allOf: + - $ref: '#/components/schemas/ValidationJob' example: { - name : "5G-Dublin-East-Rollout", - description : "Optimize the 5G network in Dublin East", - planConfigDescrId : "plan-descriptor-001", - } - additionalProperties : true - - ValidationJob: + "name" : "5G-Dublin-East-Rollout", + "description" : "Optimize the 5G network in Dublin East", + "planDescriptor" : { + "activationMode" : "ATOMIC", + "customProperties" : { + "technology-type": "NR", + "location": "Dublin" + }, + "configChanges": { + ... + } + } + } + + ValidationJobResponse: type: object required: - id - - status + - jobState - jobDetails + - validationState - 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 + allOf: + - $ref: '#/components/schemas/ValidationJob' properties: cancelRequest: type: boolean - description: property to cancel the activation/validation job - example: true - - Change: + description: boolean indicating the request of a job cancellation + example: true + currentConfigTime: + type: string + format : DateTime + description: The date and time of the current configuration state against which the planned configuration or planned configuration group is validated. + jobDetails: + allOf: + - $ref: '#/components/schemas/JobDetails' + jobState: + allOf: + - $ref: '#/components/schemas/JobState' + validationState: + allOf: + - $ref: '#/components/schemas/ValidationState' + validationDetails: + allOf: + - $ref: '#/components/schemas/LinkObject' + - type: object + properties: + href: + type: string + title: A URI reference to the validation details + example: "{apiRoot}/plan-management/v1/plan-activation-jobs/myjob-111/validation-details" + title: + type: string + enum: + - "Link to the validation details" + method: + type: string + enum: + - "GET" + type: + type: string + description: The content type expected when following this link (MIME type). + default: "application/json" + _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}/plan-management/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}/plan-management/v1/validation-jobs/validation-job-001" + title: "Link to the plan validation job" + type: "application/json" + templated: true + method: GET + # additionalProperties to allow any other dynamic links + additionalProperties: + $ref: '#/components/schemas/LinkObject' + example: + self: + href: "{apiRoot}/plan-management/1900/plan-activation-jobs/myjob-111" + templated: true + type: "application/json" + title: "The newly created activation job" + method : "GET" + planDescriptor: + href: "{apiRoot}/plan-management/v1/plan-descriptors/planxyz" + templated: true + type: "application/json" + title: "plan descriptor link" + method : "GET" + status: + href: "{apiRoot}/plan-management/v1/plan-activation-jobs/myjob-111/status" + templated: true + type: "application/json" + title: "activation status link" + method : "GET" + cancel: + href: "{apiRoot}/plan-management/v1/plan-activation-jobs/myjob-111/cancel-request" + templated: true + type: "application/json" + title: "cancel the job" + method : "POST" + fallbackPlan: + href: "{apiRoot}/plan-management/v1/plan-descriptors/myfallback-plan-111" + templated: true + type: "application/json" + title: "fallback plan descriptor link" + method : "GET" + + ConfigChange: type: object properties: - changeId: + modifyOperator: type: string - description: Unique identifier for this change - example: "opId-001" - operation: - type: string - enum: [create, merge, update, delete] + enum: [create, merge, merge-create, delete] description: The operation to perform example: "create" description: @@ -2007,14 +2020,47 @@ components: 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" + changeId: + description: Unique identifier for this change. Its value must be unique in any list of changes in a PlanDescriptor. + MnSProducer may ignore this property even if provided in favour of an auto-positional positional index of the changes array. + If not provided the response will default to changeIndex + example: "cell-operation-001" 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 + description: Value to apply (for create/merge/merge-create operations) + additionalProperties: true # Allows for additional properties to be provided required: - operation - target + + ConfigChangeInResponse: + description: Represents a single change operation that combines a base definition + with mutually exclusive identification methods (ID or Index). + allOf: + - $ref: '#/components/schemas/ConfigChange' + + - type: object + properties: + + changeIndex: + type: integer + description: Location index of the change in a list of changes. + example: 0 + + # enforces that only one of changeId or changeIndex are used by the MnSProducer + oneOf: + # Option 1: Must have changeId AND must NOT have changeIndex + - required: + - changeId + not: + required: [ changeIndex ] + + # Option 2: Must have changeIndex AND must NOT have changeId + - required: + - changeIndex + not: + required: [ changeId ] JobLinks: type: object @@ -2029,7 +2075,7 @@ components: properties: href: type: string - default: "{apiRoot}/ProvMnS/v1/plan-descriptors/{planDescriptorId}" + default: "{apiRoot}/plan-management/v1/plan-descriptors/{planDescriptorId}" title: type: string enum: @@ -2039,7 +2085,7 @@ components: enum: - "GET" # This means the method MUST be "GET" example: - href: "{apiRoot}/ProvMnS/v1/plan-descriptors/plan-descriptor-001" + href: "{apiRoot}/plan-management/v1/plan-descriptors/plan-descriptor-001" title: "Link reference to the plan (or plan group) configuration descriptor" type: "application/json" templated: true @@ -2051,7 +2097,7 @@ components: properties: href: type: string - default: "{apiRoot}/ProvMnS/v1/activation-jobs/{jobId}/status" + default: "{apiRoot}/plan-management/v1/plan-activation-jobs/{jobId}/status" title: type: string enum: @@ -2062,7 +2108,7 @@ components: - "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" + href: "{apiRoot}/plan-management/v1/plan-activation-jobs/myjob-111/status" title: "Link to GET the job status" type: "application/json" templated: true @@ -2074,7 +2120,7 @@ components: properties: href: type: string - default: "{apiRoot}/ProvMnS/v1/plan-{job-type}-jobs/{jobId}/status" + default: "{apiRoot}/plan-management/v1/plan-{job-type}-jobs/{jobId}/cancel-request" title: type: string enum: @@ -2082,14 +2128,14 @@ components: method: type: string enum: - - "PATCH" # This means the method MUST be "PATCH" + - "PUT" # This means the method MUST be "PUT" description: A URI reference to cancel the job example: - href: "{apiRoot}/ProvMnS/v1/activation-jobs/myjob-111/status" + href: "{apiRoot}/plan-management/v1/plan-activation-jobs/myjob-111/cancel-cancel-request" title: "Link to cancel the job" type: "application/json" templated: true - method: PATCH + method: POST JobState: type: string @@ -2098,8 +2144,12 @@ components: JobDetails: properties: - jobInformation: + message: type: string + errors: + type: array + items: + $ref: '#/components/schemas/ErrorDetail' additionalProperties: true ActivationJobStatus: @@ -2156,16 +2206,17 @@ components: type: array items: $ref: '#/components/schemas/ChangeStatus' + memberConflicts: + type: array + items: + $ref: '#/components/schemas/MemberConflict' summary: $ref: '#/components/schemas/SummaryStatus' example: { "results": { ...}, - "summary" : { - "unprocessed": 0, - "succeeded": 2, - "failed": 3 - } + "memberConflicts": { ...}, + "summary" : {...} } ValidationState: @@ -2181,6 +2232,10 @@ components: ChangeStatus: type: object properties: + planConfigDescrId: + type: string + description : The schange status may optionally include the planDescriptor Id + example: "descriptor-001" changeId: type: string example: "changeId-001" @@ -2196,12 +2251,8 @@ components: 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; + - changeId # either the chanId or the array index in the array of ChangeBaseProperties; - target - state example: @@ -2237,74 +2288,48 @@ components: rollbackFailed: type: integer example: 0 + conflicting: + type: integer + example: 0 - Conflict: + MemberConflict: type: object - allOf: - - $ref: '#/components/schemas/Change' properties: - planDescriptorId: - type: string - change: - $ref: '#/components/schemas/Change' - conflictingChanges: + memberConflict : 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" - } - ] - } + $ref: '#/components/schemas/MemberOp' - ConflictingChange: + MemberOp: type: object properties: - planDescriptorId: - type: string - change: - $ref: '#/components/schemas/Change' - conflictType: - type: string - conflictMessage: + planConfigDescrId: type: string - severity: + changeId: type: string - enum: - - LOW - - MEDIUM - - HIGH - - UNKNOWN - default: UNKNOWN + description: The changeId as provided in the request. + example: "0" + changeIndex: + type: integer + description: Location index of the change in a list of changes. + example: 0 + + # enforces that only one of either changeId or changeIndex is used + # if changeId is not provided then the changeIndex will be used by default + oneOf: + # Option 1: Must have changeId AND must NOT have changeIndex + - required: + - changeId + not: + required: [ changeIndex ] + + # Option 2: Must have changeIndex AND must NOT have changeId + - required: + - changeIndex + not: + required: [ changeId ] required: - - change - - conflictType - - severity + - planDescriptorId ErrorDetail: type: object @@ -2313,70 +2338,38 @@ components: 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 + - ACTIVATION_ERROR - RETRIEVAL_NOT_ALLOWED - - SERVER_LIMITATION - - SERVICE_DISABLED + - MODIFICATION_NOT_ALLOWED + - SERVER_ERROR - 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 + - DATA_NODE_NAME_INVALID + - DATA_NODE_EXIST + - DATA_NODE_NOT_FOUND + - DATA_NODE_PARENT_NOT_FOUND + - VALUE_INVALID + - MODIFICATION_NOT_ALLOWED + - DATA_NODE_NOT_WRITABLE + - DATA_NODE_INVARIANT + - DATA_NODE_CREATION_NOT_ALLOWED + - DATA_NODE_DELETION_NOT_ALLOWED + - DATA_NODE_CARDINALITY_INVALID - 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" + - UNKNOWN_OPERATION + - ACCESS_DENIED + - ATTRIBUTE_INDEX_BAD + - REQUEST_OBJECT_TREE_MISMATCH + - OTHER + example: "ACCESS_DENIED" detail: type: string description: A human-readable explanation specific to this occurrence of the problem. @@ -2390,32 +2383,27 @@ components: 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/ActivationErrorDetails' - $ref: '#/components/schemas/RetrievalNotAllowedDetails' - - $ref: '#/components/schemas/ServerLimitationDetails' - - $ref: '#/components/schemas/ServiceDisabledDetails' + - $ref: '#/components/schemas/ModificationNotAllowedDetails' + - $ref: '#/components/schemas/ServerErrorDetails' - $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' + ACTIVATION_ERROR: '#/components/schemas/ActivationErrorDetails' RETRIEVAL_NOT_ALLOWED: '#/components/schemas/RetrievalNotAllowedDetails' - SERVER_LIMITATION: '#/components/schemas/ServerLimitationDetails' - SERVICE_DISABLED: '#/components/schemas/ServiceDisabledDetails' + MODIFICATION_NOT_ALLOWED: '#/components/schemas/ModificationNotAllowedDetails' + SERVER_ERROR: '#/components/schemas/ServerErrorDetails' APPLICATION_LAYER_ERROR: '#/components/schemas/ApplicationLayerErrorDetails' # Individual schemas for each specific error type @@ -2428,48 +2416,16 @@ components: 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: + ActivationErrorDetails: type: object properties: type: type: string - enum: [IE_NOT_FOUND] + enum: [ACTIVATION_ERROR] 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] + enum: ["Activation Error"] RetrievalNotAllowedDetails: type: object @@ -2480,35 +2436,26 @@ components: title: type: string enum: ["Retrieval Not Allowed"] - status: - type: integer - enum: [403] - ServerLimitationDetails: + ModificationNotAllowedDetails: type: object properties: type: type: string - enum: [SERVER_LIMITATION] + enum: [MODIFICATION_NOT_ALLOWED] title: type: string - enum: ["Server Limitation"] - status: - type: integer - enum: [500] + enum: ["Modification Not Allowed"] - ServiceDisabledDetails: + ServerErrorDetails: type: object properties: type: type: string - enum: [SERVICE_DISABLED] + enum: [SERVER_ERROR] title: type: string - enum: ["Service Disabled"] - status: - type: integer - enum: [503] + enum: ["Service Error"] ApplicationLayerErrorDetails: type: object @@ -2519,9 +2466,6 @@ components: title: type: string enum: ["Application Layer Error"] - status: - type: integer - enum: [500] LinkObject: type: object @@ -2563,7 +2507,7 @@ components: - self example: # demonstrates a typical _links object in an actual response self: - href: "{root-url}/ProvMnS/v1/plan-descriptors/pd-001" + href: "{root-url}/plan-management/v1/plan-descriptors/pd-001" templated: true type: "application/json" title: "The newly created PlanConfigurationDescriptor" @@ -2578,7 +2522,7 @@ components: AddNrCellChange: summary: Add a new NR Cell (create operation) value: - operation: create + modifyOperator: 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 @@ -2587,16 +2531,16 @@ components: UpdateNrCellChange: summary: Update an existing NR Cell (merge operation) value: - operation: update + modifyOperator: merge changeId: update-nr-cell-002 description: Update administrativeState for existing NRCellDU=1. target: /_3gpp-common-subnetwork:SubNetwork=North/_3gpp-common-mecontext:MeContext=Dublin-1/_3gpp_nrm_managedelement:ManagedElement=ENB-A/_3gpp-nr-nrm-gnbdufunction:GNBDUFunction=1/_3gpp_nrm_nrcelldu:NRCellDU=1 value: ... RemoveNrCellChange: - summary: Remove an NR Cell (remove operation) + summary: Remove an NR Cell (delete operation) value: - operation: delete + modifyOperator: 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 diff --git a/OpenAPI/TS28623_ComDefs.yaml b/OpenAPI/TS28623_ComDefs.yaml index 71d88b74d0956d83d5ecb38b1ed1e1497e54a6b8..d6a21ffbdfab8fdf4019395aca9d4c07b26ff034 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.5.0 + version: 19.6.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). @@ -58,7 +58,16 @@ components: format: float minimum: -180 maximum: 180 - + GeoCircle: + description: This datatype is specifies the geographical area for NTN + type: object + properties: + referenceLocation: + $ref: '#/components/schemas/GeoCoordinate' + distanceRadius: + type: integer + minimum: 1 + maximum: 65535 Dn: description: This datatype is used for writable attribute type: string @@ -148,6 +157,46 @@ components: $ref: '#/components/schemas/DateTimeRo' endTime: $ref: '#/components/schemas/DateTimeRo' + EventTriggerConfig: + description: This defines the configuration parameters of trigger event used for M10 measurement in NR. For details, please refer to TS 32.422 subclause 5.10.X. + type: object + properties: + eventType: + type: string + enum: + - eventA1 + - eventA2 + thresholdRAN: + type: integer + minimum: 0 + maximum: 127 + measurementQuantityRAN: + type: string + enum: + - RSRP + hysteresisRAN: + type: integer + minimum: 0 + maximum: 30 + timeToTriggerRAN: + type: string + enum: + - 0ms + - 40ms + - 64ms + - 80ms + - 100ms + - 128ms + - 160ms + - 256ms + - 320ms + - 480ms + - 512ms + - 640ms + - 1024ms + - 1280ms + - 2560ms + - 5120ms GeoCoordinate: type: object properties: @@ -166,6 +215,10 @@ components: items: $ref: '#/components/schemas/GeoCoordinate' minItems: 1 + - type: object + properties: + geoCircle: + $ref: '#/components/schemas/GeoCircle' GeoAreaToCellMapping: type: object properties: @@ -527,7 +580,7 @@ components: type: string title: type: string - badOP: + badOp: type: string otherProblems: type: array diff --git a/OpenAPI/TS28623_FeatureNrm.yaml b/OpenAPI/TS28623_FeatureNrm.yaml index 503f3d7af798612be7cb1877a9a32085e71d00f6..a9a9d95afdce5c8f57e9aa101ef39d5be1c8f988 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.5.0 + version: 19.6.0 description: >- OAS 3.0.1 definition of the Features of NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -23,6 +23,7 @@ components: - $ref: 'TS28318_DsoNrm.yaml#/components/schemas/resources-DSORecovery' - $ref: 'TS28319_MsacNrm.yaml#/components/schemas/resources-msacNrm' - $ref: 'TS28536_CoslaNrm.yaml#/components/schemas/resources-coslaNrm' + - $ref: 'TS28567_CclNrm.yaml#/components/schemas/resources-CCLNrm' - $ref: 'TS28538_EdgeNrm.yaml#/components/schemas/resources-edgeNrm' - $ref: 'TS28541_NrNrm.yaml#/components/schemas/resources-nrNrm' - $ref: 'TS28541_5GcNrm.yaml#/components/schemas/resources-5gcNrm' diff --git a/OpenAPI/TS28623_FileManagementNrm.yaml b/OpenAPI/TS28623_FileManagementNrm.yaml index 60d44b7f0ad4c9d3c23563fd331565758cbcc096..f5ce2e5d0d5547b40e9f3b57e8cefcc1fe15ab69 100644 --- a/OpenAPI/TS28623_FileManagementNrm.yaml +++ b/OpenAPI/TS28623_FileManagementNrm.yaml @@ -1,7 +1,7 @@ openapi: 3.0.1 info: title: File Management NRM - version: 19.2.0 + version: 19.3.0 description: >- OAS 3.0.1 definition of the File Management NRM fragment © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -94,7 +94,7 @@ components: type: object properties: fileLocation: - type: string + $ref: '#/components/schemas/FileLocation' notificationRecipientAddress: $ref: 'TS28623_ComDefs.yaml#/components/schemas/Uri' cancelJob: @@ -131,8 +131,10 @@ components: attributes: type: object properties: - fileLocation: - $ref: 'TS28623_ComDefs.yaml#/components/schemas/UriRo' + file: + oneOf: + - $ref: '#/components/schemas/FileLocation' + - $ref: '#/components/schemas/FileContent' fileCompression: type: string readOnly: true @@ -154,14 +156,16 @@ components: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTimeRo' fileExpirationTime: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTimeRo' - fileContent: - type: string - readOnly: true jobRef: $ref: 'TS28623_ComDefs.yaml#/components/schemas/DnRo' jobId: type: string readOnly: true + FileLocation: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/UriRo' + FileContent: + type: string + readOnly: true diff --git a/OpenAPI/TS28623_GenericNrm.yaml b/OpenAPI/TS28623_GenericNrm.yaml index 82befbe22599d5c8c7018210095886e032bedbe5..2265caf988a51a91e9ad32ecda3da1eb3e8fd0e5 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.5.0 + version: 19.6.0 description: >- OAS 3.0.1 definition of the Generic NRM © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -199,6 +199,14 @@ components: type: array items: $ref: '#/components/schemas/NpnId-Type' + - type: object + properties: + nTNGeoAreaList: + type: array + items: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/GeoArea' + minItems: 1 + maxItems: 8 - type: array items: $ref: '#/components/schemas/NpnId-Type' diff --git a/OpenAPI/TS28623_ManagementDataCollectionNrm.yaml b/OpenAPI/TS28623_ManagementDataCollectionNrm.yaml index d5ab9f7e66234586717cc0aafc6f29a49ef9ad49..771db70cfc04cd8055fb365cdf5c7b59cdce4998 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.5.0 + version: 20.0.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). @@ -27,16 +27,22 @@ components: oneOf: - type: array items: - type: string - enum: - - COVERAGE - - CAPACITY - - ENERGY_EFFICIENCY - - MOBILITY - - ACCESSIBILITY + $ref: '#/components/schemas/mgtDataCategory' + uniqueItems: true - type: array items: - type: string + $ref: '#/components/schemas/mgtDataName' + uniqueItems: true + mgtDataCategory: + type: string + enum: + - COVERAGE + - CAPACITY + - ENERGY_EFFICIENCY + - MOBILITY + - ACCESSIBILITY + mgtDataName: + type: string NodeFilter: type: object properties: @@ -74,7 +80,10 @@ components: managementData: $ref: '#/components/schemas/ManagementData' targetNodeFilter: - $ref: '#/components/schemas/NodeFilter' + type: array + items: + $ref: '#/components/schemas/NodeFilter' + uniqueItems: true collectionTimeWindow: $ref: 'TS28623_ComDefs.yaml#/components/schemas/TimeWindow' reportingCtrl: @@ -93,7 +102,12 @@ components: type: boolean jobId: type: string - + required: + - managementData + - targetNodeFilter + - collectionTimeWindow + - reportingCtrl + - jobId #-------- Definition of YAML arrays for name-contained IOCs ---------------------- ManagementDataCollection-Multiple: type: array diff --git a/OpenAPI/TS28623_MnSRegistryNrm.yaml b/OpenAPI/TS28623_MnSRegistryNrm.yaml index bc038623d8664fef490e387d1d8e9218c943b54c..104ea62955fffaacd93d9dd034be1ecf31c990e9 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.5.0 + version: 19.6.0 description: >- OAS 3.0.1 definition of the MnS Registry NRM fragment © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -37,20 +37,24 @@ components: - FAULT_NOTIFICATION - TRACE_MDT_DATA_COLLECTION_CONTROL - TRACE_MDT_DATA_REPORT + - STM_PROVISIONING + - STM_STREAMING - QOE_DATA_COLLECTION_CONTROL - QOE_DATA_REPORT - FILE_RETRIEVAL - FILE_DOWNLOAD + - CONFIGURATION_PLAN_MGMT - SUBSCRIPTION_CONTROL - HEARTBEAT_CONTROL - HEARTBEAT_NOTIFICATION - - ML_MODEL_MANAGEMENT - MANAGEMENT_DATA_ANALYTIC - RANSC_MANAGEMENT - SON_POLICY - COMMUNICATION_SERVICE_ASSURANCE_CONTROL + - CLOSED_CONTROL_LOOP_MANAGEMENT - INTENT_DRIVEN_MANAGEMENT - ML_MODEL_MANAGEMENT + - NDT_LCM - MNS_REGISTRY_AND_DISCOVERY - MGMTDATA_REGISTRY_AND_DISCOVERY - MNS_ACCESS_CONTROL_MANAGEMENT diff --git a/OpenAPI/TS28623_TraceControlNrm.yaml b/OpenAPI/TS28623_TraceControlNrm.yaml index a1f304f2e2ec4727f9a5468a128953aa17ee461a..de165e2fbcab74cb1e2a731ebcea976a94508188 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.4.0 + version: 19.5.0 description: >- OAS 3.0.1 definition of the Trace Control NRM fragment © 2025, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC). @@ -53,7 +53,7 @@ components: 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. + description: Specifies whether the TraceJob represents only MDT, Logged MBSFN MDT, Trace or a combined Trace and MDT job, etc. Applicable for Trace, MDT, RCEF, RRC and RLF reporting. See 3GPP TS 32.422 clause 5.9a for additional details. enum: - IMMEDIATE_MDT_ONLY - LOGGED_MDT_ONLY @@ -65,7 +65,9 @@ components: - 5GC_UE_LEVEL_MEASUREMENTS_ONLY - TRACE_AND_5GC_UE_LEVEL_MEASUREMENTS - IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS - - TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS + - TRACE_AND_IMMEDIATE_MDT_AND_5GC_UE_LEVEL_MEASUREMENTS + - RRC_REPORT + - IMMEDIATE_MDT_AND_ LOGGED_MDT default: TRACE_ONLY listOfInterfaces-Type: description: The interfaces to be recorded in the Network Element. See 3GPP TS 32.422 clause 5.5 for additional details. @@ -838,6 +840,7 @@ components: - M1_EVENT_TRIGGERED - M8 - M9 + - M10 loggingDuration-Type: description: See details in 3GPP TS 32.422 clause 5.10.9. @@ -1277,6 +1280,15 @@ components: minItems: 0 maxItems: 255 + layerOneRsrpPeriodicity-Type: + description: Periodicity that the UE shall use for the logging of the M10 measurements. See details in 3GPP TS 32.422 clause 5.10.X. + type: integer + enum: + - 2 + - 3 + - 4 + - 5 + traceConfig-Type: description: Trace configuration parameters for NR. See details in 3GPP TS 28.622 clause 4.3.30. type: object @@ -1352,6 +1364,11 @@ components: $ref: '#/components/schemas/positioningMethod-Type' excessPacketDelayThresholds: $ref: '#/components/schemas/excessPacketDelayThresholds-Type' + layerOneRsrpPeriodicity: + $ref: '#/components/schemas/layerOneRsrpPeriodicity-Type' + eventTriggerConfig: + $ref: 'TS28623_ComDefs.yaml#/components/schemas/EventTriggerConfig' + loggedMDTConfig-Type: description: Logged MDT configuration parameters. See details in 3GPP TS 28.622 clause 4.3.30.