X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=rwlaunchpad%2Fplugins%2Fyang%2Frw-staging-mgmt.yang;fp=rwlaunchpad%2Fplugins%2Fyang%2Frw-staging-mgmt.yang;h=d5722cd263e6b6a1e62a18f452dc20abe92cb323;hb=6364d016e7f819903ff29a2ce160cb4cea61bf8f;hp=0000000000000000000000000000000000000000;hpb=c33673480c15d6e64402b547563640b2025a3cd6;p=osm%2FSO.git diff --git a/rwlaunchpad/plugins/yang/rw-staging-mgmt.yang b/rwlaunchpad/plugins/yang/rw-staging-mgmt.yang new file mode 100644 index 00000000..d5722cd2 --- /dev/null +++ b/rwlaunchpad/plugins/yang/rw-staging-mgmt.yang @@ -0,0 +1,153 @@ +/* + * + * 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-staging-mgmt.yang + * @author Varun Prasad + * @date 2016/09/21 + * @brief Pacakage Management Yang + */ + +module rw-staging-mgmt +{ + namespace "http://riftio.com/ns/riftware-1.0/rw-staging-mgmt"; + prefix "rw-staging-mgmt"; + + import ietf-yang-types { + prefix "yang"; + } + + import rw-pb-ext { + prefix "rwpb"; + } + + import rw-cli-ext { + prefix "rwcli"; + } + + import rw-cloud { + prefix "rwcloud"; + } + + import rwcal { + prefix "rwcal"; + } + + import mano-types { + prefix "manotypes"; + } + + revision 2016-06-01 { + description + "Initial revision."; + } + + typedef staging-area-status { + type enumeration { + enum LIVE; + enum EXPIRED; + } + } + + grouping staging-area-config { + leaf package-type { + mandatory true; + type manotypes:package-type; + } + + leaf name { + description "name of the binary"; + type string; + } + + leaf validity-time { + description "lifetime of the staging area (in seconds)"; + type uint64; + default 3600; + } + } + + grouping staging-area-meta { + + leaf status { + description "The status of the staging area"; + type staging-area-status; + } + + leaf created-time { + description "start time (unix epoch)"; + type uint32; + } + + leaf deleted-time { + description "stop time (unix epoch)"; + type uint32; + } + + leaf size { + description "size of the binary in bytes"; + type uint64; + } + + leaf path { + description "Path of the staging area"; + type string; + } + + } + + container staging-areas { + rwpb:msg-new StagingAreas; + description "Staging Areas"; + config false; + + list staging-area { + rwpb:msg-new StagingArea; + key "area-id"; + + leaf area-id { + description "Staging Area ID"; + type string; + } + + uses staging-area-config; + uses staging-area-meta; + } + } + + + rpc create-staging-area { + description "Creates a staging area for the upload."; + + input { + uses staging-area-config; + } + + output { + leaf port { + type uint32; + } + + leaf endpoint { + description "Endpoint that contains all the package-related data"; + type string; + } + } + } +} \ No newline at end of file