/* * Copyright (c) 2015 Huawei Technologies Co., Ltd. and others. All rights reserved. * * This program and the accompanying materials are made available under the * terms of the Eclipse Public License v1.0 which accompanies this distribution, * and is available at http://www.eclipse.org/legal/epl-v10.html */ module nemo-common{ yang-version 1; namespace "urn:opendaylight:params:xml:ns:yang:nemo:common"; prefix "nemo-common"; revision "2015-06-29" { description "Initial revision."; } /********************** * Base types **********************/ typedef description { description "A human-readable description for a object."; type string { length "1..4096"; } } typedef name { description "A generic string name type. Must start with a letter"; type string { pattern '[a-zA-Z]([a-zA-Z0-9\-_.])*'; length "1..256"; } } // UUID type from ietf-yang-types@2013-07-15 typedef uuid { type string { pattern '[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12}'; } description "A Universally Unique IDentifier in the string representation defined in RFC 4122. The canonical representation uses lowercase characters. The following is an example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6"; reference "RFC 4122: A Universally Unique IDentifier (UUID) URN Namespace"; } typedef unique-id { type uuid; description "A globally unique identifier"; } /********************* * Unique IDs *********************/ typedef object-id { type unique-id; description "A unique ID for a parameterized object"; } typedef node-definition-id { type object-id; description "A unique ID for a node definition."; } typedef node-instance-id { type object-id; description "A unique ID for a node instance."; } typedef connection-definition-id { type object-id; description "A unique ID for a connection definition."; } typedef connection-instance-id { type object-id; description "A unique ID for a connection instance."; } typedef flow-definition-id { type object-id; description "A unique ID for a flow definition."; } typedef flow-instance-id { type object-id; description "A unique ID for a flow instance."; } typedef expected-definition-id { type unique-id; description "A unique ID for an expected definition."; } typedef expected-instance-id { type unique-id; description "A unique ID for an expected instance."; } typedef avoid-definition-id { type unique-id; description "A unique ID for an avoid definition."; } typedef avoid-instance-id { type unique-id; description "A unique ID for an avoid instance."; } typedef context-id { type unique-id; description "A unique ID for a context."; } typedef intent-id { type unique-id; description "A unique ID for an intent."; } typedef user-id { type unique-id; description "A unique ID for a user."; } /********************* * names *********************/ typedef object-name { type name; description "A name for a parameterized object"; } typedef node-instance-name { type object-name; description "A name for a node instance."; } typedef connection-instance-name { type object-name; description "A name for a connection instance."; } typedef flow-instance-name { type object-name; description "A name for a flow instance."; } typedef node-property-name { type name; description "A name for a node property."; } typedef connection-property-name { type name; description "A name for a connection property."; } typedef match-item-name { type name; description "A name for a flow match item."; } typedef property-name { type name; description "A name for a property."; } typedef parameter-name { type name; description "A name for a parameter."; } typedef action-definition-name { type name; description "A name for an action definition."; } typedef action-instance-name { type name; description "A name for an action instance."; } typedef condition-definition-name { type name; description "A name for a condition definition."; } typedef condition-instance-name { type name; description "A name for a condition instance."; } typedef condition-parameter-name { type name; description "A name for a condition parameter."; } typedef constraint-definition-name { type name; description "A name for a constraint definition."; } typedef constraint-instance-name { type name; description "A name for a constraint instance."; } typedef constraint-parameter-name { type name; description "A name for a constraint parameter."; } typedef data-name { type name; description "A name for an action data."; } typedef context-name { type name; description "A name for an context"; } typedef intent-name { type name; description "A name for an intent."; } typedef user-name { type name; description "A name for a user."; } typedef expected-instance-name { type name; description "A name for an expected instance."; } typedef avoid-instance-name { type name; description "A name for an avoid instance."; } /********************* * types *********************/ typedef node-definition-type { type name; description "A type for a node."; } typedef connection-definition-type { type name; description "A type for a connection."; } typedef flow-definition-type { type name; description "A type for a flow."; } typedef node-instance-type { type name; description "A type for a node instance."; } typedef connection-instance-type { type name; description "A type for a connection instance."; } typedef flow-instance-type { type name; description "A type for a flow instance."; } }