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:22 UTC

[06/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/updateStoragePool.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateStoragePool.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateStoragePool.py
new file mode 100644
index 0000000..d77e0e7
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateStoragePool.py
@@ -0,0 +1,84 @@
+# 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 storage pool."""
+from baseCmd import *
+from baseResponse import *
+class updateStoragePoolCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """the Id of the storage pool"""
+        """Required"""
+        self.id = None
+        """bytes CloudStack can provision from this storage pool"""
+        self.capacitybytes = None
+        """IOPS CloudStack can provision from this storage pool"""
+        self.capacityiops = None
+        """comma-separated list of tags for the storage pool"""
+        self.tags = []
+        self.required = ["id",]
+
+class updateStoragePoolResponse (baseResponse):
+    def __init__(self):
+        """the ID of the storage pool"""
+        self.id = None
+        """IOPS CloudStack can provision from this storage pool"""
+        self.capacityiops = None
+        """the ID of the cluster for the storage pool"""
+        self.clusterid = None
+        """the name of the cluster for the storage pool"""
+        self.clustername = None
+        """the date and time the storage pool was created"""
+        self.created = None
+        """the host's currently allocated disk size"""
+        self.disksizeallocated = None
+        """the total disk size of the storage pool"""
+        self.disksizetotal = None
+        """the host's currently used disk size"""
+        self.disksizeused = None
+        """the hypervisor type of the storage pool"""
+        self.hypervisor = None
+        """the IP address of the storage pool"""
+        self.ipaddress = None
+        """the name of the storage pool"""
+        self.name = None
+        """the storage pool path"""
+        self.path = None
+        """the Pod ID of the storage pool"""
+        self.podid = None
+        """the Pod name of the storage pool"""
+        self.podname = None
+        """the scope of the storage pool"""
+        self.scope = None
+        """the state of the storage pool"""
+        self.state = None
+        """true if this pool is suitable to migrate a volume, false otherwise"""
+        self.suitableformigration = None
+        """the tags for the storage pool"""
+        self.tags = None
+        """the storage pool type"""
+        self.type = None
+        """the Zone ID of the storage pool"""
+        self.zoneid = None
+        """the Zone name of the storage pool"""
+        self.zonename = 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
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/updateTemplate.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateTemplate.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateTemplate.py
new file mode 100644
index 0000000..5787382
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateTemplate.py
@@ -0,0 +1,149 @@
+# 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 attributes of a template."""
+from baseCmd import *
+from baseResponse import *
+class updateTemplateCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """the ID of the image file"""
+        """Required"""
+        self.id = None
+        """true if image is bootable, false otherwise"""
+        self.bootable = None
+        """the display text of the image"""
+        self.displaytext = None
+        """the format for the image"""
+        self.format = None
+        """true if template/ISO contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory"""
+        self.isdynamicallyscalable = None
+        """true if the template type is routing i.e., if template is used to deploy router"""
+        self.isrouting = None
+        """the name of the image file"""
+        self.name = None
+        """the ID of the OS type that best represents the OS of this image."""
+        self.ostypeid = None
+        """true if the image supports the password reset feature; default is false"""
+        self.passwordenabled = None
+        """sort key of the template, integer"""
+        self.sortkey = None
+        self.required = ["id",]
+
+class updateTemplateResponse (baseResponse):
+    def __init__(self):
+        """the template ID"""
+        self.id = None
+        """the account name to which the template belongs"""
+        self.account = None
+        """the account id to which the template belongs"""
+        self.accountid = None
+        """true if the ISO is bootable, false otherwise"""
+        self.bootable = None
+        """checksum of the template"""
+        self.checksum = None
+        """the date this template was created"""
+        self.created = None
+        """true if the template is managed across all Zones, false otherwise"""
+        self.crossZones = None
+        """additional key/value details tied with template"""
+        self.details = None
+        """the template display text"""
+        self.displaytext = None
+        """the name of the domain to which the template belongs"""
+        self.domain = None
+        """the ID of the domain to which the template belongs"""
+        self.domainid = None
+        """the format of the template."""
+        self.format = None
+        """the ID of the secondary storage host for the template"""
+        self.hostid = None
+        """the name of the secondary storage host for the template"""
+        self.hostname = None
+        """the hypervisor on which the template runs"""
+        self.hypervisor = None
+        """true if template contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory"""
+        self.isdynamicallyscalable = None
+        """true if the template is extractable, false otherwise"""
+        self.isextractable = None
+        """true if this template is a featured template, false otherwise"""
+        self.isfeatured = None
+        """true if this template is a public template, false otherwise"""
+        self.ispublic = None
+        """true if the template is ready to be deployed from, false otherwise."""
+        self.isready = None
+        """the template name"""
+        self.name = None
+        """the ID of the OS type for this template."""
+        self.ostypeid = None
+        """the name of the OS type for this template."""
+        self.ostypename = None
+        """true if the reset password feature is enabled, false otherwise"""
+        self.passwordenabled = None
+        """the project name of the template"""
+        self.project = None
+        """the project id of the template"""
+        self.projectid = None
+        """the date this template was removed"""
+        self.removed = None
+        """the size of the template"""
+        self.size = None
+        """the template ID of the parent template if present"""
+        self.sourcetemplateid = None
+        """true if template is sshkey enabled, false otherwise"""
+        self.sshkeyenabled = None
+        """the status of the template"""
+        self.status = None
+        """the tag of this template"""
+        self.templatetag = None
+        """the type of the template"""
+        self.templatetype = None
+        """the ID of the zone for this template"""
+        self.zoneid = None
+        """the name of the zone for this template"""
+        self.zonename = None
+        """the list of resource tags associated with tempate"""
+        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/updateTemplatePermissions.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateTemplatePermissions.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateTemplatePermissions.py
new file mode 100644
index 0000000..88d01e0
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateTemplatePermissions.py
@@ -0,0 +1,48 @@
+# 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 template visibility permissions. A public template is visible to all accounts within the same domain. A private template is visible only to the owner of the template. A priviledged template is a private template with account permissions added. Only accounts specified under the template permissions are visible to them."""
+from baseCmd import *
+from baseResponse import *
+class updateTemplatePermissionsCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """the template ID"""
+        """Required"""
+        self.id = None
+        """a comma delimited list of accounts. If specified, "op" parameter has to be passed in."""
+        self.accounts = []
+        """true if the template/iso is extractable, false other wise. Can be set only by root admin"""
+        self.isextractable = None
+        """true for featured template/iso, false otherwise"""
+        self.isfeatured = None
+        """true for public template/iso, false for private templates/isos"""
+        self.ispublic = None
+        """permission operator (add, remove, reset)"""
+        self.op = None
+        """a comma delimited list of projects. If specified, "op" parameter has to be passed in."""
+        self.projectids = []
+        self.required = ["id",]
+
+class updateTemplatePermissionsResponse (baseResponse):
+    def __init__(self):
+        """any text associated with the success or failure"""
+        self.displaytext = None
+        """true if operation is executed successfully"""
+        self.success = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/updateTrafficType.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateTrafficType.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateTrafficType.py
new file mode 100644
index 0000000..8d21642
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateTrafficType.py
@@ -0,0 +1,50 @@
+# 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 traffic type of a physical network"""
+from baseCmd import *
+from baseResponse import *
+class updateTrafficTypeCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """traffic type id"""
+        """Required"""
+        self.id = None
+        """The network name label of the physical device dedicated to this traffic on a KVM host"""
+        self.kvmnetworklabel = None
+        """The network name label of the physical device dedicated to this traffic on a VMware host"""
+        self.vmwarenetworklabel = None
+        """The network name label of the physical device dedicated to this traffic on a XenServer host"""
+        self.xennetworklabel = None
+        self.required = ["id",]
+
+class updateTrafficTypeResponse (baseResponse):
+    def __init__(self):
+        """id of the network provider"""
+        self.id = None
+        """The network name label of the physical device dedicated to this traffic on a KVM host"""
+        self.kvmnetworklabel = None
+        """the physical network this belongs to"""
+        self.physicalnetworkid = None
+        """the trafficType to be added to the physical network"""
+        self.traffictype = None
+        """The network name label of the physical device dedicated to this traffic on a VMware host"""
+        self.vmwarenetworklabel = None
+        """The network name label of the physical device dedicated to this traffic on a XenServer host"""
+        self.xennetworklabel = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/updateUser.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateUser.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateUser.py
new file mode 100644
index 0000000..e60959b
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateUser.py
@@ -0,0 +1,82 @@
+# 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 user account"""
+from baseCmd import *
+from baseResponse import *
+class updateUserCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """User uuid"""
+        """Required"""
+        self.id = None
+        """email"""
+        self.email = None
+        """first name"""
+        self.firstname = None
+        """last name"""
+        self.lastname = None
+        """Clear text password (default hashed to SHA256SALT). If you wish to use any other hasing algorithm, you would need to write a custom authentication adapter"""
+        self.password = None
+        """Specifies a timezone for this command. For more information on the timezone parameter, see Time Zone Format."""
+        self.timezone = None
+        """The API key for the user. Must be specified with userSecretKey"""
+        self.userapikey = None
+        """Unique username"""
+        self.username = None
+        """The secret key for the user. Must be specified with userApiKey"""
+        self.usersecretkey = None
+        self.required = ["id",]
+
+class updateUserResponse (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/updateVMAffinityGroup.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateVMAffinityGroup.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateVMAffinityGroup.py
new file mode 100644
index 0000000..b5e63dc
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateVMAffinityGroup.py
@@ -0,0 +1,373 @@
+# 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 the affinity/anti-affinity group associations of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect."""
+from baseCmd import *
+from baseResponse import *
+class updateVMAffinityGroupCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """The ID of the virtual machine"""
+        """Required"""
+        self.id = None
+        """comma separated list of affinity groups id that are going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupnames parameter"""
+        self.affinitygroupids = []
+        """comma separated list of affinity groups names that are going to be applied to the virtual machine. Should be passed only when vm is created from a zone with Basic Network support. Mutually exclusive with securitygroupids parameter"""
+        self.affinitygroupnames = []
+        self.required = ["id",]
+
+class updateVMAffinityGroupResponse (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/updateVPC.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateVPC.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateVPC.py
new file mode 100644
index 0000000..b43cb95
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateVPC.py
@@ -0,0 +1,398 @@
+# 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 VPC"""
+from baseCmd import *
+from baseResponse import *
+class updateVPCCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """the id of the VPC"""
+        """Required"""
+        self.id = None
+        """the name of the VPC"""
+        """Required"""
+        self.name = None
+        """the display text of the VPC"""
+        self.displaytext = None
+        self.required = ["id","name",]
+
+class updateVPCResponse (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/updateVPCOffering.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateVPCOffering.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateVPCOffering.py
new file mode 100644
index 0000000..aab8917
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateVPCOffering.py
@@ -0,0 +1,107 @@
+# 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 VPC offering"""
+from baseCmd import *
+from baseResponse import *
+class updateVPCOfferingCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """the id of the VPC offering"""
+        """Required"""
+        self.id = None
+        """the display text of the VPC offering"""
+        self.displaytext = None
+        """the name of the VPC offering"""
+        self.name = None
+        """update state for the VPC offering; supported states - Enabled/Disabled"""
+        self.state = None
+        self.required = ["id",]
+
+class updateVPCOfferingResponse (baseResponse):
+    def __init__(self):
+        """the id of the vpc offering"""
+        self.id = None
+        """the date this vpc offering was created"""
+        self.created = None
+        """an alternate display text of the vpc offering."""
+        self.displaytext = None
+        """true if vpc offering is default, false otherwise"""
+        self.isdefault = None
+        """the name of the vpc offering"""
+        self.name = None
+        """state of the vpc offering. Can be Disabled/Enabled"""
+        self.state = None
+        """the list of supported services"""
+        self.service = []
+
+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
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/updateVirtualMachine.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateVirtualMachine.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateVirtualMachine.py
new file mode 100644
index 0000000..b1ad6e4
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateVirtualMachine.py
@@ -0,0 +1,383 @@
+# 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 properties of a virtual machine. The VM has to be stopped and restarted for the new properties to take effect. UpdateVirtualMachine does not first check whether the VM is stopped. Therefore, stop the VM manually before issuing this call."""
+from baseCmd import *
+from baseResponse import *
+class updateVirtualMachineCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """The ID of the virtual machine"""
+        """Required"""
+        self.id = None
+        """user generated name"""
+        self.displayname = None
+        """an optional field, whether to the display the vm to the end user or not."""
+        self.displayvm = None
+        """group of the virtual machine"""
+        self.group = None
+        """true if high-availability is enabled for the virtual machine, false otherwise"""
+        self.haenable = None
+        """true if VM contains XS/VMWare tools inorder to support dynamic scaling of VM cpu/memory"""
+        self.isdynamicallyscalable = None
+        """the ID of the OS type that best represents this VM."""
+        self.ostypeid = None
+        """an optional binary data that can be sent to the virtual machine upon a successful deployment. This binary data must be base64 encoded before adding it to the request. Using HTTP GET (via querystring), you can send up to 2KB of data after base64 encoding. Using HTTP POST(via POST body), you can send up to 32K of data after base64 encoding."""
+        self.userdata = None
+        self.required = ["id",]
+
+class updateVirtualMachineResponse (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/updateVolume.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateVolume.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateVolume.py
new file mode 100644
index 0000000..5955ec1
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateVolume.py
@@ -0,0 +1,150 @@
+# 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 the volume."""
+from baseCmd import *
+from baseResponse import *
+class updateVolumeCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """an optional field, whether to the display the volume to the end user or not."""
+        self.displayvolume = None
+        """the ID of the disk volume"""
+        self.id = None
+        """The path of the volume"""
+        self.path = None
+        """The state of the volume"""
+        self.state = None
+        """Destination storage pool UUID for the volume"""
+        self.storageid = None
+        self.required = []
+
+class updateVolumeResponse (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/updateVpnCustomerGateway.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/updateVpnCustomerGateway.py b/tools/marvin/build/lib/marvin/cloudstackAPI/updateVpnCustomerGateway.py
new file mode 100644
index 0000000..959473a
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/updateVpnCustomerGateway.py
@@ -0,0 +1,93 @@
+# 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 site to site vpn customer gateway"""
+from baseCmd import *
+from baseResponse import *
+class updateVpnCustomerGatewayCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """id of customer gateway"""
+        """Required"""
+        self.id = None
+        """guest cidr of the customer gateway"""
+        """Required"""
+        self.cidrlist = None
+        """ESP policy of the customer gateway"""
+        """Required"""
+        self.esppolicy = None
+        """public ip address id of the customer gateway"""
+        """Required"""
+        self.gateway = None
+        """IKE policy of the customer gateway"""
+        """Required"""
+        self.ikepolicy = None
+        """IPsec Preshared-Key of the customer gateway"""
+        """Required"""
+        self.ipsecpsk = None
+        """the account associated with the gateway. Must be used with the domainId parameter."""
+        self.account = None
+        """the domain ID associated with the gateway. If used with the account parameter returns the gateway associated with the account for the specified domain."""
+        self.domainid = None
+        """If DPD is enabled for VPN connection"""
+        self.dpd = None
+        """Lifetime of phase 2 VPN connection to the customer gateway, in seconds"""
+        self.esplifetime = None
+        """Lifetime of phase 1 VPN connection to the customer gateway, in seconds"""
+        self.ikelifetime = None
+        """name of this customer gateway"""
+        self.name = None
+        self.required = ["id","cidrlist","esppolicy","gateway","ikepolicy","ipsecpsk",]
+
+class updateVpnCustomerGatewayResponse (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
+