You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bf...@apache.org on 2013/11/08 19:08:29 UTC

[13/76] [abbrv] CLOUSTACK-5099: Utils.py-has-wrong-reference, cleaned it. As well added Uniform naming convention Signed-off-by: SrikanteswaraRao Talluri

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/listVPCs.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/listVPCs.py b/tools/marvin/build/lib/marvin/cloudstackAPI/listVPCs.py
new file mode 100644
index 0000000..51a3b4c
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/listVPCs.py
@@ -0,0 +1,426 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Lists VPCs"""
+from baseCmd import *
+from baseResponse import *
+class listVPCsCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """list resources by account. Must be used with the domainId parameter."""
+        self.account = None
+        """list by cidr of the VPC. All VPC guest networks' cidrs should be within this CIDR"""
+        self.cidr = None
+        """List by display text of the VPC"""
+        self.displaytext = None
+        """list only resources belonging to the domain specified"""
+        self.domainid = None
+        """list VPC by id"""
+        self.id = None
+        """defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves."""
+        self.isrecursive = None
+        """List by keyword"""
+        self.keyword = None
+        """If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false"""
+        self.listall = None
+        """list by name of the VPC"""
+        self.name = None
+        """"""
+        self.page = None
+        """"""
+        self.pagesize = None
+        """list objects by project"""
+        self.projectid = None
+        """list VPCs by restartRequired option"""
+        self.restartrequired = None
+        """list VPCs by state"""
+        self.state = None
+        """list VPC supporting certain services"""
+        self.supportedservices = []
+        """List resources by tags (key/value pairs)"""
+        self.tags = []
+        """list by ID of the VPC offering"""
+        self.vpcofferingid = None
+        """list by zone"""
+        self.zoneid = None
+        self.required = []
+
+class listVPCsResponse (baseResponse):
+    def __init__(self):
+        """the id of the VPC"""
+        self.id = None
+        """the owner of the VPC"""
+        self.account = None
+        """the cidr the VPC"""
+        self.cidr = None
+        """the date this VPC was created"""
+        self.created = None
+        """an alternate display text of the VPC."""
+        self.displaytext = None
+        """the domain name of the owner"""
+        self.domain = None
+        """the domain id of the VPC owner"""
+        self.domainid = None
+        """the name of the VPC"""
+        self.name = None
+        """the network domain of the VPC"""
+        self.networkdomain = None
+        """the project name of the VPC"""
+        self.project = None
+        """the project id of the VPC"""
+        self.projectid = None
+        """true VPC requires restart"""
+        self.restartrequired = None
+        """state of the VPC. Can be Inactive/Enabled"""
+        self.state = None
+        """vpc offering id the VPC is created from"""
+        self.vpcofferingid = None
+        """zone id of the vpc"""
+        self.zoneid = None
+        """the name of the zone the VPC belongs to"""
+        self.zonename = None
+        """the list of networks belongign to the VPC"""
+        self.network = []
+        """the list of supported services"""
+        self.service = []
+        """the list of resource tags associated with the project"""
+        self.tags = []
+
+class capability:
+    def __init__(self):
+        """"can this service capability value can be choosable while creatine network offerings"""
+        self.canchooseservicecapability = None
+        """"the capability name"""
+        self.name = None
+        """"the capability value"""
+        self.value = None
+
+class provider:
+    def __init__(self):
+        """"uuid of the network provider"""
+        self.id = None
+        """"true if individual services can be enabled/disabled"""
+        self.canenableindividualservice = None
+        """"the destination physical network"""
+        self.destinationphysicalnetworkid = None
+        """"the provider name"""
+        self.name = None
+        """"the physical network this belongs to"""
+        self.physicalnetworkid = None
+        """"services for this provider"""
+        self.servicelist = None
+        """"state of the network provider"""
+        self.state = None
+
+class service:
+    def __init__(self):
+        """"the service name"""
+        self.name = None
+        """"the list of capabilities"""
+        self.capability = []
+        """"can this service capability value can be choosable while creatine network offerings"""
+        self.canchooseservicecapability = None
+        """"the capability name"""
+        self.name = None
+        """"the capability value"""
+        self.value = None
+        """"the service provider name"""
+        self.provider = []
+        """"uuid of the network provider"""
+        self.id = None
+        """"true if individual services can be enabled/disabled"""
+        self.canenableindividualservice = None
+        """"the destination physical network"""
+        self.destinationphysicalnetworkid = None
+        """"the provider name"""
+        self.name = None
+        """"the physical network this belongs to"""
+        self.physicalnetworkid = None
+        """"services for this provider"""
+        self.servicelist = None
+        """"state of the network provider"""
+        self.state = None
+
+class capability:
+    def __init__(self):
+        """"can this service capability value can be choosable while creatine network offerings"""
+        self.canchooseservicecapability = None
+        """"the capability name"""
+        self.name = None
+        """"the capability value"""
+        self.value = None
+
+class provider:
+    def __init__(self):
+        """"uuid of the network provider"""
+        self.id = None
+        """"true if individual services can be enabled/disabled"""
+        self.canenableindividualservice = None
+        """"the destination physical network"""
+        self.destinationphysicalnetworkid = None
+        """"the provider name"""
+        self.name = None
+        """"the physical network this belongs to"""
+        self.physicalnetworkid = None
+        """"services for this provider"""
+        self.servicelist = None
+        """"state of the network provider"""
+        self.state = None
+
+class tags:
+    def __init__(self):
+        """"the account associated with the tag"""
+        self.account = None
+        """"customer associated with the tag"""
+        self.customer = None
+        """"the domain associated with the tag"""
+        self.domain = None
+        """"the ID of the domain associated with the tag"""
+        self.domainid = None
+        """"tag key name"""
+        self.key = None
+        """"the project name where tag belongs to"""
+        self.project = None
+        """"the project id the tag belongs to"""
+        self.projectid = None
+        """"id of the resource"""
+        self.resourceid = None
+        """"resource type"""
+        self.resourcetype = None
+        """"tag value"""
+        self.value = None
+
+class network:
+    def __init__(self):
+        """"the id of the network"""
+        self.id = None
+        """"the owner of the network"""
+        self.account = None
+        """"ACL Id associated with the VPC network"""
+        self.aclid = None
+        """"acl type - access type to the network"""
+        self.acltype = None
+        """"Broadcast domain type of the network"""
+        self.broadcastdomaintype = None
+        """"broadcast uri of the network. This parameter is visible to ROOT admins only"""
+        self.broadcasturi = None
+        """"list networks available for vm deployment"""
+        self.canusefordeploy = None
+        """"Cloudstack managed address space, all CloudStack managed VMs get IP address from CIDR"""
+        self.cidr = None
+        """"an optional field, whether to the display the network to the end user or not."""
+        self.displaynetwork = None
+        """"the displaytext of the network"""
+        self.displaytext = None
+        """"the first DNS for the network"""
+        self.dns1 = None
+        """"the second DNS for the network"""
+        self.dns2 = None
+        """"the domain name of the network owner"""
+        self.domain = None
+        """"the domain id of the network owner"""
+        self.domainid = None
+        """"the network's gateway"""
+        self.gateway = None
+        """"the cidr of IPv6 network"""
+        self.ip6cidr = None
+        """"the gateway of IPv6 network"""
+        self.ip6gateway = None
+        """"true if network is default, false otherwise"""
+        self.isdefault = None
+        """"list networks that are persistent"""
+        self.ispersistent = None
+        """"true if network is system, false otherwise"""
+        self.issystem = None
+        """"the name of the network"""
+        self.name = None
+        """"the network's netmask"""
+        self.netmask = None
+        """"the network CIDR of the guest network configured with IP reservation. It is the summation of CIDR and RESERVED_IP_RANGE"""
+        self.networkcidr = None
+        """"the network domain"""
+        self.networkdomain = None
+        """"availability of the network offering the network is created from"""
+        self.networkofferingavailability = None
+        """"true if network offering is ip conserve mode enabled"""
+        self.networkofferingconservemode = None
+        """"display text of the network offering the network is created from"""
+        self.networkofferingdisplaytext = None
+        """"network offering id the network is created from"""
+        self.networkofferingid = None
+        """"name of the network offering the network is created from"""
+        self.networkofferingname = None
+        """"the physical network id"""
+        self.physicalnetworkid = None
+        """"the project name of the address"""
+        self.project = None
+        """"the project id of the ipaddress"""
+        self.projectid = None
+        """"related to what other network configuration"""
+        self.related = None
+        """"the network's IP range not to be used by CloudStack guest VMs and can be used for non CloudStack purposes"""
+        self.reservediprange = None
+        """"true network requires restart"""
+        self.restartrequired = None
+        """"true if network supports specifying ip ranges, false otherwise"""
+        self.specifyipranges = None
+        """"state of the network"""
+        self.state = None
+        """"true if users from subdomains can access the domain level network"""
+        self.subdomainaccess = None
+        """"the traffic type of the network"""
+        self.traffictype = None
+        """"the type of the network"""
+        self.type = None
+        """"The vlan of the network. This parameter is visible to ROOT admins only"""
+        self.vlan = None
+        """"VPC the network belongs to"""
+        self.vpcid = None
+        """"zone id of the network"""
+        self.zoneid = None
+        """"the name of the zone the network belongs to"""
+        self.zonename = None
+        """"the list of services"""
+        self.service = []
+        """"the service name"""
+        self.name = None
+        """"the list of capabilities"""
+        self.capability = []
+        """"can this service capability value can be choosable while creatine network offerings"""
+        self.canchooseservicecapability = None
+        """"the capability name"""
+        self.name = None
+        """"the capability value"""
+        self.value = None
+        """"the service provider name"""
+        self.provider = []
+        """"uuid of the network provider"""
+        self.id = None
+        """"true if individual services can be enabled/disabled"""
+        self.canenableindividualservice = None
+        """"the destination physical network"""
+        self.destinationphysicalnetworkid = None
+        """"the provider name"""
+        self.name = None
+        """"the physical network this belongs to"""
+        self.physicalnetworkid = None
+        """"services for this provider"""
+        self.servicelist = None
+        """"state of the network provider"""
+        self.state = None
+        """"the list of resource tags associated with network"""
+        self.tags = []
+        """"the account associated with the tag"""
+        self.account = None
+        """"customer associated with the tag"""
+        self.customer = None
+        """"the domain associated with the tag"""
+        self.domain = None
+        """"the ID of the domain associated with the tag"""
+        self.domainid = None
+        """"tag key name"""
+        self.key = None
+        """"the project name where tag belongs to"""
+        self.project = None
+        """"the project id the tag belongs to"""
+        self.projectid = None
+        """"id of the resource"""
+        self.resourceid = None
+        """"resource type"""
+        self.resourcetype = None
+        """"tag value"""
+        self.value = None
+
+class capability:
+    def __init__(self):
+        """"can this service capability value can be choosable while creatine network offerings"""
+        self.canchooseservicecapability = None
+        """"the capability name"""
+        self.name = None
+        """"the capability value"""
+        self.value = None
+
+class provider:
+    def __init__(self):
+        """"uuid of the network provider"""
+        self.id = None
+        """"true if individual services can be enabled/disabled"""
+        self.canenableindividualservice = None
+        """"the destination physical network"""
+        self.destinationphysicalnetworkid = None
+        """"the provider name"""
+        self.name = None
+        """"the physical network this belongs to"""
+        self.physicalnetworkid = None
+        """"services for this provider"""
+        self.servicelist = None
+        """"state of the network provider"""
+        self.state = None
+
+class service:
+    def __init__(self):
+        """"the service name"""
+        self.name = None
+        """"the list of capabilities"""
+        self.capability = []
+        """"can this service capability value can be choosable while creatine network offerings"""
+        self.canchooseservicecapability = None
+        """"the capability name"""
+        self.name = None
+        """"the capability value"""
+        self.value = None
+        """"the service provider name"""
+        self.provider = []
+        """"uuid of the network provider"""
+        self.id = None
+        """"true if individual services can be enabled/disabled"""
+        self.canenableindividualservice = None
+        """"the destination physical network"""
+        self.destinationphysicalnetworkid = None
+        """"the provider name"""
+        self.name = None
+        """"the physical network this belongs to"""
+        self.physicalnetworkid = None
+        """"services for this provider"""
+        self.servicelist = None
+        """"state of the network provider"""
+        self.state = None
+
+class tags:
+    def __init__(self):
+        """"the account associated with the tag"""
+        self.account = None
+        """"customer associated with the tag"""
+        self.customer = None
+        """"the domain associated with the tag"""
+        self.domain = None
+        """"the ID of the domain associated with the tag"""
+        self.domainid = None
+        """"tag key name"""
+        self.key = None
+        """"the project name where tag belongs to"""
+        self.project = None
+        """"the project id the tag belongs to"""
+        self.projectid = None
+        """"id of the resource"""
+        self.resourceid = None
+        """"resource type"""
+        self.resourcetype = None
+        """"tag value"""
+        self.value = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/listVirtualMachines.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/listVirtualMachines.py b/tools/marvin/build/lib/marvin/cloudstackAPI/listVirtualMachines.py
new file mode 100644
index 0000000..525532c
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/listVirtualMachines.py
@@ -0,0 +1,416 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""List the virtual machines owned by the account."""
+from baseCmd import *
+from baseResponse import *
+class listVirtualMachinesCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """list resources by account. Must be used with the domainId parameter."""
+        self.account = None
+        """list vms by affinity group"""
+        self.affinitygroupid = None
+        """comma separated list of host details requested, value can be a list of [all, group, nics, stats, secgrp, tmpl, servoff, iso, volume, min, affgrp]. If no parameter is passed in, the details will be defaulted to all"""
+        self.details = []
+        """list only resources belonging to the domain specified"""
+        self.domainid = None
+        """list by network type; true if need to list vms using Virtual Network, false otherwise"""
+        self.forvirtualnetwork = None
+        """the group ID"""
+        self.groupid = None
+        """the host ID"""
+        self.hostid = None
+        """the target hypervisor for the template"""
+        self.hypervisor = None
+        """the ID of the virtual machine"""
+        self.id = None
+        """list vms by iso"""
+        self.isoid = None
+        """defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves."""
+        self.isrecursive = None
+        """List by keyword"""
+        self.keyword = None
+        """If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false"""
+        self.listall = None
+        """name of the virtual machine"""
+        self.name = None
+        """list by network id"""
+        self.networkid = None
+        """"""
+        self.page = None
+        """"""
+        self.pagesize = None
+        """the pod ID"""
+        self.podid = None
+        """list objects by project"""
+        self.projectid = None
+        """state of the virtual machine"""
+        self.state = None
+        """the storage ID where vm's volumes belong to"""
+        self.storageid = None
+        """List resources by tags (key/value pairs)"""
+        self.tags = []
+        """list vms by template"""
+        self.templateid = None
+        """list vms by vpc"""
+        self.vpcid = None
+        """the availability zone ID"""
+        self.zoneid = None
+        self.required = []
+
+class listVirtualMachinesResponse (baseResponse):
+    def __init__(self):
+        """the ID of the virtual machine"""
+        self.id = None
+        """the account associated with the virtual machine"""
+        self.account = None
+        """the number of cpu this virtual machine is running with"""
+        self.cpunumber = None
+        """the speed of each cpu"""
+        self.cpuspeed = None
+        """the amount of the vm's CPU currently used"""
+        self.cpuused = None
+        """the date when this virtual machine was created"""
+        self.created = None
+        """the read (io) of disk on the vm"""
+        self.diskioread = None
+        """the write (io) of disk on the vm"""
+        self.diskiowrite = None
+        """the read (bytes) of disk on the vm"""
+        self.diskkbsread = None
+        """the write (bytes) of disk on the vm"""
+        self.diskkbswrite = None
+        """user generated name. The name of the virtual machine is returned if no displayname exists."""
+        self.displayname = None
+        """an optional field whether to the display the vm to the end user or not."""
+        self.displayvm = None
+        """the name of the domain in which the virtual machine exists"""
+        self.domain = None
+        """the ID of the domain in which the virtual machine exists"""
+        self.domainid = None
+        """the virtual network for the service offering"""
+        self.forvirtualnetwork = None
+        """the group name of the virtual machine"""
+        self.group = None
+        """the group ID of the virtual machine"""
+        self.groupid = None
+        """Os type ID of the virtual machine"""
+        self.guestosid = None
+        """true if high-availability is enabled, false otherwise"""
+        self.haenable = None
+        """the ID of the host for the virtual machine"""
+        self.hostid = None
+        """the name of the host for the virtual machine"""
+        self.hostname = None
+        """the hypervisor on which the template runs"""
+        self.hypervisor = None
+        """instance name of the user vm; this parameter is returned to the ROOT admin only"""
+        self.instancename = None
+        """true if vm contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory."""
+        self.isdynamicallyscalable = None
+        """an alternate display text of the ISO attached to the virtual machine"""
+        self.isodisplaytext = None
+        """the ID of the ISO attached to the virtual machine"""
+        self.isoid = None
+        """the name of the ISO attached to the virtual machine"""
+        self.isoname = None
+        """ssh key-pair"""
+        self.keypair = None
+        """the memory allocated for the virtual machine"""
+        self.memory = None
+        """the name of the virtual machine"""
+        self.name = None
+        """the incoming network traffic on the vm"""
+        self.networkkbsread = None
+        """the outgoing network traffic on the host"""
+        self.networkkbswrite = None
+        """the password (if exists) of the virtual machine"""
+        self.password = None
+        """true if the password rest feature is enabled, false otherwise"""
+        self.passwordenabled = None
+        """the project name of the vm"""
+        self.project = None
+        """the project id of the vm"""
+        self.projectid = None
+        """public IP address id associated with vm via Static nat rule"""
+        self.publicip = None
+        """public IP address id associated with vm via Static nat rule"""
+        self.publicipid = None
+        """device ID of the root volume"""
+        self.rootdeviceid = None
+        """device type of the root volume"""
+        self.rootdevicetype = None
+        """the ID of the service offering of the virtual machine"""
+        self.serviceofferingid = None
+        """the name of the service offering of the virtual machine"""
+        self.serviceofferingname = None
+        """State of the Service from LB rule"""
+        self.servicestate = None
+        """the state of the virtual machine"""
+        self.state = None
+        """an alternate display text of the template for the virtual machine"""
+        self.templatedisplaytext = None
+        """the ID of the template for the virtual machine. A -1 is returned if the virtual machine was created from an ISO file."""
+        self.templateid = None
+        """the name of the template for the virtual machine"""
+        self.templatename = None
+        """the ID of the availablility zone for the virtual machine"""
+        self.zoneid = None
+        """the name of the availability zone for the virtual machine"""
+        self.zonename = None
+        """list of affinity groups associated with the virtual machine"""
+        self.affinitygroup = []
+        """the list of nics associated with vm"""
+        self.nic = []
+        """list of security groups associated with the virtual machine"""
+        self.securitygroup = []
+        """the list of resource tags associated with vm"""
+        self.tags = []
+        """the ID of the latest async job acting on this object"""
+        self.jobid = None
+        """the current status of the latest async job acting on this object"""
+        self.jobstatus = None
+
+class affinitygroup:
+    def __init__(self):
+        """"the ID of the affinity group"""
+        self.id = None
+        """"the account owning the affinity group"""
+        self.account = None
+        """"the description of the affinity group"""
+        self.description = None
+        """"the domain name of the affinity group"""
+        self.domain = None
+        """"the domain ID of the affinity group"""
+        self.domainid = None
+        """"the name of the affinity group"""
+        self.name = None
+        """"the type of the affinity group"""
+        self.type = None
+        """"virtual machine Ids associated with this affinity group"""
+        self.virtualmachineIds = None
+
+class nic:
+    def __init__(self):
+        """"the ID of the nic"""
+        self.id = None
+        """"the broadcast uri of the nic"""
+        self.broadcasturi = None
+        """"the gateway of the nic"""
+        self.gateway = None
+        """"the IPv6 address of network"""
+        self.ip6address = None
+        """"the cidr of IPv6 network"""
+        self.ip6cidr = None
+        """"the gateway of IPv6 network"""
+        self.ip6gateway = None
+        """"the ip address of the nic"""
+        self.ipaddress = None
+        """"true if nic is default, false otherwise"""
+        self.isdefault = None
+        """"the isolation uri of the nic"""
+        self.isolationuri = None
+        """"true if nic is default, false otherwise"""
+        self.macaddress = None
+        """"the netmask of the nic"""
+        self.netmask = None
+        """"the ID of the corresponding network"""
+        self.networkid = None
+        """"the name of the corresponding network"""
+        self.networkname = None
+        """"the Secondary ipv4 addr of nic"""
+        self.secondaryip = None
+        """"the traffic type of the nic"""
+        self.traffictype = None
+        """"the type of the nic"""
+        self.type = None
+
+class egressrule:
+    def __init__(self):
+        """"account owning the security group rule"""
+        self.account = None
+        """"the CIDR notation for the base IP address of the security group rule"""
+        self.cidr = None
+        """"the ending IP of the security group rule"""
+        self.endport = None
+        """"the code for the ICMP message response"""
+        self.icmpcode = None
+        """"the type of the ICMP message response"""
+        self.icmptype = None
+        """"the protocol of the security group rule"""
+        self.protocol = None
+        """"the id of the security group rule"""
+        self.ruleid = None
+        """"security group name"""
+        self.securitygroupname = None
+        """"the starting IP of the security group rule"""
+        self.startport = None
+
+class ingressrule:
+    def __init__(self):
+        """"account owning the security group rule"""
+        self.account = None
+        """"the CIDR notation for the base IP address of the security group rule"""
+        self.cidr = None
+        """"the ending IP of the security group rule"""
+        self.endport = None
+        """"the code for the ICMP message response"""
+        self.icmpcode = None
+        """"the type of the ICMP message response"""
+        self.icmptype = None
+        """"the protocol of the security group rule"""
+        self.protocol = None
+        """"the id of the security group rule"""
+        self.ruleid = None
+        """"security group name"""
+        self.securitygroupname = None
+        """"the starting IP of the security group rule"""
+        self.startport = None
+
+class tags:
+    def __init__(self):
+        """"the account associated with the tag"""
+        self.account = None
+        """"customer associated with the tag"""
+        self.customer = None
+        """"the domain associated with the tag"""
+        self.domain = None
+        """"the ID of the domain associated with the tag"""
+        self.domainid = None
+        """"tag key name"""
+        self.key = None
+        """"the project name where tag belongs to"""
+        self.project = None
+        """"the project id the tag belongs to"""
+        self.projectid = None
+        """"id of the resource"""
+        self.resourceid = None
+        """"resource type"""
+        self.resourcetype = None
+        """"tag value"""
+        self.value = None
+
+class securitygroup:
+    def __init__(self):
+        """"the ID of the security group"""
+        self.id = None
+        """"the account owning the security group"""
+        self.account = None
+        """"the description of the security group"""
+        self.description = None
+        """"the domain name of the security group"""
+        self.domain = None
+        """"the domain ID of the security group"""
+        self.domainid = None
+        """"the name of the security group"""
+        self.name = None
+        """"the project name of the group"""
+        self.project = None
+        """"the project id of the group"""
+        self.projectid = None
+        """"the list of egress rules associated with the security group"""
+        self.egressrule = []
+        """"account owning the security group rule"""
+        self.account = None
+        """"the CIDR notation for the base IP address of the security group rule"""
+        self.cidr = None
+        """"the ending IP of the security group rule"""
+        self.endport = None
+        """"the code for the ICMP message response"""
+        self.icmpcode = None
+        """"the type of the ICMP message response"""
+        self.icmptype = None
+        """"the protocol of the security group rule"""
+        self.protocol = None
+        """"the id of the security group rule"""
+        self.ruleid = None
+        """"security group name"""
+        self.securitygroupname = None
+        """"the starting IP of the security group rule"""
+        self.startport = None
+        """"the list of ingress rules associated with the security group"""
+        self.ingressrule = []
+        """"account owning the security group rule"""
+        self.account = None
+        """"the CIDR notation for the base IP address of the security group rule"""
+        self.cidr = None
+        """"the ending IP of the security group rule"""
+        self.endport = None
+        """"the code for the ICMP message response"""
+        self.icmpcode = None
+        """"the type of the ICMP message response"""
+        self.icmptype = None
+        """"the protocol of the security group rule"""
+        self.protocol = None
+        """"the id of the security group rule"""
+        self.ruleid = None
+        """"security group name"""
+        self.securitygroupname = None
+        """"the starting IP of the security group rule"""
+        self.startport = None
+        """"the list of resource tags associated with the rule"""
+        self.tags = []
+        """"the account associated with the tag"""
+        self.account = None
+        """"customer associated with the tag"""
+        self.customer = None
+        """"the domain associated with the tag"""
+        self.domain = None
+        """"the ID of the domain associated with the tag"""
+        self.domainid = None
+        """"tag key name"""
+        self.key = None
+        """"the project name where tag belongs to"""
+        self.project = None
+        """"the project id the tag belongs to"""
+        self.projectid = None
+        """"id of the resource"""
+        self.resourceid = None
+        """"resource type"""
+        self.resourcetype = None
+        """"tag value"""
+        self.value = None
+        """"the ID of the latest async job acting on this object"""
+        self.jobid = None
+        """"the current status of the latest async job acting on this object"""
+        self.jobstatus = None
+
+class tags:
+    def __init__(self):
+        """"the account associated with the tag"""
+        self.account = None
+        """"customer associated with the tag"""
+        self.customer = None
+        """"the domain associated with the tag"""
+        self.domain = None
+        """"the ID of the domain associated with the tag"""
+        self.domainid = None
+        """"tag key name"""
+        self.key = None
+        """"the project name where tag belongs to"""
+        self.project = None
+        """"the project id the tag belongs to"""
+        self.projectid = None
+        """"id of the resource"""
+        self.resourceid = None
+        """"resource type"""
+        self.resourcetype = None
+        """"tag value"""
+        self.value = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/listVirtualRouterElements.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/listVirtualRouterElements.py b/tools/marvin/build/lib/marvin/cloudstackAPI/listVirtualRouterElements.py
new file mode 100644
index 0000000..abfe93a
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/listVirtualRouterElements.py
@@ -0,0 +1,57 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Lists all available virtual router elements."""
+from baseCmd import *
+from baseResponse import *
+class listVirtualRouterElementsCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """list network offerings by enabled state"""
+        self.enabled = None
+        """list virtual router elements by id"""
+        self.id = None
+        """List by keyword"""
+        self.keyword = None
+        """list virtual router elements by network service provider id"""
+        self.nspid = None
+        """"""
+        self.page = None
+        """"""
+        self.pagesize = None
+        self.required = []
+
+class listVirtualRouterElementsResponse (baseResponse):
+    def __init__(self):
+        """the id of the router"""
+        self.id = None
+        """the account associated with the provider"""
+        self.account = None
+        """the domain associated with the provider"""
+        self.domain = None
+        """the domain ID associated with the provider"""
+        self.domainid = None
+        """Enabled/Disabled the service provider"""
+        self.enabled = None
+        """the physical network service provider id of the provider"""
+        self.nspid = None
+        """the project name of the address"""
+        self.project = None
+        """the project id of the ipaddress"""
+        self.projectid = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/listVlanIpRanges.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/listVlanIpRanges.py b/tools/marvin/build/lib/marvin/cloudstackAPI/listVlanIpRanges.py
new file mode 100644
index 0000000..2d7ac4a
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/listVlanIpRanges.py
@@ -0,0 +1,99 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Lists all VLAN IP ranges."""
+from baseCmd import *
+from baseResponse import *
+class listVlanIpRangesCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """the account with which the VLAN IP range is associated. Must be used with the domainId parameter."""
+        self.account = None
+        """the domain ID with which the VLAN IP range is associated.  If used with the account parameter, returns all VLAN IP ranges for that account in the specified domain."""
+        self.domainid = None
+        """true if VLAN is of Virtual type, false if Direct"""
+        self.forvirtualnetwork = None
+        """the ID of the VLAN IP range"""
+        self.id = None
+        """List by keyword"""
+        self.keyword = None
+        """network id of the VLAN IP range"""
+        self.networkid = None
+        """"""
+        self.page = None
+        """"""
+        self.pagesize = None
+        """physical network id of the VLAN IP range"""
+        self.physicalnetworkid = None
+        """the Pod ID of the VLAN IP range"""
+        self.podid = None
+        """project who will own the VLAN"""
+        self.projectid = None
+        """the ID or VID of the VLAN. Default is an "untagged" VLAN."""
+        self.vlan = None
+        """the Zone ID of the VLAN IP range"""
+        self.zoneid = None
+        self.required = []
+
+class listVlanIpRangesResponse (baseResponse):
+    def __init__(self):
+        """the ID of the VLAN IP range"""
+        self.id = None
+        """the account of the VLAN IP range"""
+        self.account = None
+        """the description of the VLAN IP range"""
+        self.description = None
+        """the domain name of the VLAN IP range"""
+        self.domain = None
+        """the domain ID of the VLAN IP range"""
+        self.domainid = None
+        """the end ip of the VLAN IP range"""
+        self.endip = None
+        """the end ipv6 of the VLAN IP range"""
+        self.endipv6 = None
+        """the virtual network for the VLAN IP range"""
+        self.forvirtualnetwork = None
+        """the gateway of the VLAN IP range"""
+        self.gateway = None
+        """the cidr of IPv6 network"""
+        self.ip6cidr = None
+        """the gateway of IPv6 network"""
+        self.ip6gateway = None
+        """the netmask of the VLAN IP range"""
+        self.netmask = None
+        """the network id of vlan range"""
+        self.networkid = None
+        """the physical network this belongs to"""
+        self.physicalnetworkid = None
+        """the Pod ID for the VLAN IP range"""
+        self.podid = None
+        """the Pod name for the VLAN IP range"""
+        self.podname = None
+        """the project name of the vlan range"""
+        self.project = None
+        """the project id of the vlan range"""
+        self.projectid = None
+        """the start ip of the VLAN IP range"""
+        self.startip = None
+        """the start ipv6 of the VLAN IP range"""
+        self.startipv6 = None
+        """the ID or VID of the VLAN."""
+        self.vlan = None
+        """the Zone ID of the VLAN IP range"""
+        self.zoneid = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/listVolumes.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/listVolumes.py b/tools/marvin/build/lib/marvin/cloudstackAPI/listVolumes.py
new file mode 100644
index 0000000..39f514b
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/listVolumes.py
@@ -0,0 +1,172 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Lists all volumes."""
+from baseCmd import *
+from baseResponse import *
+class listVolumesCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """list resources by account. Must be used with the domainId parameter."""
+        self.account = None
+        """list only resources belonging to the domain specified"""
+        self.domainid = None
+        """list volumes on specified host"""
+        self.hostid = None
+        """the ID of the disk volume"""
+        self.id = None
+        """defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves."""
+        self.isrecursive = None
+        """List by keyword"""
+        self.keyword = None
+        """If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false"""
+        self.listall = None
+        """the name of the disk volume"""
+        self.name = None
+        """"""
+        self.page = None
+        """"""
+        self.pagesize = None
+        """the pod id the disk volume belongs to"""
+        self.podid = None
+        """list objects by project"""
+        self.projectid = None
+        """List resources by tags (key/value pairs)"""
+        self.tags = []
+        """the type of disk volume"""
+        self.type = None
+        """the ID of the virtual machine"""
+        self.virtualmachineid = None
+        """the ID of the availability zone"""
+        self.zoneid = None
+        self.required = []
+
+class listVolumesResponse (baseResponse):
+    def __init__(self):
+        """ID of the disk volume"""
+        self.id = None
+        """the account associated with the disk volume"""
+        self.account = None
+        """the date the volume was attached to a VM instance"""
+        self.attached = None
+        """the date the disk volume was created"""
+        self.created = None
+        """the boolean state of whether the volume is destroyed or not"""
+        self.destroyed = None
+        """the ID of the device on user vm the volume is attahed to. This tag is not returned when the volume is detached."""
+        self.deviceid = None
+        """bytes read rate of the disk volume"""
+        self.diskBytesReadRate = None
+        """bytes write rate of the disk volume"""
+        self.diskBytesWriteRate = None
+        """io requests read rate of the disk volume"""
+        self.diskIopsReadRate = None
+        """io requests write rate of the disk volume"""
+        self.diskIopsWriteRate = None
+        """the display text of the disk offering"""
+        self.diskofferingdisplaytext = None
+        """ID of the disk offering"""
+        self.diskofferingid = None
+        """name of the disk offering"""
+        self.diskofferingname = None
+        """an optional field whether to the display the volume to the end user or not."""
+        self.displayvolume = None
+        """the domain associated with the disk volume"""
+        self.domain = None
+        """the ID of the domain associated with the disk volume"""
+        self.domainid = None
+        """Hypervisor the volume belongs to"""
+        self.hypervisor = None
+        """true if the volume is extractable, false otherwise"""
+        self.isextractable = None
+        """max iops of the disk volume"""
+        self.maxiops = None
+        """min iops of the disk volume"""
+        self.miniops = None
+        """name of the disk volume"""
+        self.name = None
+        """The path of the volume"""
+        self.path = None
+        """the project name of the vpn"""
+        self.project = None
+        """the project id of the vpn"""
+        self.projectid = None
+        """the display text of the service offering for root disk"""
+        self.serviceofferingdisplaytext = None
+        """ID of the service offering for root disk"""
+        self.serviceofferingid = None
+        """name of the service offering for root disk"""
+        self.serviceofferingname = None
+        """size of the disk volume"""
+        self.size = None
+        """ID of the snapshot from which this volume was created"""
+        self.snapshotid = None
+        """the state of the disk volume"""
+        self.state = None
+        """the status of the volume"""
+        self.status = None
+        """name of the primary storage hosting the disk volume"""
+        self.storage = None
+        """id of the primary storage hosting the disk volume; returned to admin user only"""
+        self.storageid = None
+        """shared or local storage"""
+        self.storagetype = None
+        """type of the disk volume (ROOT or DATADISK)"""
+        self.type = None
+        """id of the virtual machine"""
+        self.virtualmachineid = None
+        """display name of the virtual machine"""
+        self.vmdisplayname = None
+        """name of the virtual machine"""
+        self.vmname = None
+        """state of the virtual machine"""
+        self.vmstate = None
+        """ID of the availability zone"""
+        self.zoneid = None
+        """name of the availability zone"""
+        self.zonename = None
+        """the list of resource tags associated with volume"""
+        self.tags = []
+        """the ID of the latest async job acting on this object"""
+        self.jobid = None
+        """the current status of the latest async job acting on this object"""
+        self.jobstatus = None
+
+class tags:
+    def __init__(self):
+        """"the account associated with the tag"""
+        self.account = None
+        """"customer associated with the tag"""
+        self.customer = None
+        """"the domain associated with the tag"""
+        self.domain = None
+        """"the ID of the domain associated with the tag"""
+        self.domainid = None
+        """"tag key name"""
+        self.key = None
+        """"the project name where tag belongs to"""
+        self.project = None
+        """"the project id the tag belongs to"""
+        self.projectid = None
+        """"id of the resource"""
+        self.resourceid = None
+        """"resource type"""
+        self.resourcetype = None
+        """"tag value"""
+        self.value = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnConnections.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnConnections.py b/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnConnections.py
new file mode 100644
index 0000000..db94bca
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnConnections.py
@@ -0,0 +1,89 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Lists site to site vpn connection gateways"""
+from baseCmd import *
+from baseResponse import *
+class listVpnConnectionsCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """list resources by account. Must be used with the domainId parameter."""
+        self.account = None
+        """list only resources belonging to the domain specified"""
+        self.domainid = None
+        """id of the vpn connection"""
+        self.id = None
+        """defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves."""
+        self.isrecursive = None
+        """List by keyword"""
+        self.keyword = None
+        """If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false"""
+        self.listall = None
+        """"""
+        self.page = None
+        """"""
+        self.pagesize = None
+        """list objects by project"""
+        self.projectid = None
+        """id of vpc"""
+        self.vpcid = None
+        self.required = []
+
+class listVpnConnectionsResponse (baseResponse):
+    def __init__(self):
+        """the vpn gateway ID"""
+        self.id = None
+        """the owner"""
+        self.account = None
+        """guest cidr list of the customer gateway"""
+        self.cidrlist = None
+        """the date and time the host was created"""
+        self.created = None
+        """the domain name of the owner"""
+        self.domain = None
+        """the domain id of the owner"""
+        self.domainid = None
+        """if DPD is enabled for customer gateway"""
+        self.dpd = None
+        """Lifetime of ESP SA of customer gateway"""
+        self.esplifetime = None
+        """ESP policy of the customer gateway"""
+        self.esppolicy = None
+        """public ip address id of the customer gateway"""
+        self.gateway = None
+        """Lifetime of IKE SA of customer gateway"""
+        self.ikelifetime = None
+        """IKE policy of the customer gateway"""
+        self.ikepolicy = None
+        """IPsec Preshared-Key of the customer gateway"""
+        self.ipsecpsk = None
+        """the project name"""
+        self.project = None
+        """the project id"""
+        self.projectid = None
+        """the public IP address"""
+        self.publicip = None
+        """the date and time the host was removed"""
+        self.removed = None
+        """the customer gateway ID"""
+        self.s2scustomergatewayid = None
+        """the vpn gateway ID"""
+        self.s2svpngatewayid = None
+        """State of vpn connection"""
+        self.state = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnCustomerGateways.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnCustomerGateways.py b/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnCustomerGateways.py
new file mode 100644
index 0000000..c730db3
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnCustomerGateways.py
@@ -0,0 +1,81 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Lists site to site vpn customer gateways"""
+from baseCmd import *
+from baseResponse import *
+class listVpnCustomerGatewaysCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """list resources by account. Must be used with the domainId parameter."""
+        self.account = None
+        """list only resources belonging to the domain specified"""
+        self.domainid = None
+        """id of the customer gateway"""
+        self.id = None
+        """defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves."""
+        self.isrecursive = None
+        """List by keyword"""
+        self.keyword = None
+        """If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false"""
+        self.listall = None
+        """"""
+        self.page = None
+        """"""
+        self.pagesize = None
+        """list objects by project"""
+        self.projectid = None
+        self.required = []
+
+class listVpnCustomerGatewaysResponse (baseResponse):
+    def __init__(self):
+        """the vpn gateway ID"""
+        self.id = None
+        """the owner"""
+        self.account = None
+        """guest cidr list of the customer gateway"""
+        self.cidrlist = None
+        """the domain name of the owner"""
+        self.domain = None
+        """the domain id of the owner"""
+        self.domainid = None
+        """if DPD is enabled for customer gateway"""
+        self.dpd = None
+        """Lifetime of ESP SA of customer gateway"""
+        self.esplifetime = None
+        """IPsec policy of customer gateway"""
+        self.esppolicy = None
+        """public ip address id of the customer gateway"""
+        self.gateway = None
+        """Lifetime of IKE SA of customer gateway"""
+        self.ikelifetime = None
+        """IKE policy of customer gateway"""
+        self.ikepolicy = None
+        """guest ip of the customer gateway"""
+        self.ipaddress = None
+        """IPsec preshared-key of customer gateway"""
+        self.ipsecpsk = None
+        """name of the customer gateway"""
+        self.name = None
+        """the project name"""
+        self.project = None
+        """the project id"""
+        self.projectid = None
+        """the date and time the host was removed"""
+        self.removed = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnGateways.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnGateways.py b/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnGateways.py
new file mode 100644
index 0000000..14fcb8f
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnGateways.py
@@ -0,0 +1,67 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Lists site 2 site vpn gateways"""
+from baseCmd import *
+from baseResponse import *
+class listVpnGatewaysCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """list resources by account. Must be used with the domainId parameter."""
+        self.account = None
+        """list only resources belonging to the domain specified"""
+        self.domainid = None
+        """id of the vpn gateway"""
+        self.id = None
+        """defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves."""
+        self.isrecursive = None
+        """List by keyword"""
+        self.keyword = None
+        """If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false"""
+        self.listall = None
+        """"""
+        self.page = None
+        """"""
+        self.pagesize = None
+        """list objects by project"""
+        self.projectid = None
+        """id of vpc"""
+        self.vpcid = None
+        self.required = []
+
+class listVpnGatewaysResponse (baseResponse):
+    def __init__(self):
+        """the vpn gateway ID"""
+        self.id = None
+        """the owner"""
+        self.account = None
+        """the domain name of the owner"""
+        self.domain = None
+        """the domain id of the owner"""
+        self.domainid = None
+        """the project name"""
+        self.project = None
+        """the project id"""
+        self.projectid = None
+        """the public IP address"""
+        self.publicip = None
+        """the date and time the host was removed"""
+        self.removed = None
+        """the vpc id of this gateway"""
+        self.vpcid = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnUsers.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnUsers.py b/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnUsers.py
new file mode 100644
index 0000000..79ae68a
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/listVpnUsers.py
@@ -0,0 +1,65 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Lists vpn users"""
+from baseCmd import *
+from baseResponse import *
+class listVpnUsersCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """list resources by account. Must be used with the domainId parameter."""
+        self.account = None
+        """list only resources belonging to the domain specified"""
+        self.domainid = None
+        """The uuid of the Vpn user"""
+        self.id = None
+        """defaults to false, but if true, lists all resources from the parent specified by the domainId till leaves."""
+        self.isrecursive = None
+        """List by keyword"""
+        self.keyword = None
+        """If set to false, list only resources belonging to the command's caller; if set to true - list resources that the caller is authorized to see. Default value is false"""
+        self.listall = None
+        """"""
+        self.page = None
+        """"""
+        self.pagesize = None
+        """list objects by project"""
+        self.projectid = None
+        """the username of the vpn user."""
+        self.username = None
+        self.required = []
+
+class listVpnUsersResponse (baseResponse):
+    def __init__(self):
+        """the vpn userID"""
+        self.id = None
+        """the account of the remote access vpn"""
+        self.account = None
+        """the domain name of the account of the remote access vpn"""
+        self.domain = None
+        """the domain id of the account of the remote access vpn"""
+        self.domainid = None
+        """the project name of the vpn"""
+        self.project = None
+        """the project id of the vpn"""
+        self.projectid = None
+        """the state of the Vpn User"""
+        self.state = None
+        """the username of the vpn user"""
+        self.username = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/listZones.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/listZones.py b/tools/marvin/build/lib/marvin/cloudstackAPI/listZones.py
new file mode 100644
index 0000000..5e6ed5d
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/listZones.py
@@ -0,0 +1,141 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Lists zones"""
+from baseCmd import *
+from baseResponse import *
+class listZonesCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """true if you want to retrieve all available Zones. False if you only want to return the Zones from which you have at least one VM. Default is false."""
+        self.available = None
+        """the ID of the domain associated with the zone"""
+        self.domainid = None
+        """the ID of the zone"""
+        self.id = None
+        """List by keyword"""
+        self.keyword = None
+        """the name of the zone"""
+        self.name = None
+        """the network type of the zone that the virtual machine belongs to"""
+        self.networktype = None
+        """"""
+        self.page = None
+        """"""
+        self.pagesize = None
+        """flag to display the capacity of the zones"""
+        self.showcapacities = None
+        """List zones by resource tags (key/value pairs)"""
+        self.tags = []
+        self.required = []
+
+class listZonesResponse (baseResponse):
+    def __init__(self):
+        """Zone id"""
+        self.id = None
+        """the allocation state of the cluster"""
+        self.allocationstate = None
+        """Zone description"""
+        self.description = None
+        """the dhcp Provider for the Zone"""
+        self.dhcpprovider = None
+        """the display text of the zone"""
+        self.displaytext = None
+        """the first DNS for the Zone"""
+        self.dns1 = None
+        """the second DNS for the Zone"""
+        self.dns2 = None
+        """Network domain name for the networks in the zone"""
+        self.domain = None
+        """the UUID of the containing domain, null for public zones"""
+        self.domainid = None
+        """the name of the containing domain, null for public zones"""
+        self.domainname = None
+        """the guest CIDR address for the Zone"""
+        self.guestcidraddress = None
+        """the first internal DNS for the Zone"""
+        self.internaldns1 = None
+        """the second internal DNS for the Zone"""
+        self.internaldns2 = None
+        """the first IPv6 DNS for the Zone"""
+        self.ip6dns1 = None
+        """the second IPv6 DNS for the Zone"""
+        self.ip6dns2 = None
+        """true if local storage offering enabled, false otherwise"""
+        self.localstorageenabled = None
+        """Zone name"""
+        self.name = None
+        """the network type of the zone; can be Basic or Advanced"""
+        self.networktype = None
+        """true if security groups support is enabled, false otherwise"""
+        self.securitygroupsenabled = None
+        """the vlan range of the zone"""
+        self.vlan = None
+        """Zone Token"""
+        self.zonetoken = None
+        """the capacity of the Zone"""
+        self.capacity = []
+        """the list of resource tags associated with zone."""
+        self.tags = []
+
+class capacity:
+    def __init__(self):
+        """"the total capacity available"""
+        self.capacitytotal = None
+        """"the capacity currently in use"""
+        self.capacityused = None
+        """"the Cluster ID"""
+        self.clusterid = None
+        """"the Cluster name"""
+        self.clustername = None
+        """"the percentage of capacity currently in use"""
+        self.percentused = None
+        """"the Pod ID"""
+        self.podid = None
+        """"the Pod name"""
+        self.podname = None
+        """"the capacity type"""
+        self.type = None
+        """"the Zone ID"""
+        self.zoneid = None
+        """"the Zone name"""
+        self.zonename = None
+
+class tags:
+    def __init__(self):
+        """"the account associated with the tag"""
+        self.account = None
+        """"customer associated with the tag"""
+        self.customer = None
+        """"the domain associated with the tag"""
+        self.domain = None
+        """"the ID of the domain associated with the tag"""
+        self.domainid = None
+        """"tag key name"""
+        self.key = None
+        """"the project name where tag belongs to"""
+        self.project = None
+        """"the project id the tag belongs to"""
+        self.projectid = None
+        """"id of the resource"""
+        self.resourceid = None
+        """"resource type"""
+        self.resourcetype = None
+        """"tag value"""
+        self.value = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/lockAccount.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/lockAccount.py b/tools/marvin/build/lib/marvin/cloudstackAPI/lockAccount.py
new file mode 100644
index 0000000..d33f898
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/lockAccount.py
@@ -0,0 +1,176 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Locks an account"""
+from baseCmd import *
+from baseResponse import *
+class lockAccountCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """Locks the specified account."""
+        """Required"""
+        self.account = None
+        """Locks the specified account on this domain."""
+        """Required"""
+        self.domainid = None
+        self.required = ["account","domainid",]
+
+class lockAccountResponse (baseResponse):
+    def __init__(self):
+        """the id of the account"""
+        self.id = None
+        """details for the account"""
+        self.accountdetails = None
+        """account type (admin, domain-admin, user)"""
+        self.accounttype = None
+        """the total number of cpu cores available to be created for this account"""
+        self.cpuavailable = None
+        """the total number of cpu cores the account can own"""
+        self.cpulimit = None
+        """the total number of cpu cores owned by account"""
+        self.cputotal = None
+        """the default zone of the account"""
+        self.defaultzoneid = None
+        """name of the Domain the account belongs too"""
+        self.domain = None
+        """id of the Domain the account belongs too"""
+        self.domainid = None
+        """the total number of public ip addresses available for this account to acquire"""
+        self.ipavailable = None
+        """the total number of public ip addresses this account can acquire"""
+        self.iplimit = None
+        """the total number of public ip addresses allocated for this account"""
+        self.iptotal = None
+        """true if the account requires cleanup"""
+        self.iscleanuprequired = None
+        """true if account is default, false otherwise"""
+        self.isdefault = None
+        """the total memory (in MB) available to be created for this account"""
+        self.memoryavailable = None
+        """the total memory (in MB) the account can own"""
+        self.memorylimit = None
+        """the total memory (in MB) owned by account"""
+        self.memorytotal = None
+        """the name of the account"""
+        self.name = None
+        """the total number of networks available to be created for this account"""
+        self.networkavailable = None
+        """the network domain"""
+        self.networkdomain = None
+        """the total number of networks the account can own"""
+        self.networklimit = None
+        """the total number of networks owned by account"""
+        self.networktotal = None
+        """the total primary storage space (in GiB) available to be used for this account"""
+        self.primarystorageavailable = None
+        """the total primary storage space (in GiB) the account can own"""
+        self.primarystoragelimit = None
+        """the total primary storage space (in GiB) owned by account"""
+        self.primarystoragetotal = None
+        """the total number of projects available for administration by this account"""
+        self.projectavailable = None
+        """the total number of projects the account can own"""
+        self.projectlimit = None
+        """the total number of projects being administrated by this account"""
+        self.projecttotal = None
+        """the total number of network traffic bytes received"""
+        self.receivedbytes = None
+        """the total secondary storage space (in GiB) available to be used for this account"""
+        self.secondarystorageavailable = None
+        """the total secondary storage space (in GiB) the account can own"""
+        self.secondarystoragelimit = None
+        """the total secondary storage space (in GiB) owned by account"""
+        self.secondarystoragetotal = None
+        """the total number of network traffic bytes sent"""
+        self.sentbytes = None
+        """the total number of snapshots available for this account"""
+        self.snapshotavailable = None
+        """the total number of snapshots which can be stored by this account"""
+        self.snapshotlimit = None
+        """the total number of snapshots stored by this account"""
+        self.snapshottotal = None
+        """the state of the account"""
+        self.state = None
+        """the total number of templates available to be created by this account"""
+        self.templateavailable = None
+        """the total number of templates which can be created by this account"""
+        self.templatelimit = None
+        """the total number of templates which have been created by this account"""
+        self.templatetotal = None
+        """the total number of virtual machines available for this account to acquire"""
+        self.vmavailable = None
+        """the total number of virtual machines that can be deployed by this account"""
+        self.vmlimit = None
+        """the total number of virtual machines running for this account"""
+        self.vmrunning = None
+        """the total number of virtual machines stopped for this account"""
+        self.vmstopped = None
+        """the total number of virtual machines deployed by this account"""
+        self.vmtotal = None
+        """the total volume available for this account"""
+        self.volumeavailable = None
+        """the total volume which can be used by this account"""
+        self.volumelimit = None
+        """the total volume being used by this account"""
+        self.volumetotal = None
+        """the total number of vpcs available to be created for this account"""
+        self.vpcavailable = None
+        """the total number of vpcs the account can own"""
+        self.vpclimit = None
+        """the total number of vpcs owned by account"""
+        self.vpctotal = None
+        """the list of users associated with account"""
+        self.user = []
+
+class user:
+    def __init__(self):
+        """"the user ID"""
+        self.id = None
+        """"the account name of the user"""
+        self.account = None
+        """"the account ID of the user"""
+        self.accountid = None
+        """"the account type of the user"""
+        self.accounttype = None
+        """"the api key of the user"""
+        self.apikey = None
+        """"the date and time the user account was created"""
+        self.created = None
+        """"the domain name of the user"""
+        self.domain = None
+        """"the domain ID of the user"""
+        self.domainid = None
+        """"the user email address"""
+        self.email = None
+        """"the user firstname"""
+        self.firstname = None
+        """"the boolean value representing if the updating target is in caller's child domain"""
+        self.iscallerchilddomain = None
+        """"true if user is default, false otherwise"""
+        self.isdefault = None
+        """"the user lastname"""
+        self.lastname = None
+        """"the secret key of the user"""
+        self.secretkey = None
+        """"the user state"""
+        self.state = None
+        """"the timezone user was created in"""
+        self.timezone = None
+        """"the user name"""
+        self.username = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/lockUser.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/lockUser.py b/tools/marvin/build/lib/marvin/cloudstackAPI/lockUser.py
new file mode 100644
index 0000000..0372547
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/lockUser.py
@@ -0,0 +1,66 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Locks a user account"""
+from baseCmd import *
+from baseResponse import *
+class lockUserCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """Locks user by user ID."""
+        """Required"""
+        self.id = None
+        self.required = ["id",]
+
+class lockUserResponse (baseResponse):
+    def __init__(self):
+        """the user ID"""
+        self.id = None
+        """the account name of the user"""
+        self.account = None
+        """the account ID of the user"""
+        self.accountid = None
+        """the account type of the user"""
+        self.accounttype = None
+        """the api key of the user"""
+        self.apikey = None
+        """the date and time the user account was created"""
+        self.created = None
+        """the domain name of the user"""
+        self.domain = None
+        """the domain ID of the user"""
+        self.domainid = None
+        """the user email address"""
+        self.email = None
+        """the user firstname"""
+        self.firstname = None
+        """the boolean value representing if the updating target is in caller's child domain"""
+        self.iscallerchilddomain = None
+        """true if user is default, false otherwise"""
+        self.isdefault = None
+        """the user lastname"""
+        self.lastname = None
+        """the secret key of the user"""
+        self.secretkey = None
+        """the user state"""
+        self.state = None
+        """the timezone user was created in"""
+        self.timezone = None
+        """the user name"""
+        self.username = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/login.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/login.py b/tools/marvin/build/lib/marvin/cloudstackAPI/login.py
new file mode 100644
index 0000000..003bd11
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/login.py
@@ -0,0 +1,63 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Logs a user into the CloudStack. A successful login attempt will generate a JSESSIONID cookie value that can be passed in subsequent Query command calls until the "logout" command has been issued or the session has expired."""
+from baseCmd import *
+from baseResponse import *
+class loginCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """Username"""
+        """Required"""
+        self.username = None
+        """Hashed password (Default is MD5). If you wish to use any other hashing algorithm, you would need to write a custom authentication adapter See Docs section."""
+        """Required"""
+        self.password = None
+        """path of the domain that the user belongs to. Example: domain=/com/cloud/internal.  If no domain is passed in, the ROOT domain is assumed."""
+        self.domain = None
+        """id of the domain that the user belongs to. If both domain and domainId are passed in, "domainId" parameter takes precendence"""
+        self.domainId = None
+        self.required = ["username","password",]
+
+class loginResponse (baseResponse):
+    def __init__(self):
+        """Username"""
+        self.username = None
+        """User id"""
+        self.userid = None
+        """Password"""
+        self.password = None
+        """domain ID that the user belongs to"""
+        self.domainid = None
+        """the time period before the session has expired"""
+        self.timeout = None
+        """the account name the user belongs to"""
+        self.account = None
+        """first name of the user"""
+        self.firstname = None
+        """last name of the user"""
+        self.lastname = None
+        """the account type (admin, domain-admin, read-only-admin, user)"""
+        self.type = None
+        """user time zone"""
+        self.timezone = None
+        """user time zone offset from UTC 00:00"""
+        self.timezoneoffset = None
+        """Session key that can be passed in subsequent Query command calls"""
+        self.sessionkey = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/logout.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/logout.py b/tools/marvin/build/lib/marvin/cloudstackAPI/logout.py
new file mode 100644
index 0000000..6bd4332
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/logout.py
@@ -0,0 +1,31 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you 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.
+
+
+"""Logs out the user"""
+from baseCmd import *
+from baseResponse import *
+class logoutCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        self.required = []
+
+class logoutResponse (baseResponse):
+    def __init__(self):
+        """success if the logout action succeeded"""
+        self.description = None
+