summaryrefslogtreecommitdiffstats
path: root/appc-oam/appc-oam-model/src/main/yang/appc-oam.yang
blob: 03675c8f230f3a8a671901a8979cddacfbab6c5c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
/*-
 * ============LICENSE_START=======================================================
 * ONAP : APPC
 * ================================================================================
 * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
 * ================================================================================
 * Copyright (C) 2017 Amdocs
 * =============================================================================
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 * 
 *      http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 * ECOMP is a trademark and service mark of AT&T Intellectual Property.
 * ============LICENSE_END=========================================================
 */

/*
 * Yang model for the OAM component of Application Controller (APP-C) component of ONAP
 *
 * This model is used to define the data and services of the OAM component of APP-C.
 *
 * The services exposed by this component are:
 *
 * get-metrics:
 *    Used to retrieve current metric data from APP-C.
 *
 */

module appc-oam {

    yang-version 1;
    namespace "org:openecomp:appc:oam";
    prefix appc-oam;
    organization "Copyright 2017 AT&T Intellectual Property.";

    description
        "Defines the services and request/response requirements for the
        APP-C OAM component.";

    /*
     * Note, the revision changes the package name of the generated java code.  Do not
     * change the revision unless you also update all references to the bindings.
     */
    revision "2017-03-03" {
        description
                "APP-C OAM interface version 1.5.00";
    }

    grouping common-header {
        description "A common header for all APP-C requests";
        container common-header {
            description "A common header for all APP-C requests";

            leaf originator-id {
                description "originator-id an identifier of the calling system which can be
                                    used addressing purposes, i.e. returning asynchronous response
                                    to the proper destination over UEB (especially in case of multiple
                                    consumers of APP-C APIs)";
                type string;
                mandatory true;
            }

            leaf request-id {
                description "UUID for the request ID. An OSS/BSS identifier for the request
                                that caused the current action. Multiple API calls may be made
                                with the same request-id The request-id shall be recorded throughout
                                the operations on a single request";
                type string;
                mandatory true;
            }

            container flags {
                 leaf request-timeout {
                     description "The allowed time in seconds to perform the request.  If the request cannot
                                  be completed in this amount of time, the request is aborted with OAM state set
                                  to Error.  If set to zero, no timeout exists and the request will be handled
                                  continue until operation completes or fails.  If omitted, the default value of
                                  20 is used.";
                      type uint16;
                      mandatory false;
                 }
            }
        }
    }

    grouping status {
        description "The specific response codes are to be aligned with ASDC reference
                doc (main table removed to avoid duplication and digression from
                main table). See ASDC and ECOMP Distribution Consumer Interface
                Agreement";
        container status {
            description "The specific response codes are to be aligned with ASDC reference
                        doc (main table removed to avoid duplication and digression from
                        main table). See ASDC and ECOMP Distribution Consumer Interface
                        Agreement";
            leaf code {
                description "Response code";
                type uint16;
                mandatory true;
            }
            leaf message {
                description "Response message";
                type string;
                mandatory true;
            }
        }
    }

    typedef appc-state {
        type enumeration {
            enum "Error";
            enum "Unknown";
            enum "Not_Instantiated"; // Equivalent to Bundle's UNINSTALL
            enum "Instantiated"; // Equivalent to Bundle's INSTALL
            enum "Starting";
            enum "Started";
            enum "EnteringMaintenanceMode";
            enum "MaintenanceMode";
            enum "Stopping";
            enum "Stopped";
            enum "Restarting";
        }
        description "Refers to the various states an APP-C instance can be in";
    }

    rpc get-metrics {
        description "An operation to get list of registered Metrics in APP-C";
        output {
            list metrics {
                key kpi-name;
                description "KPI metrics definition";
                leaf kpi-name {
                    description "metrics name";
                    type string;
                    mandatory true;
                }
                leaf last-reset-time {
                    description "Last reset time";
                    type string;
                    mandatory true;
                }
                list kpi-values {
                    key name;
                    description "KPI properties in form of key value pairs";
                    leaf name {
                        description "KPI property name";
                        type string;
                    }
                    leaf value {
                        description "KPI property value";
                        type string;
                    }
                }
            }
        }
    }

    rpc maintenance-mode {
        description "An operation that disables appc-provider-lcm so that it no longer accepts LCM request.  This
                         operation has no impact on queued and currently executing LCM request.  A notification will be
                         sent out indicating the APP-C is idle once all LCM request have completed execution.";
        input {
           uses common-header;
        }
        output {
            uses common-header;
            uses status;
        }
    }

    rpc start {
        description "An operation that enables appc-provider-lcm so that it can begin to accepts LCM request. This
                     includes starting any appc bundles which are stopped.";
        input {
            uses common-header;
        }
        output {
            uses common-header;
            uses status;
        }
    }

    rpc get-appc-state {
        description "Returns the current state of the running APPC LCM instance";
        output {
            leaf state {
                 type appc-state;
            }
        }
    }

    rpc stop {
        description "Force stops the APPC bundles that accept LCM requests";
        // Note: OAM feature bundles and it's dependencies (Appc-common and LifeCycle Manager) would continue to run
        input {
            uses common-header;
        }
        output {
            uses common-header;
            uses status;
        }
    }

     rpc restart {
         description "An operation that restarts APPC by invoking the stop rpc followed by the start rpc.";
         input {
             uses common-header;
         }
         output {
             uses common-header;
             uses status;
         }
     }
}