diff --git a/yang-models/_3gpp-common-yang-types.yang b/yang-models/_3gpp-common-yang-types.yang index 2a82e1b05c5ee2f1e3d5446d97cdde816a6d2e3c..18084a2ebc95c6d1ed2090b6778e4ad9016b3f6a 100755 --- a/yang-models/_3gpp-common-yang-types.yang +++ b/yang-models/_3gpp-common-yang-types.yang @@ -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;