--- /dev/null
+module tapi-equipment {\r
+ namespace "urn:onf:otcc:yang:tapi-equipment";\r
+ prefix tapi-equipment;\r
+ import tapi-common {\r
+ prefix tapi-common;\r
+ }\r
+ import tapi-topology {\r
+ prefix tapi-topology;\r
+ }\r
+ organization "ONF OTCC (Open Transport Configuration & Control) Project";\r
+ contact "\r
+ Project Web: <https://urldefense.com/v3/__https://wiki.opennetworking.org/display/OTCC/TAPI__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6W87JJX8d$ >\r
+ Project List: <mailto:transport-api@opennetworking.org>\r
+ Editor: Karthik Sethuraman <mailto:karthik.sethuraman@necam.com>\r
+ Andrea Mazzini <mailto:andrea.mazzini@nokia.com>\r
+ Arturo Mayoral <mailto:arturo.mayoral@telefonica.com>\r
+ Nigel Davis <mailto:ndavis@ciena.com>";\r
+ description "\r
+ This module contains TAPI Equipment Model definitions.\r
+ Source: TapiEquipment.uml\r
+ - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.\r
+ - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]\r
+ <https://github.com/OpenNetworkingFoundation/EagleUmlYang>\r
+ and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]\r
+ <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>\r
+ - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.\r
+ As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.\r
+ - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.\r
+ The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.\r
+ YANG models included in this release may not be backward compatible with previous TAPI releases.\r
+ Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.\r
+ License: This module is distributed under the Apache License 2.0.";\r
+ revision 2020-04-23 {\r
+ description "ONF Transport API version 2.1.3.\r
+ Changes included in this TAPI release (v2.1.3) are listed in\r
+ <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop_v2_1/CHANGE_LOG/change-log.2.1.3.md>";\r
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
+ <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";\r
+ }\r
+ revision 2019-07-16 {\r
+ description "ONF Transport API version 2.1.2.\r
+ Changes included in this TAPI release (v2.1.2) are listed in\r
+ <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop_v2_1/CHANGE_LOG/change-log.2.1.2.md>";\r
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
+ <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";\r
+ }\r
+ revision 2018-12-10 {\r
+ description "ONF Transport API version 2.1.1.\r
+ Changes included in this TAPI release (v2.1.1) are listed in\r
+ <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>";\r
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
+ <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";\r
+ }\r
+ revision 2018-10-16 {\r
+ description "ONF Transport API version 2.1.0.\r
+ Changes included in this TAPI release (v2.1.0) are listed in\r
+ <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";\r
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
+ <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";\r
+ }\r
+ revision 2018-03-07 {\r
+ description "ONF Transport API version 2.0.2\r
+ This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
+ Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";\r
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
+ <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";\r
+ }\r
+ revision 2018-02-16 {\r
+ description "ONF Transport API version 2.0.1\r
+ This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
+ Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";\r
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
+ <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";\r
+ }\r
+ revision 2018-01-02 {\r
+ description "ONF Transport API version 2.0.0\r
+ This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
+ Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";\r
+ reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
+ <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";\r
+ }\r
+ augment "/tapi-common:context" {\r
+ container physical-context {\r
+ uses physical-context;\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+ augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node" {\r
+ container supporting-physical-span {\r
+ uses supporting-physical-span;\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+ augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {\r
+ container supporting-access-port {\r
+ uses supporting-access-port;\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+ /**************************\r
+ * definitions of references\r
+ **************************/\r
+ grouping device-ref {\r
+ leaf device-uuid {\r
+ type leafref {\r
+ path '/tapi-common:context/tapi-equipment:physical-context/tapi-equipment:device/tapi-equipment:uuid';\r
+ }\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+ grouping equipment-ref {\r
+ uses device-ref;\r
+ leaf equipment-uuid {\r
+ type leafref {\r
+ path '/tapi-common:context/tapi-equipment:physical-context/tapi-equipment:device/tapi-equipment:equipment/tapi-equipment:uuid';\r
+ }\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+ grouping equipment-holder-ref {\r
+ uses equipment-ref;\r
+ leaf equipment-holder-uuid {\r
+ type leafref {\r
+ path '/tapi-common:context/tapi-equipment:physical-context/tapi-equipment:device/tapi-equipment:equipment/tapi-equipment:contained-holder/tapi-equipment:uuid';\r
+ }\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+ grouping access-port-ref {\r
+ uses device-ref;\r
+ leaf access-port-uuid {\r
+ type leafref {\r
+ path '/tapi-common:context/tapi-equipment:physical-context/tapi-equipment:device/tapi-equipment:access-port/tapi-equipment:uuid';\r
+ }\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+ grouping physical-span-ref {\r
+ leaf physical-span-uuid {\r
+ type leafref {\r
+ path '/tapi-common:context/tapi-equipment:physical-context/tapi-equipment:physical-span/tapi-equipment:uuid';\r
+ }\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+ grouping abstract-strand-ref {\r
+ uses physical-span-ref;\r
+ leaf abstract-strand-local-id {\r
+ type leafref {\r
+ path '/tapi-common:context/tapi-equipment:physical-context/tapi-equipment:physical-span/tapi-equipment:abstract-strand/tapi-equipment:local-id';\r
+ }\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+ /**************************\r
+ * package type-definitions\r
+ **************************/ \r
+ identity CONNECTOR_AND_PIN_ORIENTATION {\r
+ description "none";\r
+ }\r
+ identity CONNECTOR_AND_PIN_ORIENTATION_MALE {\r
+ base CONNECTOR_AND_PIN_ORIENTATION;\r
+ description "The connecting elements are dominantly protrusions.";\r
+ }\r
+ identity CONNECTOR_AND_PIN_ORIENTATION_FEMALE {\r
+ base CONNECTOR_AND_PIN_ORIENTATION;\r
+ description "The connecting elements are dominantly indentations.";\r
+ }\r
+ identity CONNECTOR_AND_PIN_ORIENTATION_SYMMETRIC_NEUTRAL {\r
+ base CONNECTOR_AND_PIN_ORIENTATION;\r
+ description "The pin (and housing) orientation combination is such that it is symmetric so a connector is compatible with itself.\r
+ The connecting element may be a surface rather than protrusions or indentations.";\r
+ }\r
+ identity EQUIPMENT_CATEGORY {\r
+ description "none";\r
+ }\r
+ identity EQUIPMENT_CATEGORY_SUBRACK {\r
+ base EQUIPMENT_CATEGORY;\r
+ description "An assembly with holders designed to accommodate CIRCUIT_PACKs. \r
+ The assembly is designed to be mounted in a RACK.";\r
+ }\r
+ identity EQUIPMENT_CATEGORY_CIRCUIT_PACK {\r
+ base EQUIPMENT_CATEGORY;\r
+ description "An assembly with connectors compatible with those in a holder.\r
+ The assembly is designed to be mounted in a holder (SLOT) of a SUBRACK.\r
+ May also support holders (SLOTs) for SMALL_FORMFACTOR_PLUGGABLEs.";\r
+ }\r
+ identity EQUIPMENT_CATEGORY_SMALL_FORMFACTOR_PLUGGABLE {\r
+ base EQUIPMENT_CATEGORY;\r
+ description "A small assembly (compared to a CIRCUIT_PACK) with connectors compatible with those in a holder.\r
+ The assembly is designed to be mounted in a holder (SLOT) of a CIRCUIT_PACK or STAND_ALONE_UNIT.";\r
+ }\r
+ identity EQUIPMENT_CATEGORY_STAND_ALONE_UNIT {\r
+ base EQUIPMENT_CATEGORY;\r
+ description "An assembly with connectors for cabling and potentially with holders.\r
+ The assembly is designed to be mounted in a freeform environment (on a table or simple mechanical cabinet).\r
+ May support holders (SLOTs) for CIRCUIT_PACKs or for SMALL_FORMFACTOR_PLUGGABLEs.";\r
+ }\r
+ identity EQUIPMENT_CATEGORY_RACK {\r
+ base EQUIPMENT_CATEGORY;\r
+ description "A mechanical assembly with cabling and predefined mounting points for particular SUBRACK types.\r
+ The assembly is designed to be mounted on the floor in a row with other RACKs.";\r
+ }\r
+ identity HOLDER_CATEGORY {\r
+ description "none";\r
+ }\r
+ identity HOLDER_CATEGORY_SLOT {\r
+ base HOLDER_CATEGORY;\r
+ description "A guided holder with fixed connectors.\r
+ The guided holder is designed to take a particular form of CIRCUIT_PACK or SMALL_FORMFACTOR_PLUGGABLE";\r
+ }\r
+ identity EQUIPMENT_OBJECT_TYPE {\r
+ description "none";\r
+ }\r
+ identity EQUIPMENT_OBJECT_TYPE_DEVICE {\r
+ base EQUIPMENT_OBJECT_TYPE;\r
+ description "none";\r
+ }\r
+ identity EQUIPMENT_OBJECT_TYPE_ACCESS_PORT {\r
+ base EQUIPMENT_OBJECT_TYPE;\r
+ description "none";\r
+ }\r
+ identity EQUIPMENT_OBJECT_TYPE_EQUIPMENT {\r
+ base EQUIPMENT_OBJECT_TYPE;\r
+ description "none";\r
+ }\r
+ identity EQUIPMENT_OBJECT_TYPE_HOLDER {\r
+ base EQUIPMENT_OBJECT_TYPE;\r
+ description "none";\r
+ }\r
+ identity EQUIPMENT_OBJECT_TYPE_PHYSICAL_SPAN {\r
+ base EQUIPMENT_OBJECT_TYPE;\r
+ description "none";\r
+ }\r
+ identity EQUIPMENT_OBJECT_TYPE_ABSTRACT_STRAND {\r
+ base EQUIPMENT_OBJECT_TYPE;\r
+ description "none";\r
+ }\r
+ typedef connector-and-pin-orientation {\r
+ type identityref {\r
+ base CONNECTOR_AND_PIN_ORIENTATION;\r
+ }\r
+ description "Most connector schemes are asymmetric such that there are two orientations of the connector where a mating is only possible between two connectors of different orientations. \r
+ A multi-pin connector may have a mix of pin orientations. In this case, it is expected that the dominant orientation of pin is chosen for the connector orientation.";\r
+ }\r
+ typedef equipment-category {\r
+ type identityref {\r
+ base EQUIPMENT_CATEGORY;\r
+ }\r
+ description "The form of equipment.";\r
+ }\r
+ typedef holder-category {\r
+ type identityref {\r
+ base HOLDER_CATEGORY;\r
+ }\r
+ description "The form of holder.";\r
+ }\r
+ grouping connector-pin-address {\r
+ leaf connector-identification {\r
+ type string;\r
+ description "Identification of the Connector in the context of the referenced Equipment.";\r
+ }\r
+ leaf pin-identification {\r
+ type string;\r
+ description "Where relevant, identification of the Pin in the context of the connector.\r
+ Where the whole connector is used, then individual Pins need not be identified.\r
+ Simple alternative to pinAndRole.";\r
+ }\r
+ leaf equipment-uuid {\r
+ type tapi-common:uuid;\r
+ description "Reference to the Equipment that is fitted with the Connector/Pin.";\r
+ }\r
+ list pin-and-role {\r
+ config false;\r
+ uses pin-and-role;\r
+ description "If there is more than one pin used in a connector and/or there is a need to identify the role of one or more pins then this property can be used.\r
+ For simple cases pinIdentification can be used instead.";\r
+ }\r
+ description "The identification of the location of the Connector and/or Pin.";\r
+ }\r
+ grouping actual-equipment {\r
+ list actual-non-field-replaceable-module {\r
+ config false;\r
+ uses actual-non-field-replaceable-module;\r
+ description "none";\r
+ }\r
+ container common-actual-properties {\r
+ config false;\r
+ uses common-actual-properties;\r
+ description "none";\r
+ }\r
+ container common-equipment-properties {\r
+ config false;\r
+ uses common-equipment-properties;\r
+ description "none";\r
+ }\r
+ description "The equipment that is actually present in the physical network.\r
+ It will expose all dynamic properties and some critical static properties.";\r
+ }\r
+ grouping actual-holder {\r
+ container common-holder-properties {\r
+ config false;\r
+ uses common-holder-properties;\r
+ description "none";\r
+ }\r
+ description "A holder in the ActualEquipment.";\r
+ }\r
+ grouping actual-non-field-replaceable-module {\r
+ container common-actual-properties {\r
+ config false;\r
+ uses common-actual-properties;\r
+ description "none";\r
+ }\r
+ container common-equipment-properties {\r
+ config false;\r
+ uses common-equipment-properties;\r
+ description "none";\r
+ }\r
+ description "A structure that represents an actual equipment that cannot be replaced in the field.\r
+ Is simply a subordinate part of an ActualEquipment (FRU). \r
+ Does not have any exposed holders (any associated holders are assumed to belong to the containing FRU).\r
+ Does not have any connectors (any associated connectors are assumed to belong to the containing FRU).\r
+ ";\r
+ }\r
+ grouping common-actual-properties {\r
+ leaf asset-instance-identifier {\r
+ type string;\r
+ description "This attribute represents the asset identifier of this instance from the manufacturer's perspective.";\r
+ }\r
+ leaf is-powered {\r
+ type boolean;\r
+ description "The state of the power being supplied to the equipment.\r
+ Note that this attribute summarizes the power state. \r
+ Full details on the actual power system would be provided from a number of PC instances representing the relevant parts of the Power function (e.g. different voltage supplies).";\r
+ }\r
+ leaf manufacture-date {\r
+ type tapi-common:date-and-time;\r
+ description "This attribute represents the date on which this instance is manufactured.";\r
+ }\r
+ leaf serial-number {\r
+ type string;\r
+ description "This attribute represents the serial number of this instance.";\r
+ }\r
+ leaf temperature {\r
+ type decimal64 {\r
+ fraction-digits 7;\r
+ }\r
+ description "The measured temperature of the Equipment.";\r
+ }\r
+ description "Properties common to actual Equipment.";\r
+ }\r
+ grouping common-equipment-properties {\r
+ leaf asset-type-identifier {\r
+ type string;\r
+ description "Represents the invariant properties of the equipment asset allocated by the operator that define and characterize the type.";\r
+ }\r
+ leaf equipment-type-description {\r
+ type string;\r
+ description "Text describing the type of Equipment.";\r
+ }\r
+ leaf equipment-type-identifier {\r
+ type string;\r
+ description "This attribute identifies the part type of the equipment.";\r
+ }\r
+ leaf equipment-type-name {\r
+ type string;\r
+ description "This attribute identifies the type of the equipment.";\r
+ }\r
+ leaf equipment-type-version {\r
+ type string;\r
+ description "This attribute identifies the version of the equipment.";\r
+ }\r
+ leaf manufacturer-identifier {\r
+ type string;\r
+ description "The formal unique identifier of the manufacturer.";\r
+ }\r
+ leaf manufacturer-name {\r
+ type string;\r
+ description "The formal name of the manufacturer of the Equipment.";\r
+ }\r
+ description "Properties common to all aspects of Equipment.";\r
+ }\r
+ grouping common-holder-properties {\r
+ leaf holder-category {\r
+ type holder-category;\r
+ description "The type of holder.";\r
+ }\r
+ leaf is-guided {\r
+ type boolean;\r
+ description "This attribute indicates whether the holder has guides that constrain the position of the equipment in the holder or not.";\r
+ }\r
+ leaf holder-location {\r
+ type string;\r
+ description "The relative position of the holder in the context of its containing equipment along with the position of that containing Equipment (and further recursion).";\r
+ }\r
+ description "Properties common to all aspects of Holder.";\r
+ }\r
+ grouping expected-equipment {\r
+ list expected-non-field-replaceable-module {\r
+ config false;\r
+ uses expected-non-field-replaceable-module;\r
+ description "none";\r
+ }\r
+ list expected-holder {\r
+ config false;\r
+ uses expected-holder;\r
+ description "none";\r
+ }\r
+ container common-equipment-properties {\r
+ config false;\r
+ uses common-equipment-properties;\r
+ description "none";\r
+ }\r
+ description "A definition of the restrictions on the equipment that is expected to be present in the physical network at a particular 'place'.\r
+ The expected equipment will state the type and may constrain any other invariant properties. \r
+ It may also provide desired ranges for dynamic properties.";\r
+ }\r
+ grouping expected-holder {\r
+ container common-holder-properties {\r
+ config false;\r
+ uses common-holder-properties;\r
+ description "none";\r
+ }\r
+ description "A definition of a holder expected in the ActualEquipment (i.e. an ActualHolder) as part of the constraints provided by the ExpectedEquipment.";\r
+ }\r
+ grouping expected-non-field-replaceable-module {\r
+ container common-equipment-properties {\r
+ config false;\r
+ uses common-equipment-properties;\r
+ description "none";\r
+ }\r
+ description "A structure that represents an expected equipment that cannot be replaced in the field.\r
+ Is simply a subordinate part of an ExpectedEquipment (FRU). \r
+ Does not have any exposed holders (any associated holders are assumed to belong to the containing FRU).\r
+ Does not have any connectors (any associated connectors are assumed to belong to the containing FRU).\r
+ ";\r
+ }\r
+ typedef equipment-object-type {\r
+ type identityref {\r
+ base EQUIPMENT_OBJECT_TYPE;\r
+ }\r
+ description "The list of TAPI Equipment Object types/classes.";\r
+ }\r
+ grouping pin-and-role {\r
+ leaf location-in-connector {\r
+ type string;\r
+ config false;\r
+ description "The named location of the pin in the context of the connector.\r
+ This is likely to be the normal numbering/naming for the type of connetor, e.g. '7', '6-GND', 'Common' etc.";\r
+ }\r
+ leaf-list pin-role {\r
+ type string;\r
+ config false;\r
+ description "It is not always necessary to specify a role (or list of roles) as the connector locationInConnector may be sufficient (as these are sometimes clearly role based.\r
+ Each entry represents a role in the context of the specific access port.\r
+ Each entry ties the pin to a functional element in the associated NEP(s) etc.\r
+ For example:\r
+ - a pin might carry several distinct signals where each signal is idenitified in the list\r
+ - a pin may carry a signal and power\r
+ - a signal carried by a pin may be the receive flow (INPUT) to a bidirectional NEP or the transmit flow (OUTPUT) or indeed both (BIDIRECTIONAL).";\r
+ }\r
+ leaf pin-name {\r
+ type string;\r
+ config false;\r
+ description "Where the pin has a distinct location identifier and a distinct name this field can be used for the name.\r
+ For example:\r
+ - locationInConnector = 6, pinName = GND";\r
+ }\r
+ description "Provides an opportunity, for a pin, to give the location of the pin and the role of the pin.";\r
+ }\r
+\r
+ /**************************\r
+ * package object-classes\r
+ **************************/ \r
+ grouping equipment {\r
+ list contained-holder {\r
+ key 'uuid';\r
+ config false;\r
+ uses holder;\r
+ description "References the Holder in an Equipment that is available to take other Equipments.\r
+ For example:\r
+ - Slot in a sub-rack\r
+ - Slot in a Field Replaceable Unit that can take a small form-factor pluggable.";\r
+ }\r
+ leaf category {\r
+ type equipment-category;\r
+ config false;\r
+ description "This attribute provides the identifier for the form of equipments regarded as having particular shared characteristics.";\r
+ }\r
+ leaf equipment-location {\r
+ type string;\r
+ config false;\r
+ description "none";\r
+ }\r
+ leaf geographical-location {\r
+ type string;\r
+ config false;\r
+ description "none";\r
+ }\r
+ leaf is-expected-actual-mismatch {\r
+ type boolean;\r
+ config false;\r
+ description "none";\r
+ }\r
+ list expected-equipment {\r
+ uses expected-equipment;\r
+ description "none";\r
+ }\r
+ container actual-equipment {\r
+ uses actual-equipment;\r
+ description "none";\r
+ }\r
+ uses tapi-common:global-class;\r
+ description "Represents any relevant physical thing. \r
+ Can be either field replaceable or not field replaceable.\r
+ Note: The model is currently constrained to inside plant.";\r
+ }\r
+ grouping holder {\r
+ container occupying-fru {\r
+ uses equipment-ref;\r
+ config false;\r
+ description "The FRU that is occupying the holder. \r
+ A holder may be unoccupied. \r
+ An FRU may occupy more hat one holder (using or blocking are intentionally not distinguished here).";\r
+ }\r
+ container expected-holder {\r
+ config false;\r
+ uses expected-holder;\r
+ description "none";\r
+ }\r
+ container actual-holder {\r
+ config false;\r
+ uses actual-holder;\r
+ description "none";\r
+ }\r
+ uses tapi-common:global-class;\r
+ description "Represents a space in an equipment in which another equipment can be fitted in the field.";\r
+ }\r
+ grouping access-port {\r
+ list connector-pin {\r
+ key 'connector-identification pin-identification equipment-uuid';\r
+ config false;\r
+ min-elements 1;\r
+ uses connector-pin-address;\r
+ description "The list of Pins that support the AccessPort.";\r
+ }\r
+ uses tapi-common:global-class;\r
+ description "A group of pins that together support a signal group where any one pin removed from the group will prevent all signals of the signal group from flowing successfully.\r
+ In some cases the AccessPort may simply reference a single connector (e.g., where the pin-connector association is simpe such that the AccessPort references all pinsof one connector).";\r
+ }\r
+ grouping physical-span {\r
+ list access-port {\r
+ uses access-port-ref;\r
+ key "device-uuid access-port-uuid";\r
+ config false;\r
+ min-elements 2;\r
+ max-elements 2;\r
+ description "none";\r
+ }\r
+ list abstract-strand {\r
+ key 'local-id';\r
+ config false;\r
+ uses abstract-strand;\r
+ description "Both the serial segments that form an end-end strand and the parallel end-end strands.";\r
+ }\r
+ uses tapi-common:global-class;\r
+ description "An adjacency between AccessPorts. \r
+ The adjacency is supported by a group of strands between pins of the AccessPorts.\r
+ This is a physical abstraction.";\r
+ }\r
+ grouping abstract-strand {\r
+ list adjacent-strand {\r
+ uses abstract-strand-ref;\r
+ key "physical-span-uuid abstract-strand-local-id";\r
+ config false;\r
+ description "none";\r
+ }\r
+ list spliced-strand {\r
+ uses abstract-strand-ref;\r
+ key "physical-span-uuid abstract-strand-local-id";\r
+ config false;\r
+ max-elements 2;\r
+ description "none";\r
+ }\r
+ list connector-pin {\r
+ key 'connector-identification pin-identification equipment-uuid';\r
+ config false;\r
+ max-elements 2;\r
+ uses connector-pin-address;\r
+ description "A strand can end on two or more Pins (usually 2 pins, but a strand my be spliced to split a signal). This model supports only 2 ended strands.\r
+ A abstract strand may be spliced at both ends and hence have no direct relationship to pins or may be connected to pins at one or both ends.\r
+ In the essential model these Pins would be on connectors that plug in to connectors on Equipments.\r
+ The AbstractStrand is extended to the pins of the AccessPort which are the Pins on the Connectors of the Equipment.\r
+ In some cases it may not be relevant to represent the pin detail and hence the reference is to a connector alone.";\r
+ }\r
+ list strand-media-characteristics {\r
+ key 'value-name';\r
+ config false;\r
+ uses tapi-common:name-and-value;\r
+ description "Relevant physical properties of the abstract strand.";\r
+ }\r
+ uses tapi-common:local-class;\r
+ description "This object represents an abstraction of one or more strands in series that provides sufficient detail to enable appropriate engineering.\r
+ A strand represents a continuous long, thin piece of a medium such as glass fiber or copper wire.\r
+ In this model a Strand:\r
+ - a strand has two ends\r
+ - a splice can only be between 2 strands.\r
+ - the end of a strand may have a splice, a connector or be hidden\r
+ - only one end can be hidden in an equipment\r
+ - where a cable has more than two end each strand only goes between two of the ends\r
+ This model does NOT account for multiple copper strands being spliced.";\r
+ }\r
+ grouping device {\r
+ list equipment {\r
+ key 'uuid';\r
+ config false;\r
+ uses equipment;\r
+ description "none";\r
+ }\r
+ list access-port {\r
+ key 'uuid';\r
+ config false;\r
+ uses access-port;\r
+ description "none";\r
+ }\r
+ uses tapi-common:global-class;\r
+ description "A logical grouping of Equipments and AccessPorts that are closely located and form a support a coherent system of related functions.";\r
+ }\r
+ grouping physical-context {\r
+ list device {\r
+ key 'uuid';\r
+ config false;\r
+ uses device;\r
+ description "none";\r
+ }\r
+ list physical-span {\r
+ key 'uuid';\r
+ config false;\r
+ uses physical-span;\r
+ description "none";\r
+ }\r
+ uses tapi-common:global-class;\r
+ description "none";\r
+ }\r
+ grouping supporting-physical-span {\r
+ container physical-span {\r
+ uses physical-span-ref;\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+ grouping supporting-access-port {\r
+ container access-port {\r
+ uses access-port-ref;\r
+ description "none";\r
+ }\r
+ description "none";\r
+ }\r
+\r
+ /**************************\r
+ * package interfaces\r
+ **************************/ \r
+ rpc get-device-list {\r
+ description "none";\r
+ output {\r
+ list device {\r
+ key 'uuid';\r
+ uses device;\r
+ description "none";\r
+ }\r
+ }\r
+ }\r
+ rpc get-physical-span-list {\r
+ description "none";\r
+ output {\r
+ list physical-span {\r
+ key 'uuid';\r
+ uses physical-span;\r
+ description "none";\r
+ }\r
+ }\r
+ }\r
+ rpc get-device {\r
+ description "none";\r
+ input {\r
+ leaf uuid {\r
+ type tapi-common:uuid;\r
+ description "UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable.\r
+ An UUID carries no semantics with respect to the purpose or state of the entity.\r
+ UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters.\r
+ Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} \r
+ Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\r
+ }\r
+ }\r
+ output {\r
+ container device {\r
+ uses device;\r
+ description "none";\r
+ }\r
+ }\r
+ }\r
+ rpc get-physical-span {\r
+ description "none";\r
+ input {\r
+ leaf uuid {\r
+ type tapi-common:uuid;\r
+ description "UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable.\r
+ An UUID carries no semantics with respect to the purpose or state of the entity.\r
+ UUID here uses string representation as defined in RFC 4122. The canonical representation uses lowercase characters.\r
+ Pattern: [0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-' + '[0-9a-fA-F]{4}-[0-9a-fA-F]{12} \r
+ Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\r
+ }\r
+ }\r
+ output {\r
+ container physical-span {\r
+ uses physical-span;\r
+ description "none";\r
+ }\r
+ }\r
+ }\r
+\r
+}\r