You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2012/12/08 04:29:51 UTC

[15/57] api: Refactor command and response classes to org.apache.cloudstack.api.*

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java b/api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java
new file mode 100644
index 0000000..96aef99
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/DiskOfferingResponse.java
@@ -0,0 +1,137 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import java.util.Date;
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.utils.IdentityProxy;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+public class DiskOfferingResponse extends BaseResponse {
+    @SerializedName(ApiConstants.ID) @Param(description="unique ID of the disk offering")
+    private IdentityProxy id = new IdentityProxy("disk_offering");
+
+    @SerializedName(ApiConstants.DOMAIN_ID) @Param(description="the domain ID this disk offering belongs to. Ignore this information as it is not currently applicable.")
+    private IdentityProxy domainId = new IdentityProxy("domain");
+
+    @SerializedName(ApiConstants.DOMAIN) @Param(description="the domain name this disk offering belongs to. Ignore this information as it is not currently applicable.")
+    private String domain;
+
+    @SerializedName(ApiConstants.NAME) @Param(description="the name of the disk offering")
+    private String name;
+
+    @SerializedName(ApiConstants.DISPLAY_TEXT) @Param(description="an alternate display text of the disk offering.")
+    private String displayText;
+
+    @SerializedName(ApiConstants.DISK_SIZE) @Param(description="the size of the disk offering in GB")
+    private Long diskSize;
+
+    @SerializedName(ApiConstants.CREATED) @Param(description="the date this disk offering was created")
+    private Date created;
+
+    @SerializedName("iscustomized") @Param(description="true if disk offering uses custom size, false otherwise")
+    private Boolean customized;
+
+    @SerializedName(ApiConstants.TAGS) @Param(description="the tags for the disk offering")
+    private String tags;
+
+    @SerializedName("storagetype") @Param(description="the storage type for this disk offering")
+    private String storageType;
+
+    public Long getId() {
+        return id.getValue();
+    }
+
+    public void setId(Long id) {
+        this.id.setValue(id);
+    }
+
+    public Long getDomainId() {
+        return domainId.getValue();
+    }
+
+    public void setDomainId(Long domainId) {
+        this.domainId.setValue(domainId);
+    }
+
+    public String getDomain() {
+        return domain;
+    }
+
+    public void setDomain(String domain) {
+        this.domain = domain;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getDisplayText() {
+        return displayText;
+    }
+
+    public void setDisplayText(String displayText) {
+        this.displayText = displayText;
+    }
+
+    public Long getDiskSize() {
+        return diskSize;
+    }
+
+    public void setDiskSize(Long diskSize) {
+        this.diskSize = diskSize;
+    }
+
+    public Date getCreated() {
+        return created;
+    }
+
+    public void setCreated(Date created) {
+        this.created = created;
+    }
+
+    public String getTags() {
+        return tags;
+    }
+
+    public void setTags(String tags) {
+        this.tags = tags;
+    }
+
+    public Boolean isCustomized() {
+        return customized;
+    }
+
+    public void setCustomized(Boolean customized) {
+        this.customized = customized;
+    }
+
+    public String getStorageType() {
+        return storageType;
+    }
+
+    public void setStorageType(String storageType) {
+        this.storageType = storageType;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/DomainResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/DomainResponse.java b/api/src/org/apache/cloudstack/api/response/DomainResponse.java
new file mode 100644
index 0000000..e97653b
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/DomainResponse.java
@@ -0,0 +1,113 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.BaseResponse;
+import org.apache.cloudstack.api.Entity;
+import com.cloud.domain.Domain;
+import com.cloud.utils.IdentityProxy;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+
+@Entity(value = Domain.class)
+public class DomainResponse extends BaseResponse {
+    @SerializedName(ApiConstants.ID) @Param(description="the ID of the domain")
+    private IdentityProxy id = new IdentityProxy("domain");
+
+    @SerializedName(ApiConstants.NAME) @Param(description="the name of the domain")
+    private String domainName;
+
+    @SerializedName(ApiConstants.LEVEL) @Param(description="the level of the domain")
+    private Integer level;
+
+    @SerializedName("parentdomainid") @Param(description="the domain ID of the parent domain")
+    private IdentityProxy parentDomainId = new IdentityProxy("domain");
+
+    @SerializedName("parentdomainname") @Param(description="the domain name of the parent domain")
+    private String parentDomainName;
+
+    @SerializedName("haschild") @Param(description="whether the domain has one or more sub-domains")
+    private boolean hasChild;
+
+    @SerializedName(ApiConstants.NETWORK_DOMAIN) @Param(description="the network domain")
+    private String networkDomain;
+
+    @SerializedName(ApiConstants.PATH) @Param(description="the path of the domain")
+    private String path;
+
+    public Long getId() {
+        return id.getValue();
+    }
+
+    public void setId(Long id) {
+        this.id.setValue(id);
+    }
+
+    public String getDomainName() {
+        return domainName;
+    }
+
+    public void setDomainName(String domainName) {
+        this.domainName = domainName;
+    }
+
+    public Integer getLevel() {
+        return level;
+    }
+
+    public void setLevel(Integer level) {
+        this.level = level;
+    }
+
+    public Long getParentDomainId() {
+        return parentDomainId.getValue();
+    }
+
+    public void setParentDomainId(Long parentDomainId) {
+        this.parentDomainId.setValue(parentDomainId);
+    }
+
+    public String getParentDomainName() {
+        return parentDomainName;
+    }
+
+    public void setParentDomainName(String parentDomainName) {
+        this.parentDomainName = parentDomainName;
+    }
+
+    public boolean getHasChild() {
+        return hasChild;
+    }
+
+    public void setHasChild(boolean hasChild) {
+        this.hasChild = hasChild;
+    }
+
+    public void setNetworkDomain(String networkDomain) {
+        this.networkDomain = networkDomain;
+    }
+
+    public String getPath() {
+        return path;
+    }
+
+    public void setPath(String path) {
+        this.path = path;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/DomainRouterResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/DomainRouterResponse.java b/api/src/org/apache/cloudstack/api/response/DomainRouterResponse.java
new file mode 100644
index 0000000..b899a1d
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/DomainRouterResponse.java
@@ -0,0 +1,334 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import java.util.Date;
+import java.util.HashSet;
+import java.util.Set;
+
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.serializer.Param;
+import com.cloud.vm.VirtualMachine.State;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+@SuppressWarnings("unused")
+public class DomainRouterResponse extends BaseResponse implements ControlledViewEntityResponse{
+    @SerializedName(ApiConstants.ID) @Param(description="the id of the router")
+    private String id;
+
+    @SerializedName(ApiConstants.ZONE_ID) @Param(description="the Zone ID for the router")
+    private String zoneId;
+
+    @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the Zone name for the router")
+    private String zoneName;
+
+    @SerializedName(ApiConstants.DNS1) @Param(description="the first DNS for the router")
+    private String dns1;
+
+    @SerializedName(ApiConstants.DNS2) @Param(description="the second DNS for the router")
+    private String dns2;
+
+    @SerializedName("networkdomain") @Param(description="the network domain for the router")
+    private String networkDomain;
+
+    @SerializedName(ApiConstants.GATEWAY) @Param(description="the gateway for the router")
+    private String gateway;
+
+    @SerializedName(ApiConstants.NAME) @Param(description="the name of the router")
+    private String name;
+
+    @SerializedName(ApiConstants.POD_ID) @Param(description="the Pod ID for the router")
+    private String podId;
+
+    @SerializedName(ApiConstants.HOST_ID) @Param(description="the host ID for the router")
+    private String hostId;
+
+    @SerializedName("hostname") @Param(description="the hostname for the router")
+    private String hostName;
+
+    @SerializedName(ApiConstants.LINK_LOCAL_IP) @Param(description="the link local IP address for the router")
+    private String linkLocalIp;
+
+    @SerializedName(ApiConstants.LINK_LOCAL_MAC_ADDRESS) @Param(description="the link local MAC address for the router")
+    private String linkLocalMacAddress;
+
+    @SerializedName(ApiConstants.LINK_LOCAL_MAC_NETMASK) @Param(description="the link local netmask for the router")
+    private String linkLocalNetmask;
+
+    @SerializedName(ApiConstants.LINK_LOCAL_NETWORK_ID) @Param(description="the ID of the corresponding link local network")
+    private String linkLocalNetworkId;
+
+    @SerializedName(ApiConstants.PUBLIC_IP) @Param(description="the public IP address for the router")
+    private String publicIp;
+
+    @SerializedName("publicmacaddress") @Param(description="the public MAC address for the router")
+    private String publicMacAddress;
+
+    @SerializedName("publicnetmask") @Param(description="the public netmask for the router")
+    private String publicNetmask;
+
+    @SerializedName("publicnetworkid") @Param(description="the ID of the corresponding public network")
+    private String publicNetworkId;
+
+    @SerializedName("guestipaddress") @Param(description="the guest IP address for the router")
+    private String guestIpAddress;
+
+    @SerializedName("guestmacaddress") @Param(description="the guest MAC address for the router")
+    private String guestMacAddress;
+
+    @SerializedName("guestnetmask") @Param(description="the guest netmask for the router")
+    private String guestNetmask;
+
+    @SerializedName("guestnetworkid") @Param(description="the ID of the corresponding guest network")
+    private String guestNetworkId;
+
+    @SerializedName(ApiConstants.TEMPLATE_ID) @Param(description="the template ID for the router")
+    private String templateId;
+
+    @SerializedName(ApiConstants.CREATED) @Param(description="the date and time the router was created")
+    private Date created;
+
+    @SerializedName(ApiConstants.STATE) @Param(description="the state of the router")
+    private State state;
+
+    @SerializedName(ApiConstants.ACCOUNT) @Param(description="the account associated with the router")
+    private String accountName;
+
+    @SerializedName(ApiConstants.PROJECT_ID) @Param(description="the project id of the ipaddress")
+    private String projectId;
+
+    @SerializedName(ApiConstants.PROJECT) @Param(description="the project name of the address")
+    private String projectName;
+
+    @SerializedName(ApiConstants.DOMAIN_ID) @Param(description="the domain ID associated with the router")
+    private String domainId;
+
+    @SerializedName(ApiConstants.DOMAIN) @Param(description="the domain associated with the router")
+    private String domainName;
+
+    @SerializedName(ApiConstants.SERVICE_OFFERING_ID) @Param(description="the ID of the service offering of the virtual machine")
+    private String serviceOfferingId;
+
+    @SerializedName("serviceofferingname") @Param(description="the name of the service offering of the virtual machine")
+    private String serviceOfferingName;
+
+    @SerializedName("isredundantrouter") @Param(description="if this router is an redundant virtual router")
+    private boolean isRedundantRouter;
+
+    @SerializedName("redundantstate") @Param(description="the state of redundant virtual router")
+    private String redundantState;
+
+    @SerializedName("templateversion") @Param(description="the version of template")
+    private String templateVersion;
+
+    @SerializedName("scriptsversion") @Param(description="the version of scripts")
+    private String scriptsVersion;
+
+    @SerializedName(ApiConstants.VPC_ID) @Param(description="VPC the network belongs to")
+    private String vpcId;
+
+    @SerializedName("nic")  @Param(description="the list of nics associated with the router",
+            responseObject = NicResponse.class, since="4.0")
+    private Set<NicResponse> nics;
+
+    public DomainRouterResponse(){
+        nics = new HashSet<NicResponse>();
+    }
+
+    @Override
+    public String getObjectUuid() {
+        return this.getId();
+    }
+
+    public String getId() {
+        return id;
+    }
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public void setZoneId(String zoneId) {
+        this.zoneId = zoneId;
+    }
+
+    public void setZoneName(String zoneName) {
+        this.zoneName = zoneName;
+    }
+
+    public void setDns1(String dns1) {
+        this.dns1 = dns1;
+    }
+
+    public void setDns2(String dns2) {
+        this.dns2 = dns2;
+    }
+
+    public void setNetworkDomain(String networkDomain) {
+        this.networkDomain = networkDomain;
+    }
+
+    public void setGateway(String gateway) {
+        this.gateway = gateway;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public void setPodId(String podId) {
+        this.podId = podId;
+    }
+
+    public void setHostId(String hostId) {
+        this.hostId = hostId;
+    }
+
+    public void setHostName(String hostName) {
+        this.hostName = hostName;
+    }
+
+    public void setPublicIp(String publicIp) {
+        this.publicIp = publicIp;
+    }
+
+    public void setPublicMacAddress(String publicMacAddress) {
+        this.publicMacAddress = publicMacAddress;
+    }
+
+    public void setPublicNetmask(String publicNetmask) {
+        this.publicNetmask = publicNetmask;
+    }
+
+    public void setGuestIpAddress(String guestIpAddress) {
+        this.guestIpAddress = guestIpAddress;
+    }
+
+    public void setGuestMacAddress(String guestMacAddress) {
+        this.guestMacAddress = guestMacAddress;
+    }
+
+    public void setGuestNetmask(String guestNetmask) {
+        this.guestNetmask = guestNetmask;
+    }
+
+    public void setTemplateId(String templateId) {
+        this.templateId = templateId;
+    }
+
+    public void setCreated(Date created) {
+        this.created = created;
+    }
+
+    public void setState(State state) {
+        this.state = state;
+    }
+
+    @Override
+    public void setAccountName(String accountName) {
+        this.accountName = accountName;
+    }
+
+    @Override
+    public void setDomainId(String domainId) {
+        this.domainId = domainId;
+    }
+
+    @Override
+    public void setDomainName(String domainName) {
+        this.domainName = domainName;
+    }
+
+    public void setPublicNetworkId(String publicNetworkId) {
+        this.publicNetworkId = publicNetworkId;
+    }
+
+    public void setGuestNetworkId(String guestNetworkId) {
+        this.guestNetworkId = guestNetworkId;
+    }
+
+    public void setLinkLocalIp(String linkLocalIp) {
+        this.linkLocalIp = linkLocalIp;
+    }
+
+    public void setLinkLocalMacAddress(String linkLocalMacAddress) {
+        this.linkLocalMacAddress = linkLocalMacAddress;
+    }
+
+    public void setLinkLocalNetmask(String linkLocalNetmask) {
+        this.linkLocalNetmask = linkLocalNetmask;
+    }
+
+    public void setLinkLocalNetworkId(String linkLocalNetworkId) {
+        this.linkLocalNetworkId = linkLocalNetworkId;
+    }
+
+    public void setServiceOfferingId(String serviceOfferingId) {
+        this.serviceOfferingId = serviceOfferingId;
+    }
+
+    public void setServiceOfferingName(String serviceOfferingName) {
+        this.serviceOfferingName = serviceOfferingName;
+    }
+
+    public void setRedundantState(String redundantState) {
+        this.redundantState = redundantState;
+    }
+
+    public void setIsRedundantRouter(boolean isRedundantRouter) {
+        this.isRedundantRouter = isRedundantRouter;
+    }
+
+    public String getTemplateVersion() {
+        return this.templateVersion;
+    }
+
+    public void setTemplateVersion(String templateVersion) {
+        this.templateVersion = templateVersion;
+    }
+
+    public String getScriptsVersion() {
+        return this.scriptsVersion;
+    }
+
+    public void setScriptsVersion(String scriptsVersion) {
+        this.scriptsVersion = scriptsVersion;
+    }
+    @Override
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+
+    @Override
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    public void setVpcId(String vpcId) {
+        this.vpcId = vpcId;
+    }
+
+    public void setNics(Set<NicResponse> nics) {
+        this.nics = nics;
+    }
+
+    public void addNic(NicResponse nic) {
+        this.nics.add(nic);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/EventResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/EventResponse.java b/api/src/org/apache/cloudstack/api/response/EventResponse.java
new file mode 100644
index 0000000..641b586
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/EventResponse.java
@@ -0,0 +1,124 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import java.util.Date;
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.event.Event;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+@SuppressWarnings("unused")
+public class EventResponse extends BaseResponse implements ControlledViewEntityResponse{
+    @SerializedName(ApiConstants.ID) @Param(description="the ID of the event")
+    private String id;
+
+    @SerializedName(ApiConstants.USERNAME) @Param(description="the name of the user who performed the action (can be different from the account if an admin is performing an action for a user, e.g. starting/stopping a user's virtual machine)")
+    private String username;
+
+    @SerializedName(ApiConstants.TYPE) @Param(description="the type of the event (see event types)")
+    private String eventType;
+
+    @SerializedName(ApiConstants.LEVEL) @Param(description="the event level (INFO, WARN, ERROR)")
+    private String level;
+
+    @SerializedName(ApiConstants.DESCRIPTION) @Param(description="a brief description of the event")
+    private String description;
+
+    @SerializedName(ApiConstants.ACCOUNT) @Param(description="the account name for the account that owns the object being acted on in the event (e.g. the owner of the virtual machine, ip address, or security group)")
+    private String accountName;
+
+    @SerializedName(ApiConstants.PROJECT_ID) @Param(description="the project id of the ipaddress")
+    private String projectId;
+
+    @SerializedName(ApiConstants.PROJECT) @Param(description="the project name of the address")
+    private String projectName;
+
+    @SerializedName(ApiConstants.DOMAIN_ID) @Param(description="the id of the account's domain")
+    private String domainId;
+
+    @SerializedName(ApiConstants.DOMAIN) @Param(description="the name of the account's domain")
+    private String domainName;
+
+    @SerializedName(ApiConstants.CREATED) @Param(description="the date the event was created")
+    private Date created;
+
+    @SerializedName(ApiConstants.STATE) @Param(description="the state of the event")
+    private Event.State state;
+
+    @SerializedName("parentid") @Param(description="whether the event is parented")
+    private String parentId;
+
+    public void setId(String id) {
+        this.id = id;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public void setEventType(String eventType) {
+        this.eventType = eventType;
+    }
+
+    public void setLevel(String level) {
+        this.level = level;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+
+    @Override
+    public void setAccountName(String accountName) {
+        this.accountName = accountName;
+    }
+
+    @Override
+    public void setDomainId(String domainId) {
+        this.domainId = domainId;
+    }
+
+    @Override
+    public void setDomainName(String domainName) {
+        this.domainName = domainName;
+    }
+
+    public void setCreated(Date created) {
+        this.created = created;
+    }
+
+    public void setState(Event.State state) {
+        this.state = state;
+    }
+
+    public void setParentId(String parentId) {
+        this.parentId = parentId;
+    }
+
+    @Override
+    public void setProjectId(String projectId) {
+        this.projectId = projectId;
+    }
+
+    @Override
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/EventTypeResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/EventTypeResponse.java b/api/src/org/apache/cloudstack/api/response/EventTypeResponse.java
new file mode 100644
index 0000000..4dcc441
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/EventTypeResponse.java
@@ -0,0 +1,35 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+public class EventTypeResponse extends BaseResponse {
+    @SerializedName(ApiConstants.NAME) @Param(description="Event Type")
+    private String name;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/ExceptionResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/ExceptionResponse.java b/api/src/org/apache/cloudstack/api/response/ExceptionResponse.java
new file mode 100644
index 0000000..a4050a2
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/ExceptionResponse.java
@@ -0,0 +1,73 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import java.util.ArrayList;
+
+import com.cloud.serializer.Param;
+import com.cloud.utils.IdentityProxy;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+public class ExceptionResponse extends BaseResponse {
+
+    @SerializedName("uuidList") @Param(description="List of uuids associated with this error")
+    private ArrayList<IdentityProxy> idList = new ArrayList<IdentityProxy>();
+
+    @SerializedName("errorcode") @Param(description="numeric code associated with this error")
+    private Integer errorCode;
+
+    @SerializedName("cserrorcode") @Param(description="cloudstack exception error code associated with this error")
+    private Integer csErrorCode;
+
+    @SerializedName("errortext") @Param(description="the text associated with this error")
+    private String errorText = "Command failed due to Internal Server Error";
+
+    public Integer getErrorCode() {
+        return errorCode;
+    }
+
+    public void setErrorCode(Integer errorCode) {
+        this.errorCode = errorCode;
+    }
+
+    public String getErrorText() {
+        return errorText;
+    }
+
+    public void setErrorText(String errorText) {
+        this.errorText = errorText;
+    }
+
+    public void addProxyObject(String tableName, Long id, String idFieldName) {
+        idList.add(new IdentityProxy(tableName, id, idFieldName));
+        return;
+    }
+
+    public ArrayList<IdentityProxy> getIdProxyList() {
+        return idList;
+    }
+
+    public void setCSErrorCode(int cserrcode) {
+        this.csErrorCode = cserrcode;
+    }
+
+    @Override
+    public String toString() {
+        return ("Error Code: " + errorCode + " Error text: " + errorText);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/ExtractResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/ExtractResponse.java b/api/src/org/apache/cloudstack/api/response/ExtractResponse.java
new file mode 100644
index 0000000..ac5cc3d
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/ExtractResponse.java
@@ -0,0 +1,208 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import java.util.Date;
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.utils.IdentityProxy;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+public class ExtractResponse extends BaseResponse {
+    @SerializedName(ApiConstants.ID) @Param(description="the id of extracted object")
+    private IdentityProxy id = new IdentityProxy("vm_template");
+
+    @SerializedName(ApiConstants.NAME) @Param(description="the name of the extracted object")
+    private String name;
+
+    @SerializedName("extractId") @Param(description="the upload id of extracted object")
+    private IdentityProxy uploadId = new IdentityProxy("async_job");
+
+    @SerializedName("uploadpercentage") @Param(description="the percentage of the entity uploaded to the specified location")
+    private Integer uploadPercent;
+
+    @SerializedName("status") @Param(description="the status of the extraction")
+    private String status;
+
+    @SerializedName("accountid") @Param(description="the account id to which the extracted object belongs")
+    private IdentityProxy accountId = new IdentityProxy("account");
+
+    @SerializedName("resultstring") @Param(includeInApiDoc=false)
+    private String resultString;
+
+    @SerializedName(ApiConstants.CREATED) @Param(description="the time and date the object was created")
+    private Date createdDate;
+
+    @SerializedName(ApiConstants.STATE) @Param(description="the state of the extracted object")
+    private String state;
+
+    @SerializedName("storagetype") @Param(description="type of the storage")
+    private String storageType;
+
+    @SerializedName("storage")
+    private String storage;
+
+    @SerializedName(ApiConstants.ZONE_ID) @Param(description="zone ID the object was extracted from")
+    private IdentityProxy zoneId = new IdentityProxy("data_center");
+
+    @SerializedName(ApiConstants.ZONE_NAME) @Param(description="zone name the object was extracted from")
+    private String zoneName;
+
+    @SerializedName("extractMode") @Param(description="the mode of extraction - upload or download")
+    private String mode;
+
+    @SerializedName(ApiConstants.URL) @Param(description="if mode = upload then url of the uploaded entity. if mode = download the url from which the entity can be downloaded")
+    private String url;
+
+    public ExtractResponse(){
+    }
+
+    public ExtractResponse(Long typeId, String typeName, long accountId,
+            String state, Long uploadId) {
+        this.id.setValue(typeId);
+        this.name = typeName;
+        this.accountId.setValue(accountId);
+        this.state = state;
+        this.uploadId.setValue(uploadId);
+    }
+
+    public Long getId() {
+        return id.getValue();
+    }
+
+    public void setId(long id) {
+        this.id.setValue(id);
+    }
+
+    public void setIdentityTableName(String tableName) {
+        this.id.setTableName(tableName);
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Long getUploadId() {
+        return uploadId.getValue();
+    }
+
+    public void setUploadId(Long uploadId) {
+        this.uploadId.setValue(uploadId);
+    }
+
+    public Integer getUploadPercent() {
+        return uploadPercent;
+    }
+
+    public void setUploadPercent(int uploadPercent) {
+        this.uploadPercent = uploadPercent;
+    }
+
+    public String getUploadStatus() {
+        return status;
+    }
+
+    public void setUploadStatus(String status) {
+        this.status = status;
+    }
+
+    public Long getAccountId() {
+        return accountId.getValue();
+    }
+
+    public void setAccountId(long accountId) {
+        this.accountId.setValue(accountId);
+    }
+
+    public String getResultString() {
+        return resultString;
+    }
+
+    public void setResultString(String resultString) {
+        this.resultString = resultString;
+    }
+
+    public Date getCreatedDate() {
+        return createdDate;
+    }
+
+    public void setCreatedDate(Date createdDate) {
+        this.createdDate = createdDate;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public String getStorageType() {
+        return storageType;
+    }
+
+    public void setStorageType(String storageType) {
+        this.storageType = storageType;
+    }
+
+    public String getStorage() {
+        return storage;
+    }
+
+    public void setStorage(String storage) {
+        this.storage = storage;
+    }
+
+    public Long getZoneId() {
+        return zoneId.getValue();
+    }
+
+    public void setZoneId(Long zoneId) {
+        this.zoneId.setValue(zoneId);
+    }
+
+    public String getZoneName() {
+        return zoneName;
+    }
+
+    public void setZoneName(String zoneName) {
+        this.zoneName = zoneName;
+    }
+
+    public String getMode() {
+        return mode;
+    }
+
+    public void setMode(String mode) {
+        this.mode = mode;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/FirewallResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/FirewallResponse.java b/api/src/org/apache/cloudstack/api/response/FirewallResponse.java
new file mode 100644
index 0000000..eb5ba89
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/FirewallResponse.java
@@ -0,0 +1,105 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import java.util.List;
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.serializer.Param;
+import com.cloud.utils.IdentityProxy;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+@SuppressWarnings("unused")
+public class FirewallResponse extends BaseResponse {
+    @SerializedName(ApiConstants.ID) @Param(description="the ID of the firewall rule")
+    private IdentityProxy id = new IdentityProxy("firewall_rules");
+
+    @SerializedName(ApiConstants.PROTOCOL) @Param(description="the protocol of the firewall rule")
+    private String protocol;
+
+    @SerializedName(ApiConstants.START_PORT) @Param(description="the starting port of firewall rule's port range")
+    private String startPort;
+
+    @SerializedName(ApiConstants.END_PORT)  @Param(description = "the ending port of firewall rule's port range")
+    private String endPort;
+
+    @SerializedName(ApiConstants.IP_ADDRESS_ID) @Param(description="the public ip address id for the firewall rule")
+    private Long publicIpAddressId;
+
+    @SerializedName(ApiConstants.IP_ADDRESS) @Param(description="the public ip address for the firewall rule")
+    private String publicIpAddress;
+
+    @SerializedName(ApiConstants.STATE) @Param(description="the state of the rule")
+    private String state;
+
+    @SerializedName(ApiConstants.CIDR_LIST) @Param(description="the cidr list to forward traffic from")
+    private String cidrList;
+
+    @SerializedName(ApiConstants.ICMP_TYPE) @Param(description= "type of the icmp message being sent")
+    private Integer icmpType;
+
+    @SerializedName(ApiConstants.ICMP_CODE) @Param(description = "error code for this icmp message")
+    private Integer icmpCode;
+
+    @SerializedName(ApiConstants.TAGS)  @Param(description="the list of resource tags associated with the rule", responseObject = ResourceTagResponse.class)
+    private List<ResourceTagResponse> tags;
+
+    public void setId(Long id) {
+        this.id.setValue(id);
+    }
+
+    public void setProtocol(String protocol) {
+        this.protocol = protocol;
+    }
+
+    public void setStartPort(String startPort) {
+        this.startPort = startPort;
+    }
+
+    public void setEndPort(String endPort) {
+        this.endPort = endPort;
+    }
+
+    public void setPublicIpAddressId(Long publicIpAddressId) {
+        this.publicIpAddressId = publicIpAddressId;
+    }
+
+    public void setPublicIpAddress(String publicIpAddress) {
+        this.publicIpAddress = publicIpAddress;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public void setCidrList(String cidrList) {
+        this.cidrList = cidrList;
+    }
+
+    public void setIcmpType(Integer icmpType) {
+        this.icmpType = icmpType;
+    }
+
+    public void setIcmpCode(Integer icmpCode) {
+        this.icmpCode = icmpCode;
+    }
+
+    public void setTags(List<ResourceTagResponse> tags) {
+        this.tags = tags;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/FirewallRuleResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/FirewallRuleResponse.java b/api/src/org/apache/cloudstack/api/response/FirewallRuleResponse.java
new file mode 100644
index 0000000..718fb96
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/FirewallRuleResponse.java
@@ -0,0 +1,178 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import java.util.List;
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.serializer.Param;
+import com.cloud.utils.IdentityProxy;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+@SuppressWarnings("unused")
+public class FirewallRuleResponse extends BaseResponse {
+    @SerializedName(ApiConstants.ID) @Param(description="the ID of the port forwarding rule")
+    private IdentityProxy id = new IdentityProxy("firewall_rules");
+
+    @SerializedName(ApiConstants.PRIVATE_START_PORT) @Param(description = "the starting port of port forwarding rule's private port range")
+    private String privateStartPort;
+
+    @SerializedName(ApiConstants.PRIVATE_END_PORT) @Param(description = "the ending port of port forwarding rule's private port range")
+    private String privateEndPort;
+
+    @SerializedName(ApiConstants.PROTOCOL) @Param(description="the protocol of the port forwarding rule")
+    private String protocol;
+
+    @SerializedName(ApiConstants.PUBLIC_START_PORT) @Param(description="the starting port of port forwarding rule's public port range")
+    private String publicStartPort;
+
+    @SerializedName(ApiConstants.PUBLIC_END_PORT)  @Param(description = "the ending port of port forwarding rule's private port range")
+    private String publicEndPort;
+
+    @SerializedName(ApiConstants.VIRTUAL_MACHINE_ID) @Param(description="the VM ID for the port forwarding rule")
+    private IdentityProxy virtualMachineId = new IdentityProxy("vm_instance");
+
+    @SerializedName("virtualmachinename") @Param(description="the VM name for the port forwarding rule")
+    private String virtualMachineName;
+
+    @SerializedName("virtualmachinedisplayname") @Param(description="the VM display name for the port forwarding rule")
+    private String virtualMachineDisplayName;
+
+    @SerializedName(ApiConstants.IP_ADDRESS_ID) @Param(description="the public ip address id for the port forwarding rule")
+    private IdentityProxy publicIpAddressId = new IdentityProxy("user_ip_address");
+
+    @SerializedName(ApiConstants.IP_ADDRESS) @Param(description="the public ip address for the port forwarding rule")
+    private String publicIpAddress;
+
+    @SerializedName(ApiConstants.STATE) @Param(description="the state of the rule")
+    private String state;
+
+    @SerializedName(ApiConstants.CIDR_LIST) @Param(description="the cidr list to forward traffic from")
+    private String cidrList;
+
+    @SerializedName(ApiConstants.TAGS)  @Param(description="the list of resource tags associated with the rule", responseObject = ResourceTagResponse.class)
+    private List<ResourceTagResponse> tags;
+
+    public Long getId() {
+        return id.getValue();
+    }
+
+    public void setId(Long id) {
+        this.id.setValue(id);
+    }
+
+    public String getPrivateStartPort() {
+        return privateStartPort;
+    }
+
+    public String getPrivateEndPort() {
+        return privateEndPort;
+    }
+
+    public void setPrivateStartPort(String privatePort) {
+        this.privateStartPort = privatePort;
+    }
+
+    public void setPrivateEndPort(String privatePort) {
+        this.privateEndPort = privatePort;
+    }
+
+    public String getProtocol() {
+        return protocol;
+    }
+
+    public void setProtocol(String protocol) {
+        this.protocol = protocol;
+    }
+
+    public String getPublicStartPort() {
+        return publicStartPort;
+    }
+
+    public String getPublicEndPort() {
+        return publicEndPort;
+    }
+
+    public void setPublicStartPort(String publicPort) {
+        this.publicStartPort = publicPort;
+    }
+
+    public void setPublicEndPort(String publicPort) {
+        this.publicEndPort = publicPort;
+    }
+
+    public Long getVirtualMachineId() {
+        return virtualMachineId.getValue();
+    }
+
+    public void setVirtualMachineId(Long virtualMachineId) {
+        this.virtualMachineId.setValue(virtualMachineId);
+    }
+
+    public String getVirtualMachineName() {
+        return virtualMachineName;
+    }
+
+    public void setVirtualMachineName(String virtualMachineName) {
+        this.virtualMachineName = virtualMachineName;
+    }
+
+    public String getVirtualMachineDisplayName() {
+        return virtualMachineDisplayName;
+    }
+
+    public void setVirtualMachineDisplayName(String virtualMachineDisplayName) {
+        this.virtualMachineDisplayName = virtualMachineDisplayName;
+    }
+
+    public String getPublicIpAddress() {
+        return publicIpAddress;
+    }
+
+    public void setPublicIpAddress(String publicIpAddress) {
+        this.publicIpAddress = publicIpAddress;
+    }
+
+    public String getState() {
+        return state;
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    public Long getPublicIpAddressId() {
+        return publicIpAddressId.getValue();
+    }
+
+    public void setPublicIpAddressId(Long publicIpAddressId) {
+        this.publicIpAddressId.setValue(publicIpAddressId);
+    }
+
+    public String getCidrList() {
+        return cidrList;
+    }
+
+    public void setCidrList(String cidrs) {
+        this.cidrList = cidrs;
+    }
+
+    public void setTags(List<ResourceTagResponse> tags) {
+        this.tags = tags;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/GetVMPasswordResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/GetVMPasswordResponse.java b/api/src/org/apache/cloudstack/api/response/GetVMPasswordResponse.java
new file mode 100644
index 0000000..8147df3
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/GetVMPasswordResponse.java
@@ -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.
+package org.apache.cloudstack.api.response;
+
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+public class GetVMPasswordResponse extends BaseResponse {
+
+    @SerializedName("encryptedpassword") @Param(description="The encrypted password of the VM")
+    private String encryptedPassword;
+
+    public GetVMPasswordResponse() {}
+
+    public GetVMPasswordResponse(String responseName, String encryptedPassword) {
+        setResponseName(responseName);
+        setObjectName("password");
+        setEncryptedPassword(encryptedPassword);
+    }
+
+    public String getEncryptedPassword() {
+        return encryptedPassword;
+    }
+
+    public void setEncryptedPassword(String encryptedPassword) {
+        this.encryptedPassword = encryptedPassword;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/GuestOSCategoryResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/GuestOSCategoryResponse.java b/api/src/org/apache/cloudstack/api/response/GuestOSCategoryResponse.java
new file mode 100644
index 0000000..a271686
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/GuestOSCategoryResponse.java
@@ -0,0 +1,47 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.utils.IdentityProxy;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+public class GuestOSCategoryResponse extends BaseResponse {
+    @SerializedName(ApiConstants.ID) @Param(description="the ID of the OS category")
+    private IdentityProxy id = new IdentityProxy("guest_os_category");
+
+    @SerializedName(ApiConstants.NAME) @Param(description="the name of the OS category")
+    private String name;
+
+    public Long getId() {
+        return id.getValue();
+    }
+
+    public void setId(Long id) {
+        this.id.setValue(id);
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/GuestOSResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/GuestOSResponse.java b/api/src/org/apache/cloudstack/api/response/GuestOSResponse.java
new file mode 100644
index 0000000..6c15480
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/GuestOSResponse.java
@@ -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.
+package org.apache.cloudstack.api.response;
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.utils.IdentityProxy;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+public class GuestOSResponse extends BaseResponse {
+    @SerializedName(ApiConstants.ID) @Param(description="the ID of the OS type")
+    private IdentityProxy id = new IdentityProxy("guest_os");
+
+    @SerializedName(ApiConstants.OS_CATEGORY_ID) @Param(description="the ID of the OS category")
+    private IdentityProxy osCategoryId = new IdentityProxy("guest_os_category");
+
+    @SerializedName(ApiConstants.DESCRIPTION) @Param(description="the name/description of the OS type")
+    private String description;
+
+    public Long getId() {
+        return id.getValue();
+    }
+
+    public void setId(Long id) {
+        this.id.setValue(id);
+    }
+
+    public Long getOsCategoryId() {
+        return osCategoryId.getValue();
+    }
+
+    public void setOsCategoryId(Long osCategoryId) {
+        this.osCategoryId.setValue(osCategoryId);
+    }
+
+    public String getDescription() {
+        return description;
+    }
+
+    public void setDescription(String description) {
+        this.description = description;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/HostResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/HostResponse.java b/api/src/org/apache/cloudstack/api/response/HostResponse.java
new file mode 100644
index 0000000..8b4cd3e
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/HostResponse.java
@@ -0,0 +1,370 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import java.util.Date;
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.utils.IdentityProxy;
+import com.cloud.host.Host;
+import com.cloud.host.Status;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+public class HostResponse extends BaseResponse {
+    @SerializedName(ApiConstants.ID) @Param(description="the ID of the host")
+    private IdentityProxy id = new IdentityProxy("host");
+
+    @SerializedName(ApiConstants.NAME) @Param(description="the name of the host")
+    private String name;
+
+    @SerializedName(ApiConstants.STATE) @Param(description="the state of the host")
+    private Status state;
+
+    @SerializedName("disconnected") @Param(description="true if the host is disconnected. False otherwise.")
+    private Date disconnectedOn;
+
+    @SerializedName(ApiConstants.TYPE) @Param(description="the host type")
+    private Host.Type hostType;
+
+    @SerializedName("oscategoryid") @Param(description="the OS category ID of the host")
+    private IdentityProxy osCategoryId = new IdentityProxy("guest_os_category");
+
+    @SerializedName("oscategoryname") @Param(description="the OS category name of the host")
+    private String osCategoryName;
+
+    @SerializedName(ApiConstants.IP_ADDRESS) @Param(description="the IP address of the host")
+    private String ipAddress;
+
+    @SerializedName(ApiConstants.ZONE_ID) @Param(description="the Zone ID of the host")
+    private IdentityProxy zoneId = new IdentityProxy("data_center");
+
+    @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the Zone name of the host")
+    private String zoneName;
+
+    @SerializedName(ApiConstants.POD_ID) @Param(description="the Pod ID of the host")
+    private IdentityProxy podId = new IdentityProxy("host_pod_ref");
+
+    @SerializedName("podname") @Param(description="the Pod name of the host")
+    private String podName;
+
+    @SerializedName("version") @Param(description="the host version")
+    private String version;
+
+    @SerializedName(ApiConstants.HYPERVISOR) @Param(description="the host hypervisor")
+    private HypervisorType hypervisor;
+
+    @SerializedName("cpunumber") @Param(description="the CPU number of the host")
+    private Integer cpuNumber;
+
+    @SerializedName("cpuspeed") @Param(description="the CPU speed of the host")
+    private Long cpuSpeed;
+
+    @SerializedName("cpuallocated") @Param(description="the amount of the host's CPU currently allocated")
+    private String cpuAllocated;
+
+    @SerializedName("cpuused") @Param(description="the amount of the host's CPU currently used")
+    private String cpuUsed;
+
+    @SerializedName("cpuwithoverprovisioning") @Param(description="the amount of the host's CPU after applying the cpu.overprovisioning.factor ")
+    private String cpuWithOverprovisioning;
+
+    @SerializedName("averageload") @Param(description="the cpu average load on the host")
+    private Long averageLoad;
+
+    @SerializedName("networkkbsread") @Param(description="the incoming network traffic on the host")
+    private Long networkKbsRead;
+
+    @SerializedName("networkkbswrite") @Param(description="the outgoing network traffic on the host")
+    private Long networkKbsWrite;
+
+    @SerializedName("memorytotal") @Param(description="the memory total of the host")
+    private Long memoryTotal;
+
+    @SerializedName("memoryallocated") @Param(description="the amount of the host's memory currently allocated")
+    private Long memoryAllocated;
+
+    @SerializedName("memoryused") @Param(description="the amount of the host's memory currently used")
+    private Long memoryUsed;
+
+    @SerializedName("disksizetotal") @Param(description="the total disk size of the host")
+    private Long diskSizeTotal;
+
+    @SerializedName("disksizeallocated") @Param(description="the host's currently allocated disk size")
+    private Long diskSizeAllocated;
+
+    @SerializedName("capabilities") @Param(description="capabilities of the host")
+    private String capabilities;
+
+    @SerializedName("lastpinged") @Param(description="the date and time the host was last pinged")
+    private Date lastPinged;
+
+    @SerializedName("managementserverid") @Param(description="the management server ID of the host")
+    private Long managementServerId;
+
+    @SerializedName("clusterid") @Param(description="the cluster ID of the host")
+    private IdentityProxy clusterId = new IdentityProxy("cluster");
+
+    @SerializedName("clustername") @Param(description="the cluster name of the host")
+    private String clusterName;
+
+    @SerializedName("clustertype") @Param(description="the cluster type of the cluster that host belongs to")
+    private String clusterType;
+
+    @SerializedName("islocalstorageactive") @Param(description="true if local storage is active, false otherwise")
+    private Boolean localStorageActive;
+
+    @SerializedName(ApiConstants.CREATED) @Param(description="the date and time the host was created")
+    private Date created;
+
+    @SerializedName("removed") @Param(description="the date and time the host was removed")
+    private Date removed;
+
+    @SerializedName("events") @Param(description="events available for the host")
+    private String events;
+
+    @SerializedName("hosttags") @Param(description="comma-separated list of tags for the host")
+    private String hostTags;
+
+    @SerializedName("hasenoughcapacity") @Param(description="true if this host has enough CPU and RAM capacity to migrate a VM to it, false otherwise")
+    private Boolean hasEnoughCapacity;
+
+    @SerializedName("suitableformigration") @Param(description="true if this host is suitable(has enough capacity and satisfies all conditions like hosttags, max guests vm limit etc) to migrate a VM to it , false otherwise")
+    private Boolean suitableForMigration;
+
+    @SerializedName("resourcestate") @Param(description="the resource state of the host")
+    private String resourceState;
+
+    @SerializedName(ApiConstants.HYPERVISOR_VERSION) @Param(description="the hypervisor version")
+    private String hypervisorVersion;
+
+    @SerializedName(ApiConstants.HA_HOST) @Param(description="true if the host is Ha host (dedicated to vms started by HA process; false otherwise")
+    private Boolean haHost;
+
+
+    @Override
+    public Long getObjectId() {
+        return getId();
+    }
+
+    public Long getId() {
+        return id.getValue();
+    }
+
+    public void setId(Long id) {
+        this.id.setValue(id);
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public void setState(Status state) {
+        this.state = state;
+    }
+
+    public void setDisconnectedOn(Date disconnectedOn) {
+        this.disconnectedOn = disconnectedOn;
+    }
+
+    public void setHostType(Host.Type hostType) {
+        this.hostType = hostType;
+    }
+
+    public void setOsCategoryId(Long osCategoryId) {
+        this.osCategoryId.setValue(osCategoryId);
+    }
+
+    public void setOsCategoryName(String osCategoryName) {
+        this.osCategoryName = osCategoryName;
+    }
+
+    public void setIpAddress(String ipAddress) {
+        this.ipAddress = ipAddress;
+    }
+
+    public void setZoneId(Long zoneId) {
+        this.zoneId.setValue(zoneId);
+    }
+
+    public void setZoneName(String zoneName) {
+        this.zoneName = zoneName;
+    }
+
+    public void setPodId(Long podId) {
+        this.podId.setValue(podId);
+    }
+
+    public void setPodName(String podName) {
+        this.podName = podName;
+    }
+
+    public void setVersion(String version) {
+        this.version = version;
+    }
+
+    public void setHypervisor(HypervisorType hypervisor) {
+        this.hypervisor = hypervisor;
+    }
+
+    public void setCpuNumber(Integer cpuNumber) {
+        this.cpuNumber = cpuNumber;
+    }
+
+    public void setCpuSpeed(Long cpuSpeed) {
+        this.cpuSpeed = cpuSpeed;
+    }
+
+    public String getCpuAllocated() {
+        return cpuAllocated;
+    }
+
+    public void setCpuAllocated(String cpuAllocated) {
+        this.cpuAllocated = cpuAllocated;
+    }
+
+    public void setCpuUsed(String cpuUsed) {
+        this.cpuUsed = cpuUsed;
+    }
+
+    public void setAverageLoad(Long averageLoad) {
+        this.averageLoad = averageLoad;
+    }
+
+    public void setNetworkKbsRead(Long networkKbsRead) {
+        this.networkKbsRead = networkKbsRead;
+    }
+
+    public void setNetworkKbsWrite(Long networkKbsWrite) {
+        this.networkKbsWrite = networkKbsWrite;
+    }
+
+    public void setMemoryTotal(Long memoryTotal) {
+        this.memoryTotal = memoryTotal;
+    }
+
+    public void setMemoryAllocated(Long memoryAllocated) {
+        this.memoryAllocated = memoryAllocated;
+    }
+
+    public void setMemoryUsed(Long memoryUsed) {
+        this.memoryUsed = memoryUsed;
+    }
+
+    public void setDiskSizeTotal(Long diskSizeTotal) {
+        this.diskSizeTotal = diskSizeTotal;
+    }
+
+    public void setDiskSizeAllocated(Long diskSizeAllocated) {
+        this.diskSizeAllocated = diskSizeAllocated;
+    }
+
+    public void setCapabilities(String capabilities) {
+        this.capabilities = capabilities;
+    }
+
+    public void setLastPinged(Date lastPinged) {
+        this.lastPinged = lastPinged;
+    }
+
+    public void setManagementServerId(Long managementServerId) {
+        this.managementServerId = managementServerId;
+    }
+
+    public void setClusterId(Long clusterId) {
+        this.clusterId.setValue(clusterId);
+    }
+
+    public void setClusterName(String clusterName) {
+        this.clusterName = clusterName;
+    }
+
+    public void setClusterType(String clusterType) {
+        this.clusterType = clusterType;
+    }
+
+    public void setLocalStorageActive(Boolean localStorageActive) {
+        this.localStorageActive = localStorageActive;
+    }
+
+    public void setCreated(Date created) {
+        this.created = created;
+    }
+
+    public void setRemoved(Date removed) {
+        this.removed = removed;
+    }
+
+    public void setEvents(String events) {
+        this.events = events;
+    }
+
+    public void setHostTags(String hostTags) {
+        this.hostTags = hostTags;
+    }
+
+    public void setHasEnoughCapacity(Boolean hasEnoughCapacity) {
+        this.hasEnoughCapacity = hasEnoughCapacity;
+    }
+
+
+    public void setSuitableForMigration(Boolean suitableForMigration) {
+        this.suitableForMigration = suitableForMigration;
+    }
+
+    public String getResourceState() {
+        return resourceState;
+    }
+
+    public void setResourceState(String resourceState) {
+        this.resourceState = resourceState;
+    }
+
+    public String getCpuWithOverprovisioning() {
+        return cpuWithOverprovisioning;
+    }
+
+    public void setCpuWithOverprovisioning(String cpuWithOverprovisioning) {
+        this.cpuWithOverprovisioning = cpuWithOverprovisioning;
+    }
+
+    public void setHypervisorVersion(String hypervisorVersion) {
+        this.hypervisorVersion = hypervisorVersion;
+    }
+
+    public void setOsCategoryId(IdentityProxy osCategoryId) {
+        this.osCategoryId = osCategoryId;
+    }
+
+    public void setZoneId(IdentityProxy zoneId) {
+        this.zoneId = zoneId;
+    }
+
+    public void setPodId(IdentityProxy podId) {
+        this.podId = podId;
+    }
+
+    public void setClusterId(IdentityProxy clusterId) {
+        this.clusterId = clusterId;
+    }
+
+    public void setHaHost(Boolean haHost) {
+        this.haHost = haHost;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/HypervisorCapabilitiesResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/HypervisorCapabilitiesResponse.java b/api/src/org/apache/cloudstack/api/response/HypervisorCapabilitiesResponse.java
new file mode 100644
index 0000000..a4abb93
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/HypervisorCapabilitiesResponse.java
@@ -0,0 +1,87 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.utils.IdentityProxy;
+import com.cloud.hypervisor.Hypervisor.HypervisorType;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+public class HypervisorCapabilitiesResponse extends BaseResponse {
+    @SerializedName(ApiConstants.ID) @Param(description="the ID of the hypervisor capabilities row")
+    private IdentityProxy id = new IdentityProxy("hypervisor_capabilities");
+
+    @SerializedName(ApiConstants.HYPERVISOR_VERSION) @Param(description="the hypervisor version")
+    private String hypervisorVersion;
+
+    @SerializedName(ApiConstants.HYPERVISOR) @Param(description="the hypervisor type")
+    private HypervisorType hypervisor;
+
+    @SerializedName(ApiConstants.MAX_GUESTS_LIMIT) @Param(description="the maximum number of guest vms recommended for this hypervisor")
+    private Long maxGuestsLimit;
+
+    @SerializedName(ApiConstants.SECURITY_GROUP_EANBLED) @Param(description="true if security group is supported")
+    private boolean isSecurityGroupEnabled;
+
+    @Override
+    public Long getObjectId() {
+        return getId();
+    }
+
+    public Long getId() {
+        return id.getValue();
+    }
+
+    public void setId(Long id) {
+        this.id.setValue(id);
+    }
+
+
+    public String getHypervisorVersion() {
+        return hypervisorVersion;
+    }
+
+    public void setHypervisorVersion(String hypervisorVersion) {
+        this.hypervisorVersion = hypervisorVersion;
+    }
+
+    public HypervisorType getHypervisor() {
+        return hypervisor;
+    }
+
+    public void setHypervisor(HypervisorType hypervisor) {
+        this.hypervisor = hypervisor;
+    }
+
+    public Long getMaxGuestsLimit() {
+        return maxGuestsLimit;
+    }
+
+    public void setMaxGuestsLimit(Long maxGuestsLimit) {
+        this.maxGuestsLimit = maxGuestsLimit;
+    }
+
+    public Boolean getIsSecurityGroupEnabled() {
+        return this.isSecurityGroupEnabled;
+    }
+
+    public void setIsSecurityGroupEnabled(Boolean sgEnabled) {
+        this.isSecurityGroupEnabled = sgEnabled;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/HypervisorResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/HypervisorResponse.java b/api/src/org/apache/cloudstack/api/response/HypervisorResponse.java
new file mode 100644
index 0000000..3828539
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/HypervisorResponse.java
@@ -0,0 +1,35 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+public class HypervisorResponse extends BaseResponse {
+    @SerializedName(ApiConstants.NAME) @Param(description="Hypervisor name")
+    private String name;
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/IPAddressResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/IPAddressResponse.java b/api/src/org/apache/cloudstack/api/response/IPAddressResponse.java
new file mode 100644
index 0000000..15ac72d
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/IPAddressResponse.java
@@ -0,0 +1,238 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import java.util.Date;
+import java.util.List;
+
+import org.apache.cloudstack.api.ApiConstants;
+import com.cloud.serializer.Param;
+import com.cloud.utils.IdentityProxy;
+import com.google.gson.annotations.SerializedName;
+import org.apache.cloudstack.api.BaseResponse;
+
+@SuppressWarnings("unused")
+public class IPAddressResponse extends BaseResponse implements ControlledEntityResponse {
+    @SerializedName(ApiConstants.ID) @Param(description="public IP address id")
+    private IdentityProxy id = new IdentityProxy("user_ip_address");
+
+    @SerializedName(ApiConstants.IP_ADDRESS) @Param(description="public IP address")
+    private String ipAddress;
+
+    @SerializedName("allocated") @Param(description="date the public IP address was acquired")
+    private Date allocated;
+
+    @SerializedName(ApiConstants.ZONE_ID) @Param(description="the ID of the zone the public IP address belongs to")
+    private IdentityProxy zoneId = new IdentityProxy("data_center");
+
+    @SerializedName(ApiConstants.ZONE_NAME) @Param(description="the name of the zone the public IP address belongs to")
+    private String zoneName;
+
+    @SerializedName("issourcenat") @Param(description="true if the IP address is a source nat address, false otherwise")
+    private Boolean sourceNat;
+
+    @SerializedName(ApiConstants.ACCOUNT) @Param(description="the account the public IP address is associated with")
+    private String accountName;
+
+    @SerializedName(ApiConstants.PROJECT_ID) @Param(description="the project id of the ipaddress")
+    private IdentityProxy projectId = new IdentityProxy("projects");
+
+    @SerializedName(ApiConstants.PROJECT) @Param(description="the project name of the address")
+    private String projectName;
+
+    @SerializedName(ApiConstants.DOMAIN_ID) @Param(description="the domain ID the public IP address is associated with")
+    private IdentityProxy domainId = new IdentityProxy("domain");
+
+    @SerializedName(ApiConstants.DOMAIN) @Param(description="the domain the public IP address is associated with")
+    private String domainName;
+
+    @SerializedName(ApiConstants.FOR_VIRTUAL_NETWORK) @Param(description="the virtual network for the IP address")
+    private Boolean forVirtualNetwork;
+
+    @SerializedName(ApiConstants.VLAN_ID) @Param(description="the ID of the VLAN associated with the IP address." +
+            " This parameter is visible to ROOT admins only")
+    private IdentityProxy vlanId = new IdentityProxy("vlan");
+
+    @SerializedName("vlanname") @Param(description="the VLAN associated with the IP address")
+    private String vlanName;
+
+    @SerializedName("isstaticnat") @Param(description="true if this ip is for static nat, false otherwise")
+    private Boolean staticNat;
+
+    @SerializedName(ApiConstants.IS_SYSTEM) @Param(description="true if this ip is system ip (was allocated as a part of deployVm or createLbRule)")
+    private Boolean isSystem;
+
+    @SerializedName(ApiConstants.VIRTUAL_MACHINE_ID) @Param(description="virutal machine id the ip address is assigned to (not null only for static nat Ip)")
+    private IdentityProxy virtualMachineId = new IdentityProxy("vm_instance");
+
+    @SerializedName("virtualmachinename") @Param(description="virutal machine name the ip address is assigned to (not null only for static nat Ip)")
+    private String virtualMachineName;
+
+    @SerializedName("virtualmachinedisplayname") @Param(description="virutal machine display name the ip address is assigned to (not null only for static nat Ip)")
+    private String virtualMachineDisplayName;
+
+    @SerializedName(ApiConstants.ASSOCIATED_NETWORK_ID) @Param(description="the ID of the Network associated with the IP address")
+    private IdentityProxy associatedNetworkId = new IdentityProxy("networks");
+
+    @SerializedName(ApiConstants.ASSOCIATED_NETWORK_NAME) @Param(description="the name of the Network associated with the IP address")
+    private String associatedNetworkName;
+
+    @SerializedName(ApiConstants.NETWORK_ID) @Param(description="the ID of the Network where ip belongs to")
+    private IdentityProxy networkId = new IdentityProxy("networks");
+
+    @SerializedName(ApiConstants.STATE) @Param(description="State of the ip address. Can be: Allocatin, Allocated and Releasing")
+    private String state;
+
+    @SerializedName(ApiConstants.PHYSICAL_NETWORK_ID) @Param(description="the physical network this belongs to")
+    private IdentityProxy physicalNetworkId = new IdentityProxy("physical_network");
+
+    @SerializedName(ApiConstants.PURPOSE) @Param(description="purpose of the IP address. In Acton this value is not null for Ips with isSystem=true, and can have either StaticNat or LB value")
+    private String purpose;
+
+    @SerializedName(ApiConstants.VPC_ID) @Param(description="VPC the ip belongs to")
+    private IdentityProxy vpcId = new IdentityProxy("vpc");
+    @SerializedName(ApiConstants.TAGS)  @Param(description="the list of resource tags associated with ip address", responseObject = ResourceTagResponse.class)
+    private List<ResourceTagResponse> tags;
+
+/*
+    @SerializedName(ApiConstants.JOB_ID) @Param(description="shows the current pending asynchronous job ID. This tag is not returned if no current pending jobs are acting on the volume")
+    private IdentityProxy jobId = new IdentityProxy("async_job");
+*/
+
+
+    public void setIpAddress(String ipAddress) {
+        this.ipAddress = ipAddress;
+    }
+
+    public void setAllocated(Date allocated) {
+        this.allocated = allocated;
+    }
+
+    public void setZoneId(Long zoneId) {
+        this.zoneId.setValue(zoneId);
+    }
+
+    public void setZoneName(String zoneName) {
+        this.zoneName = zoneName;
+    }
+
+    public void setSourceNat(Boolean sourceNat) {
+        this.sourceNat = sourceNat;
+    }
+
+    @Override
+    public void setAccountName(String accountName) {
+        this.accountName = accountName;
+    }
+
+    @Override
+    public void setDomainId(Long domainId) {
+        this.domainId.setValue(domainId);
+    }
+
+    @Override
+    public void setDomainName(String domainName) {
+        this.domainName = domainName;
+    }
+
+    public void setForVirtualNetwork(Boolean forVirtualNetwork) {
+        this.forVirtualNetwork = forVirtualNetwork;
+    }
+
+    public void setVlanId(Long vlanId) {
+        this.vlanId.setValue(vlanId);
+    }
+
+    public void setVlanName(String vlanName) {
+        this.vlanName = vlanName;
+    }
+
+    public void setStaticNat(Boolean staticNat) {
+        this.staticNat = staticNat;
+    }
+
+    public void setAssociatedNetworkId(Long networkId) {
+        this.associatedNetworkId.setValue(networkId);
+    }
+
+    public void setNetworkId(Long networkId) {
+        this.networkId.setValue(networkId);
+    }
+
+    public void setVirtualMachineId(Long virtualMachineId) {
+        this.virtualMachineId.setValue(virtualMachineId);
+    }
+
+    public void setVirtualMachineName(String virtualMachineName) {
+        this.virtualMachineName = virtualMachineName;
+    }
+
+    public void setVirtualMachineDisplayName(String virtualMachineDisplayName) {
+        this.virtualMachineDisplayName = virtualMachineDisplayName;
+    }
+
+    public Long getId() {
+        return id.getValue();
+    }
+
+    public void setId(Long id) {
+        this.id.setValue(id);
+    }
+
+    public void setState(String state) {
+        this.state = state;
+    }
+
+    @Override
+    public Long getObjectId() {
+        return getId();
+    }
+
+    @Override
+    public void setProjectId(Long projectId) {
+        this.projectId.setValue(projectId);
+    }
+
+    @Override
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+
+    public void setPhysicalNetworkId(long physicalNetworkId) {
+        this.physicalNetworkId.setValue(physicalNetworkId);
+    }
+
+    public void setIsSystem(Boolean isSystem) {
+        this.isSystem = isSystem;
+    }
+
+    public void setPurpose(String purpose) {
+        this.purpose = purpose;
+    }
+
+    public void setVpcId(Long vpcId) {
+        this.vpcId.setValue(vpcId);
+    }
+
+    public void setTags(List<ResourceTagResponse> tags) {
+        this.tags = tags;
+    }
+
+    public void setAssociatedNetworkName(String associatedNetworkName) {
+        this.associatedNetworkName = associatedNetworkName;
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/e398b1e4/api/src/org/apache/cloudstack/api/response/InstanceGroupResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/InstanceGroupResponse.java b/api/src/org/apache/cloudstack/api/response/InstanceGroupResponse.java
new file mode 100644
index 0000000..ec92397
--- /dev/null
+++ b/api/src/org/apache/cloudstack/api/response/InstanceGroupResponse.java
@@ -0,0 +1,92 @@
+// 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.
+package org.apache.cloudstack.api.response;
+
+import java.util.Date;
+
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.BaseResponse;
+import org.apache.cloudstack.api.Entity;
+import com.cloud.vm.InstanceGroup;
+import com.cloud.utils.IdentityProxy;
+import com.cloud.serializer.Param;
+import com.google.gson.annotations.SerializedName;
+
+@SuppressWarnings("unused")
+@Entity(value = InstanceGroup.class)
+public class InstanceGroupResponse extends BaseResponse implements ControlledEntityResponse{
+    @SerializedName(ApiConstants.ID) @Param(description="the id of the instance group")
+    private IdentityProxy id = new IdentityProxy("instance_group");
+
+    @SerializedName(ApiConstants.NAME) @Param(description="the name of the instance group")
+    private String name;
+
+    @SerializedName(ApiConstants.CREATED) @Param(description="time and date the instance group was created")
+    private Date created;
+
+    @SerializedName(ApiConstants.ACCOUNT) @Param(description="the account owning the instance group")
+    private String accountName;
+
+    @SerializedName(ApiConstants.PROJECT_ID) @Param(description="the project id of the group")
+    private IdentityProxy projectId = new IdentityProxy("projects");
+
+    @SerializedName(ApiConstants.PROJECT) @Param(description="the project name of the group")
+    private String projectName;
+
+    @SerializedName(ApiConstants.DOMAIN_ID) @Param(description="the domain ID of the instance group")
+    private IdentityProxy domainId = new IdentityProxy("domain");
+
+    @SerializedName(ApiConstants.DOMAIN) @Param(description="the domain name of the instance group")
+    private String domainName;
+
+    public void setId(Long id) {
+        this.id.setValue(id);
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public void setCreated(Date created) {
+        this.created = created;
+    }
+
+    @Override
+    public void setAccountName(String accountName) {
+        this.accountName = accountName;
+    }
+
+    @Override
+    public void setDomainId(Long domainId) {
+        this.domainId.setValue(domainId);
+    }
+
+    @Override
+    public void setDomainName(String domainName) {
+        this.domainName = domainName;
+    }
+
+    @Override
+    public void setProjectId(Long projectId) {
+        this.projectId.setValue(projectId);
+    }
+
+    @Override
+    public void setProjectName(String projectName) {
+        this.projectName = projectName;
+    }
+}