Add TAPI Topology simulated network function type.
[sim/o1-interface.git] / ntsimulator / deploy / smo-nts-ng-topology-server / yang / tapi-equipment@2020-04-23.yang
1 module tapi-equipment {\r
2     namespace "urn:onf:otcc:yang:tapi-equipment";\r
3     prefix tapi-equipment;\r
4     import tapi-common {\r
5         prefix tapi-common;\r
6     }\r
7     import tapi-topology {\r
8         prefix tapi-topology;\r
9     }\r
10     organization "ONF OTCC (Open Transport Configuration & Control) Project";\r
11     contact "\r
12          Project Web: <https://urldefense.com/v3/__https://wiki.opennetworking.org/display/OTCC/TAPI__;!!OSsGDw!d_dJlNtYLmD585It0DKukzB2TS5KZqBZQ-pdI1D-6c6c5hRDotd6W87JJX8d$ >\r
13          Project List: <mailto:transport-api@opennetworking.org>\r
14          Editor: Karthik Sethuraman <mailto:karthik.sethuraman@necam.com>\r
15          Andrea Mazzini <mailto:andrea.mazzini@nokia.com>\r
16          Arturo Mayoral <mailto:arturo.mayoral@telefonica.com>\r
17          Nigel Davis <mailto:ndavis@ciena.com>";\r
18     description "\r
19         This module contains TAPI Equipment Model definitions.\r
20         Source: TapiEquipment.uml\r
21         - The TAPI YANG models included in this TAPI release are a *normative* part of the TAPI SDK.\r
22         - The YANG specifications have been generated from the corresponding UML model using the [ONF EAGLE UML2YANG mapping tool]\r
23         <https://github.com/OpenNetworkingFoundation/EagleUmlYang>\r
24         and further edited manually to comply with the [ONF IISOMI UML2YANG mapping guidelines]\r
25         <https://wiki.opennetworking.org/display/OIMT/UML+-+YANG+Guidelines>\r
26         - Status of YANG model artifacts can be determined by referring to the corresponding UML artifacts.\r
27         As described in the UML models, some artifacts are considered *experimental*, and thus the corresponding YANG artifacts.\r
28         - The ONF TAPI release process does not guarantee backward compatibility of YANG models across major versions of TAPI releases.\r
29         The YANG model backward compatibility criteria are outlined in section 11 of <https://tools.ietf.org/html/rfc7950>.\r
30         YANG models included in this release may not be backward compatible with previous TAPI releases.\r
31         Copyright (c) 2018 Open Networking Foundation (ONF). All rights reserved.\r
32         License: This module is distributed under the Apache License 2.0.";\r
33     revision 2020-04-23 {\r
34         description "ONF Transport API version 2.1.3.\r
35                    Changes included in this TAPI release (v2.1.3) are listed in\r
36                    <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop_v2_1/CHANGE_LOG/change-log.2.1.3.md>";\r
37         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
38                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";\r
39     }\r
40     revision 2019-07-16 {\r
41         description "ONF Transport API version 2.1.2.\r
42                    Changes included in this TAPI release (v2.1.2) are listed in\r
43                    <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop_v2_1/CHANGE_LOG/change-log.2.1.2.md>";\r
44         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
45                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";\r
46     }\r
47     revision 2018-12-10 {\r
48         description "ONF Transport API version 2.1.1.\r
49                    Changes included in this TAPI release (v2.1.1) are listed in\r
50                    <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.1.md>";\r
51         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
52                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";\r
53     }\r
54     revision 2018-10-16 {\r
55         description "ONF Transport API version 2.1.0.\r
56                    Changes included in this TAPI release (v2.1.0) are listed in\r
57                    <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.1.0.md>";\r
58         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 7950, RFC 6087 and ONF TAPI UML model\r
59                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.1.0/UML>";\r
60     }\r
61     revision 2018-03-07 {\r
62         description "ONF Transport API version 2.0.2\r
63         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
64         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.2.md>";\r
65         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
66                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.2/UML>";\r
67     }\r
68     revision 2018-02-16 {\r
69         description "ONF Transport API version 2.0.1\r
70         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
71         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.1.md>";\r
72         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
73                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.1/UML>";\r
74     }\r
75     revision 2018-01-02 {\r
76         description "ONF Transport API version 2.0.0\r
77         This YANG module has been generated from the TAPI UML Model using the IISOMI-Eagle xmi2yang mapping tool.\r
78         Changes in this revision: <https://github.com/OpenNetworkingFoundation/TAPI/blob/develop/CHANGE_LOG/change-log.2.0.0.md>";\r
79         reference "ONF-TR-527, ONF-TR-512, ONF-TR-531, RFC 6020, RFC 6087 and ONF TAPI UML model\r
80                   <https://github.com/OpenNetworkingFoundation/TAPI/tree/v2.0.0/UML>";\r
81     }\r
82     augment "/tapi-common:context" {\r
83         container physical-context {\r
84             uses physical-context;\r
85             description "none";\r
86         }\r
87         description "none";\r
88     }\r
89     augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node" {\r
90         container supporting-physical-span {\r
91             uses supporting-physical-span;\r
92             description "none";\r
93         }\r
94         description "none";\r
95     }\r
96     augment "/tapi-common:context/tapi-topology:topology-context/tapi-topology:topology/tapi-topology:node/tapi-topology:owned-node-edge-point" {\r
97         container supporting-access-port {\r
98             uses supporting-access-port;\r
99             description "none";\r
100         }\r
101         description "none";\r
102     }\r
103    /**************************\r
104     * definitions of references\r
105     **************************/\r
106     grouping device-ref {\r
107         leaf device-uuid {\r
108                 type leafref {\r
109                 path '/tapi-common:context/tapi-equipment:physical-context/tapi-equipment:device/tapi-equipment:uuid';\r
110             }\r
111             description "none";\r
112         }\r
113         description "none";\r
114     }\r
115     grouping equipment-ref {\r
116         uses device-ref;\r
117         leaf equipment-uuid {\r
118                 type leafref {\r
119                 path '/tapi-common:context/tapi-equipment:physical-context/tapi-equipment:device/tapi-equipment:equipment/tapi-equipment:uuid';\r
120             }\r
121             description "none";\r
122         }\r
123         description "none";\r
124     }\r
125     grouping equipment-holder-ref {\r
126         uses equipment-ref;\r
127         leaf equipment-holder-uuid {\r
128                 type leafref {\r
129                 path '/tapi-common:context/tapi-equipment:physical-context/tapi-equipment:device/tapi-equipment:equipment/tapi-equipment:contained-holder/tapi-equipment:uuid';\r
130             }\r
131             description "none";\r
132         }\r
133         description "none";\r
134     }\r
135     grouping access-port-ref {\r
136         uses device-ref;\r
137         leaf access-port-uuid {\r
138                 type leafref {\r
139                 path '/tapi-common:context/tapi-equipment:physical-context/tapi-equipment:device/tapi-equipment:access-port/tapi-equipment:uuid';\r
140             }\r
141             description "none";\r
142         }\r
143         description "none";\r
144     }\r
145     grouping physical-span-ref {\r
146         leaf physical-span-uuid {\r
147                 type leafref {\r
148                 path '/tapi-common:context/tapi-equipment:physical-context/tapi-equipment:physical-span/tapi-equipment:uuid';\r
149             }\r
150             description "none";\r
151         }\r
152         description "none";\r
153     }\r
154     grouping abstract-strand-ref {\r
155         uses physical-span-ref;\r
156         leaf abstract-strand-local-id {\r
157                 type leafref {\r
158                 path '/tapi-common:context/tapi-equipment:physical-context/tapi-equipment:physical-span/tapi-equipment:abstract-strand/tapi-equipment:local-id';\r
159             }\r
160             description "none";\r
161         }\r
162         description "none";\r
163     }\r
164     /**************************\r
165     * package type-definitions\r
166     **************************/ \r
167     identity CONNECTOR_AND_PIN_ORIENTATION {\r
168         description "none";\r
169     }\r
170     identity CONNECTOR_AND_PIN_ORIENTATION_MALE {\r
171         base CONNECTOR_AND_PIN_ORIENTATION;\r
172         description "The connecting elements are dominantly protrusions.";\r
173     }\r
174     identity CONNECTOR_AND_PIN_ORIENTATION_FEMALE {\r
175         base CONNECTOR_AND_PIN_ORIENTATION;\r
176         description "The connecting elements are dominantly indentations.";\r
177     }\r
178     identity CONNECTOR_AND_PIN_ORIENTATION_SYMMETRIC_NEUTRAL {\r
179         base CONNECTOR_AND_PIN_ORIENTATION;\r
180         description "The pin (and housing) orientation combination is such that it is symmetric so a connector is compatible with itself.\r
181             The connecting element may be a surface rather than protrusions or indentations.";\r
182     }\r
183     identity EQUIPMENT_CATEGORY {\r
184         description "none";\r
185     }\r
186     identity EQUIPMENT_CATEGORY_SUBRACK {\r
187         base EQUIPMENT_CATEGORY;\r
188         description "An assembly with holders designed to accommodate CIRCUIT_PACKs. \r
189             The assembly is designed to be mounted in a RACK.";\r
190     }\r
191     identity EQUIPMENT_CATEGORY_CIRCUIT_PACK {\r
192         base EQUIPMENT_CATEGORY;\r
193         description "An assembly with connectors compatible with those in a holder.\r
194             The assembly is designed to be mounted in a holder (SLOT) of a SUBRACK.\r
195             May also support holders (SLOTs) for SMALL_FORMFACTOR_PLUGGABLEs.";\r
196     }\r
197     identity EQUIPMENT_CATEGORY_SMALL_FORMFACTOR_PLUGGABLE {\r
198         base EQUIPMENT_CATEGORY;\r
199         description "A small assembly (compared to a CIRCUIT_PACK) with connectors compatible with those in a holder.\r
200             The assembly is designed to be mounted in a holder (SLOT) of a CIRCUIT_PACK or STAND_ALONE_UNIT.";\r
201     }\r
202     identity EQUIPMENT_CATEGORY_STAND_ALONE_UNIT {\r
203         base EQUIPMENT_CATEGORY;\r
204         description "An assembly with connectors for cabling and potentially with holders.\r
205             The assembly is designed to be mounted in a freeform environment (on a table or simple mechanical cabinet).\r
206             May support holders (SLOTs) for CIRCUIT_PACKs or for SMALL_FORMFACTOR_PLUGGABLEs.";\r
207     }\r
208     identity EQUIPMENT_CATEGORY_RACK {\r
209         base EQUIPMENT_CATEGORY;\r
210         description "A mechanical assembly with cabling and predefined mounting points for particular SUBRACK types.\r
211             The assembly is designed to be mounted on the floor in a row with other RACKs.";\r
212     }\r
213     identity HOLDER_CATEGORY {\r
214         description "none";\r
215     }\r
216     identity HOLDER_CATEGORY_SLOT {\r
217         base HOLDER_CATEGORY;\r
218         description "A guided holder with fixed connectors.\r
219             The guided holder is designed to take a particular form of CIRCUIT_PACK or SMALL_FORMFACTOR_PLUGGABLE";\r
220     }\r
221     identity EQUIPMENT_OBJECT_TYPE {\r
222         description "none";\r
223     }\r
224     identity EQUIPMENT_OBJECT_TYPE_DEVICE {\r
225         base EQUIPMENT_OBJECT_TYPE;\r
226         description "none";\r
227     }\r
228     identity EQUIPMENT_OBJECT_TYPE_ACCESS_PORT {\r
229         base EQUIPMENT_OBJECT_TYPE;\r
230         description "none";\r
231     }\r
232     identity EQUIPMENT_OBJECT_TYPE_EQUIPMENT {\r
233         base EQUIPMENT_OBJECT_TYPE;\r
234         description "none";\r
235     }\r
236     identity EQUIPMENT_OBJECT_TYPE_HOLDER {\r
237         base EQUIPMENT_OBJECT_TYPE;\r
238         description "none";\r
239     }\r
240     identity EQUIPMENT_OBJECT_TYPE_PHYSICAL_SPAN {\r
241         base EQUIPMENT_OBJECT_TYPE;\r
242         description "none";\r
243     }\r
244     identity EQUIPMENT_OBJECT_TYPE_ABSTRACT_STRAND {\r
245         base EQUIPMENT_OBJECT_TYPE;\r
246         description "none";\r
247     }\r
248     typedef connector-and-pin-orientation {\r
249         type identityref {\r
250             base CONNECTOR_AND_PIN_ORIENTATION;\r
251         }\r
252         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
253             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
254     }\r
255     typedef equipment-category {\r
256         type identityref {\r
257             base EQUIPMENT_CATEGORY;\r
258         }\r
259         description "The form of equipment.";\r
260     }\r
261     typedef holder-category {\r
262         type identityref {\r
263             base HOLDER_CATEGORY;\r
264         }\r
265         description "The form of holder.";\r
266     }\r
267     grouping connector-pin-address {\r
268         leaf connector-identification {\r
269             type string;\r
270             description "Identification of the Connector in the context of the referenced Equipment.";\r
271         }\r
272         leaf pin-identification {\r
273             type string;\r
274             description "Where relevant, identification of the Pin in the context of the connector.\r
275                 Where the whole connector is used, then individual Pins need not be identified.\r
276                 Simple alternative to pinAndRole.";\r
277         }\r
278         leaf equipment-uuid {\r
279             type tapi-common:uuid;\r
280             description "Reference to the Equipment that is fitted with the Connector/Pin.";\r
281         }\r
282         list pin-and-role {\r
283             config false;\r
284             uses pin-and-role;\r
285             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
286                 For simple cases pinIdentification can be used instead.";\r
287         }\r
288         description "The identification of the location of the Connector and/or Pin.";\r
289     }\r
290     grouping actual-equipment {\r
291         list actual-non-field-replaceable-module {\r
292             config false;\r
293             uses actual-non-field-replaceable-module;\r
294             description "none";\r
295         }\r
296         container common-actual-properties {\r
297             config false;\r
298             uses common-actual-properties;\r
299             description "none";\r
300         }\r
301         container common-equipment-properties {\r
302             config false;\r
303             uses common-equipment-properties;\r
304             description "none";\r
305         }\r
306         description "The equipment that is actually present in the physical network.\r
307             It will expose all dynamic properties and some critical static properties.";\r
308     }\r
309     grouping actual-holder {\r
310         container common-holder-properties {\r
311             config false;\r
312             uses common-holder-properties;\r
313             description "none";\r
314         }\r
315         description "A holder in the ActualEquipment.";\r
316     }\r
317     grouping actual-non-field-replaceable-module {\r
318         container common-actual-properties {\r
319             config false;\r
320             uses common-actual-properties;\r
321             description "none";\r
322         }\r
323         container common-equipment-properties {\r
324             config false;\r
325             uses common-equipment-properties;\r
326             description "none";\r
327         }\r
328         description "A structure that represents an actual equipment that cannot be replaced in the field.\r
329             Is simply a subordinate part of an ActualEquipment (FRU). \r
330             Does not have any exposed holders (any associated holders are assumed to belong to the containing FRU).\r
331             Does not have any connectors (any associated connectors are assumed to belong to the containing FRU).\r
332             ";\r
333     }\r
334     grouping common-actual-properties {\r
335         leaf asset-instance-identifier {\r
336             type string;\r
337             description "This attribute represents the asset identifier of this instance from the manufacturer's perspective.";\r
338         }\r
339         leaf is-powered {\r
340             type boolean;\r
341             description "The state of the power being supplied to the equipment.\r
342                 Note that this attribute summarizes the power state. \r
343                 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
344         }\r
345         leaf manufacture-date {\r
346             type tapi-common:date-and-time;\r
347             description "This attribute represents the date on which this instance is manufactured.";\r
348         }\r
349         leaf serial-number {\r
350             type string;\r
351             description "This attribute represents the serial number of this instance.";\r
352         }\r
353         leaf temperature {\r
354             type decimal64 {\r
355                 fraction-digits 7;\r
356             }\r
357             description "The measured temperature of the Equipment.";\r
358         }\r
359         description "Properties common to actual Equipment.";\r
360     }\r
361     grouping common-equipment-properties {\r
362         leaf asset-type-identifier {\r
363             type string;\r
364             description "Represents the invariant properties of the equipment asset allocated by the operator that define and characterize the type.";\r
365         }\r
366         leaf equipment-type-description {\r
367             type string;\r
368             description "Text describing the type of Equipment.";\r
369         }\r
370         leaf equipment-type-identifier {\r
371             type string;\r
372             description "This attribute identifies the part type of the equipment.";\r
373         }\r
374         leaf equipment-type-name {\r
375             type string;\r
376             description "This attribute identifies the type of the equipment.";\r
377         }\r
378         leaf equipment-type-version {\r
379             type string;\r
380             description "This attribute identifies the version of the equipment.";\r
381         }\r
382         leaf manufacturer-identifier {\r
383             type string;\r
384             description "The formal unique identifier of the manufacturer.";\r
385         }\r
386         leaf manufacturer-name {\r
387             type string;\r
388             description "The formal name of the manufacturer of the Equipment.";\r
389         }\r
390         description "Properties common to all aspects of Equipment.";\r
391     }\r
392     grouping common-holder-properties {\r
393         leaf holder-category {\r
394             type holder-category;\r
395             description "The type of holder.";\r
396         }\r
397         leaf is-guided {\r
398             type boolean;\r
399             description "This attribute indicates whether the holder has guides that constrain the position of the equipment in the holder or not.";\r
400         }\r
401         leaf holder-location {\r
402             type string;\r
403             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
404         }\r
405         description "Properties common to all aspects of Holder.";\r
406     }\r
407     grouping expected-equipment {\r
408         list expected-non-field-replaceable-module {\r
409             config false;\r
410             uses expected-non-field-replaceable-module;\r
411             description "none";\r
412         }\r
413         list expected-holder {\r
414             config false;\r
415             uses expected-holder;\r
416             description "none";\r
417         }\r
418         container common-equipment-properties {\r
419             config false;\r
420             uses common-equipment-properties;\r
421             description "none";\r
422         }\r
423         description "A definition of the restrictions on the equipment that is expected to be present in the physical network at a particular 'place'.\r
424             The expected equipment will state the type and may constrain any other invariant properties. \r
425             It may also provide desired ranges for dynamic properties.";\r
426     }\r
427     grouping expected-holder {\r
428         container common-holder-properties {\r
429             config false;\r
430             uses common-holder-properties;\r
431             description "none";\r
432         }\r
433         description "A definition of a holder expected in the ActualEquipment (i.e. an ActualHolder) as part of the constraints provided by the ExpectedEquipment.";\r
434     }\r
435     grouping expected-non-field-replaceable-module {\r
436         container common-equipment-properties {\r
437             config false;\r
438             uses common-equipment-properties;\r
439             description "none";\r
440         }\r
441         description "A structure that represents an expected equipment that cannot be replaced in the field.\r
442             Is simply a subordinate part of an ExpectedEquipment (FRU). \r
443             Does not have any exposed holders (any associated holders are assumed to belong to the containing FRU).\r
444             Does not have any connectors (any associated connectors are assumed to belong to the containing FRU).\r
445             ";\r
446     }\r
447     typedef equipment-object-type {\r
448         type identityref {\r
449             base EQUIPMENT_OBJECT_TYPE;\r
450         }\r
451         description "The list of TAPI Equipment Object types/classes.";\r
452     }\r
453     grouping pin-and-role {\r
454         leaf location-in-connector {\r
455             type string;\r
456             config false;\r
457             description "The named location of the pin in the context of the connector.\r
458                 This is likely to be the normal numbering/naming for the type of connetor, e.g. '7', '6-GND', 'Common' etc.";\r
459         }\r
460         leaf-list pin-role {\r
461             type string;\r
462             config false;\r
463             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
464                 Each entry represents a role in the context of the specific access port.\r
465                 Each entry ties the pin to a functional element in the associated NEP(s) etc.\r
466                 For example:\r
467                 - a pin might carry several distinct signals where each signal is idenitified in the list\r
468                 - a pin may carry a signal and power\r
469                 - 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
470         }\r
471         leaf pin-name {\r
472             type string;\r
473             config false;\r
474             description "Where the pin has a distinct location identifier and a distinct name this field can be used for the name.\r
475                 For example:\r
476                 - locationInConnector = 6, pinName = GND";\r
477         }\r
478         description "Provides an opportunity, for a pin, to give the location of the pin and the role of the pin.";\r
479     }\r
480 \r
481     /**************************\r
482     * package object-classes\r
483     **************************/ \r
484     grouping equipment {\r
485         list contained-holder {\r
486             key 'uuid';\r
487             config false;\r
488             uses holder;\r
489             description "References the Holder in an Equipment that is available to take other Equipments.\r
490                 For example:\r
491                 - Slot in a sub-rack\r
492                 - Slot in a Field Replaceable Unit that can take a small form-factor pluggable.";\r
493         }\r
494         leaf category {\r
495             type equipment-category;\r
496             config false;\r
497             description "This attribute provides the identifier for the form of equipments regarded as having particular shared characteristics.";\r
498         }\r
499         leaf equipment-location {\r
500             type string;\r
501             config false;\r
502             description "none";\r
503         }\r
504         leaf geographical-location {\r
505             type string;\r
506             config false;\r
507             description "none";\r
508         }\r
509         leaf is-expected-actual-mismatch {\r
510             type boolean;\r
511             config false;\r
512             description "none";\r
513         }\r
514         list expected-equipment {\r
515             uses expected-equipment;\r
516             description "none";\r
517         }\r
518         container actual-equipment {\r
519             uses actual-equipment;\r
520             description "none";\r
521         }\r
522         uses tapi-common:global-class;\r
523         description "Represents any relevant physical thing. \r
524             Can be either field replaceable or not field replaceable.\r
525             Note: The model is currently constrained to inside plant.";\r
526     }\r
527     grouping holder {\r
528         container occupying-fru {\r
529             uses equipment-ref;\r
530             config false;\r
531             description "The FRU that is occupying the holder. \r
532                 A holder may be unoccupied. \r
533                 An FRU may occupy more hat one holder (using or blocking are intentionally not distinguished here).";\r
534         }\r
535         container expected-holder {\r
536             config false;\r
537             uses expected-holder;\r
538             description "none";\r
539         }\r
540         container actual-holder {\r
541             config false;\r
542             uses actual-holder;\r
543             description "none";\r
544         }\r
545         uses tapi-common:global-class;\r
546         description "Represents a space in an equipment in which another equipment can be fitted in the field.";\r
547     }\r
548     grouping access-port {\r
549         list connector-pin {\r
550             key 'connector-identification pin-identification equipment-uuid';\r
551             config false;\r
552             min-elements 1;\r
553             uses connector-pin-address;\r
554             description "The list of Pins that support the AccessPort.";\r
555         }\r
556         uses tapi-common:global-class;\r
557         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
558             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
559     }\r
560     grouping physical-span {\r
561         list access-port {\r
562             uses access-port-ref;\r
563             key "device-uuid access-port-uuid";\r
564             config false;\r
565             min-elements 2;\r
566             max-elements 2;\r
567             description "none";\r
568         }\r
569         list abstract-strand {\r
570             key 'local-id';\r
571             config false;\r
572             uses abstract-strand;\r
573             description "Both the serial segments that form an end-end strand and the parallel end-end strands.";\r
574         }\r
575         uses tapi-common:global-class;\r
576         description "An adjacency between AccessPorts. \r
577             The adjacency is supported by a group of strands between pins of the AccessPorts.\r
578             This is a physical abstraction.";\r
579     }\r
580     grouping abstract-strand {\r
581         list adjacent-strand {\r
582                 uses abstract-strand-ref;\r
583                 key "physical-span-uuid abstract-strand-local-id";\r
584             config false;\r
585             description "none";\r
586         }\r
587         list spliced-strand {\r
588                 uses abstract-strand-ref;\r
589                 key "physical-span-uuid abstract-strand-local-id";\r
590             config false;\r
591             max-elements 2;\r
592             description "none";\r
593         }\r
594         list connector-pin {\r
595             key 'connector-identification pin-identification equipment-uuid';\r
596             config false;\r
597             max-elements 2;\r
598             uses connector-pin-address;\r
599             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
600                 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
601                 In the essential model these Pins would be on connectors that plug in to connectors on Equipments.\r
602                 The AbstractStrand is extended to the pins of the AccessPort which are the Pins on the Connectors of the Equipment.\r
603                 In some cases it may not be relevant to represent the pin detail and hence the reference is to a connector alone.";\r
604         }\r
605         list strand-media-characteristics {\r
606             key 'value-name';\r
607             config false;\r
608             uses tapi-common:name-and-value;\r
609             description "Relevant physical properties of the abstract strand.";\r
610         }\r
611         uses tapi-common:local-class;\r
612         description "This object represents an abstraction of one or more strands in series that provides sufficient detail to enable appropriate engineering.\r
613             A strand represents a continuous long, thin piece of a medium such as glass fiber or copper wire.\r
614             In this model a Strand:\r
615             - a strand has two ends\r
616             - a splice can only be between 2 strands.\r
617             - the end of a strand may have a splice, a connector or be hidden\r
618             - only one end can be hidden in an equipment\r
619             - where a cable has more than two end each strand only goes between two of the ends\r
620             This model does NOT account for multiple copper strands being spliced.";\r
621     }\r
622     grouping device {\r
623         list equipment {\r
624             key 'uuid';\r
625             config false;\r
626             uses equipment;\r
627             description "none";\r
628         }\r
629         list access-port {\r
630             key 'uuid';\r
631             config false;\r
632             uses access-port;\r
633             description "none";\r
634         }\r
635         uses tapi-common:global-class;\r
636         description "A logical grouping of Equipments and AccessPorts that are closely located and form a support a coherent system of related functions.";\r
637     }\r
638     grouping physical-context {\r
639         list device {\r
640             key 'uuid';\r
641             config false;\r
642             uses device;\r
643             description "none";\r
644         }\r
645         list physical-span {\r
646             key 'uuid';\r
647             config false;\r
648             uses physical-span;\r
649             description "none";\r
650         }\r
651         uses tapi-common:global-class;\r
652         description "none";\r
653     }\r
654     grouping supporting-physical-span {\r
655         container physical-span {\r
656             uses physical-span-ref;\r
657             description "none";\r
658         }\r
659         description "none";\r
660     }\r
661     grouping supporting-access-port {\r
662         container access-port {\r
663             uses access-port-ref;\r
664             description "none";\r
665         }\r
666         description "none";\r
667     }\r
668 \r
669     /**************************\r
670     * package interfaces\r
671     **************************/ \r
672     rpc get-device-list {\r
673         description "none";\r
674         output {\r
675             list device {\r
676                 key 'uuid';\r
677                 uses device;\r
678                 description "none";\r
679             }\r
680         }\r
681     }\r
682     rpc get-physical-span-list {\r
683         description "none";\r
684         output {\r
685             list physical-span {\r
686                 key 'uuid';\r
687                 uses physical-span;\r
688                 description "none";\r
689             }\r
690         }\r
691     }\r
692     rpc get-device {\r
693         description "none";\r
694         input {\r
695             leaf uuid {\r
696                 type tapi-common:uuid;\r
697                 description "UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable.\r
698                     An UUID carries no semantics with respect to the purpose or state of the entity.\r
699                     UUID here uses string representation as defined in RFC 4122.  The canonical representation uses lowercase characters.\r
700                     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
701                     Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\r
702             }\r
703         }\r
704         output {\r
705             container device {\r
706                 uses device;\r
707                 description "none";\r
708             }\r
709         }\r
710     }\r
711     rpc get-physical-span {\r
712         description "none";\r
713         input {\r
714             leaf uuid {\r
715                 type tapi-common:uuid;\r
716                 description "UUID: An identifier that is universally unique within an identifier space, where the identifier space is itself globally unique, and immutable.\r
717                     An UUID carries no semantics with respect to the purpose or state of the entity.\r
718                     UUID here uses string representation as defined in RFC 4122.  The canonical representation uses lowercase characters.\r
719                     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
720                     Example of a UUID in string representation: f81d4fae-7dec-11d0-a765-00a0c91e6bf6";\r
721             }\r
722         }\r
723         output {\r
724             container physical-span {\r
725                 uses physical-span;\r
726                 description "none";\r
727             }\r
728         }\r
729     }\r
730 \r
731 }\r