Commit 394100ea authored by lengyelb's avatar lengyelb
Browse files

Merge branch...

Merge branch 'TS28.623_CR0144_Asynchronous_operation_NRM_additions_-_YANG_Stage-3' into 'Integration_Rel17_SA5_141_YANG'

Asynchronous operation NRM additions - YANG Stage-3

See merge request sa5/MnS!280
parents f80d2f96 17f16082
Loading
Loading
Loading
Loading
+161 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@ module _3gpp-common-yang-types {
    network slicing.";
  reference "3GPP TS 28.623";

  revision 2022-02-09 { reference "CR-0144"; }
  revision 2021-11-01 { reference "CR-0141"; }
  revision 2021-09-30 {
    description "Added Longitude, Latitude, TenthOfDegrees, OnOff.";
@@ -50,6 +51,166 @@ module _3gpp-common-yang-types {
    }
  }
  
  grouping ProcessMonitor {
    description "Provides attributes to monitor the progress of processes 
      with specific purpose and limited lifetime running on MnS producers. 
      It may be used as data type for dedicated progress monitor attributes 
      when specifying the management representation of these processes. 
      The attributes in this clause are defined in a generic way. 
      For some attributes specialisations may be provided when specifying a 
      concrete process representation.

      If a management operation on some IOCs triggers an associated 
      asynchronous process (whose progress shall be monitored), this should 
      also result in creating an attribute named 'processMonitor' (of type 
      'ProcessMonitor') in these IOC(s). The processMonitor attribute may be 
      accompanied by use-case specific additional data items.

      The progress of the process is described by the 'status' and 
      'progressPercentage' attributes. Additional textual qualifications for 
      the 'status' attribute may be provided by the 'progessStateInfo' and 
      'resultStateInfo' attributes.

      When the process is instantiated, the 'status' is set to 'NOT_RUNNING' 
      and the 'progressPercentage' to '0'. The MnS producer decides when to 
      start executing the process and to transition into the 'RUNNING' state. 
      This time is captured in the 'startTime' attribute. Alternatively, the 
      process may start to execute directly upon its instantiation. One 
      alternative must be selected when using this data type.

      During the 'RUNNING' state the 'progressPercentage' attribute may be 
      repeatedly updated. The exact semantic of this attribute is subject to 
      further specialisation. The 'progessInfo' attribute may be used to 
      provide additional textual information in the 'NOT_RUNNING', 'CANCELLING' 
      and 'RUNNING' states. Further specialisation of 
      'progressStateInfo' may be provided where this data type is 
      used.

      Upon successful completion of the process, the 'status' attribute is set 
      to 'FINISHED', the 'progressPercentage' to 100%. The time is captured in 
      the 'endTime' attribute. Additional textual information may be provided 
      in the 'resultStateInfo' attribute. The type of 
      'resultStateInfo' in this data type definition is 'String'. 
      Further specialisation of 'resultStateInfo' may be provided 
      where this data type is used.

      In case the process fails to complete successfully, the 'status' 
      attribute is set to 'FAILED' or 'PARTIALLY_FAILED', the current value of 
      'progressPercentage' is frozen, and the time captured in 'endTime'. The 
      'resultStateInfo' specifies the reason for the failure. 
      Specific failure reasons may be specified where the data type defined in 
      this clause is used. The exact semantic of failure may be subject for 
      further specialisation as well.

      In case the process is cancelled, the 'status' attribute is first set to 
      'CANCELLING' and when the process is really cancelled then to 'CANCELLED'. 
      The transition to 'CANCELLED' is captured in the 'endTime' attribute. 
      The value of 'progressPercentage' is frozen. Additional textual 
      information may be provided in the 'resultStateInfo' attribute.

      The 'resultStateInfo' attribute is provided only for additional textual 
      qualification of the states 'FINISHED', 'FAILED', 'PARTIALLY_FAILED' or 
      'CANCELLED'. It shall not be used for making the outcome, that the 
      process may produce in case of success, available.

      The process may have to be completed within a certain time after its 
      creation, for example because required data may not be available any 
      more after a certain time, or the process outcome is needed until a 
      certain time and when not provided by this time is not needed any more. 
      The time until the MnS producer automatically cancels the process is 
      indicated by the 'timer' attribute.";
      
    leaf id {
      type string;
      mandatory true;
      description "Id of the process. It is unique within a single 
        multivalue attribute of type ProcessMonitor.";
    }
    
    leaf status { 
      type enumeration {
        enum NOT_STARTED ;
        enum RUNNING ;
        enum CANCELLING ;
        enum FINISHED ;
        enum FAILED ;
        enum PARTIALLY_FAILED ;
        enum CANCELLED ;
      }
      config false;
      default  RUNNING;
      description "Represents the status of the associated process, 
        whether it fails, succeeds etc. 
        It does not represent the returned values of a successfully finished 
        process. ";
    }

    leaf progressPercentage {
      type uint8 {
        range 0..100;
      }
      config false;
      description "Progress of the associated process as percentage";
    }

    leaf-list progressStateInfo {
      type string;
      config false;
      description "Additional textual qualification of the states 
        'NOT_STARTED', 'CANCELLING' and 'RUNNING'.

        For specific processes, specific well-defined strings (e.g. string 
        patterns or enums) may be defined as a specialisation.";
    }

    leaf resultStateInfo {
      type string;
      config false;
      description "Additional textual qualification of the states 
        'FINISHED', 'FAILED', 'PARTIALLY_FAILED and 'CANCELLED'. 
        For example, in the 'FAILED' or 'PARTIALLY_FAILED' state this 
        attribute may be used to provide error reasons.

        This attribute shall not be used to make the outcome of the process 
        available for retrieval, if any. For this purpose, dedicated 
        attributes shall be specified when specifying the representation of 
        a specific process.

        For specific processes, specific well-defined strings (e.g. string 
        patterns or enums) may be defined as a specialisation.";
    }

    leaf startTime {
      type yang:date-and-time;
      config false;
      description "Start time of the associated process, i.e. the time when the 
        status changed from 'NOT_STARTED' to 'RUNNING'.";
    }

    leaf endTime {
      type yang:date-and-time;
      config false;
      description "Date and time when status changed to 'SUCCESS', 'CANCELLED', 
        'FAILED' or 'PARTIALLY_FAILED'. 

        If the time is in the future, it is the estimated time 
        the process will end.";
    }

    leaf timer {
      type uint32;
      units minutes;
      description "Time until the associated process is automatically cancelled.
        If set, the system decreases the timer with time. When it reaches zero 
        the cancellation of the associated process is initiated by the 
        MnS_Producer. 
        If not set, there is no time limit for the process.
        
        Once the timer is set, the consumer can not change it anymore. 
        If the consumer has not set the timer the MnS Producer may set it.";
    }
  }
  
  typedef TenthOfDegrees { 
    type uint16 { 
      range 0..3600;