module ietf-schedule { yang-version 1.1; namespace "urn:ietf:params:xml:ns:yang:ietf-schedule"; prefix "sch"; import ietf-yang-types { prefix "yang"; } organization "IETF NETMOD (NETCONF Data Modeling Language) Working Group"; contact "WG Web: WG List: Editor: Xufeng Liu Editor: Igor Bryskin Editor: Vishnu Pavan Beeram Editor: Tarek Saad Editor: Himanshu Shah Editor: Oscar Gonzalez De Dios "; description "The model allows time scheduling parameters to be specified."; revision 2017-09-06 { description "Initial revision"; reference "TBD"; } /* * Typedefs */ typedef operation { type enumeration { enum configure { description "Create the configuration data."; } enum deconfigure { description "Remove the configuration data."; } enum set { description "Set the specified configuration data."; } enum reset { description "Revert the specified configuration data back to the original value."; } } description "Operation type."; } /* * Groupings */ grouping schedule-config-attributes { description "A group of attributes for a schedule."; leaf inclusive-exclusive { type enumeration { enum inclusive { description "The schedule element is inclusive, i.e., the schedule specifies the time at which the element is enabled."; } enum exclusive { description "The schedule element is exclusive. i.e., the schedule specifies the time at which the element is disabled."; } } default "inclusive"; description "Whether the list item is inclusive or exclusive."; } leaf start { type yang:date-and-time; description "Start time."; } leaf schedule-duration { type string { pattern 'P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?T(\d+H)?(\d+M)?(\d+S)?'; } description "Schedule duration in ISO 8601 format."; } leaf repeat-interval { type string { pattern 'R\d*/P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?T(\d+H)?(\d+M)?' + '(\d+S)?'; } description "Repeat interval in ISO 8601 format."; } } // schedule-config-attributes grouping schedule-config-notification { description "A group of attributes for a schedule notification."; notification execution { description "Notification event for an execution performed on a target object."; leaf operation { type operation; mandatory true; description "Operation type."; } leaf datetime { type yang:date-and-time; description "The date and time when the execution was performed."; } anydata results { description "This chunk of data contains the results of the execution performed on the target object. The results are the same or equivalent to the contents of a message, Because of the nature of such a target execution, a message is not used to return the execution results. Instead, this notification is used to serve the same purpose."; } } } // schedule-config-notification grouping schedule-state-attributes { description "State attributes for a schedule."; container future-executions { description "The state information of the nexte scheduled event."; list execution { key "start"; description "List of scheduled future executions."; leaf start { type yang:date-and-time; description "Start time."; } leaf duration { type string { pattern 'P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?T(\d+H)?(\d+M)?(\d+S)?'; } description "Schedule duration in ISO 8601 format."; } leaf operation { type operation; description "Operation type."; } } // event } // future-events } // schedule-state-attributes grouping schedules { description "A list of schedules defining when a particular configuration takes effect."; container schedules { description "Container of a schedule list defining when a particular configuration takes effect."; list schedule { key "schedule-id"; description "A list of schedule elements."; leaf schedule-id { type uint32; description "Identifies the schedule element."; } uses schedule-config-attributes; } } } // schedules /* * Configuration data and operational state nodes */ container configuration-schedules { description "Serves as top-level container for a list of configuration schedules."; list target { key "object"; description "A list of targets that configuration schedules are applied."; leaf object { type yang:xpath1.0; description "Xpath defining the data items of interest."; } leaf operation { type operation; default "configure"; description "Operation type."; } anydata data-value { description "The data value applied to the leaf data node specified by data-objects. The format of the data value depends on the value of the leaf operation defined above: configure: data-value is the sub-tree added to the target object; deconfigure: data-value is the child to be deleted from the target object; set: the target object MULST be a leaf, and data-value is the new value to be set to the target object; reset: data-value is ignored."; } uses schedules; container state { config false; description "Operational state data."; uses schedule-state-attributes; } // state uses schedule-config-notification; } // target } // configuration-schedules }