blob: 03675c8f230f3a8a671901a8979cddacfbab6c5c [file] [log] [blame]
/*-
* ============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;
}
}
}