blob: a7f871bd9751f4cdea58084737fd40c271cf1595 [file] [log] [blame]
Andrea Campanellaca1bd672018-12-19 12:01:10 +01001/*
2 * Copyright 2018-present Open Networking Foundation
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16package org.onosproject.models.openconfigodtn;
17
18import com.google.common.collect.ImmutableMap;
19import org.onosproject.yang.AbstractYangModelRegistrator;
20import org.onosproject.yang.gen.v1.ianaiftype.rev20170119.IanaIfType;
21import org.onosproject.yang.gen.v1.openconfigalarmtypes.rev20180116.OpenconfigAlarmTypes;
22import org.onosproject.yang.gen.v1.openconfigifethernet.rev20180410.OpenconfigIfEthernet;
23import org.onosproject.yang.gen.v1.openconfiginterfaces.rev20180424.OpenconfigInterfaces;
24import org.onosproject.yang.gen.v1.openconfigplatform.rev20180603.OpenconfigPlatform;
25import org.onosproject.yang.gen.v1.openconfigplatformlinecard.rev20170803.OpenconfigPlatformLinecard;
26import org.onosproject.yang.gen.v1.openconfigplatformport.rev20180120.OpenconfigPlatformPort;
27import org.onosproject.yang.gen.v1.openconfigplatformtransceiver.rev20180515.OpenconfigPlatformTransceiver;
28import org.onosproject.yang.gen.v1.openconfigplatformtypes.rev20180505.OpenconfigPlatformTypes;
29import org.onosproject.yang.gen.v1.openconfigterminaldevice.rev20170708.OpenconfigTerminalDevice;
30import org.onosproject.yang.gen.v1.openconfigtransportlinecommon.rev20170908.OpenconfigTransportLineCommon;
31import org.onosproject.yang.gen.v1.openconfigtransportlineprotection.rev20170908.OpenconfigTransportLineProtection;
32import org.onosproject.yang.gen.v1.openconfigtransporttypes.rev20180516.OpenconfigTransportTypes;
33import org.onosproject.yang.gen.v1.openconfigtypes.rev20180505.OpenconfigTypes;
34import org.onosproject.yang.gen.v1.openconfigyangtypes.rev20180424.OpenconfigYangTypes;
35import org.onosproject.yang.gen.v11.ietfinterfaces.rev20180220.IetfInterfaces;
36import org.onosproject.yang.model.DefaultYangModuleId;
37import org.onosproject.yang.model.YangModuleId;
38import org.onosproject.yang.runtime.AppModuleInfo;
39import org.onosproject.yang.runtime.DefaultAppModuleInfo;
40import org.osgi.service.component.annotations.Component;
41
42import java.util.Map;
43
44/**
45 * Registrator for Openconfig Models with version as per ODTN RD.
46 */
47@Component(immediate = true)
48public class OpenConfigOdtnModelRegistrator extends AbstractYangModelRegistrator {
49
50 public OpenConfigOdtnModelRegistrator() {
51 super(OpenConfigOdtnModelRegistrator.class, getAppInfo());
52 }
53
54
55 @SuppressWarnings("checkstyle:MethodLength")
56 private static Map<YangModuleId, AppModuleInfo> getAppInfo() {
57
58 return ImmutableMap.<YangModuleId, AppModuleInfo>builder()
59 .put(new DefaultYangModuleId("iana-if-type", "2017-01-19"),
60 new DefaultAppModuleInfo(IanaIfType.class, null))
61 .put(new DefaultYangModuleId("ietf-interfaces", "2018-02-20"),
62 new DefaultAppModuleInfo(IetfInterfaces.class, null))
63 .put(new DefaultYangModuleId("openconfig-alarm-types", "2019-01-16"),
64 new DefaultAppModuleInfo(OpenconfigAlarmTypes.class, null))
65// .put(new DefaultYangModuleId("openconfig-extensions", "2017-04-11"),
66// new DefaultAppModuleInfo(OpenconfigExte.class, null))
67 .put(new DefaultYangModuleId("openconfig-if-ethernet", "2018-04-10"),
68 new DefaultAppModuleInfo(OpenconfigIfEthernet.class, null))
69 .put(new DefaultYangModuleId("openconfig-interfaces", "2018-04-24"),
70 new DefaultAppModuleInfo(OpenconfigInterfaces.class, null))
71 .put(new DefaultYangModuleId("openconfig-platform-linecard", "2017-08-03"),
72 new DefaultAppModuleInfo(OpenconfigPlatformLinecard.class, null))
73 .put(new DefaultYangModuleId("openconfig-platform-port", "2018-01-20"),
74 new DefaultAppModuleInfo(OpenconfigPlatformPort.class, null))
75 .put(new DefaultYangModuleId("openconfig-platform-transceiver", "2018-05-15"),
76 new DefaultAppModuleInfo(OpenconfigPlatformTransceiver.class, null))
77 .put(new DefaultYangModuleId("openconfig-platform-types", "2018-05-05"),
78 new DefaultAppModuleInfo(OpenconfigPlatformTypes.class, null))
79 .put(new DefaultYangModuleId("openconfig-platform", "2018-06-03"),
80 new DefaultAppModuleInfo(OpenconfigPlatform.class, null))
81 .put(new DefaultYangModuleId("openconfig-terminal-device", "2017-07-08"),
82 new DefaultAppModuleInfo(OpenconfigTerminalDevice.class, null))
83 .put(new DefaultYangModuleId("openconfig-transport-line-common", "2017-09-08"),
84 new DefaultAppModuleInfo(OpenconfigTransportLineCommon.class, null))
85 .put(new DefaultYangModuleId("openconfig-transport-line-protection", "2017-09-08"),
86 new DefaultAppModuleInfo(OpenconfigTransportLineProtection.class, null))
87 .put(new DefaultYangModuleId("openconfig-transport-types", "2018-05-16"),
88 new DefaultAppModuleInfo(OpenconfigTransportTypes.class, null))
89 .put(new DefaultYangModuleId("openconfig-types", "2018-05-05"),
90 new DefaultAppModuleInfo(OpenconfigTypes.class, null))
91 .put(new DefaultYangModuleId("openconfig-yang-types", "2018-04-24"),
92 new DefaultAppModuleInfo(OpenconfigYangTypes.class, null))
93 .build();
94 }
95}