blob: 3fdd3ddf23b08bf20675668cca36bf43315a0e35 [file] [log] [blame]
module actn-ietf-schedule {
yang-version 1.1;
namespace "urn:ietf:params:xml:ns:yang:actn-ietf-schedule";
prefix "sch";
import yrt-ietf-yang-types {
prefix "yang";
}
organization "TBD";
contact "TBD";
description
"The model allows time scheduling parameters to be specified.";
revision "2017-03-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.";
/****TODO: FIXME: cannot handle notification as child under a container??
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 <rpc-reply> message,
Because of the nature of such a target execution, a
<rpc-reply> message is not used to return the execution
results. Instead, this notification is used to serve
the same purpose.";
}
}
***TODO: FIXME***/
} // 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
}