Commit 978dc906 authored by sunse's avatar sunse
Browse files

Rel18_28.111_FM_schema_definitions new spec first merge

parent 0b1ca862
Loading
Loading
Loading
Loading
Loading
+57 −0
Original line number Diff line number Diff line
openapi: 3.0.1
info:
  title: Fault Management Notifications
  version: 18.1.0
  description: >-
    OAS 3.0.1 definition of the Fault Supervision MnS
    © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
    All rights reserved.
externalDocs:
  description: 3GPP TS 28.111; Fault Management
  url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.111/
servers:
  - url: '{notificationRecipientAddress}'
    variables:
      notificationRecipientAddress:
        description: Address on the MnS consumer side defined by NtfSubscriptionControl.notificationRecipientAddress. See 3GPP TS 28.622 clause 4.3.22
        default: http://exampleConsumer.com/notificationReceiver
      MnSversion:
        description: Version number of the OpenAPI definition
        default: XXX
paths:
  /:
    post:
      summary: Receive one of a set of alarm related notifications
      description: >-
        The MnS producer sends an alarm to the consumer. 
        This interface shall be implemented by the notification-receiver and 
        used by the notification-sender.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyNewAlarm'
                - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyNewSecAlarm'
                - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyClearedAlarm'
                - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyChangedAlarm'
                - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyChangedAlarmGeneral'
                - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyChangedSecAlarmGeneral'
                - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyCorrelatedNotificationChanged'                      
                - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyAckStateChanged'
                - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyComments'
                - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyPotentialFaultyAlarmList'
                - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/NotifyAlarmListRebuilt'
      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'
+551 −0
Original line number Diff line number Diff line
openapi: 3.0.1
info:
  title: Fault Management NRM
  version: 18.1.0
  description: >-
    OAS 3.0.1 definition of the Fault Supervision MnS
    © 2024, 3GPP Organizational Partners (ARIB, ATIS, CCSA, ETSI, TSDSI, TTA, TTC).
    All rights reserved.
externalDocs:
  description: 3GPP TS 28.111; Fault Management
  url: http://www.3gpp.org/ftp/Specs/archive/28_series/28.111/
servers:
  - url: '{MnSRoot}/FaultSupervisionMnS/{MnSversion}'
    variables:
      MnSRoot:
        description: See subclause 4.4.3 of TS 32.158
        default: http://example.com/3GPPManagement
      MnSversion:
        description: Version number of the OpenAPI definition
        default: XXX
paths: {}

components:
  schemas:

  #---- Definition of AlarmRecord ----------------------------------------------------#
 
    AlarmId:
      type: string
    AlarmType:
      type: string
      enum:
        - COMMUNICATIONS_ALARM
        - QUALITY_OF_SERVICE_ALARM
        - PROCESSING_ERROR_ALARM
        - EQUIPMENT_ALARM
        - ENVIRONMENTAL_ALARM
        - INTEGRITY_VIOLATION
        - OPERATIONAL_VIOLATION
        - PHYSICAL_VIOLATION
        - SECURITY_SERVICE_OR_MECHANISM_VIOLATION
        - TIME_DOMAIN_VIOLATION
    ProbableCause:
      description: >-
        The value of the probable cause may be a specific standardized string, or any
        vendor provided string. Probable cause strings are not standardized in the
        present document. They may be added in a future version. Up to then the
        mapping of the generic probable cause strings "PROBABLE_CAUSE_001" to
        "PROBABLE_CAUSE_005" is vendor specific.
        The value of the probable cause may also be an integer. The mapping of integer
        values to probable causes is vendor specific.
      oneOf:
        - anyOf:
            - type: string
              enum:
                - PROBABLE_CAUSE_001
                - PROBABLE_CAUSE_002
                - PROBABLE_CAUSE_003
                - PROBABLE_CAUSE_004
                - PROBABLE_CAUSE_005
            - type: string
        - type: integer
    SpecificProblem:
      oneOf:
        - type: string
        - type: integer
    PerceivedSeverity:
      type: string
      enum:
        - INDETERMINATE
        - CRITICAL
        - MAJOR
        - MINOR
        - WARNING
        - CLEARED
    TrendIndication:
      type: string
      enum:
        - MORE_SEVERE
        - NO_CHANGE
        - LESS_SEVERE
    ThresholdHysteresis:
      type: object
      required:
        - high
      properties:
        high:
          oneOf:
            - type: integer
            - $ref: 'TS28623_ComDefs.yaml#/components/schemas/Float'
        low:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/Float'
    ThresholdLevelInd:
      oneOf:
        - type: object
          properties:
            up:
              $ref: '#/components/schemas/ThresholdHysteresis'
        - type: object
          properties:
            down:
              $ref: '#/components/schemas/ThresholdHysteresis'
    ThresholdInfo:
      type: object
      properties:
        observedMeasurement:
          type: string
        observedValue:
          type: number
        thresholdLevel:
          $ref: '#/components/schemas/ThresholdLevelInd'
        armTime:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
      required:
        - observedMeasurement
        - observedValue
    CorrelatedNotification:
      type: object
      properties:
        sourceObjectInstance:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn'
        notificationIds:
          type: array
          items:
            $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationId'
      required:
        - sourceObjectInstance
        - notificationIds
    CorrelatedNotifications:
      type: array
      items:
        $ref: '#/components/schemas/CorrelatedNotification'
    AckState:
      type: string
      enum:
        - ACKNOWLEDGED
        - UNACKNOWLEDGED

    AlarmRecord:
      description: >-
        The alarmId is not a property of an alarm record. It is used as key
        in the map of alarm records instead.
      type: object
      properties:
        # alarmId:
        #  $ref: '#/components/schemas/AlarmId'
        objectInstance:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn'
        notificationId:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationId'
        alarmRaisedTime:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
        alarmChangedTime:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
        alarmClearedTime:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
        alarmType:
          $ref: '#/components/schemas/AlarmType'
        probableCause:
          $ref: '#/components/schemas/ProbableCause'
        specificProblem:
          $ref: '#/components/schemas/SpecificProblem'
        perceivedSeverity:
          $ref: '#/components/schemas/PerceivedSeverity'
        backedUpStatus:
          type: boolean
        backUpObject:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn'
        trendIndication:
          $ref: '#/components/schemas/TrendIndication'
        thresholdinfo:
          $ref: '#/components/schemas/ThresholdInfo'
        correlatedNotifications:
          $ref: '#/components/schemas/CorrelatedNotifications'
        stateChangeDefinition:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeValueChangeSet'
        monitoredAttributes:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet'
        proposedRepairActions:
          type: string
        additionalText:
          type: string
        additionalInformation:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet'

        rootCauseIndicator:
          type: boolean

        ackTime:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
        ackUserId:
          type: string
        ackSystemId:
          type: string
        ackState:
          $ref: '#/components/schemas/AckState'

        clearUserId:
          type: string
        clearSystemId:
          type: string
        serviceUser:
          type: string
        serviceProvider:
          type: string
        securityAlarmDetector:
          type: string

    AlarmList-Single:
      allOf:
        - $ref: 'TS28623_GenericNrm.yaml#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                administrativeState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/AdministrativeState'
                operationalState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/OperationalState'
                numOfAlarmRecords:
                  type: integer
                lastModification:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
                alarmRecords:
                  description: >-
                     This resource represents a map of alarm records.
                     The alarmIds are used as keys in the map.
                  type: object
                  additionalProperties:
                    $ref: '#/components/schemas/AlarmRecord'


  #---- Definition of alarm notifications --------------------------------------------#
  
    AlarmNotificationTypes:
      type: string
      enum:
        - notifyNewAlarm
        - notifyChangedAlarm
        - notifyChangedAlarmGeneral
        - notifyAckStateChanged
        - notifyCorrelatedNotificationChanged
        - notifyComments
        - notifyClearedAlarm
        - notifyAlarmListRebuilt
        - notifyPotentialFaultyAlarmList
    AlarmListAlignmentRequirement:
      type: string
      enum:
        - ALIGNMENT_REQUIRED
        - ALIGNMENT_NOT_REQUIRED

    NotifyNewAlarm:
      allOf:
        - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader'
        - type: object
          required:
            - alarmId
            - alarmType
            - probableCause
            - perceivedSeverity
          properties:
            alarmId:
              $ref: '#/components/schemas/AlarmId'
            alarmType:
              $ref: '#/components/schemas/AlarmType'
            probableCause:
              $ref: '#/components/schemas/ProbableCause'
            specificProblem:
              $ref: '#/components/schemas/SpecificProblem'
            perceivedSeverity:
              $ref: '#/components/schemas/PerceivedSeverity'
            backedUpStatus:
              type: boolean
            backUpObject:
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn'
            trendIndication:
              $ref: '#/components/schemas/TrendIndication'
            thresholdInfo:
              $ref: '#/components/schemas/ThresholdInfo'
            correlatedNotifications:
              $ref: '#/components/schemas/CorrelatedNotifications'
            stateChangeDefinition:
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeValueChangeSet'
            monitoredAttributes:
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet'
            proposedRepairActions:
              type: string
            additionalText:
              type: string
            additionalInformation:
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet'
            rootCauseIndicator:
              type: boolean
    NotifyNewSecAlarm:
      allOf:
        - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader'
        - type: object
          required:
            - alarmId
            - alarmType
            - probableCause
            - perceivedSeverity
            - serviceUser
            - serviceProvider
            - securityAlarmDetector 
          properties:
            alarmId:
              $ref: '#/components/schemas/AlarmId'
            alarmType:
              $ref: '#/components/schemas/AlarmType'
            probableCause:
              $ref: '#/components/schemas/ProbableCause'
            perceivedSeverity:
              $ref: '#/components/schemas/PerceivedSeverity'
            correlatedNotifications:
              $ref: '#/components/schemas/CorrelatedNotifications'
            additionalText:
              type: string
            additionalInformation:
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet'
            rootCauseIndicator:
              type: boolean
            serviceUser:
              type: string
            serviceProvider:
              type: string
            securityAlarmDetector:
              type: string
    NotifyClearedAlarm:
      allOf:
        - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader'
        - type: object
          required:
            - alarmId
            - alarmType
            - probableCause
            - perceivedSeverity
          properties:
            alarmId:
              $ref: '#/components/schemas/AlarmId'
            alarmType:
              $ref: '#/components/schemas/AlarmType'
            probableCause:
              $ref: '#/components/schemas/ProbableCause'
            perceivedSeverity:
              $ref: '#/components/schemas/PerceivedSeverity'
            correlatedNotifications:
              $ref: '#/components/schemas/CorrelatedNotifications'
            clearUserId:
              type: string
            clearSystemId:
              type: string
    NotifyChangedAlarm:
      allOf:
        - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader'
        - type: object
          required:
            - alarmId
            - alarmType
            - probableCause
            - perceivedSeverity
          properties:
            alarmId:
              $ref: '#/components/schemas/AlarmId'
            alarmType:
              $ref: '#/components/schemas/AlarmType'
            probableCause:
              $ref: '#/components/schemas/ProbableCause'
            perceivedSeverity:
              $ref: '#/components/schemas/PerceivedSeverity'
    NotifyChangedAlarmGeneral:
      allOf:
        - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader'
        - type: object
          required:
            - alarmId
            - alarmType
          properties:
            alarmId:
              $ref: '#/components/schemas/AlarmId'
            alarmType:
              $ref: '#/components/schemas/AlarmType'
            probableCause:
              $ref: '#/components/schemas/ProbableCause'
            specificProblem:
              $ref: '#/components/schemas/SpecificProblem'
            perceivedSeverity:
              $ref: '#/components/schemas/PerceivedSeverity'
            correlatedNotifications:
              $ref: '#/components/schemas/CorrelatedNotifications'
            backedUpStatus:
              type: boolean
            backUpObject:
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/Dn'
            trendIndication:
              $ref: '#/components/schemas/TrendIndication'
            thresholdInfo:
              $ref: '#/components/schemas/ThresholdInfo'
            stateChangeDefinition:
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeValueChangeSet'
            monitoredAttributes:
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet'
            proposedRepairActions:
              type: string
            additionalText:
              type: string
            additionalInformation:
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet'
            rootCauseIndicator:
              type: boolean
            changedAlarmAttributes:
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet'
    NotifyChangedSecAlarmGeneral:
      allOf:
        - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader'
        - type: object
          required:
            - alarmId
            - alarmType
            - serviceUser
            - serviceProvider
            - securityAlarmDetector
          properties:
            alarmId:
              $ref: '#/components/schemas/AlarmId'
            alarmType:
              $ref: '#/components/schemas/AlarmType'
            probableCause:
              $ref: '#/components/schemas/ProbableCause'
            perceivedSeverity:
              $ref: '#/components/schemas/PerceivedSeverity'
            correlatedNotifications:
              $ref: '#/components/schemas/CorrelatedNotifications'
            additionalText:
              type: string
            additionalInformation:
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet'
            rootCauseIndicator:
              type: boolean
            serviceUser:
              type: string
            serviceProvider:
              type: string
            securityAlarmDetector:
              type: string
            changedAlarmAttributes:
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/AttributeNameValuePairSet'
    NotifyCorrelatedNotificationChanged:
      allOf:
        - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader'
        - type: object
          required:
            - alarmId
            - correlatedNotifications
          properties:
            alarmId:
              $ref: '#/components/schemas/AlarmId'
            correlatedNotifications:
              $ref: '#/components/schemas/CorrelatedNotifications'
            rootCauseIndicator:
              type: boolean
    NotifyAckStateChanged:
      allOf:
        - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader'
        - type: object
          required:
            - alarmId
            - alarmType
            - probableCause
            - perceivedSeverity
            - ackState
            - ackUserId
          properties:
            alarmId:
              $ref: '#/components/schemas/AlarmId'
            alarmType:
              $ref: '#/components/schemas/AlarmType'
            probableCause:
              $ref: '#/components/schemas/ProbableCause'
            perceivedSeverity:
              $ref: '#/components/schemas/PerceivedSeverity'
            ackState:
              $ref: '#/components/schemas/AckState'
            ackUserId:
              type: string
            ackSystemId:
              type: string
    NotifyComments:
      allOf:
        - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader'
        - type: object
          required:
            - alarmId
            - alarmType
            - probableCause
            - perceivedSeverity
            - comments
          properties:
            alarmId:
              $ref: '#/components/schemas/AlarmId'
            alarmType:
              $ref: '#/components/schemas/AlarmType'
            probableCause:
              $ref: '#/components/schemas/ProbableCause'
            perceivedSeverity:
              $ref: '#/components/schemas/PerceivedSeverity'
            comments:
              $ref: '#/components/schemas/Comments'
    NotifyPotentialFaultyAlarmList:
      allOf:
        - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader'
        - type: object
          required:
            - reason
          properties:
            reason:
              type: string
    NotifyAlarmListRebuilt:
      allOf:
        - $ref: 'TS28623_ComDefs.yaml#/components/schemas/NotificationHeader'
        - type: object
          required:
            - reason
          properties:
            reason:
              type: string
            alarmListAlignmentRequirement:
              $ref: '#/components/schemas/AlarmListAlignmentRequirement'

  #---- Definition of resources ------------------------------------------------------#

    Comment:
      type: object
      properties:
        commentTime:
          $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
        commentUserId:
          type: string
        commentSystemId:
          type: string
        commentText:
          type: string
    Comments:
      description: >-
        Collection of comments. The comment identifiers are allocated by the
        MnS producer and used as key in the map.
      type: object
      additionalProperties:
        $ref: '#/components/schemas/Comment'
+2 −2
Original line number Diff line number Diff line
@@ -80,7 +80,7 @@ paths:
        content:
          application/json:
            schema:
              $ref: 'TS28532_FaultMnS.yaml#/components/schemas/Subscription'
              $ref: 'TS28623_ComDefs.yaml#/components/schemas/Subscription'
      responses:
        '201':
          description: >-
@@ -90,7 +90,7 @@ paths:
          content:
            application/json:
              schema:
                $ref: 'TS28532_FaultMnS.yaml#/components/schemas/Subscription'
                $ref: 'TS28623_ComDefs.yaml#/components/schemas/Subscription'
          headers:
            Location:
              description: URI of the newly created subscription resource
+10 −1
Original line number Diff line number Diff line
@@ -241,7 +241,7 @@ components:
      type: integer
    NotificationType:
      oneOf:
        - $ref: 'TS28532_FaultMnS.yaml#/components/schemas/AlarmNotificationTypes'
        - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/AlarmNotificationTypes'
        - $ref: 'TS28532_ProvMnS.yaml#/components/schemas/CmNotificationTypes'
        - $ref: 'TS28532_PerfMnS.yaml#/components/schemas/PerfNotificationTypes'
        - $ref: 'TS28532_HeartbeatNtf.yaml#/components/schemas/HeartbeatNotificationTypes'
@@ -277,6 +277,15 @@ components:
          properties:
            errorInfo:
              type: string
    Subscription:
      type: object
      properties:
        consumerReference:
          $ref: '#/components/schemas/Uri'
        timeTick:
          type: integer
        filter:
          $ref: '#/components/schemas/Filter'

    ErrorResponseGet:
      description: >-
+3 −26
Original line number Diff line number Diff line
@@ -552,7 +552,7 @@ components:
        NtfSubscriptionControl:
          $ref: '#/components/schemas/NtfSubscriptionControl-Multiple'
        AlarmList:
          $ref: '#/components/schemas/AlarmList-Single'
          $ref: 'TS28111_FaultNrm.yaml#/components/schemas/AlarmList-Single'
        FileDownloadJob:
          $ref: '#/components/schemas/FileDownloadJob-Multiple'
        Files:
@@ -582,7 +582,7 @@ components:
        NtfSubscriptionControl:
          $ref: '#/components/schemas/NtfSubscriptionControl-Multiple'
        AlarmList:
          $ref: '#/components/schemas/AlarmList-Single'
          $ref: 'TS28111_FaultNrm.yaml#/components/schemas/AlarmList-Single'
        FileDownloadJob:
          $ref: '#/components/schemas/FileDownloadJob-Multiple'
        Files:
@@ -846,29 +846,6 @@ components:
                    - SNSSAI
                    - 5QI
                    - PLMN
    AlarmList-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
        - type: object
          properties:
            attributes:
              type: object
              properties:
                administrativeState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/AdministrativeState'
                operationalState:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/OperationalState'
                numOfAlarmRecords:
                  type: integer
                lastModification:
                  $ref: 'TS28623_ComDefs.yaml#/components/schemas/DateTime'
                alarmRecords:
                  description: >-
                     This resource represents a map of alarm records.
                     The alarmIds are used as keys in the map.
                  type: object
                  additionalProperties:
                    $ref: 'TS28532_FaultMnS.yaml#/components/schemas/AlarmRecord'
    FileDownloadJob-Single:
      allOf:
        - $ref: '#/components/schemas/Top'
@@ -1191,7 +1168,7 @@ components:
       - $ref: '#/components/schemas/NtfSubscriptionControl-Single'
       - $ref: '#/components/schemas/HeartbeatControl-Single'

       - $ref: '#/components/schemas/AlarmList-Single'
       - $ref: 'TS28111_FaultNrm.yaml#/components/schemas/AlarmList-Single'

       - $ref: '#/components/schemas/FileDownloadJob-Single'
       - $ref: '#/components/schemas/Files-Single'