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

[08/29] 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/stopRouter.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/stopRouter.py b/tools/marvin/build/lib/marvin/cloudstackAPI/stopRouter.py
new file mode 100644
index 0000000..c2c10df
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/stopRouter.py
@@ -0,0 +1,153 @@
+# 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.
+
+
+"""Stops a router."""
+from baseCmd import *
+from baseResponse import *
+class stopRouterCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """the ID of the router"""
+        """Required"""
+        self.id = None
+        """Force stop the VM. The caller knows the VM is stopped."""
+        self.forced = None
+        self.required = ["id",]
+
+class stopRouterResponse (baseResponse):
+    def __init__(self):
+        """the id of the router"""
+        self.id = None
+        """the account associated with the router"""
+        self.account = None
+        """the date and time the router was created"""
+        self.created = None
+        """the first DNS for the router"""
+        self.dns1 = None
+        """the second DNS for the router"""
+        self.dns2 = None
+        """the domain associated with the router"""
+        self.domain = None
+        """the domain ID associated with the router"""
+        self.domainid = None
+        """the gateway for the router"""
+        self.gateway = None
+        """the guest IP address for the router"""
+        self.guestipaddress = None
+        """the guest MAC address for the router"""
+        self.guestmacaddress = None
+        """the guest netmask for the router"""
+        self.guestnetmask = None
+        """the ID of the corresponding guest network"""
+        self.guestnetworkid = None
+        """the host ID for the router"""
+        self.hostid = None
+        """the hostname for the router"""
+        self.hostname = None
+        """the first IPv6 DNS for the router"""
+        self.ip6dns1 = None
+        """the second IPv6 DNS for the router"""
+        self.ip6dns2 = None
+        """if this router is an redundant virtual router"""
+        self.isredundantrouter = None
+        """the link local IP address for the router"""
+        self.linklocalip = None
+        """the link local MAC address for the router"""
+        self.linklocalmacaddress = None
+        """the link local netmask for the router"""
+        self.linklocalnetmask = None
+        """the ID of the corresponding link local network"""
+        self.linklocalnetworkid = None
+        """the name of the router"""
+        self.name = None
+        """the network domain for the router"""
+        self.networkdomain = None
+        """the Pod ID for the router"""
+        self.podid = None
+        """the project name of the address"""
+        self.project = None
+        """the project id of the ipaddress"""
+        self.projectid = None
+        """the public IP address for the router"""
+        self.publicip = None
+        """the public MAC address for the router"""
+        self.publicmacaddress = None
+        """the public netmask for the router"""
+        self.publicnetmask = None
+        """the ID of the corresponding public network"""
+        self.publicnetworkid = None
+        """the state of redundant virtual router"""
+        self.redundantstate = None
+        """role of the domain router"""
+        self.role = None
+        """the version of scripts"""
+        self.scriptsversion = 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
+        """the state of the router"""
+        self.state = None
+        """the template ID for the router"""
+        self.templateid = None
+        """the version of template"""
+        self.templateversion = None
+        """VPC the router belongs to"""
+        self.vpcid = None
+        """the Zone ID for the router"""
+        self.zoneid = None
+        """the Zone name for the router"""
+        self.zonename = None
+        """the list of nics associated with the router"""
+        self.nic = []
+
+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
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/stopSystemVm.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/stopSystemVm.py b/tools/marvin/build/lib/marvin/cloudstackAPI/stopSystemVm.py
new file mode 100644
index 0000000..f699041
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/stopSystemVm.py
@@ -0,0 +1,88 @@
+# 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.
+
+
+"""Stops a system VM."""
+from baseCmd import *
+from baseResponse import *
+class stopSystemVmCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """The ID of the system virtual machine"""
+        """Required"""
+        self.id = None
+        """Force stop the VM.  The caller knows the VM is stopped."""
+        self.forced = None
+        self.required = ["id",]
+
+class stopSystemVmResponse (baseResponse):
+    def __init__(self):
+        """the ID of the system VM"""
+        self.id = None
+        """the number of active console sessions for the console proxy system vm"""
+        self.activeviewersessions = None
+        """the date and time the system VM was created"""
+        self.created = None
+        """the first DNS for the system VM"""
+        self.dns1 = None
+        """the second DNS for the system VM"""
+        self.dns2 = None
+        """the gateway for the system VM"""
+        self.gateway = None
+        """the host ID for the system VM"""
+        self.hostid = None
+        """the hostname for the system VM"""
+        self.hostname = None
+        """the job ID associated with the system VM. This is only displayed if the router listed is part of a currently running asynchronous job."""
+        self.jobid = None
+        """the job status associated with the system VM.  This is only displayed if the router listed is part of a currently running asynchronous job."""
+        self.jobstatus = None
+        """the link local IP address for the system vm"""
+        self.linklocalip = None
+        """the link local MAC address for the system vm"""
+        self.linklocalmacaddress = None
+        """the link local netmask for the system vm"""
+        self.linklocalnetmask = None
+        """the name of the system VM"""
+        self.name = None
+        """the network domain for the system VM"""
+        self.networkdomain = None
+        """the Pod ID for the system VM"""
+        self.podid = None
+        """the private IP address for the system VM"""
+        self.privateip = None
+        """the private MAC address for the system VM"""
+        self.privatemacaddress = None
+        """the private netmask for the system VM"""
+        self.privatenetmask = None
+        """the public IP address for the system VM"""
+        self.publicip = None
+        """the public MAC address for the system VM"""
+        self.publicmacaddress = None
+        """the public netmask for the system VM"""
+        self.publicnetmask = None
+        """the state of the system VM"""
+        self.state = None
+        """the system VM type"""
+        self.systemvmtype = None
+        """the template ID for the system VM"""
+        self.templateid = None
+        """the Zone ID for the system VM"""
+        self.zoneid = None
+        """the Zone name for the system VM"""
+        self.zonename = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/stopVirtualMachine.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/stopVirtualMachine.py b/tools/marvin/build/lib/marvin/cloudstackAPI/stopVirtualMachine.py
new file mode 100644
index 0000000..3965c50
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/stopVirtualMachine.py
@@ -0,0 +1,371 @@
+# 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.
+
+
+"""Stops a virtual machine."""
+from baseCmd import *
+from baseResponse import *
+class stopVirtualMachineCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """The ID of the virtual machine"""
+        """Required"""
+        self.id = None
+        """Force stop the VM (vm is marked as Stopped even when command fails to be send to the backend).  The caller knows the VM is stopped."""
+        self.forced = None
+        self.required = ["id",]
+
+class stopVirtualMachineResponse (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/suspendProject.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/suspendProject.py b/tools/marvin/build/lib/marvin/cloudstackAPI/suspendProject.py
new file mode 100644
index 0000000..898a63e
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/suspendProject.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.
+
+
+"""Suspends a project"""
+from baseCmd import *
+from baseResponse import *
+class suspendProjectCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """id of the project to be suspended"""
+        """Required"""
+        self.id = None
+        self.required = ["id",]
+
+class suspendProjectResponse (baseResponse):
+    def __init__(self):
+        """the id of the project"""
+        self.id = None
+        """the account name of the project's owner"""
+        self.account = None
+        """the total number of cpu cores available to be created for this project"""
+        self.cpuavailable = None
+        """the total number of cpu cores the project can own"""
+        self.cpulimit = None
+        """the total number of cpu cores owned by project"""
+        self.cputotal = None
+        """the displaytext of the project"""
+        self.displaytext = None
+        """the domain name where the project belongs to"""
+        self.domain = None
+        """the domain id the project belongs to"""
+        self.domainid = None
+        """the total number of public ip addresses available for this project to acquire"""
+        self.ipavailable = None
+        """the total number of public ip addresses this project can acquire"""
+        self.iplimit = None
+        """the total number of public ip addresses allocated for this project"""
+        self.iptotal = None
+        """the total memory (in MB) available to be created for this project"""
+        self.memoryavailable = None
+        """the total memory (in MB) the project can own"""
+        self.memorylimit = None
+        """the total memory (in MB) owned by project"""
+        self.memorytotal = None
+        """the name of the project"""
+        self.name = None
+        """the total number of networks available to be created for this project"""
+        self.networkavailable = None
+        """the total number of networks the project can own"""
+        self.networklimit = None
+        """the total number of networks owned by project"""
+        self.networktotal = None
+        """the total primary storage space (in GiB) available to be used for this project"""
+        self.primarystorageavailable = None
+        """the total primary storage space (in GiB) the project can own"""
+        self.primarystoragelimit = None
+        """the total primary storage space (in GiB) owned by project"""
+        self.primarystoragetotal = None
+        """the total secondary storage space (in GiB) available to be used for this project"""
+        self.secondarystorageavailable = None
+        """the total secondary storage space (in GiB) the project can own"""
+        self.secondarystoragelimit = None
+        """the total secondary storage space (in GiB) owned by project"""
+        self.secondarystoragetotal = None
+        """the total number of snapshots available for this project"""
+        self.snapshotavailable = None
+        """the total number of snapshots which can be stored by this project"""
+        self.snapshotlimit = None
+        """the total number of snapshots stored by this project"""
+        self.snapshottotal = None
+        """the state of the project"""
+        self.state = None
+        """the total number of templates available to be created by this project"""
+        self.templateavailable = None
+        """the total number of templates which can be created by this project"""
+        self.templatelimit = None
+        """the total number of templates which have been created by this project"""
+        self.templatetotal = None
+        """the total number of virtual machines available for this project to acquire"""
+        self.vmavailable = None
+        """the total number of virtual machines that can be deployed by this project"""
+        self.vmlimit = None
+        """the total number of virtual machines running for this project"""
+        self.vmrunning = None
+        """the total number of virtual machines stopped for this project"""
+        self.vmstopped = None
+        """the total number of virtual machines deployed by this project"""
+        self.vmtotal = None
+        """the total volume available for this project"""
+        self.volumeavailable = None
+        """the total volume which can be used by this project"""
+        self.volumelimit = None
+        """the total volume being used by this project"""
+        self.volumetotal = None
+        """the total number of vpcs available to be created for this project"""
+        self.vpcavailable = None
+        """the total number of vpcs the project can own"""
+        self.vpclimit = None
+        """the total number of vpcs owned by project"""
+        self.vpctotal = None
+        """the list of resource tags associated with vm"""
+        self.tags = []
+
+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/updateAccount.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateAccount.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateAccount.py
new file mode 100644
index 0000000..aabd811
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateAccount.py
@@ -0,0 +1,183 @@
+# 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.
+
+
+"""Updates account information for the authenticated user"""
+from baseCmd import *
+from baseResponse import *
+class updateAccountCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """new name for the account"""
+        """Required"""
+        self.newname = None
+        """the current account name"""
+        self.account = None
+        """details for account used to store specific parameters"""
+        self.accountdetails = []
+        """the ID of the domain where the account exists"""
+        self.domainid = None
+        """Account id"""
+        self.id = None
+        """Network domain for the account's networks; empty string will update domainName with NULL value"""
+        self.networkdomain = None
+        self.required = ["newname",]
+
+class updateAccountResponse (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/updateAutoScalePolicy.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateAutoScalePolicy.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateAutoScalePolicy.py
new file mode 100644
index 0000000..752c07c
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateAutoScalePolicy.py
@@ -0,0 +1,58 @@
+# 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.
+
+
+"""Updates an existing autoscale policy."""
+from baseCmd import *
+from baseResponse import *
+class updateAutoScalePolicyCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """the ID of the autoscale policy"""
+        """Required"""
+        self.id = None
+        """the list of IDs of the conditions that are being evaluated on every interval"""
+        self.conditionids = []
+        """the duration for which the conditions have to be true before action is taken"""
+        self.duration = None
+        """the cool down period for which the policy should not be evaluated after the action has been taken"""
+        self.quiettime = None
+        self.required = ["id",]
+
+class updateAutoScalePolicyResponse (baseResponse):
+    def __init__(self):
+        """the autoscale policy ID"""
+        self.id = None
+        """the account owning the autoscale policy"""
+        self.account = None
+        """the action to be executed if all the conditions evaluate to true for the specified duration."""
+        self.action = None
+        """the list of IDs of the conditions that are being evaluated on every interval"""
+        self.conditions = None
+        """the domain name of the autoscale policy"""
+        self.domain = None
+        """the domain ID of the autoscale policy"""
+        self.domainid = None
+        """the duration for which the conditions have to be true before action is taken"""
+        self.duration = None
+        """the project name of the autoscale policy"""
+        self.project = None
+        """the project id autoscale policy"""
+        self.projectid = None
+        """the cool down period for which the policy should not be evaluated after the action has been taken"""
+        self.quiettime = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/updateAutoScaleVmGroup.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateAutoScaleVmGroup.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateAutoScaleVmGroup.py
new file mode 100644
index 0000000..705714e
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateAutoScaleVmGroup.py
@@ -0,0 +1,70 @@
+# 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.
+
+
+"""Updates an existing autoscale vm group."""
+from baseCmd import *
+from baseResponse import *
+class updateAutoScaleVmGroupCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """the ID of the autoscale group"""
+        """Required"""
+        self.id = None
+        """the frequency at which the conditions have to be evaluated"""
+        self.interval = None
+        """the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number."""
+        self.maxmembers = None
+        """the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number."""
+        self.minmembers = None
+        """list of scaledown autoscale policies"""
+        self.scaledownpolicyids = []
+        """list of scaleup autoscale policies"""
+        self.scaleuppolicyids = []
+        self.required = ["id",]
+
+class updateAutoScaleVmGroupResponse (baseResponse):
+    def __init__(self):
+        """the autoscale vm group ID"""
+        self.id = None
+        """the account owning the instance group"""
+        self.account = None
+        """the domain name of the vm profile"""
+        self.domain = None
+        """the domain ID of the vm profile"""
+        self.domainid = None
+        """the frequency at which the conditions have to be evaluated"""
+        self.interval = None
+        """the load balancer rule ID"""
+        self.lbruleid = None
+        """the maximum number of members in the vmgroup, The number of instances in the vm group will be equal to or less than this number."""
+        self.maxmembers = None
+        """the minimum number of members in the vmgroup, the number of instances in the vm group will be equal to or more than this number."""
+        self.minmembers = None
+        """the project name of the vm profile"""
+        self.project = None
+        """the project id vm profile"""
+        self.projectid = None
+        """list of scaledown autoscale policies"""
+        self.scaledownpolicies = None
+        """list of scaleup autoscale policies"""
+        self.scaleuppolicies = None
+        """the current state of the AutoScale Vm Group"""
+        self.state = None
+        """the autoscale profile that contains information about the vms in the vm group."""
+        self.vmprofileid = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/updateAutoScaleVmProfile.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateAutoScaleVmProfile.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateAutoScaleVmProfile.py
new file mode 100644
index 0000000..d733c79
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateAutoScaleVmProfile.py
@@ -0,0 +1,64 @@
+# 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.
+
+
+"""Updates an existing autoscale vm profile."""
+from baseCmd import *
+from baseResponse import *
+class updateAutoScaleVmProfileCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """the ID of the autoscale vm profile"""
+        """Required"""
+        self.id = None
+        """the ID of the user used to launch and destroy the VMs"""
+        self.autoscaleuserid = None
+        """counterparam list. Example: counterparam[0].name=snmpcommunity&counterparam[0].value=public&counterparam[1].name=snmpport&counterparam[1].value=161"""
+        self.counterparam = []
+        """the time allowed for existing connections to get closed before a vm is destroyed"""
+        self.destroyvmgraceperiod = None
+        """the template of the auto deployed virtual machine"""
+        self.templateid = None
+        self.required = ["id",]
+
+class updateAutoScaleVmProfileResponse (baseResponse):
+    def __init__(self):
+        """the autoscale vm profile ID"""
+        self.id = None
+        """the account owning the instance group"""
+        self.account = None
+        """the ID of the user used to launch and destroy the VMs"""
+        self.autoscaleuserid = None
+        """the time allowed for existing connections to get closed before a vm is destroyed"""
+        self.destroyvmgraceperiod = None
+        """the domain name of the vm profile"""
+        self.domain = None
+        """the domain ID of the vm profile"""
+        self.domainid = None
+        """parameters other than zoneId/serviceOfferringId/templateId to be used while deploying a virtual machine"""
+        self.otherdeployparams = None
+        """the project name of the vm profile"""
+        self.project = None
+        """the project id vm profile"""
+        self.projectid = None
+        """the service offering to be used while deploying a virtual machine"""
+        self.serviceofferingid = None
+        """the template to be used while deploying a virtual machine"""
+        self.templateid = None
+        """the availability zone to be used while deploying a virtual machine"""
+        self.zoneid = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/updateCluster.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateCluster.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateCluster.py
new file mode 100644
index 0000000..3c19279
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateCluster.py
@@ -0,0 +1,91 @@
+# 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.
+
+
+"""Updates an existing cluster"""
+from baseCmd import *
+from baseResponse import *
+class updateClusterCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """the ID of the Cluster"""
+        """Required"""
+        self.id = None
+        """Allocation state of this cluster for allocation of new resources"""
+        self.allocationstate = None
+        """the cluster name"""
+        self.clustername = None
+        """hypervisor type of the cluster"""
+        self.clustertype = None
+        """hypervisor type of the cluster"""
+        self.hypervisor = None
+        """whether this cluster is managed by cloudstack"""
+        self.managedstate = None
+        self.required = ["id",]
+
+class updateClusterResponse (baseResponse):
+    def __init__(self):
+        """the cluster ID"""
+        self.id = None
+        """the allocation state of the cluster"""
+        self.allocationstate = None
+        """the type of the cluster"""
+        self.clustertype = None
+        """The cpu overcommit ratio of the cluster"""
+        self.cpuovercommitratio = None
+        """the hypervisor type of the cluster"""
+        self.hypervisortype = None
+        """whether this cluster is managed by cloudstack"""
+        self.managedstate = None
+        """The memory overcommit ratio of the cluster"""
+        self.memoryovercommitratio = None
+        """the cluster name"""
+        self.name = None
+        """the Pod ID of the cluster"""
+        self.podid = None
+        """the Pod name of the cluster"""
+        self.podname = None
+        """the Zone ID of the cluster"""
+        self.zoneid = None
+        """the Zone name of the cluster"""
+        self.zonename = None
+        """the capacity of the Cluster"""
+        self.capacity = []
+
+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
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/updateConfiguration.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateConfiguration.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateConfiguration.py
new file mode 100644
index 0000000..6e54ab5
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateConfiguration.py
@@ -0,0 +1,54 @@
+# 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.
+
+
+"""Updates a configuration."""
+from baseCmd import *
+from baseResponse import *
+class updateConfigurationCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """the name of the configuration"""
+        """Required"""
+        self.name = None
+        """the ID of the Account to update the parameter value for corresponding account"""
+        self.accountid = None
+        """the ID of the Cluster to update the parameter value for corresponding cluster"""
+        self.clusterid = None
+        """the ID of the Storage pool to update the parameter value for corresponding storage pool"""
+        self.storageid = None
+        """the value of the configuration"""
+        self.value = None
+        """the ID of the Zone to update the parameter value for corresponding zone"""
+        self.zoneid = None
+        self.required = ["name",]
+
+class updateConfigurationResponse (baseResponse):
+    def __init__(self):
+        """the value of the configuration"""
+        self.id = None
+        """the category of the configuration"""
+        self.category = None
+        """the description of the configuration"""
+        self.description = None
+        """the name of the configuration"""
+        self.name = None
+        """scope(zone/cluster/pool/account) of the parameter that needs to be updated"""
+        self.scope = None
+        """the value of the configuration"""
+        self.value = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/updateDefaultNicForVirtualMachine.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateDefaultNicForVirtualMachine.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateDefaultNicForVirtualMachine.py
new file mode 100644
index 0000000..1d073ed
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateDefaultNicForVirtualMachine.py
@@ -0,0 +1,372 @@
+# 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.
+
+
+"""Changes the default NIC on a VM"""
+from baseCmd import *
+from baseResponse import *
+class updateDefaultNicForVirtualMachineCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """NIC ID"""
+        """Required"""
+        self.nicid = None
+        """Virtual Machine ID"""
+        """Required"""
+        self.virtualmachineid = None
+        self.required = ["nicid","virtualmachineid",]
+
+class updateDefaultNicForVirtualMachineResponse (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/updateDiskOffering.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateDiskOffering.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateDiskOffering.py
new file mode 100644
index 0000000..a90dab8
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateDiskOffering.py
@@ -0,0 +1,76 @@
+# 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.
+
+
+"""Updates a disk offering."""
+from baseCmd import *
+from baseResponse import *
+class updateDiskOfferingCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """ID of the disk offering"""
+        """Required"""
+        self.id = None
+        """an optional field, whether to display the offering to the end user or not."""
+        self.displayoffering = None
+        """updates alternate display text of the disk offering with this value"""
+        self.displaytext = None
+        """updates name of the disk offering with this value"""
+        self.name = None
+        """sort key of the disk offering, integer"""
+        self.sortkey = None
+        self.required = ["id",]
+
+class updateDiskOfferingResponse (baseResponse):
+    def __init__(self):
+        """unique ID of the disk offering"""
+        self.id = None
+        """the date this disk offering was created"""
+        self.created = None
+        """bytes read rate of the disk offering"""
+        self.diskBytesReadRate = None
+        """bytes write rate of the disk offering"""
+        self.diskBytesWriteRate = None
+        """io requests read rate of the disk offering"""
+        self.diskIopsReadRate = None
+        """io requests write rate of the disk offering"""
+        self.diskIopsWriteRate = None
+        """the size of the disk offering in GB"""
+        self.disksize = None
+        """whether to display the offering to the end user or not."""
+        self.displayoffering = None
+        """an alternate display text of the disk offering."""
+        self.displaytext = None
+        """the domain name this disk offering belongs to. Ignore this information as it is not currently applicable."""
+        self.domain = None
+        """the domain ID this disk offering belongs to. Ignore this information as it is not currently applicable."""
+        self.domainid = None
+        """true if disk offering uses custom size, false otherwise"""
+        self.iscustomized = None
+        """true if disk offering uses custom iops, false otherwise"""
+        self.iscustomizediops = None
+        """the max iops of the disk offering"""
+        self.maxiops = None
+        """the min iops of the disk offering"""
+        self.miniops = None
+        """the name of the disk offering"""
+        self.name = None
+        """the storage type for this disk offering"""
+        self.storagetype = None
+        """the tags for the disk offering"""
+        self.tags = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/updateDomain.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateDomain.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateDomain.py
new file mode 100644
index 0000000..3ba2377
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateDomain.py
@@ -0,0 +1,52 @@
+# 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.
+
+
+"""Updates a domain with a new name"""
+from baseCmd import *
+from baseResponse import *
+class updateDomainCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """ID of domain to update"""
+        """Required"""
+        self.id = None
+        """updates domain with this name"""
+        self.name = None
+        """Network domain for the domain's networks; empty string will update domainName with NULL value"""
+        self.networkdomain = None
+        self.required = ["id",]
+
+class updateDomainResponse (baseResponse):
+    def __init__(self):
+        """the ID of the domain"""
+        self.id = None
+        """whether the domain has one or more sub-domains"""
+        self.haschild = None
+        """the level of the domain"""
+        self.level = None
+        """the name of the domain"""
+        self.name = None
+        """the network domain"""
+        self.networkdomain = None
+        """the domain ID of the parent domain"""
+        self.parentdomainid = None
+        """the domain name of the parent domain"""
+        self.parentdomainname = None
+        """the path of the domain"""
+        self.path = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/updateGlobalLoadBalancerRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateGlobalLoadBalancerRule.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateGlobalLoadBalancerRule.py
new file mode 100644
index 0000000..98e907b
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateGlobalLoadBalancerRule.py
@@ -0,0 +1,148 @@
+# 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.
+
+
+"""update global load balancer rules."""
+from baseCmd import *
+from baseResponse import *
+class updateGlobalLoadBalancerRuleCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """the ID of the global load balancer rule"""
+        """Required"""
+        self.id = None
+        """the description of the load balancer rule"""
+        self.description = None
+        """load balancer algorithm (roundrobin, leastconn, proximity) that is used to distributed traffic across the zones participating in global server load balancing, if not specified defaults to 'round robin'"""
+        self.gslblbmethod = None
+        """session sticky method (sourceip) if not specified defaults to sourceip"""
+        self.gslbstickysessionmethodname = None
+        self.required = ["id",]
+
+class updateGlobalLoadBalancerRuleResponse (baseResponse):
+    def __init__(self):
+        """global load balancer rule ID"""
+        self.id = None
+        """the account of the load balancer rule"""
+        self.account = None
+        """the description of the global load balancer rule"""
+        self.description = None
+        """the domain of the load balancer rule"""
+        self.domain = None
+        """the domain ID of the load balancer rule"""
+        self.domainid = None
+        """DNS domain name given for the global load balancer"""
+        self.gslbdomainname = None
+        """Load balancing method used for the global load balancer"""
+        self.gslblbmethod = None
+        """GSLB service type"""
+        self.gslbservicetype = None
+        """session persistence method used for the global load balancer"""
+        self.gslbstickysessionmethodname = None
+        """name of the global load balancer rule"""
+        self.name = None
+        """the project name of the load balancer"""
+        self.project = None
+        """the project id of the load balancer"""
+        self.projectid = None
+        """Region Id in which global load balancer is created"""
+        self.regionid = None
+        """List of load balancer rules that are part of GSLB rule"""
+        self.loadbalancerrule = []
+
+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 loadbalancerrule:
+    def __init__(self):
+        """"the load balancer rule ID"""
+        self.id = None
+        """"the account of the load balancer rule"""
+        self.account = None
+        """"the load balancer algorithm (source, roundrobin, leastconn)"""
+        self.algorithm = None
+        """"the cidr list to forward traffic from"""
+        self.cidrlist = None
+        """"the description of the load balancer"""
+        self.description = None
+        """"the domain of the load balancer rule"""
+        self.domain = None
+        """"the domain ID of the load balancer rule"""
+        self.domainid = None
+        """"the name of the load balancer"""
+        self.name = None
+        """"the id of the guest network the lb rule belongs to"""
+        self.networkid = None
+        """"the private port"""
+        self.privateport = None
+        """"the project name of the load balancer"""
+        self.project = None
+        """"the project id of the load balancer"""
+        self.projectid = None
+        """"the public ip address"""
+        self.publicip = None
+        """"the public ip address id"""
+        self.publicipid = None
+        """"the public port"""
+        self.publicport = None
+        """"the state of the rule"""
+        self.state = None
+        """"the id of the zone the rule belongs to"""
+        self.zoneid = None
+        """"the list of resource tags associated with load balancer"""
+        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
+