From 8016160afd589d269cfcdb09079e329dabd328b8 Mon Sep 17 00:00:00 2001 From: Ravi Pendurty Date: Fri, 27 Nov 2020 13:28:35 +0100 Subject: SDN-R Server provide GUI cut through for ODLUX SDN-R Server provide GUI cut through for ODLUX Issue-ID: SDNC-1396 Change-Id: I9f510a03dcc07ab0efb84522611fc17e546da93f Signed-off-by: Ravi Pendurty --- .../sdnr/wt/dataprovider/model/DataProvider.java | 27 +- .../dataprovider/model/HtDatabaseMaintenance.java | 2 +- .../wt/dataprovider/model/types/YangHelper2.java | 102 ++ .../pm/types/rev191129/PmDataTypeBuilder.java | 82 +- .../src/main/yang/data-provider-g826-pm-types.yang | 2 +- .../yang/data-provider-openroadm-pm-types.yang | 2 +- .../model/src/main/yang/data-provider-units.yang | 2 +- .../src/main/yang/data-provider-v2@2020-07-02.yang | 1749 ------------------- .../src/main/yang/data-provider@2019-08-01.yang | 1674 ------------------ .../src/main/yang/data-provider@2020-11-10.yang | 1838 ++++++++++++++++++++ 10 files changed, 2032 insertions(+), 3448 deletions(-) create mode 100644 sdnr/wt/data-provider/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/model/types/YangHelper2.java delete mode 100644 sdnr/wt/data-provider/model/src/main/yang/data-provider-v2@2020-07-02.yang delete mode 100644 sdnr/wt/data-provider/model/src/main/yang/data-provider@2019-08-01.yang create mode 100644 sdnr/wt/data-provider/model/src/main/yang/data-provider@2020-11-10.yang (limited to 'sdnr/wt/data-provider/model/src/main') diff --git a/sdnr/wt/data-provider/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/model/DataProvider.java b/sdnr/wt/data-provider/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/model/DataProvider.java index 639fe301b..d277b763e 100644 --- a/sdnr/wt/data-provider/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/model/DataProvider.java +++ b/sdnr/wt/data-provider/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/model/DataProvider.java @@ -20,13 +20,14 @@ package org.onap.ccsdk.features.sdnr.wt.dataprovider.model; import java.util.Date; import java.util.List; import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.ConnectionlogEntity; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.EventlogEntity; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.FaultcurrentEntity; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.FaultlogEntity; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Inventory; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.NetworkElementConnectionEntity; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.PmdataEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.ConnectionlogEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.EventlogEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultcurrentEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.FaultlogEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Guicutthrough; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.Inventory; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.NetworkElementConnectionEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.PmdataEntity; public interface DataProvider extends ArchiveCleanProvider { @@ -71,6 +72,13 @@ public interface DataProvider extends ArchiveCleanProvider { */ void writeInventory(Inventory internalEquipment); + /** + * write GUI Cut through data to database + * + * @param gcData + */ + void writeGuiCutThroughData(Guicutthrough gcData); + /** * * @param networkElementConnectionEntitiy to wirte to DB @@ -102,10 +110,7 @@ public interface DataProvider extends ArchiveCleanProvider { /** * @param list */ - void doWritePerformanceData(List list); - - void doWritePerformanceData2(List list); - + void doWritePerformanceData(List list); /** * @return raw database client diff --git a/sdnr/wt/data-provider/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/model/HtDatabaseMaintenance.java b/sdnr/wt/data-provider/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/model/HtDatabaseMaintenance.java index 51fe25d89..99e251c44 100644 --- a/sdnr/wt/data-provider/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/model/HtDatabaseMaintenance.java +++ b/sdnr/wt/data-provider/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/model/HtDatabaseMaintenance.java @@ -19,7 +19,7 @@ package org.onap.ccsdk.features.sdnr.wt.dataprovider.model; import java.util.List; import org.eclipse.jdt.annotation.Nullable; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.MaintenanceEntity; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev201110.MaintenanceEntity; /** * @author herbert diff --git a/sdnr/wt/data-provider/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/model/types/YangHelper2.java b/sdnr/wt/data-provider/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/model/types/YangHelper2.java new file mode 100644 index 000000000..339bf7c6e --- /dev/null +++ b/sdnr/wt/data-provider/model/src/main/java/org/onap/ccsdk/features/sdnr/wt/dataprovider/model/types/YangHelper2.java @@ -0,0 +1,102 @@ +/* + * ============LICENSE_START======================================================= + * ONAP : ccsdk features + * ================================================================================ + * Copyright (C) 2020 highstreet technologies GmbH Intellectual Property. + * All rights reserved. + * ================================================================================ + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * ============LICENSE_END========================================================= + * + */ +package org.onap.ccsdk.features.sdnr.wt.dataprovider.model.types; + +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; +import java.math.BigInteger; +import java.util.Arrays; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import org.eclipse.jdt.annotation.NonNull; +import org.eclipse.jdt.annotation.Nullable; +import org.opendaylight.yangtools.yang.binding.Identifiable; +import org.opendaylight.yangtools.yang.binding.Identifier; +import org.opendaylight.yangtools.yang.common.Uint16; +import org.opendaylight.yangtools.yang.common.Uint32; +import org.opendaylight.yangtools.yang.common.Uint64; + +public class YangHelper2 { + + static public @NonNull Uint64 getUint64(@NonNull BigInteger val) { + return Uint64.valueOf(val); + } + + static public @NonNull Uint64 getUint64(@NonNull Uint64 val) { + return val; + } + + static public @NonNull Uint32 getUint32(@NonNull Long val) { + return Uint32.valueOf(val); + } + + static public @NonNull Uint32 getUint32(@NonNull Uint32 val) { + return val; + } + + public static @NonNull Uint16 getUint16(@Nullable Integer val) { + return Uint16.valueOf(val); + } + + public static @NonNull Uint16 getUint16(@Nullable Uint16 val) { + return val; + } + + public static @NonNull Integer getInteger(@Nullable Integer val) { + return val; + } + + public static @NonNull Integer getInteger(@Nullable Uint16 val) { + return val.intValue(); + } + /** + * Aluminium version + */ + public static ,T extends Identifiable> Map getListOrMapALUMINIUM(Class clazz, List list) { + Map map = new HashMap<>(); + for(T listelement:list) { + Constructor constructor; + try { + constructor = clazz.getConstructor(clazz); + clazz.getConstructors(); + map.put(constructor.newInstance(listelement.key()), listelement); + } catch (NoSuchMethodException | SecurityException | InstantiationException | IllegalAccessException | IllegalArgumentException | InvocationTargetException e) { + throw new IllegalArgumentException("Can not create map element.", e); + } + } + return map; + } + public static ,T extends Identifiable> Map getListOrMapALUMINIUM(Class clazz, T listElement) { + return getListOrMapALUMINIUM(clazz, Arrays.asList(listElement) ); + } + /** + * Sodium version + */ + public static ,T extends Identifiable> List getListOrMap(Class clazz, List list) { + return list; + } + public static ,T extends Identifiable> List getListOrMap(Class clazz, T listElement) { + return Arrays.asList(listElement); + } + +} diff --git a/sdnr/wt/data-provider/model/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev191129/PmDataTypeBuilder.java b/sdnr/wt/data-provider/model/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev191129/PmDataTypeBuilder.java index 98e93c363..b660787c6 100644 --- a/sdnr/wt/data-provider/model/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev191129/PmDataTypeBuilder.java +++ b/sdnr/wt/data-provider/model/src/main/java/org/opendaylight/yang/gen/v1/http/org/openroadm/pm/types/rev191129/PmDataTypeBuilder.java @@ -1,23 +1,85 @@ package org.opendaylight.yang.gen.v1.http.org.openroadm.pm.types.rev191129; -import java.lang.String; -import java.lang.UnsupportedOperationException; + +import com.fasterxml.jackson.databind.annotation.JsonPOJOBuilder; +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; +import java.math.BigDecimal; +import java.math.BigInteger; +import java.util.Optional; +import org.opendaylight.yangtools.yang.common.Uint64; /** - * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string representation. - * In some cases it is very difficult to automate it since there can be unions such as (uint32 - uint16), or (string - uint32). + * The purpose of generated class in src/main/java for Union types is to create new instances of unions from a string + * representation. In some cases it is very difficult to automate it since there can be unions such as (uint32 - + * uint16), or (string - uint32). * - * The reason behind putting it under src/main/java is: - * This class is generated in form of a stub and needs to be finished by the user. This class is generated only once to prevent - * loss of user code. + * The reason behind putting it under src/main/java is: This class is generated in form of a stub and needs to be + * finished by the user. This class is generated only once to prevent loss of user code. * */ +@JsonPOJOBuilder(buildMethodName = "build", withPrefix = "with") public class PmDataTypeBuilder { - private PmDataTypeBuilder() { - //Exists only to defeat instantiation. + private Uint64 _uint64; + private BigInteger _unint64; + private Long _int64; + private BigDecimal _decimal64; + + public PmDataTypeBuilder() { + System.out.println("-- Builder"); + } + + public PmDataTypeBuilder setUnint64(String v) { + _unint64 = new BigInteger(v); + return this; + } + + public PmDataTypeBuilder setUint64(String v) { + _uint64 = Uint64.valueOf(v); + return this; + } + + public PmDataTypeBuilder setInt64(String v) { + _int64 = new Long(v); + return this; + } + + public PmDataTypeBuilder setDecimal64(String v) { + _decimal64 = new BigDecimal(v); + return this; + } + + public PmDataType build() { + Optional> cons1; + try { + cons1 = Optional.of(PmDataType.class.getConstructor(BigInteger.class)); + } catch (NoSuchMethodException | SecurityException e) { + cons1 = Optional.empty(); + } + Optional> cons2; + try { + cons2 = Optional.of(PmDataType.class.getConstructor(Uint64.class)); + } catch (NoSuchMethodException | SecurityException e) { + cons2 = Optional.empty(); + } + + try { + if (_unint64 != null) { + return cons1.get().newInstance(_unint64); + } else if (_uint64 != null) { + return cons2.get().newInstance(_uint64); + } else if (_int64 != null) { + return new PmDataType(_int64); + } else { + return new PmDataType(_decimal64); + } + } catch (InstantiationException | IllegalAccessException | IllegalArgumentException + | InvocationTargetException e) { + throw new IllegalArgumentException("Wrong stuff"); + } } public static PmDataType getDefaultInstance(String defaultValue) { - throw new UnsupportedOperationException("Not yet implemented"); + return new PmDataTypeBuilder().setInt64("-1").build(); } } diff --git a/sdnr/wt/data-provider/model/src/main/yang/data-provider-g826-pm-types.yang b/sdnr/wt/data-provider/model/src/main/yang/data-provider-g826-pm-types.yang index ae9410ce4..a8d9d1ca2 100644 --- a/sdnr/wt/data-provider/model/src/main/yang/data-provider-g826-pm-types.yang +++ b/sdnr/wt/data-provider/model/src/main/yang/data-provider-g826-pm-types.yang @@ -4,7 +4,7 @@ module data-provider-g826-pm-types { namespace "urn:opendaylight:params:xml:ns:yang:data-provider-g836-pm-types"; prefix pmt; - import data-provider-v2 { + import data-provider { prefix uxp; } diff --git a/sdnr/wt/data-provider/model/src/main/yang/data-provider-openroadm-pm-types.yang b/sdnr/wt/data-provider/model/src/main/yang/data-provider-openroadm-pm-types.yang index 2a3fb17a8..2e3a2608a 100644 --- a/sdnr/wt/data-provider/model/src/main/yang/data-provider-openroadm-pm-types.yang +++ b/sdnr/wt/data-provider/model/src/main/yang/data-provider-openroadm-pm-types.yang @@ -4,7 +4,7 @@ module data-provider-openroadm-pm-types { namespace "urn:opendaylight:params:xml:ns:yang:data-provider-openroadm-pm-types"; prefix pmt; - import data-provider-v2 { + import data-provider { prefix uxp; } diff --git a/sdnr/wt/data-provider/model/src/main/yang/data-provider-units.yang b/sdnr/wt/data-provider/model/src/main/yang/data-provider-units.yang index e8979396f..7ff9e71d3 100644 --- a/sdnr/wt/data-provider/model/src/main/yang/data-provider-units.yang +++ b/sdnr/wt/data-provider/model/src/main/yang/data-provider-units.yang @@ -4,7 +4,7 @@ module data-provider-units { namespace "urn:opendaylight:params:xml:ns:yang:data-provider-units"; prefix unit; - import data-provider-v2 { + import data-provider { prefix uxp; } diff --git a/sdnr/wt/data-provider/model/src/main/yang/data-provider-v2@2020-07-02.yang b/sdnr/wt/data-provider/model/src/main/yang/data-provider-v2@2020-07-02.yang deleted file mode 100644 index 47cc009f1..000000000 --- a/sdnr/wt/data-provider/model/src/main/yang/data-provider-v2@2020-07-02.yang +++ /dev/null @@ -1,1749 +0,0 @@ -module data-provider-v2 { - - yang-version 1.1; - namespace "urn:opendaylight:params:xml:ns:yang:data-provider-v2"; - prefix odluxprovider; - - import org-openroadm-pm-types { - prefix org-openroadm-pm-types; - revision-date 2019-11-29; - reference - "OpenROADM: YANG definitions of performance management types"; - } - - import ietf-yang-types { - prefix yang; - reference - "RFC 6991: Common YANG Data Types."; - } - - organization - "highstreet technologies GmbH"; - contact - "Web: - ONAP: "; - - description - "This module defines the API for the data-provider component. - - Copyright 2019 highstreet technologies GmbH Intellectual Property. - All rights reserved. - - Licensed under the Apache License, Version 2.0 (the 'License'); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an 'AS IS' BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License."; - - revision 2020-07-02 { - description - "Initial revision"; - reference - "https://jira.onap.org/browse/SDNC-xxx"; - } - - // --- typedef - - typedef Entity { - type enumeration { - enum connectionlog { - description - "logs mountpoint connection state changes"; - } - enum faultcurrent { - description - "current faults"; - } - enum eventlog { - description - "logs for all notifications e.g. NetConf, ves and internal events"; - } - enum faultlog { - description - "faultlog information"; - } - enum historicalperformance15min { - description - "performance data"; - } - enum historicalperformance24h { - description - "performance data"; - } - enum mediator-server { - description - "list of mediator servers"; - } - enum networkelement-connection { - description - "list of mountpoints for NetConf devices (joint required-network-element+mdsal - state"; - } - enum inventoryequipment { - description - "list of equipment inventory"; - } - enum maintenancemode { - description - "list of maintenance setting"; - } - } - description - "Data type and alias for elasticsearch or table name for SQL database."; - } - - typedef SortOrder { - type enumeration { - enum ascending { - description - "Self explaining."; - } - enum descending { - description - "Self explaining."; - } - } - description - "Entities for odlux clients"; - } - - typedef FilterProperty { - type string; - description - "A string type describing a property (attribute, column, parameter) - filter"; - } - - typedef NotificationType { - type enumeration { - enum ProblemNotificationXml { - description - "A fault (alarm, problem) notification type in XML format."; - } - enum AttributeValueChangedNotificationXml { - description - "An attribute value change notification type in XML format."; - } - } - description - "An enumeration describing the found notification type."; - } - - typedef ConnectionLogStatus { - type enumeration { - enum Mounted { - description - "Mountpoint created"; - } - enum Unmounted { - description - "Mountpoint removed"; - } - enum Connecting { - description - "Mountpoint establishing connection"; - } - enum Connected { - description - "Mountpoint connection established"; - } - enum UnableToConnect { - description - "Mountpoint connection not possible"; - } - enum Disconnected { - description - "Required and mountpoint removed"; - } - enum Undefined { - description - "Status not available"; - } - } - description - "An enumeration describing connection states."; - } - - typedef NetworkElementDeviceType { - type enumeration { - enum Wireless { - description - "implements microwave-model.yang or air-interface.yang"; - } - enum RAN { - description - "implements sth. like o-ran*.yang"; - } - enum ORAN { - description - "implements RAN according to o-ran*.yang"; - } - enum RAN3GPP { - description - "implements RAN according to _3gpp-ran*.yang"; - } - enum Optical { - description - "implements tapi-*.yang or org-openroadm*.yang"; - } - enum Router { - description - "implements vlan-interface.yang"; - } - enum NtsManager { - description - "Simulation of device"; - } - enum Nonsupported { - description - "Device type known, but not support"; - } - enum Unknown { - description - "Device type at this point of time unknown"; - } - } - description - "An enumeration as identification of the device."; - } - - typedef severity-type { - type enumeration { - enum NonAlarmed { - description - "problem cleared indication"; - } - enum Warning { - description - "problem level"; - } - enum Minor { - description - "problem level"; - } - enum Major { - description - "problem level"; - } - enum Critical { - description - "problem level"; - } - } - description - "According to ITU-T M.3160"; - } - - typedef source-type { - type enumeration { - enum Ves { - description - "VES Interface"; - } - enum Netconf { - description - "NetConf Interface"; - } - enum Controller { - description - "SDN Controller"; - } - enum Unknown { - description - "Unknown source"; - } - } - description - "An enumeration for the information source of an event/notification."; - } - - typedef granularity-period-type { - type enumeration { - enum unknown { - description - "none"; - } - enum period-15-min { - description - "none"; - } - enum period-24-hours { - description - "none"; - } - } - description - "The enumeration with the options for granularity period of the - performance data similar to g.874.1-model"; - } - - // --- grouping and builder-container - - grouping connectionlog-entity { - leaf id { - type string; - description - "database id"; - } - leaf node-id { - type string; - description - "the node/mountpoint which connection state has changed"; - } - leaf timestamp { - type yang:date-and-time; - description - "timestamp when event happened, preferred in UTC time format."; - } - leaf status { - type ConnectionLogStatus; - description - "new state of the connection of the device"; - } - description - "An object class describing an entry in the connection status log."; - } - - container connectionlog { - description - "builder"; - uses connectionlog-entity; - } - - grouping object-change-reference { - description - "Reference of of object (e.g. Interface pack) owned by a node"; - leaf node-id { - type string; - description - "A network wide unique identifier of the NetConf server."; - } - leaf counter { - type int32; - description - "An arbitrary counter value."; - } - leaf timestamp { - type yang:date-and-time; - description - "The time of the reported change, preferred in UTC time format. "; - } - leaf object-id { - type string; - description - "The identifier of the reporting object (resource)."; - } - } - - grouping source-reference { - description - "Identify a source"; - leaf source-type { - type source-type; - description - "The source type."; - } - } - - grouping fault { - description - "Fault event of an object"; - leaf problem { - type string; - description - "The alarm type identifier."; - } - leaf severity { - type severity-type; - description - "The reported severity of the fault (alarm)."; - } - } - - grouping attribute-change { - description - "update change of an attribute"; - leaf attribute-name { - type string; - description - "The attribute name which was changed."; - } - leaf new-value { - type string; - description - "The new value of the attribute converted to a string format."; - } - } - - grouping entity-id { - description - "Unique database id of entity"; - leaf id { - type string; - description - "The unique identifier of the entity."; - } - } - - grouping faultcurrent-entity { - description - "Current fault status"; - uses object-change-reference; - uses fault; - uses entity-id; - } - - container faultcurrent { - description - "builder"; - uses faultcurrent-entity; - } - - grouping faultlog-entity { - description - "Changed fault indication"; - uses source-reference; - uses object-change-reference; - uses fault; - uses entity-id; - } - - container faultlog { - description - "builder"; - uses faultlog-entity; - } - - grouping eventlog-entity { - description - "One change event of devices"; - uses source-reference; - uses object-change-reference; - uses attribute-change; - uses entity-id; - } - - container eventlog { - description - "builder"; - uses eventlog-entity; - } - - grouping filter { - leaf description { - type string; - description - "Filter specific description"; - } - leaf start { - type yang:date-and-time; - description - "begin of maintenance-mode"; - } - leaf end { - type yang:date-and-time; - description - "end of maintenance-mode"; - } - leaf object-id-ref { - type string; - description - "object id to filter on, or empty for all"; - } - leaf problem { - type string; - description - "name of the problem to filter or empty for all"; - } - description - "An object class describing a generic filter of an interval for - faults (alarms)."; - } - - grouping maintenance-entity { - description - "Maintenance mode for a device. "; - leaf id { - type string; - mandatory true; - description - "Key to get/set configuration entry in database. Normally Mountpoint - name is used as key id of node."; - } - leaf node-id { - type string; - mandatory true; - description - "A network wide unique identifier of the NetConf server."; - } - leaf active { - type boolean; - description - "Configuration to activate or deactivate this entry"; - } - uses filter; - } - - container maintenance { - presence "false"; - description - "builder"; - uses maintenance-entity; - } - - grouping mediator-server-entity { - leaf id { - type string; - mandatory true; - description - "A network unique identifier of the mediator server."; - } - leaf url { - type string; - description - "The ULR to reach the REST interface of the mediator server."; - } - leaf name { - type string; - description - "A human readable name of the mediator server."; - } - description - "An object class describing a mediator server entity."; - } - - grouping pmdata-base { - description - "Performance data base information"; - leaf node-name { - type string; - description - "A network unique identifier of reporting NetConf server."; - } - leaf uuid-interface { - type string; - description - "A universal unique identifier of the performance monitoring point."; - } - leaf layer-protocol-name { - type string; - description - "The name of the measured transport layer."; - } - leaf radio-signal-id { - type string; - description - "The value exists only of wireless transport devices."; - } - leaf time-stamp { - type yang:date-and-time; - description - "The time-stamp of the measurement, preferred in UTC format."; - } - leaf suspect-interval-flag { - type boolean; - description - "If false, the measurement is not completed and should not be used - for performance analysis. "; - } - leaf granularity-period { - type granularity-period-type; - description - "The expected measurement interval."; - } - leaf scanner-id { - type string; - description - "See ITU-T X.739 chapter 8.1.1.2."; - } - } - - grouping pmdata-microwave { - description - "Consolidated performance information of all microwave model interface - PACs"; - leaf es { - type int32; - units "s"; - default "-1"; - config false; - description - "Number of errored seconds."; - } - leaf ses { - type int32; - units "s"; - default "-1"; - config false; - description - "Number of severely errored seconds."; - } - leaf cses { - type int32; - units "s"; - default "-1"; - config false; - description - "Number of consecutive severely errored seconds."; - } - leaf unavailability { - type int32; - units "s"; - default "-1"; - config false; - description - "Total time of unavailability in seconds."; - } - leaf tx-level-min { - type int8; - units "dBm"; - default "99"; - config false; - description - "Minimum transmit power. Signed integers are required."; - } - leaf tx-level-max { - type int8; - units "dBm"; - default "99"; - config false; - description - "Maximum transmit power. Signed integers are required."; - } - leaf tx-level-avg { - type int8; - units "dBm"; - default "99"; - config false; - description - "Averaged transmit power. Signed integers are required."; - } - leaf rx-level-min { - type int8; - units "dBm"; - default "99"; - config false; - description - "Minimum receive level. Signed integers are required."; - } - leaf rx-level-max { - type int8; - units "dBm"; - default "99"; - config false; - description - "Maximum receive level. Signed integers are required."; - } - leaf rx-level-avg { - type int8; - units "dBm"; - default "99"; - config false; - description - "Averaged receive level. Signed integers are required."; - } - leaf time2-states { - type int32; - units "s"; - default "-1"; - config false; - description - "Sum of all seconds the transmitter operated in e.g. BPSK."; - } - leaf time4-states-s { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time4-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time8-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time16-states-s { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time16-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time32-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time64-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time128-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time256-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time512-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time512-states-l { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time1024-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time1024-states-l { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time2048-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time2048-states-l { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time4096-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time4096-states-l { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time8192-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time8192-states-l { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf snir-min { - type int8; - units "dB"; - default "-99"; - config false; - description - "Minimum signal to (noise+interference) ratio."; - } - leaf snir-max { - type int8; - units "dB"; - default "-99"; - config false; - description - "Maximum signal to (noise+interference) ratio."; - } - leaf snir-avg { - type int8; - units "dB"; - default "-99"; - config false; - description - "Averaged signal to (noise+interference) ratio."; - } - leaf xpd-min { - type int8; - units "dB"; - default "-99"; - config false; - description - "Minimum cross polarization discrimination."; - } - leaf xpd-max { - type int8; - units "dB"; - default "-99"; - config false; - description - "Maximum cross polarization discrimination."; - } - leaf xpd-avg { - type int8; - units "dB"; - default "-99"; - config false; - description - "Averaged cross polarization discrimination."; - } - leaf rf-temp-min { - type int8; - units "C"; - default "-99"; - config false; - description - "Lowest temperature (in degree Celsius) of the radio module inside the - outdoor unit."; - } - leaf rf-temp-max { - type int8; - units "C"; - default "-99"; - config false; - description - "Highest temperature (in degree Celsius) of the radio module inside the - outdoor unit."; - } - leaf rf-temp-avg { - type int8; - units "C"; - default "-99"; - config false; - description - "Averaged temperature (in degree Celsius) of the radio module inside - the outdoor unit."; - } - leaf defect-blocks-sum { - type int16; - units "blocks"; - default "-1"; - config false; - description - "Total number of blocks that were defect after receiving and could not - be corrected by the FEC."; - } - leaf time-period { - type int32; - units "s"; - default "-1"; - config false; - description - "Total length of the measurement period."; - } - } - - grouping pmdata-ethernet { - description - "Consolidated performance information for Ethernet."; - leaf tx-ethernet-bytes-max-s { - type int32; - units "Bytes/s"; - default "-1"; - config false; - description - "Counts the number of Bytes of Ethernet traffic (before header - compression) transmitted within a second and keeps the highest value - within the measurement period. Field to be left blank for all types of - TDM containers."; - } - leaf tx-ethernet-bytes-max-m { - type int64; - units "Bytes/min"; - default "-1"; - config false; - description - "Counts the number of Bytes of Ethernet traffic (before header - compression) transmitted within a minute and keeps the highest value - with in the measurement period. Field to be left blank for all types - of TDM containers."; - } - leaf tx-ethernet-bytes-sum { - type int64; - units "Bytes"; - default "-1"; - config false; - description - "Total number of Bytes of Ethernet traffic (before header compression) - transmitted (in direction out of the device) during the measurement - period. Field to be left blank for all types of TDM containers."; - } - } - - identity performance-measurement-type-id { - description - "Base identity for perforamnce measurement types. A unique identification - of the performance measurment value, not including the resource. - Different resources can share performance measuement types. If the - resource reports the same performance measurment type, it is to be - considered to be the same performance measurment. - - This identity is abstract and MUST NOT be used for performence - mesurement."; - } - - identity performance-measurement-unit-id { - description - "Base identity for perforamnce measurement units. - - This identity is abstract and MUST NOT be used for performence - mesurement."; - } - - typedef performance-measurement-type-id { - type identityref { - base performance-measurement-type-id; - } - description - "Identifies an performance-measurement type. The description of the - performance measurement type id MUST indicate if the performance - measurement type is abstract or not. An abstract performance measurement - type is used as a base for other performance measurement type ids - and will not be used as a value for an performance measurement or be - present in the performance measurement inventory."; - } - - typedef performance-measurement-unit-id { - type identityref { - base performance-measurement-unit-id; - } - description - "Identifies an performance-measurement unit. The description of the - performance measurement unit id MUST indicate if the performance - measurement unit is abstract or not. An abstract performance measurement - unit is used as a base for other performance measurement unit ids - and will not be used as a value for an performance measurement or be - present in the performance measurement inventory."; - } - - grouping pm-measurement-grp { - leaf pm-key { - type performance-measurement-type-id; - description - "The local identifier of a pm-measurement object."; - } - leaf pm-value { - type org-openroadm-pm-types:pm-data-type; - mandatory true; - description - "The performance measurement value, measured in a certain interval."; - } - leaf pm-unit { - type performance-measurement-unit-id; - description - "A represention of the unit og the pm-value."; - } - description - "An abstract object class representing a key-value pair for - pm-measurement."; - } - grouping pmdata-grp { - list measurement { - key pm-key; - uses pm-measurement-grp; - description - "An abstract list of perfromance mesurement values."; - } - description - "An abstract object class containing a list of perfromance mesurement - values."; - } - - container pmdata-entity { - description - "builder"; - uses pmdata-base; - container performance-data { - uses pmdata-microwave; - uses pmdata-ethernet; - uses pmdata-grp; - description - "An object combining different performance monitoring data."; - } - } - - grouping pmdata15m-entity { - uses pmdata-base; - container performance-data { - uses pmdata-microwave; - uses pmdata-ethernet; - description - "An object combining different performance monitoring data."; - } - description - "An object class describing a 15 minute performance monitoring entity."; - } - - grouping pmdata24h-entity { - uses pmdata-base; - container performance-data { - uses pmdata-microwave; - uses pmdata-ethernet; - description - "An object combining different performance monitoring data."; - } - description - "An object class describing a 24 hour performance monitoring entity."; - } - - grouping inventory-entity { - description - "One equipment entity in a list of a network element that could be rack, - card, backplane, module"; - leaf id { - type string; - mandatory true; - description - "Unique database id, node-id/uuid"; - } - leaf tree-level { - type uint32; - description - "Containment level, starting with 0.."; - } - leaf parent-uuid { - type string; - description - "Unique inventory id of holder"; - } - leaf node-id { - type string; - description - "Unique node id of network element"; - } - leaf uuid { - type string; - description - "Unique inventory id of this node for this equipment, provided by - network element"; - } - leaf-list contained-holder { - type string; - description - "List of uuid of contained equipment"; - } - leaf manufacturer-name { - type string; - description - "manufactured-thing/manufacturer-properties/manufacturer-name"; - } - leaf manufacturer-identifier { - type string; - description - "manufactured-thing/manufacturer-properties/manufacturer-identifier"; - } - leaf serial { - type string; - description - "manufactured-thing/equipment-instance/serial"; - } - leaf date { - type string; - description - "manufactured-thing/equipment-instance/manufacture-date: Date - information provided by manufacturer. No specific format. ()"; - } - leaf version { - type string; - description - "manufactured-thing/equipment-type/version"; - } - leaf description { - type string; - description - "manufactured-thing/equipment-type/description"; - } - leaf part-type-id { - type string; - description - "manufactured-thing/equipment-type/part-type-identifier"; - } - leaf model-identifier { - type string; - description - "manufactured-thing/equipment-type/model-identifier"; - } - leaf type-name { - type string; - description - "manufactured-thing/equipment-type/type-name"; - } - } - - container inventory { - presence "false"; - description - "builder"; - uses inventory-entity; - } - - grouping node-details-g { - leaf-list available-capabilities { - type string; - description - "The list of available yang capabilities."; - } - leaf-list unavailable-capabilities { - type string; - description - "The list of unavailable yang capabilities."; - } - description - "An object class description the available and unavailable yang - capabilities."; - } - - grouping network-element-connection-entity { - leaf id { - type string; - description - "database id/key. here is equal to node-id"; - } - leaf node-id { - type string; - description - "mountpoint name of device in controller"; - } - leaf host { - type string; - description - "NetConf server host name or IP address of device"; - } - leaf port { - type uint32; - description - "NetConf port of device"; - } - leaf username { - type string; - description - "NetConf user name"; - } - leaf password { - type string; - description - "NetConf password. should be removed asap"; - } - leaf core-model-capability { - type string; - description - "revision of core-model capability"; - } - leaf device-type { - type NetworkElementDeviceType; - description - "categorized type of device based on implemented yang specs"; - } - leaf is-required { - type boolean; - description - "entry exists in db index required-networkelement"; - } - container node-details { - uses node-details-g; - description - "holder of available and unavailable capabilities"; - } - leaf status { - type ConnectionLogStatus; - description - "current connection status. default Disconnected"; - } - description - "An object class defining the NetConf connection towards a - NetConf server. "; - } - - container network-element-connection { - description - "builder"; - uses network-element-connection-entity; - } - - grouping status-entity { - container faults { - leaf criticals { - type uint32; - description - "The number of current faults (active alarms) with severity - 'critical'."; - } - leaf majors { - type uint32; - description - "The number of current faults (active alarms) with severity - 'major'."; - } - leaf minors { - type uint32; - description - "The number of current faults (active alarms) with severity - 'minor'."; - } - leaf warnings { - type uint32; - description - "The number of current faults (active alarms) with severity - 'warning'."; - } - description - "An object containing the number of current faults per its severity."; - } - description - "An object class defining an status entity for current faults - (also called active alarms)."; - } - - container status { - description - "builder"; - uses status-entity; - } - - grouping entity-input { - list filter { - key "property"; - leaf property { - type string; - description - "The property (parameter, column, field) identifier."; - } - leaf filtervalue { - type string; - description - "The filter information for the corresponding property."; - } - description - "List with filter criteria. Not listed means all."; - } - list sortorder { - key "property"; - leaf property { - type string; - description - "The property (parameter, column, field) identifier."; - } - leaf sortorder { - type SortOrder; - description - "The definition of the sort order for the corresponding property."; - } - description - "List with sort order. Not listed means default"; - } - container pagination { - leaf size { - type uint32 { - range "1..max"; - } - default "20"; - description - "Number of entries to be delivered"; - } - leaf page { - type uint64 { - range "1..max"; - } - default "1"; - description - "Number to be used to calculate starting entry to deliver"; - } - description - "An object defining the pagination details."; - } - description - "An object class defining a request input entity."; - } - - grouping pagination-output-g { - leaf size { - type uint32 { - range "1..max"; - } - default "20"; - description - "Number of entries to be delivered"; - } - leaf page { - type uint64 { - range "1..max"; - } - default "1"; - description - "Number to be used to calculate starting entry to deliver"; - } - leaf total { - type uint64 { - range "0..max"; - } - default "0"; - description - "Number to be used to calculate starting entry to deliver"; - } - description - "An object class defining the filter information for pagination."; - } - - container pagination-output { - description - "builder"; - uses pagination-output-g; - } - - // --- rpc - - rpc read-faultcurrent-list { - description - "Get list of current fault (active alarm) entries according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses faultcurrent-entity; - description - "The output data as list of current fault (or active alarm) - entities."; - } - } - } - - rpc read-faultlog-list { - description - "Get list of faultlog entries according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses faultlog-entity; - description - "The output data as list of fault entities."; - } - } - } - - rpc read-eventlog-list { - description - "Get list of event log entities according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses eventlog-entity; - description - "The output data as list of event log entities."; - } - } - } - - rpc read-connectionlog-list { - description - "Get list of event log entities according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses connectionlog-entity; - description - "The output data as list of connection log entities."; - } - } - } - - rpc read-maintenance-list { - description - "Get list of maintenance entries according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses maintenance-entity; - description - "The output data as list of maintenance entities."; - } - } - } - - rpc create-maintenance { - description - "insert new entry of maintenance"; - input { - uses maintenance-entity; - } - output { - uses maintenance-entity; - } - } - - rpc update-maintenance { - description - "update existing entity of maintenance"; - input { - uses maintenance-entity; - } - output { - uses maintenance-entity; - } - } - - rpc delete-maintenance { - description - "delete entity of maintenance"; - input { - uses maintenance-entity; - } - } - - rpc read-mediator-server-list { - description - "Get list of mediator-servers according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses mediator-server-entity; - description - "The list of found mediator server entities."; - } - } - } - - rpc create-mediator-server { - description - "create new entry of entity mediator-server"; - input { - uses mediator-server-entity; - } - output { - uses mediator-server-entity; - } - } - - rpc update-mediator-server { - description - "update entry of entity mediator-server"; - input { - uses mediator-server-entity; - } - output { - uses mediator-server-entity; - } - } - - rpc delete-mediator-server { - description - "delete entry of entity mediator-server"; - input { - uses mediator-server-entity; - } - } - - rpc read-network-element-connection-list { - description - "Get list of networkelement-connections according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses network-element-connection-entity; - description - "The output data as list of found network-element (or mountpoint, - or network functions) connection entities."; - } - } - } - - rpc create-network-element-connection { - description - "create entry in networkelement-connection"; - input { - uses network-element-connection-entity; - } - output { - uses network-element-connection-entity; - } - } - - rpc update-network-element-connection { - description - "Put an element to ne-entity"; - input { - uses network-element-connection-entity; - } - output { - uses network-element-connection-entity; - } - } - - rpc delete-network-element-connection { - description - "!ONLY FOR TESTING! Put an element to ne-entity"; - input { - uses network-element-connection-entity; - } - } - - rpc read-pmdata-15m-ltp-list { - description - "Get list of ltps for one mountpoint with historical pmdata"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - leaf-list data { - type string; - description - "The list of found mountpoint names."; - } - } - } - - rpc read-pmdata-24h-ltp-list { - description - "Get list of ltps for one mountpoint with historical pmdata"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - leaf-list data { - type string; - description - "The list of found logical-termination-point identifiers."; - } - } - } - - rpc read-pmdata-15m-device-list { - description - "Get list of mountpoints with historical pmdata"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - leaf-list data { - type string; - description - "The list of found mountpoint names."; - } - } - } - - rpc read-pmdata-24h-device-list { - description - "Get list of mountpoints with historical pmdata"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - leaf-list data { - type string; - description - "The list of found mountpoint names."; - } - } - } - - rpc read-pmdata-15m-list { - description - "Get list of entities according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses pmdata15m-entity; - description - "The output data as list of 15 minutes performance monitoring - entities."; - } - } - } - - rpc read-pmdata-24h-list { - description - "Get list of historical pmdata according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses pmdata24h-entity; - description - "The output data as list of 24 hours performance monitoring - entities."; - } - } - } - - rpc read-inventory-list { - description - "Get list of inventory according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses inventory-entity; - description - "The output data as list of inventory entities."; - } - } - } - - rpc read-status { - description - "Read status information of controller"; - output { - list data { - uses status-entity; - description - "The output data as list of status entities."; - } - } - } -} diff --git a/sdnr/wt/data-provider/model/src/main/yang/data-provider@2019-08-01.yang b/sdnr/wt/data-provider/model/src/main/yang/data-provider@2019-08-01.yang deleted file mode 100644 index 46505cd8f..000000000 --- a/sdnr/wt/data-provider/model/src/main/yang/data-provider@2019-08-01.yang +++ /dev/null @@ -1,1674 +0,0 @@ -module data-provider { - - yang-version 1.1; - namespace "urn:opendaylight:params:xml:ns:yang:data-provider"; - prefix odluxprovider; - - import ietf-yang-types { - prefix yang; - reference - "RFC 6991: Common YANG Data Types."; - } - - organization - "highstreet technologies GmbH"; - contact - "Web: - ONAP: "; - - description - "This module defines the API for the data-provider component. - - Copyright 2019 highstreet technologies GmbH Intellectual Property. - All rights reserved. - - Licensed under the Apache License, Version 2.0 (the 'License'); - you may not use this file except in compliance with the License. - You may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0 - - Unless required by applicable law or agreed to in writing, software - distributed under the License is distributed on an 'AS IS' BASIS, - WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the License for the specific language governing permissions and - limitations under the License."; - - revision 2019-08-01 { - description - "Initial revision"; - reference - "https://jira.onap.org/browse/SDNC-879"; - } - - // --- typedef - - typedef Entity { - type enumeration { - enum connectionlog { - description - "logs mountpoint connection state changes"; - } - enum faultcurrent { - description - "current faults"; - } - enum eventlog { - description - "logs for all notifications e.g. NetConf, ves and internal events"; - } - enum faultlog { - description - "faultlog information"; - } - enum historicalperformance15min { - description - "performance data"; - } - enum historicalperformance24h { - description - "performance data"; - } - enum mediator-server { - description - "list of mediator servers"; - } - enum networkelement-connection { - description - "list of mountpoints for NetConf devices (joint required-network-element+mdsal - state"; - } - enum inventoryequipment { - description - "list of equipment inventory"; - } - enum maintenancemode { - description - "list of maintenance setting"; - } - } - description - "Data type and alias for elasticsearch or table name for SQL database."; - } - - typedef SortOrder { - type enumeration { - enum ascending { - description - "Self explaining."; - } - enum descending { - description - "Self explaining."; - } - } - description - "Entities for odlux clients"; - } - - typedef FilterProperty { - type string; - description - "A string type describing a property (attribute, column, parameter) - filter"; - } - - typedef NotificationType { - type enumeration { - enum ProblemNotificationXml { - description - "A fault (alarm, problem) notification type in XML format."; - } - enum AttributeValueChangedNotificationXml { - description - "An attribute value change notification type in XML format."; - } - } - description - "An enumeration describing the found notification type."; - } - - typedef ConnectionLogStatus { - type enumeration { - enum Mounted { - description - "Mountpoint created"; - } - enum Unmounted { - description - "Mountpoint removed"; - } - enum Connecting { - description - "Mountpoint establishing connection"; - } - enum Connected { - description - "Mountpoint connection established"; - } - enum UnableToConnect { - description - "Mountpoint connection not possible"; - } - enum Disconnected { - description - "Required and mountpoint removed"; - } - enum Undefined { - description - "Status not available"; - } - } - description - "An enumeration describing connection states."; - } - - typedef NetworkElementDeviceType { - type enumeration { - enum Wireless { - description - "implements microwave-model.yang or air-interface.yang"; - } - enum RAN { - description - "implements sth. like o-ran*.yang"; - } - enum ORAN { - description - "implements RAN according to o-ran*.yang"; - } - enum RAN3GPP { - description - "implements RAN according to _3gpp-ran*.yang"; - } - enum Optical { - description - "implements tapi-*.yang or org-openroadm*.yang"; - } - enum Router { - description - "implements vlan-interface.yang"; - } - enum NtsManager { - description - "Manage adapter to simulate devices"; - } - enum Nonsupported { - description - "Device type known, but not support"; - } - enum Unknown { - description - "Device type at this point of time unknown"; - } - enum O-RAN-FH { - description - "implements RAN according to o-ran*.yang fro for fronthaule"; - } - enum O-ROADM { - description - "implements Open ROADM"; - } - enum O1-TR069 { - description - "implements O1 RAN interface according to TR069"; - } - } - description - "An enumeration as identification of the device."; - } - - typedef severity-type { - type enumeration { - enum NonAlarmed { - description - "problem cleared indication"; - } - enum Warning { - description - "problem level"; - } - enum Minor { - description - "problem level"; - } - enum Major { - description - "problem level"; - } - enum Critical { - description - "problem level"; - } - } - description - "According to ITU-T M.3160"; - } - - typedef source-type { - type enumeration { - enum Ves { - description - "VES Interface"; - } - enum Netconf { - description - "NetConf Interface"; - } - enum Controller { - description - "SDN Controller"; - } - enum Unknown { - description - "Unknown source"; - } - } - description - "An enumeration for the information source of an event/notification."; - } - - typedef granularity-period-type { - type enumeration { - enum unknown { - description - "none"; - } - enum period-15-min { - description - "none"; - } - enum period-24-hours { - description - "none"; - } - } - description - "The enumeration with the options for granularity period of the - performance data similar to g.874.1-model"; - } - - // --- grouping and builder-container - - grouping connectionlog-entity { - leaf id { - type string; - description - "database id"; - } - leaf node-id { - type string; - description - "the node/mountpoint which connection state has changed"; - } - leaf timestamp { - type yang:date-and-time; - description - "timestamp when event happened, preferred in UTC time format."; - } - leaf status { - type ConnectionLogStatus; - description - "new state of the connection of the device"; - } - description - "An object class describing an entry in the connection status log."; - } - - container connectionlog { - description - "builder"; - uses connectionlog-entity; - } - - grouping object-change-reference { - description - "Reference of of object (e.g. Interface pack) owned by a node"; - leaf node-id { - type string; - description - "A network wide unique identifier of the NetConf server."; - } - leaf counter { - type int32; - description - "An arbitrary counter value."; - } - leaf timestamp { - type yang:date-and-time; - description - "The time of the reported change, preferred in UTC time format. "; - } - leaf object-id { - type string; - description - "The identifier of the reporting object (resource)."; - } - } - - grouping source-reference { - description - "Identify a source"; - leaf source-type { - type source-type; - description - "The source type."; - } - } - - grouping fault { - description - "Fault event of an object"; - leaf problem { - type string; - description - "The alarm type identifier."; - } - leaf severity { - type severity-type; - description - "The reported severity of the fault (alarm)."; - } - } - - grouping attribute-change { - description - "update change of an attribute"; - leaf attribute-name { - type string; - description - "The attribute name which was changed."; - } - leaf new-value { - type string; - description - "The new value of the attribute converted to a string format."; - } - } - - grouping entity-id { - description - "Unique database id of entity"; - leaf id { - type string; - description - "The unique identifier of the entity."; - } - } - - grouping faultcurrent-entity { - description - "Current fault status"; - uses object-change-reference; - uses fault; - uses entity-id; - } - - container faultcurrent { - description - "builder"; - uses faultcurrent-entity; - } - - grouping faultlog-entity { - description - "Changed fault indication"; - uses source-reference; - uses object-change-reference; - uses fault; - uses entity-id; - } - - container faultlog { - description - "builder"; - uses faultlog-entity; - } - - grouping eventlog-entity { - description - "One change event of devices"; - uses source-reference; - uses object-change-reference; - uses attribute-change; - uses entity-id; - } - - container eventlog { - description - "builder"; - uses eventlog-entity; - } - - grouping filter { - leaf description { - type string; - description - "Filter specific description"; - } - leaf start { - type yang:date-and-time; - description - "begin of maintenance-mode"; - } - leaf end { - type yang:date-and-time; - description - "end of maintenance-mode"; - } - leaf object-id-ref { - type string; - description - "object id to filter on, or empty for all"; - } - leaf problem { - type string; - description - "name of the problem to filter or empty for all"; - } - description - "An object class describing a generic filter of an interval for - faults (alarms)."; - } - - grouping maintenance-entity { - description - "Maintenance mode for a device. "; - leaf id { - type string; - mandatory true; - description - "Key to get/set configuration entry in database. Normally Mountpoint - name is used as key id of node."; - } - leaf node-id { - type string; - mandatory true; - description - "A network wide unique identifier of the NetConf server."; - } - leaf active { - type boolean; - description - "Configuration to activate or deactivate this entry"; - } - uses filter; - } - - container maintenance { - presence "false"; - description - "builder"; - uses maintenance-entity; - } - - grouping mediator-server-entity { - leaf id { - type string; - mandatory true; - description - "A network unique identifier of the mediator server."; - } - leaf url { - type string; - description - "The ULR to reach the REST interface of the mediator server."; - } - leaf name { - type string; - description - "A human readable name of the mediator server."; - } - description - "An object class describing a mediator server entity."; - } - - grouping pmdata-base { - description - "Performance data base information"; - leaf node-name { - type string; - description - "A network unique identifier of reporting NetConf server."; - } - leaf uuid-interface { - type string; - description - "A universal unique identifier of the performance monitoring point."; - } - leaf layer-protocol-name { - type string; - description - "The name of the measured transport layer."; - } - leaf radio-signal-id { - type string; - description - "The value exists only of wireless transport devices."; - } - leaf time-stamp { - type yang:date-and-time; - description - "The time-stamp of the measurement, preferred in UTC format."; - } - leaf suspect-interval-flag { - type boolean; - description - "If false, the measurement is not completed and should not be used - for performance analysis. "; - } - leaf granularity-period { - type granularity-period-type; - description - "The expected measurement interval."; - } - leaf scanner-id { - type string; - description - "See ITU-T X.739 chapter 8.1.1.2."; - } - } - - grouping pmdata-microwave { - description - "Consolidated performance information of all microwave model interface - PACs"; - leaf es { - type int32; - units "s"; - default "-1"; - config false; - description - "Number of errored seconds."; - } - leaf ses { - type int32; - units "s"; - default "-1"; - config false; - description - "Number of severely errored seconds."; - } - leaf cses { - type int32; - units "s"; - default "-1"; - config false; - description - "Number of consecutive severely errored seconds."; - } - leaf unavailability { - type int32; - units "s"; - default "-1"; - config false; - description - "Total time of unavailability in seconds."; - } - leaf tx-level-min { - type int8; - units "dBm"; - default "99"; - config false; - description - "Minimum transmit power. Signed integers are required."; - } - leaf tx-level-max { - type int8; - units "dBm"; - default "99"; - config false; - description - "Maximum transmit power. Signed integers are required."; - } - leaf tx-level-avg { - type int8; - units "dBm"; - default "99"; - config false; - description - "Averaged transmit power. Signed integers are required."; - } - leaf rx-level-min { - type int8; - units "dBm"; - default "99"; - config false; - description - "Minimum receive level. Signed integers are required."; - } - leaf rx-level-max { - type int8; - units "dBm"; - default "99"; - config false; - description - "Maximum receive level. Signed integers are required."; - } - leaf rx-level-avg { - type int8; - units "dBm"; - default "99"; - config false; - description - "Averaged receive level. Signed integers are required."; - } - leaf time2-states { - type int32; - units "s"; - default "-1"; - config false; - description - "Sum of all seconds the transmitter operated in e.g. BPSK."; - } - leaf time4-states-s { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time4-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time8-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time16-states-s { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time16-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time32-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time64-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time128-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time256-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time512-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time512-states-l { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time1024-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time1024-states-l { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time2048-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time2048-states-l { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time4096-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time4096-states-l { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time8192-states { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf time8192-states-l { - type int32; - units "s"; - default "-1"; - config false; - description - "none"; - } - leaf snir-min { - type int8; - units "dB"; - default "-99"; - config false; - description - "Minimum signal to (noise+interference) ratio."; - } - leaf snir-max { - type int8; - units "dB"; - default "-99"; - config false; - description - "Maximum signal to (noise+interference) ratio."; - } - leaf snir-avg { - type int8; - units "dB"; - default "-99"; - config false; - description - "Averaged signal to (noise+interference) ratio."; - } - leaf xpd-min { - type int8; - units "dB"; - default "-99"; - config false; - description - "Minimum cross polarization discrimination."; - } - leaf xpd-max { - type int8; - units "dB"; - default "-99"; - config false; - description - "Maximum cross polarization discrimination."; - } - leaf xpd-avg { - type int8; - units "dB"; - default "-99"; - config false; - description - "Averaged cross polarization discrimination."; - } - leaf rf-temp-min { - type int8; - units "C"; - default "-99"; - config false; - description - "Lowest temperature (in degree Celsius) of the radio module inside the - outdoor unit."; - } - leaf rf-temp-max { - type int8; - units "C"; - default "-99"; - config false; - description - "Highest temperature (in degree Celsius) of the radio module inside the - outdoor unit."; - } - leaf rf-temp-avg { - type int8; - units "C"; - default "-99"; - config false; - description - "Averaged temperature (in degree Celsius) of the radio module inside - the outdoor unit."; - } - leaf defect-blocks-sum { - type int16; - units "blocks"; - default "-1"; - config false; - description - "Total number of blocks that were defect after receiving and could not - be corrected by the FEC."; - } - leaf time-period { - type int32; - units "s"; - default "-1"; - config false; - description - "Total length of the measurement period."; - } - } - - grouping pmdata-ethernet { - description - "Consolidated performance information for Ethernet."; - leaf tx-ethernet-bytes-max-s { - type int32; - units "Bytes/s"; - default "-1"; - config false; - description - "Counts the number of Bytes of Ethernet traffic (before header - compression) transmitted within a second and keeps the highest value - within the measurement period. Field to be left blank for all types of - TDM containers."; - } - leaf tx-ethernet-bytes-max-m { - type int64; - units "Bytes/min"; - default "-1"; - config false; - description - "Counts the number of Bytes of Ethernet traffic (before header - compression) transmitted within a minute and keeps the highest value - with in the measurement period. Field to be left blank for all types - of TDM containers."; - } - leaf tx-ethernet-bytes-sum { - type int64; - units "Bytes"; - default "-1"; - config false; - description - "Total number of Bytes of Ethernet traffic (before header compression) - transmitted (in direction out of the device) during the measurement - period. Field to be left blank for all types of TDM containers."; - } - } - - container pmdata-entity { - description - "builder"; - uses pmdata-base; - container performance-data { - uses pmdata-microwave; - uses pmdata-ethernet; - description - "An object combining different performance monitoring data."; - } - } - - grouping pmdata15m-entity { - uses pmdata-base; - container performance-data { - uses pmdata-microwave; - uses pmdata-ethernet; - description - "An object combining different performance monitoring data."; - } - description - "An object class describing a 15 minute performance monitoring entity."; - } - - grouping pmdata24h-entity { - uses pmdata-base; - container performance-data { - uses pmdata-microwave; - uses pmdata-ethernet; - description - "An object combining different performance monitoring data."; - } - description - "An object class describing a 24 hour performance monitoring entity."; - } - - grouping inventory-entity { - description - "One equipment entity in a list of a network element that could be rack, - card, backplane, module"; - leaf id { - type string; - mandatory true; - description - "Unique database id, node-id/uuid"; - } - leaf tree-level { - type uint32; - description - "Containment level, starting with 0.."; - } - leaf parent-uuid { - type string; - description - "Unique inventory id of holder"; - } - leaf node-id { - type string; - description - "Unique node id of network element"; - } - leaf uuid { - type string; - description - "Unique inventory id of this node for this equipment, provided by - network element"; - } - leaf-list contained-holder { - type string; - description - "List of uuid of contained equipment"; - } - leaf manufacturer-name { - type string; - description - "manufactured-thing/manufacturer-properties/manufacturer-name"; - } - leaf manufacturer-identifier { - type string; - description - "manufactured-thing/manufacturer-properties/manufacturer-identifier"; - } - leaf serial { - type string; - description - "manufactured-thing/equipment-instance/serial"; - } - leaf date { - type string; - description - "manufactured-thing/equipment-instance/manufacture-date: Date - information provided by manufacturer. No specific format. ()"; - } - leaf version { - type string; - description - "manufactured-thing/equipment-type/version"; - } - leaf description { - type string; - description - "manufactured-thing/equipment-type/description"; - } - leaf part-type-id { - type string; - description - "manufactured-thing/equipment-type/part-type-identifier"; - } - leaf model-identifier { - type string; - description - "manufactured-thing/equipment-type/model-identifier"; - } - leaf type-name { - type string; - description - "manufactured-thing/equipment-type/type-name"; - } - } - - container inventory { - presence "false"; - description - "builder"; - uses inventory-entity; - } - - grouping node-details-g { - leaf-list available-capabilities { - type string; - description - "The list of available yang capabilities."; - } - leaf-list unavailable-capabilities { - type string; - description - "The list of unavailable yang capabilities."; - } - description - "An object class description the available and unavailable yang - capabilities."; - } - - grouping network-element-connection-entity { - leaf id { - type string; - description - "database id/key. here is equal to node-id"; - } - leaf node-id { - type string; - description - "mountpoint name of device in controller"; - } - leaf host { - type string; - description - "NetConf server host name or IP address of device"; - } - leaf port { - type uint32; - description - "NetConf port of device"; - } - leaf username { - type string; - description - "NetConf user name"; - } - leaf password { - type string; - description - "NetConf password. should be removed asap"; - } - leaf core-model-capability { - type string; - description - "revision of core-model capability"; - } - leaf device-type { - type NetworkElementDeviceType; - description - "categorized type of device based on implemented yang specs"; - } - leaf is-required { - type boolean; - description - "entry exists in db index required-networkelement"; - } - container node-details { - uses node-details-g; - description - "holder of available and unavailable capabilities"; - } - leaf status { - type ConnectionLogStatus; - description - "current connection status. default Disconnected"; - } - description - "An object class defining the NetConf connection towards a - NetConf server. "; - } - - container network-element-connection { - description - "builder"; - uses network-element-connection-entity; - } - - grouping status-entity { - container faults { - leaf criticals { - type uint32; - description - "The number of current faults (active alarms) with severity - 'critical'."; - } - leaf majors { - type uint32; - description - "The number of current faults (active alarms) with severity - 'major'."; - } - leaf minors { - type uint32; - description - "The number of current faults (active alarms) with severity - 'minor'."; - } - leaf warnings { - type uint32; - description - "The number of current faults (active alarms) with severity - 'warning'."; - } - description - "An object containing the number of current faults per its severity."; - } - description - "An object class defining an status entity for current faults - (also called active alarms)."; - } - - container status { - description - "builder"; - uses status-entity; - } - - grouping entity-input { - list filter { - key "property"; - leaf property { - type string; - description - "The property (parameter, column, field) identifier."; - } - leaf filtervalue { - type string; - description - "The filter information for the corresponding property."; - } - description - "List with filter criteria. Not listed means all."; - } - list sortorder { - key "property"; - leaf property { - type string; - description - "The property (parameter, column, field) identifier."; - } - leaf sortorder { - type SortOrder; - description - "The definition of the sort order for the corresponding property."; - } - description - "List with sort order. Not listed means default"; - } - container pagination { - leaf size { - type uint32 { - range "1..max"; - } - default "20"; - description - "Number of entries to be delivered"; - } - leaf page { - type uint64 { - range "1..max"; - } - default "1"; - description - "Number to be used to calculate starting entry to deliver"; - } - description - "An object defining the pagination details."; - } - description - "An object class defining a request input entity."; - } - - grouping pagination-output-g { - leaf size { - type uint32 { - range "1..max"; - } - default "20"; - description - "Number of entries to be delivered"; - } - leaf page { - type uint64 { - range "1..max"; - } - default "1"; - description - "Number to be used to calculate starting entry to deliver"; - } - leaf total { - type uint64 { - range "0..max"; - } - default "0"; - description - "Number to be used to calculate starting entry to deliver"; - } - description - "An object class defining the filter information for pagination."; - } - - container pagination-output { - description - "builder"; - uses pagination-output-g; - } - - // --- rpc - - rpc read-faultcurrent-list { - description - "Get list of current fault (active alarm) entries according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses faultcurrent-entity; - description - "The output data as list of current fault (or active alarm) - entities."; - } - } - } - - rpc read-faultlog-list { - description - "Get list of faultlog entries according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses faultlog-entity; - description - "The output data as list of fault entities."; - } - } - } - - rpc read-eventlog-list { - description - "Get list of event log entities according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses eventlog-entity; - description - "The output data as list of event log entities."; - } - } - } - - rpc read-connectionlog-list { - description - "Get list of event log entities according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses connectionlog-entity; - description - "The output data as list of connection log entities."; - } - } - } - - rpc read-maintenance-list { - description - "Get list of maintenance entries according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses maintenance-entity; - description - "The output data as list of maintenance entities."; - } - } - } - - rpc create-maintenance { - description - "insert new entry of maintenance"; - input { - uses maintenance-entity; - } - output { - uses maintenance-entity; - } - } - - rpc update-maintenance { - description - "update existing entity of maintenance"; - input { - uses maintenance-entity; - } - output { - uses maintenance-entity; - } - } - - rpc delete-maintenance { - description - "delete entity of maintenance"; - input { - uses maintenance-entity; - } - } - - rpc read-mediator-server-list { - description - "Get list of mediator-servers according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses mediator-server-entity; - description - "The list of found mediator server entities."; - } - } - } - - rpc create-mediator-server { - description - "create new entry of entity mediator-server"; - input { - uses mediator-server-entity; - } - output { - uses mediator-server-entity; - } - } - - rpc update-mediator-server { - description - "update entry of entity mediator-server"; - input { - uses mediator-server-entity; - } - output { - uses mediator-server-entity; - } - } - - rpc delete-mediator-server { - description - "delete entry of entity mediator-server"; - input { - uses mediator-server-entity; - } - } - - rpc read-network-element-connection-list { - description - "Get list of networkelement-connections according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses network-element-connection-entity; - description - "The output data as list of found network-element (or mountpoint, - or network functions) connection entities."; - } - } - } - - rpc create-network-element-connection { - description - "create entry in networkelement-connection"; - input { - uses network-element-connection-entity; - } - output { - uses network-element-connection-entity; - } - } - - rpc update-network-element-connection { - description - "Put an element to ne-entity"; - input { - uses network-element-connection-entity; - } - output { - uses network-element-connection-entity; - } - } - - rpc delete-network-element-connection { - description - "!ONLY FOR TESTING! Put an element to ne-entity"; - input { - uses network-element-connection-entity; - } - } - - rpc read-pmdata-15m-ltp-list { - description - "Get list of ltps for one mountpoint with historical pmdata"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - leaf-list data { - type string; - description - "The list of found mountpoint names."; - } - } - } - - rpc read-pmdata-24h-ltp-list { - description - "Get list of ltps for one mountpoint with historical pmdata"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - leaf-list data { - type string; - description - "The list of found logical-termination-point identifiers."; - } - } - } - - rpc read-pmdata-15m-device-list { - description - "Get list of mountpoints with historical pmdata"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - leaf-list data { - type string; - description - "The list of found mountpoint names."; - } - } - } - - rpc read-pmdata-24h-device-list { - description - "Get list of mountpoints with historical pmdata"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - leaf-list data { - type string; - description - "The list of found mountpoint names."; - } - } - } - - rpc read-pmdata-15m-list { - description - "Get list of entities according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses pmdata15m-entity; - description - "The output data as list of 15 minutes performance monitoring - entities."; - } - } - } - - rpc read-pmdata-24h-list { - description - "Get list of historical pmdata according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses pmdata24h-entity; - description - "The output data as list of 24 hours performance monitoring - entities."; - } - } - } - - rpc read-inventory-list { - description - "Get list of inventory according to filter"; - input { - uses entity-input; - } - output { - container pagination { - uses pagination-output-g; - description - "The pagination details used by the provider to filter the data."; - } - list data { - uses inventory-entity; - description - "The output data as list of inventory entities."; - } - } - } - - rpc read-status { - description - "Read status information of controller"; - output { - list data { - uses status-entity; - description - "The output data as list of status entities."; - } - } - } -} diff --git a/sdnr/wt/data-provider/model/src/main/yang/data-provider@2020-11-10.yang b/sdnr/wt/data-provider/model/src/main/yang/data-provider@2020-11-10.yang new file mode 100644 index 000000000..8509007e1 --- /dev/null +++ b/sdnr/wt/data-provider/model/src/main/yang/data-provider@2020-11-10.yang @@ -0,0 +1,1838 @@ +module data-provider { + + yang-version 1.1; + namespace "urn:opendaylight:params:xml:ns:yang:data-provider"; + prefix odluxprovider; + + import ietf-yang-types { + prefix yang; + reference + "RFC 6991: Common YANG Data Types."; + } + + import org-openroadm-pm-types { + prefix org-openroadm-pm-types; + revision-date 2019-11-29; + reference + "OpenROADM: YANG definitions of performance management types"; + } + + organization + "highstreet technologies GmbH"; + contact + "Web: + ONAP: "; + + description + "This module defines the API for the data-provider component. + + Copyright 2019 highstreet technologies GmbH Intellectual Property. + All rights reserved. + + Licensed under the Apache License, Version 2.0 (the 'License'); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an 'AS IS' BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License."; + + revision 2020-11-10 { + description + "Support for GUI Cut through and V2 PM model"; + reference + "https://jira.onap.org/browse/SDNC-1396"; + } + + revision 2019-08-01 { + description + "Initial revision"; + reference + "https://jira.onap.org/browse/SDNC-879"; + } + + // --- typedef + + typedef Entity { + type enumeration { + enum connectionlog { + description + "logs mountpoint connection state changes"; + } + enum faultcurrent { + description + "current faults"; + } + enum eventlog { + description + "logs for all notifications e.g. NetConf, ves and internal events"; + } + enum faultlog { + description + "faultlog information"; + } + enum historicalperformance15min { + description + "performance data"; + } + enum historicalperformance24h { + description + "performance data"; + } + enum mediator-server { + description + "list of mediator servers"; + } + enum networkelement-connection { + description + "list of mountpoints for NetConf devices (joint required-network-element+mdsal + state"; + } + enum inventoryequipment { + description + "list of equipment inventory"; + } + enum maintenancemode { + description + "list of maintenance setting"; + } + enum guicutthrough { + description + "list of GUI Cut through entries"; + } + } + description + "Data type and alias for elasticsearch or table name for SQL database."; + } + + typedef SortOrder { + type enumeration { + enum ascending { + description + "Self explaining."; + } + enum descending { + description + "Self explaining."; + } + } + description + "Entities for odlux clients"; + } + + typedef FilterProperty { + type string; + description + "A string type describing a property (attribute, column, parameter) + filter"; + } + + typedef NotificationType { + type enumeration { + enum ProblemNotificationXml { + description + "A fault (alarm, problem) notification type in XML format."; + } + enum AttributeValueChangedNotificationXml { + description + "An attribute value change notification type in XML format."; + } + } + description + "An enumeration describing the found notification type."; + } + + typedef ConnectionLogStatus { + type enumeration { + enum Mounted { + description + "Mountpoint created"; + } + enum Unmounted { + description + "Mountpoint removed"; + } + enum Connecting { + description + "Mountpoint establishing connection"; + } + enum Connected { + description + "Mountpoint connection established"; + } + enum UnableToConnect { + description + "Mountpoint connection not possible"; + } + enum Disconnected { + description + "Required and mountpoint removed"; + } + enum Undefined { + description + "Status not available"; + } + } + description + "An enumeration describing connection states."; + } + + typedef NetworkElementDeviceType { + type enumeration { + enum Wireless { + description + "implements microwave-model.yang or air-interface.yang"; + } + enum RAN { + description + "implements sth. like o-ran*.yang"; + } + enum ORAN { + description + "implements RAN according to o-ran*.yang"; + } + enum RAN3GPP { + description + "implements RAN according to _3gpp-ran*.yang"; + } + enum Optical { + description + "implements tapi-*.yang or org-openroadm*.yang"; + } + enum Router { + description + "implements vlan-interface.yang"; + } + enum NtsManager { + description + "Manage adapter to simulate devices"; + } + enum Nonsupported { + description + "Device type known, but not support"; + } + enum Unknown { + description + "Device type at this point of time unknown"; + } + enum O-RAN-FH { + description + "implements RAN according to o-ran*.yang fro for fronthaule"; + } + enum O-ROADM { + description + "implements Open ROADM"; + } + enum O1-TR069 { + description + "implements O1 RAN interface according to TR069"; + } + } + description + "An enumeration as identification of the device."; + } + + typedef severity-type { + type enumeration { + enum NonAlarmed { + description + "problem cleared indication"; + } + enum Warning { + description + "problem level"; + } + enum Minor { + description + "problem level"; + } + enum Major { + description + "problem level"; + } + enum Critical { + description + "problem level"; + } + } + description + "According to ITU-T M.3160"; + } + + typedef source-type { + type enumeration { + enum Ves { + description + "VES Interface"; + } + enum Netconf { + description + "NetConf Interface"; + } + enum Controller { + description + "SDN Controller"; + } + enum Unknown { + description + "Unknown source"; + } + } + description + "An enumeration for the information source of an event/notification."; + } + + typedef granularity-period-type { + type enumeration { + enum unknown { + description + "none"; + } + enum period-15-min { + description + "none"; + } + enum period-24-hours { + description + "none"; + } + } + description + "The enumeration with the options for granularity period of the + performance data similar to g.874.1-model"; + } + + typedef entity-type { + type enumeration { + enum device { + description + "none"; + } + enum ltp { + description + "none"; + } + } + description + "The enumeration with the type of requested information"; + } + + + // --- grouping and builder-container + + grouping connectionlog-entity { + leaf id { + type string; + description + "database id"; + } + leaf node-id { + type string; + description + "the node/mountpoint which connection state has changed"; + } + leaf timestamp { + type yang:date-and-time; + description + "timestamp when event happened, preferred in UTC time format."; + } + leaf status { + type ConnectionLogStatus; + description + "new state of the connection of the device"; + } + description + "An object class describing an entry in the connection status log."; + } + + container connectionlog { + description + "builder"; + uses connectionlog-entity; + } + + grouping object-change-reference { + description + "Reference of of object (e.g. Interface pack) owned by a node"; + leaf node-id { + type string; + description + "A network wide unique identifier of the NetConf server."; + } + leaf counter { + type int32; + description + "An arbitrary counter value."; + } + leaf timestamp { + type yang:date-and-time; + description + "The time of the reported change, preferred in UTC time format. "; + } + leaf object-id { + type string; + description + "The identifier of the reporting object (resource)."; + } + } + + grouping source-reference { + description + "Identify a source"; + leaf source-type { + type source-type; + description + "The source type."; + } + } + + grouping fault { + description + "Fault event of an object"; + leaf problem { + type string; + description + "The alarm type identifier."; + } + leaf severity { + type severity-type; + description + "The reported severity of the fault (alarm)."; + } + } + + grouping attribute-change { + description + "update change of an attribute"; + leaf attribute-name { + type string; + description + "The attribute name which was changed."; + } + leaf new-value { + type string; + description + "The new value of the attribute converted to a string format."; + } + } + + grouping entity-id { + description + "Unique database id of entity"; + leaf id { + type string; + description + "The unique identifier of the entity."; + } + } + + grouping faultcurrent-entity { + description + "Current fault status"; + uses object-change-reference; + uses fault; + uses entity-id; + } + + container faultcurrent { + description + "builder"; + uses faultcurrent-entity; + } + + grouping faultlog-entity { + description + "Changed fault indication"; + uses source-reference; + uses object-change-reference; + uses fault; + uses entity-id; + } + + container faultlog { + description + "builder"; + uses faultlog-entity; + } + + grouping eventlog-entity { + description + "One change event of devices"; + uses source-reference; + uses object-change-reference; + uses attribute-change; + uses entity-id; + } + + container eventlog { + description + "builder"; + uses eventlog-entity; + } + + grouping filter { + leaf description { + type string; + description + "Filter specific description"; + } + leaf start { + type yang:date-and-time; + description + "begin of maintenance-mode"; + } + leaf end { + type yang:date-and-time; + description + "end of maintenance-mode"; + } + leaf object-id-ref { + type string; + description + "object id to filter on, or empty for all"; + } + leaf problem { + type string; + description + "name of the problem to filter or empty for all"; + } + description + "An object class describing a generic filter of an interval for + faults (alarms)."; + } + + grouping maintenance-entity { + description + "Maintenance mode for a device. "; + leaf id { + type string; + mandatory true; + description + "Key to get/set configuration entry in database. Normally Mountpoint + name is used as key id of node."; + } + leaf node-id { + type string; + mandatory true; + description + "A network wide unique identifier of the NetConf server."; + } + leaf active { + type boolean; + description + "Configuration to activate or deactivate this entry"; + } + uses filter; + } + + container maintenance { + presence "false"; + description + "builder"; + uses maintenance-entity; + } + + grouping mediator-server-entity { + leaf id { + type string; + mandatory true; + description + "A network unique identifier of the mediator server."; + } + leaf url { + type string; + description + "The ULR to reach the REST interface of the mediator server."; + } + leaf name { + type string; + description + "A human readable name of the mediator server."; + } + description + "An object class describing a mediator server entity."; + } + + grouping pmdata-base { + description + "Performance data base information"; + leaf node-name { + type string; + description + "A network unique identifier of reporting NetConf server."; + } + leaf uuid-interface { + type string; + description + "A universal unique identifier of the performance monitoring point."; + } + leaf layer-protocol-name { + type string; + description + "The name of the measured transport layer."; + } + leaf radio-signal-id { + type string; + description + "The value exists only of wireless transport devices."; + } + leaf time-stamp { + type yang:date-and-time; + description + "The time-stamp of the measurement, preferred in UTC format."; + } + leaf suspect-interval-flag { + type boolean; + description + "If false, the measurement is not completed and should not be used + for performance analysis. "; + } + leaf granularity-period { + type granularity-period-type; + description + "The expected measurement interval."; + } + leaf scanner-id { + type string; + description + "See ITU-T X.739 chapter 8.1.1.2."; + } + } + + grouping pmdata-microwave { + description + "Consolidated performance information of all microwave model interface + PACs"; + leaf es { + type int32; + units "s"; + default "-1"; + config false; + description + "Number of errored seconds."; + } + leaf ses { + type int32; + units "s"; + default "-1"; + config false; + description + "Number of severely errored seconds."; + } + leaf cses { + type int32; + units "s"; + default "-1"; + config false; + description + "Number of consecutive severely errored seconds."; + } + leaf unavailability { + type int32; + units "s"; + default "-1"; + config false; + description + "Total time of unavailability in seconds."; + } + leaf tx-level-min { + type int8; + units "dBm"; + default "99"; + config false; + description + "Minimum transmit power. Signed integers are required."; + } + leaf tx-level-max { + type int8; + units "dBm"; + default "99"; + config false; + description + "Maximum transmit power. Signed integers are required."; + } + leaf tx-level-avg { + type int8; + units "dBm"; + default "99"; + config false; + description + "Averaged transmit power. Signed integers are required."; + } + leaf rx-level-min { + type int8; + units "dBm"; + default "99"; + config false; + description + "Minimum receive level. Signed integers are required."; + } + leaf rx-level-max { + type int8; + units "dBm"; + default "99"; + config false; + description + "Maximum receive level. Signed integers are required."; + } + leaf rx-level-avg { + type int8; + units "dBm"; + default "99"; + config false; + description + "Averaged receive level. Signed integers are required."; + } + leaf time2-states { + type int32; + units "s"; + default "-1"; + config false; + description + "Sum of all seconds the transmitter operated in e.g. BPSK."; + } + leaf time4-states-s { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time4-states { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time8-states { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time16-states-s { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time16-states { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time32-states { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time64-states { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time128-states { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time256-states { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time512-states { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time512-states-l { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time1024-states { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time1024-states-l { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time2048-states { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time2048-states-l { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time4096-states { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time4096-states-l { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time8192-states { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf time8192-states-l { + type int32; + units "s"; + default "-1"; + config false; + description + "none"; + } + leaf snir-min { + type int8; + units "dB"; + default "-99"; + config false; + description + "Minimum signal to (noise+interference) ratio."; + } + leaf snir-max { + type int8; + units "dB"; + default "-99"; + config false; + description + "Maximum signal to (noise+interference) ratio."; + } + leaf snir-avg { + type int8; + units "dB"; + default "-99"; + config false; + description + "Averaged signal to (noise+interference) ratio."; + } + leaf xpd-min { + type int8; + units "dB"; + default "-99"; + config false; + description + "Minimum cross polarization discrimination."; + } + leaf xpd-max { + type int8; + units "dB"; + default "-99"; + config false; + description + "Maximum cross polarization discrimination."; + } + leaf xpd-avg { + type int8; + units "dB"; + default "-99"; + config false; + description + "Averaged cross polarization discrimination."; + } + leaf rf-temp-min { + type int8; + units "C"; + default "-99"; + config false; + description + "Lowest temperature (in degree Celsius) of the radio module inside the + outdoor unit."; + } + leaf rf-temp-max { + type int8; + units "C"; + default "-99"; + config false; + description + "Highest temperature (in degree Celsius) of the radio module inside the + outdoor unit."; + } + leaf rf-temp-avg { + type int8; + units "C"; + default "-99"; + config false; + description + "Averaged temperature (in degree Celsius) of the radio module inside + the outdoor unit."; + } + leaf defect-blocks-sum { + type int16; + units "blocks"; + default "-1"; + config false; + description + "Total number of blocks that were defect after receiving and could not + be corrected by the FEC."; + } + leaf time-period { + type int32; + units "s"; + default "-1"; + config false; + description + "Total length of the measurement period."; + } + } + + grouping pmdata-ethernet { + description + "Consolidated performance information for Ethernet."; + leaf tx-ethernet-bytes-max-s { + type int32; + units "Bytes/s"; + default "-1"; + config false; + description + "Counts the number of Bytes of Ethernet traffic (before header + compression) transmitted within a second and keeps the highest value + within the measurement period. Field to be left blank for all types of + TDM containers."; + } + leaf tx-ethernet-bytes-max-m { + type int64; + units "Bytes/min"; + default "-1"; + config false; + description + "Counts the number of Bytes of Ethernet traffic (before header + compression) transmitted within a minute and keeps the highest value + with in the measurement period. Field to be left blank for all types + of TDM containers."; + } + leaf tx-ethernet-bytes-sum { + type int64; + units "Bytes"; + default "-1"; + config false; + description + "Total number of Bytes of Ethernet traffic (before header compression) + transmitted (in direction out of the device) during the measurement + period. Field to be left blank for all types of TDM containers."; + } + } + + identity performance-measurement-type-id { + description + "Base identity for perforamnce measurement types. A unique identification + of the performance measurment value, not including the resource. + Different resources can share performance measuement types. If the + resource reports the same performance measurment type, it is to be + considered to be the same performance measurment. + + This identity is abstract and MUST NOT be used for performence + mesurement."; + } + + identity performance-measurement-unit-id { + description + "Base identity for perforamnce measurement units. + + This identity is abstract and MUST NOT be used for performence + mesurement."; + } + + typedef performance-measurement-type-id { + type identityref { + base performance-measurement-type-id; + } + description + "Identifies an performance-measurement type. The description of the + performance measurement type id MUST indicate if the performance + measurement type is abstract or not. An abstract performance measurement + type is used as a base for other performance measurement type ids + and will not be used as a value for an performance measurement or be + present in the performance measurement inventory."; + } + + typedef performance-measurement-unit-id { + type identityref { + base performance-measurement-unit-id; + } + description + "Identifies an performance-measurement unit. The description of the + performance measurement unit id MUST indicate if the performance + measurement unit is abstract or not. An abstract performance measurement + unit is used as a base for other performance measurement unit ids + and will not be used as a value for an performance measurement or be + present in the performance measurement inventory."; + } + + grouping pm-measurement-grp { + leaf pm-key { + type performance-measurement-type-id; + description + "The local identifier of a pm-measurement object."; + } + leaf pm-value { + type org-openroadm-pm-types:pm-data-type; + mandatory true; + description + "The performance measurement value, measured in a certain interval."; + } + leaf pm-unit { + type performance-measurement-unit-id; + description + "A represention of the unit og the pm-value."; + } + description + "An abstract object class representing a key-value pair for + pm-measurement."; + } + + grouping pmdata-grp { + list measurement { + key pm-key; + uses pm-measurement-grp; + description + "An abstract list of perfromance mesurement values."; + } + description + "An abstract object class containing a list of perfromance mesurement + values."; + } + + container pmdata-entity { + description + "builder"; + uses pmdata-base; + container performance-data { + uses pmdata-microwave; + uses pmdata-ethernet; + uses pmdata-grp; + description + "An object combining different performance monitoring data."; + } + } + + grouping pmdata15m-entity { + uses pmdata-base; + container performance-data { + uses pmdata-microwave; + uses pmdata-ethernet; + uses pmdata-grp; + description + "An object combining different performance monitoring data."; + } + description + "An object class describing a 15 minute performance monitoring entity."; + } + + grouping pmdata24h-entity { + uses pmdata-base; + container performance-data { + uses pmdata-microwave; + uses pmdata-ethernet; + uses pmdata-grp; + description + "An object combining different performance monitoring data."; + } + description + "An object class describing a 24 hour performance monitoring entity."; + } + + grouping inventory-entity { + description + "One equipment entity in a list of a network element that could be rack, + card, backplane, module"; + leaf id { + type string; + mandatory true; + description + "Unique database id, node-id/uuid"; + } + leaf tree-level { + type uint32; + description + "Containment level, starting with 0.."; + } + leaf parent-uuid { + type string; + description + "Unique inventory id of holder"; + } + leaf node-id { + type string; + description + "Unique node id of network element"; + } + leaf uuid { + type string; + description + "Unique inventory id of this node for this equipment, provided by + network element"; + } + leaf-list contained-holder { + type string; + description + "List of uuid of contained equipment"; + } + leaf manufacturer-name { + type string; + description + "manufactured-thing/manufacturer-properties/manufacturer-name"; + } + leaf manufacturer-identifier { + type string; + description + "manufactured-thing/manufacturer-properties/manufacturer-identifier"; + } + leaf serial { + type string; + description + "manufactured-thing/equipment-instance/serial"; + } + leaf date { + type string; + description + "manufactured-thing/equipment-instance/manufacture-date: Date + information provided by manufacturer. No specific format. ()"; + } + leaf version { + type string; + description + "manufactured-thing/equipment-type/version"; + } + leaf description { + type string; + description + "manufactured-thing/equipment-type/description"; + } + leaf part-type-id { + type string; + description + "manufactured-thing/equipment-type/part-type-identifier"; + } + leaf model-identifier { + type string; + description + "manufactured-thing/equipment-type/model-identifier"; + } + leaf type-name { + type string; + description + "manufactured-thing/equipment-type/type-name"; + } + } + + container inventory { + presence "false"; + description + "builder"; + uses inventory-entity; + } + + grouping node-details-g { + leaf-list available-capabilities { + type string; + description + "The list of available yang capabilities."; + } + leaf-list unavailable-capabilities { + type string; + description + "The list of unavailable yang capabilities."; + } + description + "An object class description the available and unavailable yang + capabilities."; + } + + grouping network-element-connection-entity { + leaf id { + type string; + description + "database id/key. here is equal to node-id"; + } + leaf node-id { + type string; + description + "mountpoint name of device in controller"; + } + leaf host { + type string; + description + "NetConf server host name or IP address of device"; + } + leaf port { + type uint32; + description + "NetConf port of device"; + } + leaf username { + type string; + description + "NetConf user name"; + } + leaf password { + type string; + description + "NetConf password. should be removed asap"; + } + leaf core-model-capability { + type string; + description + "revision of core-model capability"; + } + leaf device-type { + type NetworkElementDeviceType; + description + "categorized type of device based on implemented yang specs"; + } + leaf is-required { + type boolean; + description + "entry exists in db index required-networkelement"; + } + container node-details { + uses node-details-g; + description + "holder of available and unavailable capabilities"; + } + leaf status { + type ConnectionLogStatus; + description + "current connection status. default Disconnected"; + } + description + "An object class defining the NetConf connection towards a + NetConf server. "; + } + + container network-element-connection { + description + "builder"; + uses network-element-connection-entity; + } + + grouping status-entity { + container faults { + leaf criticals { + type uint32; + description + "The number of current faults (active alarms) with severity + 'critical'."; + } + leaf majors { + type uint32; + description + "The number of current faults (active alarms) with severity + 'major'."; + } + leaf minors { + type uint32; + description + "The number of current faults (active alarms) with severity + 'minor'."; + } + leaf warnings { + type uint32; + description + "The number of current faults (active alarms) with severity + 'warning'."; + } + description + "An object containing the number of current faults per its severity."; + } + description + "An object class defining an status entity for current faults + (also called active alarms)."; + } + + container status { + description + "builder"; + uses status-entity; + } + + grouping entity-input { + list filter { + key "property"; + leaf property { + type string; + description + "The property (parameter, column, field) identifier."; + } + leaf filtervalue { + type string; + description + "The filter information for the corresponding property."; + } + description + "List with filter criteria. Not listed means all."; + } + list sortorder { + key "property"; + leaf property { + type string; + description + "The property (parameter, column, field) identifier."; + } + leaf sortorder { + type SortOrder; + description + "The definition of the sort order for the corresponding property."; + } + description + "List with sort order. Not listed means default"; + } + container pagination { + leaf size { + type uint32 { + range "1..max"; + } + default "20"; + description + "Number of entries to be delivered"; + } + leaf page { + type uint64 { + range "1..max"; + } + default "1"; + description + "Number to be used to calculate starting entry to deliver"; + } + description + "An object defining the pagination details."; + } + description + "An object class defining a request input entity."; + } + + grouping pagination-output-g { + leaf size { + type uint32 { + range "1..max"; + } + default "20"; + description + "Number of entries to be delivered"; + } + leaf page { + type uint64 { + range "1..max"; + } + default "1"; + description + "Number to be used to calculate starting entry to deliver"; + } + leaf total { + type uint64 { + range "0..max"; + } + default "0"; + description + "Number to be used to calculate starting entry to deliver"; + } + description + "An object class defining the filter information for pagination."; + } + + container pagination-output { + description + "builder"; + uses pagination-output-g; + } + + grouping guicutthrough-entity { + leaf id { + type string; + mandatory true; + description + "Unique database id, node-id/uuid"; + } + leaf name { + type string; + description + "Mountpoint Name"; + } + leaf weburi { + type string; + description + "The URI of the system Web UI."; + } + description + "An object class defining the information for invoking GUI cut through to the device."; + } + + container guicutthrough { + description + "builder"; + uses guicutthrough-entity; + } + + // --- rpc + + rpc read-faultcurrent-list { + description + "Get list of current fault (active alarm) entries according to filter"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + list data { + uses faultcurrent-entity; + description + "The output data as list of current fault (or active alarm) + entities."; + } + } + } + + rpc read-faultlog-list { + description + "Get list of faultlog entries according to filter"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + list data { + uses faultlog-entity; + description + "The output data as list of fault entities."; + } + } + } + + rpc read-eventlog-list { + description + "Get list of event log entities according to filter"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + list data { + uses eventlog-entity; + description + "The output data as list of event log entities."; + } + } + } + + rpc read-connectionlog-list { + description + "Get list of event log entities according to filter"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + list data { + uses connectionlog-entity; + description + "The output data as list of connection log entities."; + } + } + } + + rpc read-maintenance-list { + description + "Get list of maintenance entries according to filter"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + list data { + uses maintenance-entity; + description + "The output data as list of maintenance entities."; + } + } + } + + rpc create-maintenance { + description + "insert new entry of maintenance"; + input { + uses maintenance-entity; + } + output { + uses maintenance-entity; + } + } + + rpc update-maintenance { + description + "update existing entity of maintenance"; + input { + uses maintenance-entity; + } + output { + uses maintenance-entity; + } + } + + rpc delete-maintenance { + description + "delete entity of maintenance"; + input { + uses maintenance-entity; + } + } + + rpc read-mediator-server-list { + description + "Get list of mediator-servers according to filter"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + list data { + uses mediator-server-entity; + description + "The list of found mediator server entities."; + } + } + } + + rpc create-mediator-server { + description + "create new entry of entity mediator-server"; + input { + uses mediator-server-entity; + } + output { + uses mediator-server-entity; + } + } + + rpc update-mediator-server { + description + "update entry of entity mediator-server"; + input { + uses mediator-server-entity; + } + output { + uses mediator-server-entity; + } + } + + rpc delete-mediator-server { + description + "delete entry of entity mediator-server"; + input { + uses mediator-server-entity; + } + } + + rpc read-network-element-connection-list { + description + "Get list of networkelement-connections according to filter"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + list data { + uses network-element-connection-entity; + description + "The output data as list of found network-element (or mountpoint, + or network functions) connection entities."; + } + } + } + + rpc create-network-element-connection { + description + "create entry in networkelement-connection"; + input { + uses network-element-connection-entity; + } + output { + uses network-element-connection-entity; + } + } + + rpc update-network-element-connection { + description + "Put an element to ne-entity"; + input { + uses network-element-connection-entity; + } + output { + uses network-element-connection-entity; + } + } + + rpc delete-network-element-connection { + description + "!ONLY FOR TESTING! Put an element to ne-entity"; + input { + uses network-element-connection-entity; + } + } + + rpc read-pmdata-15m-ltp-list { + description + "Get list of ltps for one mountpoint with historical pmdata"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + leaf-list data { + type string; + description + "The list of found mountpoint names."; + } + } + } + + rpc read-pmdata-24h-ltp-list { + description + "Get list of ltps for one mountpoint with historical pmdata"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + leaf-list data { + type string; + description + "The list of found logical-termination-point identifiers."; + } + } + } + + rpc read-pmdata-15m-device-list { + description + "Get list of mountpoints with historical pmdata"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + leaf-list data { + type string; + description + "The list of found mountpoint names."; + } + } + } + + rpc read-pmdata-24h-device-list { + description + "Get list of mountpoints with historical pmdata"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + leaf-list data { + type string; + description + "The list of found mountpoint names."; + } + } + } + + rpc read-pmdata-15m-list { + description + "Get list of entities according to filter"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + list data { + uses pmdata15m-entity; + description + "The output data as list of 15 minutes performance monitoring + entities."; + } + } + } + + rpc read-pmdata-24h-list { + description + "Get list of historical pmdata according to filter"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + list data { + uses pmdata24h-entity; + description + "The output data as list of 24 hours performance monitoring + entities."; + } + } + } + + rpc read-inventory-list { + description + "Get list of inventory according to filter"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + list data { + uses inventory-entity; + description + "The output data as list of inventory entities."; + } + } + } + + rpc read-status { + description + "Read status information of controller"; + output { + list data { + uses status-entity; + description + "The output data as list of status entities."; + } + } + } + + rpc read-gui-cut-through-entry { + description + "Get GUI cut through entry according to filter"; + input { + uses entity-input; + } + output { + container pagination { + uses pagination-output-g; + description + "The pagination details used by the provider to filter the data."; + } + list data { + uses guicutthrough-entity; + description + "The output data as list of found GUI Cut through entities"; + } + } + } +} -- cgit 1.2.3-korg