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:34:10 UTC

[23/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/createLoadBalancer.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createLoadBalancer.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createLoadBalancer.py
new file mode 100644
index 0000000..0dcb5e9
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createLoadBalancer.py
@@ -0,0 +1,127 @@
+# 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.
+
+
+"""Creates a Load Balancer"""
+from baseCmd import *
+from baseResponse import *
+class createLoadBalancerCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """load balancer algorithm (source, roundrobin, leastconn)"""
+        """Required"""
+        self.algorithm = None
+        """the TCP port of the virtual machine where the network traffic will be load balanced to"""
+        """Required"""
+        self.instanceport = None
+        """name of the Load Balancer"""
+        """Required"""
+        self.name = None
+        """The guest network the Load Balancer will be created for"""
+        """Required"""
+        self.networkid = None
+        """the load balancer scheme. Supported value in this release is Internal"""
+        """Required"""
+        self.scheme = None
+        """the network id of the source ip address"""
+        """Required"""
+        self.sourceipaddressnetworkid = None
+        """the source port the network traffic will be load balanced from"""
+        """Required"""
+        self.sourceport = None
+        """the description of the Load Balancer"""
+        self.description = None
+        """the source ip address the network traffic will be load balanced from"""
+        self.sourceipaddress = None
+        self.required = ["algorithm","instanceport","name","networkid","scheme","sourceipaddressnetworkid","sourceport",]
+
+class createLoadBalancerResponse (baseResponse):
+    def __init__(self):
+        """the Load Balancer ID"""
+        self.id = None
+        """the account of the Load Balancer"""
+        self.account = None
+        """the load balancer algorithm (source, roundrobin, leastconn)"""
+        self.algorithm = None
+        """the description of the Load Balancer"""
+        self.description = None
+        """the domain of the Load Balancer"""
+        self.domain = None
+        """the domain ID of the Load Balancer"""
+        self.domainid = None
+        """the name of the Load Balancer"""
+        self.name = None
+        """Load Balancer network id"""
+        self.networkid = None
+        """the project name of the Load Balancer"""
+        self.project = None
+        """the project id of the Load Balancer"""
+        self.projectid = None
+        """Load Balancer source ip"""
+        self.sourceipaddress = None
+        """Load Balancer source ip network id"""
+        self.sourceipaddressnetworkid = None
+        """the list of instances associated with the Load Balancer"""
+        self.loadbalancerinstance = []
+        """the list of rules associated with the Load Balancer"""
+        self.loadbalancerrule = []
+        """the list of resource tags associated with the Load Balancer"""
+        self.tags = []
+
+class loadbalancerinstance:
+    def __init__(self):
+        """"the instance ID"""
+        self.id = None
+        """"the ip address of the instance"""
+        self.ipaddress = None
+        """"the name of the instance"""
+        self.name = None
+        """"the state of the instance"""
+        self.state = None
+
+class loadbalancerrule:
+    def __init__(self):
+        """"instance port of the load balancer rule"""
+        self.instanceport = None
+        """"source port of the load balancer rule"""
+        self.sourceport = None
+        """"the state of the load balancer rule"""
+        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/createLoadBalancerRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createLoadBalancerRule.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createLoadBalancerRule.py
new file mode 100644
index 0000000..e30877e
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createLoadBalancerRule.py
@@ -0,0 +1,116 @@
+# 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.
+
+
+"""Creates a load balancer rule"""
+from baseCmd import *
+from baseResponse import *
+class createLoadBalancerRuleCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """load balancer algorithm (source, roundrobin, leastconn)"""
+        """Required"""
+        self.algorithm = None
+        """name of the load balancer rule"""
+        """Required"""
+        self.name = None
+        """the private port of the private ip address/virtual machine where the network traffic will be load balanced to"""
+        """Required"""
+        self.privateport = None
+        """the public port from where the network traffic will be load balanced from"""
+        """Required"""
+        self.publicport = None
+        """the account associated with the load balancer. Must be used with the domainId parameter."""
+        self.account = None
+        """the cidr list to forward traffic from"""
+        self.cidrlist = []
+        """the description of the load balancer rule"""
+        self.description = None
+        """the domain ID associated with the load balancer"""
+        self.domainid = None
+        """The guest network this rule will be created for. Required when public Ip address is not associated with any Guest network yet (VPC case)"""
+        self.networkid = None
+        """if true, firewall rule for source/end pubic port is automatically created; if false - firewall rule has to be created explicitely. If not specified 1) defaulted to false when LB rule is being created for VPC guest network 2) in all other cases defaulted to true"""
+        self.openfirewall = None
+        """public ip address id from where the network traffic will be load balanced from"""
+        self.publicipid = None
+        """zone where the load balancer is going to be created. This parameter is required when LB service provider is ElasticLoadBalancerVm"""
+        self.zoneid = None
+        self.required = ["algorithm","name","privateport","publicport",]
+
+class createLoadBalancerRuleResponse (baseResponse):
+    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 = []
+
+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/createNetwork.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createNetwork.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createNetwork.py
new file mode 100644
index 0000000..0e5c3a9
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createNetwork.py
@@ -0,0 +1,251 @@
+# 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.
+
+
+"""Creates a network"""
+from baseCmd import *
+from baseResponse import *
+class createNetworkCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """the display text of the network"""
+        """Required"""
+        self.displaytext = None
+        """the name of the network"""
+        """Required"""
+        self.name = None
+        """the network offering id"""
+        """Required"""
+        self.networkofferingid = None
+        """the Zone ID for the network"""
+        """Required"""
+        self.zoneid = None
+        """account who will own the network"""
+        self.account = None
+        """Network ACL Id associated for the network"""
+        self.aclid = None
+        """Access control type; supported values are account and domain. In 3.0 all shared networks should have aclType=Domain, and all Isolated networks - Account. Account means that only the account owner can use the network, domain - all accouns in the domain can use the network"""
+        self.acltype = None
+        """an optional field, whether to the display the network to the end user or not."""
+        self.displaynetwork = None
+        """domain ID of the account owning a network"""
+        self.domainid = None
+        """the ending IP address in the network IP range. If not specified, will be defaulted to startIP"""
+        self.endip = None
+        """the ending IPv6 address in the IPv6 network range"""
+        self.endipv6 = None
+        """the gateway of the network. Required for Shared networks and Isolated networks when it belongs to VPC"""
+        self.gateway = None
+        """the CIDR of IPv6 network, must be at least /64"""
+        self.ip6cidr = None
+        """the gateway of the IPv6 network. Required for Shared networks and Isolated networks when it belongs to VPC"""
+        self.ip6gateway = None
+        """the isolated private vlan for this network"""
+        self.isolatedpvlan = None
+        """the netmask of the network. Required for Shared networks and Isolated networks when it belongs to VPC"""
+        self.netmask = None
+        """network domain"""
+        self.networkdomain = None
+        """the Physical Network ID the network belongs to"""
+        self.physicalnetworkid = None
+        """an optional project for the ssh key"""
+        self.projectid = None
+        """the beginning IP address in the network IP range"""
+        self.startip = None
+        """the beginning IPv6 address in the IPv6 network range"""
+        self.startipv6 = None
+        """Defines whether to allow subdomains to use networks dedicated to their parent domain(s). Should be used with aclType=Domain, defaulted to allow.subdomain.network.access global config if not specified"""
+        self.subdomainaccess = None
+        """the ID or VID of the network"""
+        self.vlan = None
+        """the VPC network belongs to"""
+        self.vpcid = None
+        self.required = ["displaytext","name","networkofferingid","zoneid",]
+
+class createNetworkResponse (baseResponse):
+    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 list of resource tags associated with network"""
+        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 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/createNetworkACL.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createNetworkACL.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createNetworkACL.py
new file mode 100644
index 0000000..3b3f611
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createNetworkACL.py
@@ -0,0 +1,101 @@
+# 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.
+
+
+"""Creates a ACL rule in the given network (the network has to belong to VPC)"""
+from baseCmd import *
+from baseResponse import *
+class createNetworkACLCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """the protocol for the ACL rule. Valid values are TCP/UDP/ICMP/ALL or valid protocol number"""
+        """Required"""
+        self.protocol = None
+        """The network of the vm the ACL will be created for"""
+        self.aclid = None
+        """scl entry action, allow or deny"""
+        self.action = None
+        """the cidr list to allow traffic from/to"""
+        self.cidrlist = []
+        """the ending port of ACL"""
+        self.endport = None
+        """error code for this icmp message"""
+        self.icmpcode = None
+        """type of the icmp message being sent"""
+        self.icmptype = None
+        """The network of the vm the ACL will be created for"""
+        self.networkid = None
+        """The network of the vm the ACL will be created for"""
+        self.number = None
+        """the starting port of ACL"""
+        self.startport = None
+        """the traffic type for the ACL,can be Ingress or Egress, defaulted to Ingress if not specified"""
+        self.traffictype = None
+        self.required = ["protocol",]
+
+class createNetworkACLResponse (baseResponse):
+    def __init__(self):
+        """the ID of the ACL Item"""
+        self.id = None
+        """the ID of the ACL this item belongs to"""
+        self.aclid = None
+        """Action of ACL Item. Allow/Deny"""
+        self.action = None
+        """the cidr list to forward traffic from"""
+        self.cidrlist = None
+        """the ending port of ACL's port range"""
+        self.endport = None
+        """error code for this icmp message"""
+        self.icmpcode = None
+        """type of the icmp message being sent"""
+        self.icmptype = None
+        """Number of the ACL Item"""
+        self.number = None
+        """the protocol of the ACL"""
+        self.protocol = None
+        """the starting port of ACL's port range"""
+        self.startport = None
+        """the state of the rule"""
+        self.state = None
+        """the traffic type for the ACL"""
+        self.traffictype = None
+        """the list of resource tags associated with the network ACLs"""
+        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/createNetworkACLList.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createNetworkACLList.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createNetworkACLList.py
new file mode 100644
index 0000000..d13ffc1
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createNetworkACLList.py
@@ -0,0 +1,45 @@
+# 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.
+
+
+"""Creates a Network ACL for the given VPC"""
+from baseCmd import *
+from baseResponse import *
+class createNetworkACLListCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """Name of the network ACL List"""
+        """Required"""
+        self.name = None
+        """Id of the VPC associated with this network ACL List"""
+        """Required"""
+        self.vpcid = None
+        """Description of the network ACL List"""
+        self.description = None
+        self.required = ["name","vpcid",]
+
+class createNetworkACLListResponse (baseResponse):
+    def __init__(self):
+        """the ID of the ACL"""
+        self.id = None
+        """Description of the ACL"""
+        self.description = None
+        """the Name of the ACL"""
+        self.name = None
+        """Id of the VPC this ACL is associated with"""
+        self.vpcid = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/createNetworkOffering.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createNetworkOffering.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createNetworkOffering.py
new file mode 100644
index 0000000..e7b29d5
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createNetworkOffering.py
@@ -0,0 +1,167 @@
+# 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.
+
+
+"""Creates a network offering."""
+from baseCmd import *
+from baseResponse import *
+class createNetworkOfferingCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """the display text of the network offering"""
+        """Required"""
+        self.displaytext = None
+        """guest type of the network offering: Shared or Isolated"""
+        """Required"""
+        self.guestiptype = None
+        """the name of the network offering"""
+        """Required"""
+        self.name = None
+        """services supported by the network offering"""
+        """Required"""
+        self.supportedservices = []
+        """the traffic type for the network offering. Supported type in current release is GUEST only"""
+        """Required"""
+        self.traffictype = None
+        """the availability of network offering. Default value is Optional"""
+        self.availability = None
+        """true if the network offering is IP conserve mode enabled"""
+        self.conservemode = None
+        """Network offering details in key/value pairs. Supported keys are internallbprovider/publiclbprovider with service provider as a value"""
+        self.details = []
+        """true if default guest network egress policy is allow; false if default egress policy is deny"""
+        self.egressdefaultpolicy = None
+        """true if network offering supports persistent networks; defaulted to false if not specified"""
+        self.ispersistent = None
+        """maximum number of concurrent connections supported by the network offering"""
+        self.maxconnections = None
+        """data transfer rate in megabits per second allowed"""
+        self.networkrate = None
+        """desired service capabilities as part of network offering"""
+        self.servicecapabilitylist = []
+        """the service offering ID used by virtual router provider"""
+        self.serviceofferingid = None
+        """provider to service mapping. If not specified, the provider for the service will be mapped to the default provider on the physical network"""
+        self.serviceproviderlist = []
+        """true if network offering supports specifying ip ranges; defaulted to false if not specified"""
+        self.specifyipranges = None
+        """true if network offering supports vlans"""
+        self.specifyvlan = None
+        """the tags for the network offering."""
+        self.tags = None
+        self.required = ["displaytext","guestiptype","name","supportedservices","traffictype",]
+
+class createNetworkOfferingResponse (baseResponse):
+    def __init__(self):
+        """the id of the network offering"""
+        self.id = None
+        """availability of the network offering"""
+        self.availability = None
+        """true if network offering is ip conserve mode enabled"""
+        self.conservemode = None
+        """the date this network offering was created"""
+        self.created = None
+        """additional key/value details tied with network offering"""
+        self.details = None
+        """an alternate display text of the network offering."""
+        self.displaytext = None
+        """true if network offering supports persistent networks, false otherwise"""
+        self.egressdefaultpolicy = None
+        """true if network offering can be used by VPC networks only"""
+        self.forvpc = None
+        """guest type of the network offering, can be Shared or Isolated"""
+        self.guestiptype = None
+        """true if network offering is default, false otherwise"""
+        self.isdefault = None
+        """true if network offering supports persistent networks, false otherwise"""
+        self.ispersistent = None
+        """maximum number of concurrents connections to be handled by lb"""
+        self.maxconnections = None
+        """the name of the network offering"""
+        self.name = None
+        """data transfer rate in megabits per second allowed."""
+        self.networkrate = None
+        """the ID of the service offering used by virtual router provider"""
+        self.serviceofferingid = None
+        """true if network offering supports specifying ip ranges, false otherwise"""
+        self.specifyipranges = None
+        """true if network offering supports vlans, false otherwise"""
+        self.specifyvlan = None
+        """state of the network offering. Can be Disabled/Enabled/Inactive"""
+        self.state = None
+        """the tags for the network offering"""
+        self.tags = None
+        """the traffic type for the network offering, supported types are Public, Management, Control, Guest, Vlan or Storage."""
+        self.traffictype = 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/createPhysicalNetwork.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createPhysicalNetwork.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createPhysicalNetwork.py
new file mode 100644
index 0000000..8bbb8d8
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createPhysicalNetwork.py
@@ -0,0 +1,67 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+
+"""Creates a physical network"""
+from baseCmd import *
+from baseResponse import *
+class createPhysicalNetworkCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """the name of the physical network"""
+        """Required"""
+        self.name = None
+        """the Zone ID for the physical network"""
+        """Required"""
+        self.zoneid = None
+        """the broadcast domain range for the physical network[Pod or Zone]. In Acton release it can be Zone only in Advance zone, and Pod in Basic"""
+        self.broadcastdomainrange = None
+        """domain ID of the account owning a physical network"""
+        self.domainid = None
+        """the isolation method for the physical network[VLAN/L3/GRE]"""
+        self.isolationmethods = []
+        """the speed for the physical network[1G/10G]"""
+        self.networkspeed = None
+        """Tag the physical network"""
+        self.tags = []
+        """the VLAN for the physical network"""
+        self.vlan = None
+        self.required = ["name","zoneid",]
+
+class createPhysicalNetworkResponse (baseResponse):
+    def __init__(self):
+        """the uuid of the physical network"""
+        self.id = None
+        """Broadcast domain range of the physical network"""
+        self.broadcastdomainrange = None
+        """the domain id of the physical network owner"""
+        self.domainid = None
+        """isolation methods"""
+        self.isolationmethods = None
+        """name of the physical network"""
+        self.name = None
+        """the speed of the physical network"""
+        self.networkspeed = None
+        """state of the physical network"""
+        self.state = None
+        """comma separated tag"""
+        self.tags = None
+        """the vlan of the physical network"""
+        self.vlan = None
+        """zone id of the physical network"""
+        self.zoneid = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/createPod.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createPod.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createPod.py
new file mode 100644
index 0000000..e84e563
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createPod.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.
+
+
+"""Creates a new Pod."""
+from baseCmd import *
+from baseResponse import *
+class createPodCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """the gateway for the Pod"""
+        """Required"""
+        self.gateway = None
+        """the name of the Pod"""
+        """Required"""
+        self.name = None
+        """the netmask for the Pod"""
+        """Required"""
+        self.netmask = None
+        """the starting IP address for the Pod"""
+        """Required"""
+        self.startip = None
+        """the Zone ID in which the Pod will be created"""
+        """Required"""
+        self.zoneid = None
+        """Allocation state of this Pod for allocation of new resources"""
+        self.allocationstate = None
+        """the ending IP address for the Pod"""
+        self.endip = None
+        self.required = ["gateway","name","netmask","startip","zoneid",]
+
+class createPodResponse (baseResponse):
+    def __init__(self):
+        """the ID of the Pod"""
+        self.id = None
+        """the allocation state of the Pod"""
+        self.allocationstate = None
+        """the ending IP for the Pod"""
+        self.endip = None
+        """the gateway of the Pod"""
+        self.gateway = None
+        """the name of the Pod"""
+        self.name = None
+        """the netmask of the Pod"""
+        self.netmask = None
+        """the starting IP for the Pod"""
+        self.startip = None
+        """the Zone ID of the Pod"""
+        self.zoneid = None
+        """the Zone name of the Pod"""
+        self.zonename = None
+        """the capacity of the Pod"""
+        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/createPortForwardingRule.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createPortForwardingRule.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createPortForwardingRule.py
new file mode 100644
index 0000000..b7717e9
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createPortForwardingRule.py
@@ -0,0 +1,109 @@
+# 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.
+
+
+"""Creates a port forwarding rule"""
+from baseCmd import *
+from baseResponse import *
+class createPortForwardingRuleCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """the IP address id of the port forwarding rule"""
+        """Required"""
+        self.ipaddressid = None
+        """the starting port of port forwarding rule's private port range"""
+        """Required"""
+        self.privateport = None
+        """the protocol for the port fowarding rule. Valid values are TCP or UDP."""
+        """Required"""
+        self.protocol = None
+        """the starting port of port forwarding rule's public port range"""
+        """Required"""
+        self.publicport = None
+        """the ID of the virtual machine for the port forwarding rule"""
+        """Required"""
+        self.virtualmachineid = None
+        """the cidr list to forward traffic from"""
+        self.cidrlist = []
+        """The network of the vm the Port Forwarding rule will be created for. Required when public Ip address is not associated with any Guest network yet (VPC case)"""
+        self.networkid = None
+        """if true, firewall rule for source/end pubic port is automatically created; if false - firewall rule has to be created explicitely. If not specified 1) defaulted to false when PF rule is being created for VPC guest network 2) in all other cases defaulted to true"""
+        self.openfirewall = None
+        """the ending port of port forwarding rule's private port range"""
+        self.privateendport = None
+        """the ending port of port forwarding rule's private port range"""
+        self.publicendport = None
+        """VM guest nic Secondary ip address for the port forwarding rule"""
+        self.vmguestip = None
+        self.required = ["ipaddressid","privateport","protocol","publicport","virtualmachineid",]
+
+class createPortForwardingRuleResponse (baseResponse):
+    def __init__(self):
+        """the ID of the port forwarding rule"""
+        self.id = None
+        """the cidr list to forward traffic from"""
+        self.cidrlist = None
+        """the public ip address for the port forwarding rule"""
+        self.ipaddress = None
+        """the public ip address id for the port forwarding rule"""
+        self.ipaddressid = None
+        """the ending port of port forwarding rule's private port range"""
+        self.privateendport = None
+        """the starting port of port forwarding rule's private port range"""
+        self.privateport = None
+        """the protocol of the port forwarding rule"""
+        self.protocol = None
+        """the ending port of port forwarding rule's private port range"""
+        self.publicendport = None
+        """the starting port of port forwarding rule's public port range"""
+        self.publicport = None
+        """the state of the rule"""
+        self.state = None
+        """the VM display name for the port forwarding rule"""
+        self.virtualmachinedisplayname = None
+        """the VM ID for the port forwarding rule"""
+        self.virtualmachineid = None
+        """the VM name for the port forwarding rule"""
+        self.virtualmachinename = None
+        """the vm ip address for the port forwarding rule"""
+        self.vmguestip = None
+        """the list of resource tags associated with the rule"""
+        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/createPortableIpRange.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createPortableIpRange.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createPortableIpRange.py
new file mode 100644
index 0000000..2936ec1
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createPortableIpRange.py
@@ -0,0 +1,85 @@
+# 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.
+
+
+"""adds a range of portable public IP's to a region"""
+from baseCmd import *
+from baseResponse import *
+class createPortableIpRangeCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """the ending IP address in the portable IP range"""
+        """Required"""
+        self.endip = None
+        """the gateway for the portable IP range"""
+        """Required"""
+        self.gateway = None
+        """the netmask of the portable IP range"""
+        """Required"""
+        self.netmask = None
+        """Id of the Region"""
+        """Required"""
+        self.regionid = None
+        """the beginning IP address in the portable IP range"""
+        """Required"""
+        self.startip = None
+        """VLAN id, if not specified defaulted to untagged"""
+        self.vlan = None
+        self.required = ["endip","gateway","netmask","regionid","startip",]
+
+class createPortableIpRangeResponse (baseResponse):
+    def __init__(self):
+        """portable IP range ID"""
+        self.id = None
+        """the end ip of the portable IP range"""
+        self.endip = None
+        """the gateway of the VLAN IP range"""
+        self.gateway = None
+        """the netmask of the VLAN IP range"""
+        self.netmask = None
+        """Region Id in which portable ip range is provisioned"""
+        self.regionid = None
+        """the start ip of the portable IP range"""
+        self.startip = None
+        """the ID or VID of the VLAN."""
+        self.vlan = None
+        """List of portable IP and association with zone/network/vpc details that are part of GSLB rule"""
+        self.portableipaddress = []
+
+class portableipaddress:
+    def __init__(self):
+        """"the account ID the portable IP address is associated with"""
+        self.accountid = None
+        """"date the portal IP address was acquired"""
+        self.allocated = None
+        """"the domain ID the portable IP address is associated with"""
+        self.domainid = None
+        """"public IP address"""
+        self.ipaddress = None
+        """"the ID of the Network where ip belongs to"""
+        self.networkid = None
+        """"the physical network this belongs to"""
+        self.physicalnetworkid = None
+        """"Region Id in which global load balancer is created"""
+        self.regionid = None
+        """"State of the ip address. Can be: Allocatin, Allocated and Releasing"""
+        self.state = None
+        """"VPC the ip belongs to"""
+        self.vpcid = None
+        """"the ID of the zone the public IP address belongs to"""
+        self.zoneid = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/createPrivateGateway.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createPrivateGateway.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createPrivateGateway.py
new file mode 100644
index 0000000..3759a98
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createPrivateGateway.py
@@ -0,0 +1,86 @@
+# 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.
+
+
+"""Creates a private gateway"""
+from baseCmd import *
+from baseResponse import *
+class createPrivateGatewayCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """the gateway of the Private gateway"""
+        """Required"""
+        self.gateway = None
+        """the IP address of the Private gateaway"""
+        """Required"""
+        self.ipaddress = None
+        """the netmask of the Private gateway"""
+        """Required"""
+        self.netmask = None
+        """the network implementation uri for the private gateway"""
+        """Required"""
+        self.vlan = None
+        """the VPC network belongs to"""
+        """Required"""
+        self.vpcid = None
+        """the ID of the network ACL"""
+        self.aclid = None
+        """the uuid of the network offering to use for the private gateways network connection"""
+        self.networkofferingid = None
+        """the Physical Network ID the network belongs to"""
+        self.physicalnetworkid = None
+        """source NAT supported value. Default value false. If 'true' source NAT is enabled on the private gateway 'false': sourcenat is not supported"""
+        self.sourcenatsupported = None
+        self.required = ["gateway","ipaddress","netmask","vlan","vpcid",]
+
+class createPrivateGatewayResponse (baseResponse):
+    def __init__(self):
+        """the id of the private gateway"""
+        self.id = None
+        """the account associated with the private gateway"""
+        self.account = None
+        """ACL Id set for private gateway"""
+        self.aclid = None
+        """the domain associated with the private gateway"""
+        self.domain = None
+        """the ID of the domain associated with the private gateway"""
+        self.domainid = None
+        """the gateway"""
+        self.gateway = None
+        """the private gateway's ip address"""
+        self.ipaddress = None
+        """the private gateway's netmask"""
+        self.netmask = None
+        """the physical network id"""
+        self.physicalnetworkid = None
+        """the project name of the private gateway"""
+        self.project = None
+        """the project id of the private gateway"""
+        self.projectid = None
+        """Souce Nat enable status"""
+        self.sourcenatsupported = None
+        """State of the gateway, can be Creating, Ready, Deleting"""
+        self.state = None
+        """the network implementation uri for the private gateway"""
+        self.vlan = None
+        """VPC the private gateaway belongs to"""
+        self.vpcid = None
+        """zone id of the private gateway"""
+        self.zoneid = None
+        """the name of the zone the private gateway belongs to"""
+        self.zonename = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/createProject.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createProject.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createProject.py
new file mode 100644
index 0000000..e4afd5e
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createProject.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.
+
+
+"""Creates a project"""
+from baseCmd import *
+from baseResponse import *
+class createProjectCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """display text of the project"""
+        """Required"""
+        self.displaytext = None
+        """name of the project"""
+        """Required"""
+        self.name = None
+        """account who will be Admin for the project"""
+        self.account = None
+        """domain ID of the account owning a project"""
+        self.domainid = None
+        self.required = ["displaytext","name",]
+
+class createProjectResponse (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/createRemoteAccessVpn.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createRemoteAccessVpn.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createRemoteAccessVpn.py
new file mode 100644
index 0000000..71f2f84
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createRemoteAccessVpn.py
@@ -0,0 +1,62 @@
+# 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.
+
+
+"""Creates a l2tp/ipsec remote access vpn"""
+from baseCmd import *
+from baseResponse import *
+class createRemoteAccessVpnCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "true"
+        """public ip address id of the vpn server"""
+        """Required"""
+        self.publicipid = None
+        """an optional account for the VPN. Must be used with domainId."""
+        self.account = None
+        """an optional domainId for the VPN. If the account parameter is used, domainId must also be used."""
+        self.domainid = None
+        """the range of ip addresses to allocate to vpn clients. The first ip in the range will be taken by the vpn server"""
+        self.iprange = None
+        """if true, firewall rule for source/end pubic port is automatically created; if false - firewall rule has to be created explicitely. Has value true by default"""
+        self.openfirewall = None
+        self.required = ["publicipid",]
+
+class createRemoteAccessVpnResponse (baseResponse):
+    def __init__(self):
+        """the id of the remote access vpn"""
+        self.id = None
+        """the account of the remote access vpn"""
+        self.account = None
+        """the domain name of the account of the remote access vpn"""
+        self.domain = None
+        """the domain id of the account of the remote access vpn"""
+        self.domainid = None
+        """the range of ips to allocate to the clients"""
+        self.iprange = None
+        """the ipsec preshared key"""
+        self.presharedkey = None
+        """the project name of the vpn"""
+        self.project = None
+        """the project id of the vpn"""
+        self.projectid = None
+        """the public ip address of the vpn server"""
+        self.publicip = None
+        """the public ip address of the vpn server"""
+        self.publicipid = None
+        """the state of the rule"""
+        self.state = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/createSSHKeyPair.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createSSHKeyPair.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createSSHKeyPair.py
new file mode 100644
index 0000000..9415566
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createSSHKeyPair.py
@@ -0,0 +1,44 @@
+# 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.
+
+
+"""Create a new keypair and returns the private key"""
+from baseCmd import *
+from baseResponse import *
+class createSSHKeyPairCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """Name of the keypair"""
+        """Required"""
+        self.name = None
+        """an optional account for the ssh key. Must be used with domainId."""
+        self.account = None
+        """an optional domainId for the ssh key. If the account parameter is used, domainId must also be used."""
+        self.domainid = None
+        """an optional project for the ssh key"""
+        self.projectid = None
+        self.required = ["name",]
+
+class createSSHKeyPairResponse (baseResponse):
+    def __init__(self):
+        """Fingerprint of the public key"""
+        self.fingerprint = None
+        """Name of the keypair"""
+        self.name = None
+        """Private key"""
+        self.privatekey = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/createSecondaryStagingStore.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createSecondaryStagingStore.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createSecondaryStagingStore.py
new file mode 100644
index 0000000..74fea7f
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createSecondaryStagingStore.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.
+
+
+"""create secondary staging store."""
+from baseCmd import *
+from baseResponse import *
+class createSecondaryStagingStoreCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """the URL for the staging store"""
+        """Required"""
+        self.url = None
+        """the details for the staging store"""
+        self.details = []
+        """the staging store provider name"""
+        self.provider = None
+        """the scope of the staging store: zone only for now"""
+        self.scope = None
+        """the Zone ID for the staging store"""
+        self.zoneid = None
+        self.required = ["url",]
+
+class createSecondaryStagingStoreResponse (baseResponse):
+    def __init__(self):
+        """the ID of the image store"""
+        self.id = None
+        """the details of the image store"""
+        self.details = None
+        """the name of the image store"""
+        self.name = None
+        """the protocol of the image store"""
+        self.protocol = None
+        """the provider name of the image store"""
+        self.providername = None
+        """the scope of the image store"""
+        self.scope = None
+        """the url of the image store"""
+        self.url = None
+        """the Zone ID of the image store"""
+        self.zoneid = None
+        """the Zone name of the image store"""
+        self.zonename = None
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/createSecurityGroup.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createSecurityGroup.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createSecurityGroup.py
new file mode 100644
index 0000000..321431c
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createSecurityGroup.py
@@ -0,0 +1,131 @@
+# 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.
+
+
+"""Creates a security group"""
+from baseCmd import *
+from baseResponse import *
+class createSecurityGroupCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """name of the security group"""
+        """Required"""
+        self.name = None
+        """an optional account for the security group. Must be used with domainId."""
+        self.account = None
+        """the description of the security group"""
+        self.description = None
+        """an optional domainId for the security group. If the account parameter is used, domainId must also be used."""
+        self.domainid = None
+        """Create security group for project"""
+        self.projectid = None
+        self.required = ["name",]
+
+class createSecurityGroupResponse (baseResponse):
+    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 = []
+        """the list of ingress rules associated with the security group"""
+        self.ingressrule = []
+        """the list of resource tags associated with the rule"""
+        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 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
+

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ec00a6fb/tools/marvin/build/lib/marvin/cloudstackAPI/createServiceOffering.py
----------------------------------------------------------------------
diff --git a/tools/marvin/build/lib/marvin/cloudstackAPI/createServiceOffering.py b/tools/marvin/build/lib/marvin/cloudstackAPI/createServiceOffering.py
new file mode 100644
index 0000000..a9f4f73
--- /dev/null
+++ b/tools/marvin/build/lib/marvin/cloudstackAPI/createServiceOffering.py
@@ -0,0 +1,151 @@
+# 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.
+
+
+"""Creates a service offering."""
+from baseCmd import *
+from baseResponse import *
+class createServiceOfferingCmd (baseCmd):
+    def __init__(self):
+        self.isAsync = "false"
+        """the CPU number of the service offering"""
+        """Required"""
+        self.cpunumber = None
+        """the CPU speed of the service offering in MHz."""
+        """Required"""
+        self.cpuspeed = None
+        """the display text of the service offering"""
+        """Required"""
+        self.displaytext = None
+        """the total memory of the service offering in MB"""
+        """Required"""
+        self.memory = None
+        """the name of the service offering"""
+        """Required"""
+        self.name = None
+        """bytes read rate of the disk offering"""
+        self.bytesreadrate = None
+        """bytes write rate of the disk offering"""
+        self.byteswriterate = None
+        """The deployment planner heuristics used to deploy a VM of this offering. If null, value of global config vm.deployment.planner is used"""
+        self.deploymentplanner = None
+        """the ID of the containing domain, null for public offerings"""
+        self.domainid = None
+        """the host tag for this service offering."""
+        self.hosttags = None
+        """io requests read rate of the disk offering"""
+        self.iopsreadrate = None
+        """io requests write rate of the disk offering"""
+        self.iopswriterate = None
+        """is this a system vm offering"""
+        self.issystem = None
+        """true if the virtual machine needs to be volatile so that on every reboot of VM, original root disk is dettached then destroyed and a fresh root disk is created and attached to VM"""
+        self.isvolatile = None
+        """restrict the CPU usage to committed service offering"""
+        self.limitcpuuse = None
+        """data transfer rate in megabits per second allowed. Supported only for non-System offering and system offerings having "domainrouter" systemvmtype"""
+        self.networkrate = None
+        """the HA for the service offering"""
+        self.offerha = None
+        """details for planner, used to store specific parameters"""
+        self.serviceofferingdetails = []
+        """the storage type of the service offering. Values are local and shared."""
+        self.storagetype = None
+        """the system VM type. Possible types are "domainrouter", "consoleproxy" and "secondarystoragevm"."""
+        self.systemvmtype = None
+        """the tags for this service offering."""
+        self.tags = None
+        self.required = ["cpunumber","cpuspeed","displaytext","memory","name",]
+
+class createServiceOfferingResponse (baseResponse):
+    def __init__(self):
+        """the id of the service offering"""
+        self.id = None
+        """the number of CPU"""
+        self.cpunumber = None
+        """the clock rate CPU speed in Mhz"""
+        self.cpuspeed = None
+        """the date this service offering was created"""
+        self.created = None
+        """is this a  default system vm offering"""
+        self.defaultuse = None
+        """deployment strategy used to deploy VM."""
+        self.deploymentplanner = None
+        """bytes read rate of the service offering"""
+        self.diskBytesReadRate = None
+        """bytes write rate of the service offering"""
+        self.diskBytesWriteRate = None
+        """io requests read rate of the service offering"""
+        self.diskIopsReadRate = None
+        """io requests write rate of the service offering"""
+        self.diskIopsWriteRate = None
+        """an alternate display text of the service offering."""
+        self.displaytext = None
+        """Domain name for the offering"""
+        self.domain = None
+        """the domain id of the service offering"""
+        self.domainid = None
+        """the host tag for the service offering"""
+        self.hosttags = None
+        """is this a system vm offering"""
+        self.issystem = None
+        """true if the vm needs to be volatile, i.e., on every reboot of vm from API root disk is discarded and creates a new root disk"""
+        self.isvolatile = None
+        """restrict the CPU usage to committed service offering"""
+        self.limitcpuuse = None
+        """the memory in MB"""
+        self.memory = None
+        """the name of the service offering"""
+        self.name = None
+        """data transfer rate in megabits per second allowed."""
+        self.networkrate = None
+        """the ha support in the service offering"""
+        self.offerha = None
+        """additional key/value details tied with this service offering"""
+        self.serviceofferingdetails = None
+        """the storage type for this service offering"""
+        self.storagetype = None
+        """is this a the systemvm type for system vm offering"""
+        self.systemvmtype = None
+        """the tags for the service offering"""
+        self.tags = None
+        """the list of resource tags associated with service offering. The resource tags are not used for Volume/VM placement on the specific host."""
+        self.resourcetags = []
+
+class resourcetags:
+    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
+