blob: 03675c8f230f3a8a671901a8979cddacfbab6c5c [file] [log] [blame]
Patrick Brady10bba352017-07-19 12:09:28 -07001/*-
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
Patrick Bradyc7d00752017-06-01 10:45:37 -070025/*
26 * Yang model for the OAM component of Application Controller (APP-C) component of ONAP
27 *
28 * This model is used to define the data and services of the OAM component of APP-C.
29 *
30 * The services exposed by this component are:
31 *
32 * get-metrics:
33 * Used to retrieve current metric data from APP-C.
34 *
35 */
36
37module appc-oam {
38
39 yang-version 1;
40 namespace "org:openecomp:appc:oam";
41 prefix appc-oam;
42 organization "Copyright 2017 AT&T Intellectual Property.";
43
44 description
45 "Defines the services and request/response requirements for the
46 APP-C OAM component.";
47
48 /*
49 * Note, the revision changes the package name of the generated java code. Do not
50 * change the revision unless you also update all references to the bindings.
51 */
52 revision "2017-03-03" {
53 description
54 "APP-C OAM interface version 1.5.00";
55 }
56
57 grouping common-header {
58 description "A common header for all APP-C requests";
59 container common-header {
60 description "A common header for all APP-C requests";
61
62 leaf originator-id {
63 description "originator-id an identifier of the calling system which can be
64 used addressing purposes, i.e. returning asynchronous response
65 to the proper destination over UEB (especially in case of multiple
66 consumers of APP-C APIs)";
67 type string;
68 mandatory true;
69 }
70
71 leaf request-id {
72 description "UUID for the request ID. An OSS/BSS identifier for the request
73 that caused the current action. Multiple API calls may be made
74 with the same request-id The request-id shall be recorded throughout
75 the operations on a single request";
76 type string;
77 mandatory true;
78 }
79
beili.zhou9adb43f2017-08-11 22:16:05 -040080 container flags {
81 leaf request-timeout {
82 description "The allowed time in seconds to perform the request. If the request cannot
83 be completed in this amount of time, the request is aborted with OAM state set
84 to Error. If set to zero, no timeout exists and the request will be handled
85 continue until operation completes or fails. If omitted, the default value of
86 20 is used.";
87 type uint16;
88 mandatory false;
89 }
90 }
Patrick Bradyc7d00752017-06-01 10:45:37 -070091 }
92 }
93
94 grouping status {
95 description "The specific response codes are to be aligned with ASDC reference
96 doc (main table removed to avoid duplication and digression from
97 main table). See ASDC and ECOMP Distribution Consumer Interface
98 Agreement";
99 container status {
100 description "The specific response codes are to be aligned with ASDC reference
101 doc (main table removed to avoid duplication and digression from
102 main table). See ASDC and ECOMP Distribution Consumer Interface
103 Agreement";
104 leaf code {
105 description "Response code";
106 type uint16;
107 mandatory true;
108 }
109 leaf message {
110 description "Response message";
111 type string;
112 mandatory true;
113 }
114 }
115 }
116
beili.zhou9adb43f2017-08-11 22:16:05 -0400117 typedef appc-state {
118 type enumeration {
119 enum "Error";
120 enum "Unknown";
121 enum "Not_Instantiated"; // Equivalent to Bundle's UNINSTALL
122 enum "Instantiated"; // Equivalent to Bundle's INSTALL
123 enum "Starting";
124 enum "Started";
125 enum "EnteringMaintenanceMode";
126 enum "MaintenanceMode";
127 enum "Stopping";
128 enum "Stopped";
129 enum "Restarting";
130 }
131 description "Refers to the various states an APP-C instance can be in";
132 }
133
Patrick Bradyc7d00752017-06-01 10:45:37 -0700134 rpc get-metrics {
135 description "An operation to get list of registered Metrics in APP-C";
136 output {
137 list metrics {
138 key kpi-name;
139 description "KPI metrics definition";
140 leaf kpi-name {
141 description "metrics name";
142 type string;
143 mandatory true;
144 }
145 leaf last-reset-time {
146 description "Last reset time";
147 type string;
148 mandatory true;
149 }
150 list kpi-values {
151 key name;
152 description "KPI properties in form of key value pairs";
153 leaf name {
154 description "KPI property name";
155 type string;
156 }
157 leaf value {
158 description "KPI property value";
159 type string;
160 }
161 }
162 }
163 }
164 }
165
beili.zhou9adb43f2017-08-11 22:16:05 -0400166 rpc maintenance-mode {
Patrick Bradyc7d00752017-06-01 10:45:37 -0700167 description "An operation that disables appc-provider-lcm so that it no longer accepts LCM request. This
168 operation has no impact on queued and currently executing LCM request. A notification will be
beili.zhou9adb43f2017-08-11 22:16:05 -0400169 sent out indicating the APP-C is idle once all LCM request have completed execution.";
Patrick Bradyc7d00752017-06-01 10:45:37 -0700170 input {
171 uses common-header;
172 }
173 output {
174 uses common-header;
175 uses status;
176 }
177 }
178
179 rpc start {
beili.zhou9adb43f2017-08-11 22:16:05 -0400180 description "An operation that enables appc-provider-lcm so that it can begin to accepts LCM request. This
181 includes starting any appc bundles which are stopped.";
Patrick Bradyc7d00752017-06-01 10:45:37 -0700182 input {
beili.zhou9adb43f2017-08-11 22:16:05 -0400183 uses common-header;
Patrick Bradyc7d00752017-06-01 10:45:37 -0700184 }
185 output {
186 uses common-header;
187 uses status;
188 }
189 }
beili.zhou9adb43f2017-08-11 22:16:05 -0400190
191 rpc get-appc-state {
192 description "Returns the current state of the running APPC LCM instance";
193 output {
194 leaf state {
195 type appc-state;
196 }
197 }
198 }
199
200 rpc stop {
201 description "Force stops the APPC bundles that accept LCM requests";
202 // Note: OAM feature bundles and it's dependencies (Appc-common and LifeCycle Manager) would continue to run
203 input {
204 uses common-header;
205 }
206 output {
207 uses common-header;
208 uses status;
209 }
210 }
211
212 rpc restart {
213 description "An operation that restarts APPC by invoking the stop rpc followed by the start rpc.";
214 input {
215 uses common-header;
216 }
217 output {
218 uses common-header;
219 uses status;
220 }
221 }
Patrick Bradyc7d00752017-06-01 10:45:37 -0700222}