--- /dev/null
+
+/*
+ *
+ * Copyright 2016 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.
+ *
+ *
+ */
+
+
+
+/**
+ * @file rw-launchpad.yang
+ * @author Joshua Downer
+ * @date 2015/09/14
+ * @brief Launchpad Yang
+ */
+
+module rw-launchpad
+{
+ namespace "http://riftio.com/ns/riftware-1.0/rw-launchpad";
+ prefix "rw-launchpad";
+
+ import ietf-yang-types {
+ prefix "yang";
+ }
+
+ import rw-pb-ext {
+ prefix "rwpb";
+ }
+
+ import ietf-inet-types {
+ prefix "inet";
+ }
+
+
+ import rw-cli-ext {
+ prefix "rwcli";
+ }
+
+ import rw-yang-types {
+ prefix "rwt";
+ }
+
+ import rwcal {
+ prefix "rwcal";
+ }
+
+ import rw-vnfd {
+ prefix "rw-vnfd";
+ }
+
+ import vld {
+ prefix "vld";
+ }
+
+ import rw-nsd {
+ prefix "rw-nsd";
+ }
+
+ import rw-cloud {
+ prefix "rw-cloud";
+ }
+
+ import rw-nsr {
+ prefix "rw-nsr";
+ }
+
+ import rw-conman {
+ prefix "rw-conman";
+ }
+
+ import rw-config-agent {
+ prefix "rw-config-agent";
+ }
+
+ import rw-monitor {
+ prefix "rw-monitor";
+ }
+
+ import rw-image-mgmt {
+ prefix "rw-image-mgmt";
+ }
+
+ revision 2015-09-14 {
+ description
+ "Initial revision.";
+ }
+
+ container datacenters {
+ description "OpenMano data centers";
+
+ rwpb:msg-new DataCenters;
+ config false;
+
+ list cloud-accounts {
+ description
+ "A list of OpenMano cloud accounts that have data centers associated
+ with them";
+
+ rwpb:msg-new CloudAccount;
+ key "name";
+
+ leaf name {
+ description "The name of the cloud account";
+ type leafref {
+ path "/rw-cloud:cloud/rw-cloud:account/rw-cloud:name";
+ }
+ }
+
+ list datacenters {
+ rwpb:msg-new DataCenter;
+ leaf uuid {
+ description "The UUID of the data center";
+ type yang:uuid;
+ }
+
+ leaf name {
+ description "The name of the data center";
+ type string;
+ }
+ }
+ }
+ }
+
+ typedef resource-orchestrator-account-type {
+ description "RO account type";
+ type enumeration {
+ enum rift-ro;
+ enum openmano;
+ }
+ }
+
+ container resource-orchestrator {
+ rwpb:msg-new ResourceOrchestrator;
+
+ leaf name {
+ type string;
+ }
+
+ leaf account-type {
+ type resource-orchestrator-account-type;
+ }
+
+ choice resource-orchestrator {
+ description
+ "The resource orchestrator to use by the Launchpad";
+ default rift-ro;
+
+ case rift-ro {
+ description
+ "Use the RIFT.io resource orchestrator";
+
+ container rift-ro {
+ leaf rift-ro {
+ type empty;
+ }
+ }
+ }
+
+ 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;
+ }
+ }
+ }
+ }
+ }
+
+ container launchpad-config {
+ leaf public-ip {
+ description
+ "An IP address that can, at least, be reached by the host that the
+ launchpad is running on. This is not a mandatory but is required for
+ alarms to function correctly.";
+ type string;
+ }
+ }
+}