56d2e70e0672030d53e2146dc0c2fc6686a08cd9
[appc.git] / appc-provider / appc-provider-bundle / src / main / yang / appc-provider-lcm.yang
1 /*-
2  * ============LICENSE_START=======================================================
3  * ONAP : APPC
4  * ================================================================================
5  * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Copyright (C) 2017 Amdocs
8  * =============================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  * 
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  * 
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * 
21  * ECOMP is a trademark and service mark of AT&T Intellectual Property.
22  * ============LICENSE_END=========================================================
23  */
24
25 module appc-provider-lcm-impl {
26
27     yang-version 1;
28     namespace "org:onap:appc:provider:lcm:impl";
29     prefix "appc-provider-lcm-impl";
30
31     import config { prefix config; revision-date 2013-04-05; }
32     import opendaylight-md-sal-binding { prefix mdsal; revision-date 2013-10-28; }
33
34      description
35         "This module contains the base YANG definitions for
36         appc-provider-lcm implementation.";
37
38     revision "2016-01-08" {
39         description
40             "Initial revision.";
41     }
42
43     // This is the definition of the service implementation as a module identity.
44     identity appc-provider-lcm-impl {
45             base config:module-type;
46
47             // Specifies the prefix for generated java classes.
48             config:java-name-prefix AppcProviderLcm;
49     }
50
51     // Augments the 'configuration' choice node under modules/module.
52     // We consume the three main services, RPCs, DataStore, and Notifications
53     augment "/config:modules/config:module/config:configuration" {
54         case appc-provider-lcm-impl {
55             when "/config:modules/config:module/config:type = 'appc-provider-lcm-impl'";
56
57             container rpc-registry {
58                 uses config:service-ref {
59                     refine type {
60                         mandatory true;
61                         config:required-identity mdsal:binding-rpc-registry;
62                     }
63                 }
64             }
65
66             container notification-service {
67                 uses config:service-ref {
68                     refine type {
69                         mandatory true;
70                         config:required-identity mdsal:binding-notification-service;
71                     }
72                 }
73             }
74
75             container data-broker {
76                 uses config:service-ref {
77                     refine type {
78                         mandatory false;
79                         config:required-identity mdsal:binding-async-data-broker;
80                     }
81                 }
82             }
83         }
84     }
85 }