/* * * Copyright 2017 RIFT.IO Inc * * 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. * * */ module rw-ro-account { namespace "http://riftio.com/ns/riftware-1.0/rw-ro-account"; prefix "rw-ro-account"; import ietf-yang-types { prefix "yang"; } import rw-project { prefix "rw-project"; } import mano-types { prefix "manotypes"; } revision 2017-05-15 { description "Initial revision."; } typedef resource-orchestrator-account-type { description "RO account type"; type enumeration { enum rift-ro; enum openmano; } } typedef connection-status { description "Connection status for the RO account"; type enumeration { enum unknown; enum validating; enum success; enum failure; } } augment "/rw-project:project" { container ro-account { list account { key "name"; description "Configure RO Accounts"; leaf name { type string; } leaf ro-account-type { type resource-orchestrator-account-type; } choice resource-orchestrator { description "The resource orchestrator to use by the Launchpad"; case openmano { description "Use OpenMano as RO"; container openmano { leaf host { type string; default "localhost"; } leaf port { type uint16; default 9090; } leaf tenant-id { type string { length "36"; } mandatory true; } } } } } } } augment "/rw-project:project" { container ro-account-state { config false; list account { key "name"; description "RO Account Operational State"; leaf name { type string; } container connection-status { leaf status { type connection-status; } leaf details { type string; } } container instance-ref-count{ leaf count { type uint16; description "No of NSD that got instantiated using this RO account"; } } container datacenters { list datacenters { key "name"; leaf uuid { description "The UUID of the data center"; type yang:uuid; } leaf name { description "The name of the data center"; type string; } leaf datacenter-type { description "The type for the data center"; type manotypes:cloud-account-type; } } } container config-data{ leaf ro-account-type { default "rift"; type string; } } } } } rpc update-ro-account-status { description "update ro account connection status"; input { leaf ro-account { mandatory true; description "The RO account name to update connection status for"; type string; } uses manotypes:rpc-project-name; } } }