YDK Types

import "github.com/CiscoDevNet/ydk-go/ydk/types"
struct ydk/types/DataNode
struct ydk/types/RootSchemaNode
struct ydk/types/Session
struct ydk/types/Rpc
Input

Type is DataNode

struct ydk/types/Repository
ServiceProvider

ServiceProvider is an interface type defined for supported Service Providers.

GetPrivate()
Return type:interface{}
Connect()
Disconnect()
GetState()
Return type:*State
GetType() string
ExecuteRpc(string, Entity, map[string]string) DataNode
struct ydk/types/CServiceProvider
struct ydk/types/COpenDaylightServiceProvider
CodecServiceProvider

CodecServiceProvider is an interface type for CodecServiceProvider

Initialize(Entity)
GetEncoding()
Return type:Encoding Format
GetRootSchemaNode(Entity)
Return type:RootSchemaNode
GetState()
Return type:*State

YANG Types

The Types package provides built-in types specified in YANG RFC 6020 and types used in YDK Go APIs.

These are how YANG types are represented in Go.

Bits

Represents a YANG built-in bits type with base type of map[string]bool.

struct ydk/types/Decimal64(value)

Represents a YANG built-in decimal64 type.

Value

A string representation for decimal value.

struct ydk/types/Empty

Represents a YANG built-in empty type.

(e *Empty) String()

Returns the string representation of empty type

Parameters:eEmpty
Returns:The string representation of the given type
Return type:A Go string
struct ydk/types/EnumYLeaf

Represents variable data

value

The value of the variable

name

The name of the variable

struct ydk/types/Enum

Represents a YANG built-in enum type, a base type for all YDK enums.

EnumYLeaf

(EnumYLeaf) A struct representation for enum value

struct ydk/types/LeafData

Represents the data contained in a YANG leaf

Value

A Go string representing the data of the leaf

Filter

Optional attribute which can be set to perform various filtering (YFilter)

IsSet

bool representing whether the filter is set or not

struct ydk/types/NameLeafData

Represents a YANG leaf to which a name and data can be assigned

Name

A Go string representing the name of the leaf

Data

The LeafData represents the data contained in the leaf

NameLeafDataList

A slice ([] NameLeafData) that represents a YANG leaf-list

(p NameLeafDataList) Len()
Returns:The length of a given leaf-list
Return type:int
(p NameLeafDataList) Swap(i, j int)

Swaps the NameLeafData at indices i and j

(p NameLeafDataList) Less(i, j int)
Returns:If the name of the NameLeafData at index i is less than the one at index j
Return type:bool
List

In YDK YANG list is represented by Go slice of references to a structure, which implements interface Entity.

Example:

If Go structure YangList implements interface Entity, meaning implements func (e *YangList) GetEntityData() *CommonEntityData {}, then the list of entities should be implemented as []*YangList. according to the YANG model the list may have one or more keys, which uniquely identify list element, or may have no keys. The slices can be created and list elements can be accessed using standard Go functions and methods. The YDK provides package ylist containing functions, which allow user access list elements by key or keys.

Get(slice interface{}, keys ... interface{}) (int, Entity)

Get list element (entity) by key or keys, if list element has more than one key

Parameters:
  • slice – Slice variable, which is defined in the list holding entity
  • keys – Comma separated list of key values
Returns:

Tuple of found element index and the element itself, which has matching key(s) value(s). If element is not found - (-1, nil).

Return type:

Tuple( int, Entity)

Keys(slice interface{}) []interface{} Entity

Get keys for all list elements

Parameters:slice – Slice variable, which is defined in the list holding entity
Returns:Values of all keys, that have matching elements in the list
Return type:Go []interface{}; if list has more than one key, the set of keys for one element is returned as []interface{}
struct ydk/types/EntityPath
ValuePaths

A slice ([] NameLeafData) representing a list of YANG leafs

struct ydk/types/YChild

YChild encapsulates the GoName of an entity as well as the entity itself

GoName

A string representing the GoName of an entity

Value

The Entity itself

struct ydk/types/YLeaf

YLeaf encapsulates the GoName of a leaf as well as the leaf itself

GoName

A string representing the GoName of an entity

Value

The leaf (type interface{}) itself

struct ydk/types/CommonEntityData

CommonEntityData encapsulate common data within an Entity

YangName

A string representing Yang name of the entity

BundleName

A string representing the bundle name of the entity

ParentYangName

A string representing the parent Yang name of the entity

Children

A map of string representing Yang name to YChild, representing the children

Leafs

A map of string representing Yang name to YLeaf, representing the leafs

SegmentPath

A string representing the segment path

CapabilitiesTable

A map[string]string representing the capabilities table

NamespaceTable

A map[string]string representing the namespace table

BundleYangModelsLocation

A string representing the models path

Parent

An Entity representing the parent

Entity

An interface type that represents a basic container in YANG

GetEntityData() *CommonEntityData

The Entity interface function

Returns:a pointer to CommonEntityData representing entity data
GetSegmentPath(entity Entity) string
Parameters:entity – An instance of Entity
Returns:The entity’s segment path value
GetAbsolutePath(entity Entity) string
Parameters:entity – An instance of Entity
Returns:The entity’s absolute path value
Note: The parent-child relations must be set before calling this function.
As an advice the SetAllParents on the top level entity must be called to set the references.
GetParent(entity Entity) Entity
Parameters:entity – An instance of Entity
Returns:Entity, which represents given entity’s parent; if parent entity is not set, returns nil
SetParent(entity, parent Entity)

SetParent sets the given Entity parent field to the given parent Entity

Parameters:entity – An instance of Entity
SetAllParents(entity Entity)

The function sets Parent field in all children recursively starting from the given Entity

Parameters:entity – An instance of Entity
HasDataOrFilter(entity Entity) bool
Parameters:entity – An instance of Entity
Returns:A Go boolean representing whether the Entity or any of its children have their data/filter set
GetEntityPath(entity Entity)
Parameters:entity – An instance of Entity
Returns:EntityPath for the given entity
GetChildByName(entity Entity, childYangName string, segmentPath string) Entity

Finds entity’s child entity by name and segment path

Parameters:
  • entity – An instance of Entity
  • childYangName – The YangName of the child entity
  • segmentPath – The SegmentPath value of the child entity
Returns:

Entity described by the given childYangName and segmentPath or nil if there is no match

SetValue(entity Entity, valuePath string, value interface{})

Sets leaf value

Parameters:
  • entity – An instance of Entity
  • valuePath – The YLeaf name value
  • value – Instance of value interface
IsPresenceContainer(entity Entity) bool

returns if the given Entity is a presence container

Parameters:entity – An instance of Entity
Returns:A Go boolean representing whether the Entity is a presence container or not
GetPresenceFlag(entity Entity) bool

returns whether the presence flag of the given Entity

Parameters:entity – An instance of Entity
Returns:A Go boolean representing whether the Entity is the presence flag has been set or not
SetPresenceFlag(entity Entity)

sets the presence flag of the given Entity if it is a presence container

Parameters:entity – An instance of Entity
EntityToString(entity Entity) string

Utility function to get string representation of the entity.

Returns:Go string in format: “Type: entity-instance-type, Path: entity-segment-path”.
EntityToDict(entity Entity) map[string]string

Utility function to get dictionary of all leaves and presence containers recursively in this entity and its children.

Parameters:entity – An instance of Entity
Returns:A map[string]string, where key represents leaf absolute path and value represents string value of the leaf; In case of presence container the key represents the container absolute path and value is empty string.
struct ydk/types/StringPair

Type StringPair defines a pair of string values. Both members of the structure are of string type:

Left
EntityDiff(entity1, entity2 Entity) map[string]StringPair

Utility function to compare two entities of the same underlying type. Compared are presence containers and all leaves recursively.

Parameters:entity – An instance of Entity
Returns:A map[string]StringPair, map of differences between two entities, where key represents leaf or presence container absolute path and value StringPair represents difference in string values of the leaves.
struct ydk/types/EntityCollection

Type EntityCollection along with its methods implements ordered map collection of entities. The string value of entity SegmentPath serves as a map key for the entity. Ordered means, the collection retains order of entities, in which they were added to collection.

The EntityCollection type has two aliases - Config and Filter.

GetEntityData() *CommonEntityData

Implements Entity interface.

Returns:a reference to CommonEntityData representing data for the first entity in the collection; nil - if collection is empty
Add(entities ... Entity)

Method of EntityCollection. Adds new elements into collection.

Parameters:entities – Non-empty list of comma separated instances of Entity.
Append(entities []Entity)

Method of EntityCollection. Adds new elements into EntityCollection.

Parameters:entities – Non-empty slicen of ‘Entity’ type instances.
Len() int

Method of EntityCollection.

Returns:Number of elements in the collection.
Get(key string) Entity

Method of EntityCollection. Gets collection elements by key.

Parameters:key – Go string, which represents SegmentPath of an entity.
Returns:Instance of Entity if matching key is present in collection, nil - otherwise.
GetItem(item int) Entity

Method of EntityCollection. Gets collection elements by item/order number.

Parameters:item – Sequential number of an entity in the collection.
Returns:Instance of Entity, which stands in the ordered map by the number item; nil - item value is not in the range of collection size.
HasKey(key string) bool

Method of EntityCollection. Checks if the collection contains an entity with given key value.

Parameters:key – Go string, which represents SegmentPath of an entity.
Returns:Go bool: true - if collection contains corresponding entity; false - otherwise.
Pop(key string) Entity

Method of EntityCollection. Removes entity from collection. When element is removed from inside of the collection, all the following elements are shifted, meaning their indexes changed by -1. This way the order of elements is retained.

Parameters:key – Go string, which represents SegmentPath of an entity.
Returns:Instance of Entity, if corresponding key is found in the collection; nil - otherwise.
Clear()

Method of EntityCollection. Removes all elements from collection.

Keys() []string

Method of EntityCollection.

Returns:Slice of string representing array of all the keys in the collection.
Entities() []Entity

Method of EntityCollection.

Returns:Slice/array of all the Entity instances in the collection.
String() string

Method of EntityCollection.

Returns:Go string, which represents entity collection.
NewEntityCollection(entities ... Entity) EntityCollection

Function creates new EntityCollection instance and populates it with supplied entities.

Parameters:entities – list of comma separated instances of Entity, including empty list.
Returns:Instance of EntityCollection, which includes specified in the parameters entities. If no entities is listed as parameters, the function returns empty collection.
NewConfig(entities ... Entity) Config

Function creates new Config instance similar to function NewEntityCollection.

NewFilter(entities ... Entity) Filter

Function creates new Filter instance similar to function NewEntityCollection.

EntityToCollection (entity Entity) *EntityCollection

Function converts or casts Entity to EntityCollection.

Parameters:entity – Instance of type Entity or EntityCollection.
Returns:Pointer to instance of EntityCollection. If parameter is instance of EntityCollection the function returns the same. If entity is instance of Entity, the function creates new entity collection, which includes entity as its element.
IsEntityCollection (entity Entity) bool

Function checks type of entity.

Parameters:entity – Instance of type Entity or EntityCollection.
Returns:Go bool: true - if entity is instance of EntityCollection; false - otherwise.