/*- * ============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; } } }