You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stratos.apache.org by la...@apache.org on 2014/03/31 09:13:41 UTC
[28/52] [partial] Moving jclouds dependencies to accurate parent
directories
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/NetworkConnection.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/NetworkConnection.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/NetworkConnection.java
new file mode 100755
index 0000000..fed82dc
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/NetworkConnection.java
@@ -0,0 +1,233 @@
+/*
+ * 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.jclouds.vcloud.domain;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.vcloud.domain.network.IpAddressAllocationMode;
+
+/**
+ * describes a single network connection.
+ *
+ * @author Adrian Cole
+ */
+public class NetworkConnection {
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+
+ private String network;
+ private int networkConnectionIndex;
+ private String ipAddress;
+ private String externalIpAddress;
+ private boolean connected;
+ private String MACAddress;
+ private IpAddressAllocationMode ipAddressAllocationMode;
+
+ public Builder network(String network) {
+ this.network = network;
+ return this;
+ }
+
+ public Builder networkConnectionIndex(int networkConnectionIndex) {
+ this.networkConnectionIndex = networkConnectionIndex;
+ return this;
+ }
+
+ public Builder ipAddress(String ipAddress) {
+ this.ipAddress = ipAddress;
+ return this;
+ }
+
+ public Builder externalIpAddress(String externalIpAddress) {
+ this.externalIpAddress = externalIpAddress;
+ return this;
+ }
+
+ public Builder connected(boolean connected) {
+ this.connected = connected;
+ return this;
+ }
+
+ public Builder MACAddress(String MACAddress) {
+ this.MACAddress = MACAddress;
+ return this;
+ }
+
+ public Builder ipAddressAllocationMode(IpAddressAllocationMode ipAddressAllocationMode) {
+ this.ipAddressAllocationMode = ipAddressAllocationMode;
+ return this;
+ }
+
+ public NetworkConnection build() {
+ return new NetworkConnection(network, networkConnectionIndex, ipAddress, externalIpAddress, connected,
+ MACAddress, ipAddressAllocationMode);
+ }
+
+ public static Builder fromNetworkConnection(NetworkConnection in) {
+ return new Builder().network(in.getNetwork()).networkConnectionIndex(in.getNetworkConnectionIndex())
+ .ipAddress(in.getIpAddress()).externalIpAddress(in.getExternalIpAddress()).connected(in.isConnected())
+ .MACAddress(in.getMACAddress()).ipAddressAllocationMode(in.getIpAddressAllocationMode());
+ }
+ }
+
+ private final String network;
+ private final int networkConnectionIndex;
+ @Nullable
+ private final String ipAddress;
+ @Nullable
+ private final String externalIpAddress;
+ private final boolean connected;
+ @Nullable
+ private final String MACAddress;
+ private final IpAddressAllocationMode ipAddressAllocationMode;
+
+ public NetworkConnection(String network, int networkConnectionIndex, @Nullable String ipAddress,
+ @Nullable String externalIpAddress, boolean connected, @Nullable String MACAddress,
+ IpAddressAllocationMode ipAddressAllocationMode) {
+ this.network = network;
+ this.networkConnectionIndex = networkConnectionIndex;
+ this.ipAddress = ipAddress;
+ this.externalIpAddress = externalIpAddress;
+ this.connected = connected;
+ this.MACAddress = MACAddress;
+ this.ipAddressAllocationMode = ipAddressAllocationMode;
+ }
+
+ /**
+ * @return The name of the network to which this connection connects.
+ */
+ public String getNetwork() {
+ return network;
+ }
+
+ /**
+ * @return The value in the rasd:AddressOnParent element of the device supporting this
+ * connection.
+ */
+ public int getNetworkConnectionIndex() {
+ return networkConnectionIndex;
+ }
+
+ /**
+ * @return IP address of this connection
+ */
+ @Nullable
+ public String getIpAddress() {
+ return ipAddress;
+ }
+
+ /**
+ * @return If the network that the NIC is connected to has NAT or port mapping, the external
+ * address is populated in this element.
+ */
+ @Nullable
+ public String getExternalIpAddress() {
+ return externalIpAddress;
+ }
+
+ /**
+ * @return If the vApp is deployed, specifies the current state of its connection. If the vApp is
+ * undeployed, specifies whether this connection should be connected at deployment time.
+ */
+ public boolean isConnected() {
+ return connected;
+ }
+
+ /**
+ * @return MAC address of this connection
+ */
+ @Nullable
+ public String getMACAddress() {
+ return MACAddress;
+ }
+
+ /**
+ * @return specifies how an IP address is allocated to this connection
+ */
+ public IpAddressAllocationMode getIpAddressAllocationMode() {
+ return ipAddressAllocationMode;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((MACAddress == null) ? 0 : MACAddress.hashCode());
+ result = prime * result + (connected ? 1231 : 1237);
+ result = prime * result + ((externalIpAddress == null) ? 0 : externalIpAddress.hashCode());
+ result = prime * result + ((ipAddress == null) ? 0 : ipAddress.hashCode());
+ result = prime * result + ((ipAddressAllocationMode == null) ? 0 : ipAddressAllocationMode.hashCode());
+ result = prime * result + ((network == null) ? 0 : network.hashCode());
+ result = prime * result + networkConnectionIndex;
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ NetworkConnection other = (NetworkConnection) obj;
+ if (MACAddress == null) {
+ if (other.MACAddress != null)
+ return false;
+ } else if (!MACAddress.equals(other.MACAddress))
+ return false;
+ if (connected != other.connected)
+ return false;
+ if (externalIpAddress == null) {
+ if (other.externalIpAddress != null)
+ return false;
+ } else if (!externalIpAddress.equals(other.externalIpAddress))
+ return false;
+ if (ipAddress == null) {
+ if (other.ipAddress != null)
+ return false;
+ } else if (!ipAddress.equals(other.ipAddress))
+ return false;
+ if (ipAddressAllocationMode == null) {
+ if (other.ipAddressAllocationMode != null)
+ return false;
+ } else if (!ipAddressAllocationMode.equals(other.ipAddressAllocationMode))
+ return false;
+ if (network == null) {
+ if (other.network != null)
+ return false;
+ } else if (!network.equals(other.network))
+ return false;
+ if (networkConnectionIndex != other.networkConnectionIndex)
+ return false;
+ return true;
+ }
+
+ public Builder toBuilder() {
+ return Builder.fromNetworkConnection(this);
+ }
+
+ @Override
+ public String toString() {
+ return "[network=" + network + ", connected=" + connected + ", ipAddress=" + ipAddress + ", externalIpAddress="
+ + externalIpAddress + ", networkConnectionIndex=" + networkConnectionIndex + ", ipAddressAllocationMode="
+ + ipAddressAllocationMode + ", MACAddress=" + MACAddress + "]";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/NetworkConnectionSection.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/NetworkConnectionSection.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/NetworkConnectionSection.java
new file mode 100755
index 0000000..c6f5f37
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/NetworkConnectionSection.java
@@ -0,0 +1,218 @@
+/*
+ * 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.jclouds.vcloud.domain;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.net.URI;
+import java.util.Set;
+
+import com.google.common.collect.ImmutableSet;
+
+/**
+ * The NetworkConnectionSection element specifies how a Vm is connected to a vApp network. It
+ * extends the ovf:NetworkConnection element.
+ * <p/>
+ * NOTE The OVF NetworkSection element and the vCloud API NetworkConnectionSection element specify
+ * many of the same parameters for a network connection. If both are present in a Vm body, the
+ * values specified in the NetworkConnectionSection override those specified in the NetworkSection.
+ */
+public class NetworkConnectionSection {
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static class Builder {
+ protected String type;
+ protected URI href;
+ protected String info;
+ protected Integer primaryNetworkConnectionIndex;
+ protected Set<NetworkConnection> connections = ImmutableSet.of();
+ protected ReferenceType edit;
+
+ public Builder type(String type) {
+ this.type = type;
+ return this;
+ }
+
+ public Builder href(URI href) {
+ this.href = href;
+ return this;
+ }
+
+ public Builder info(String info) {
+ this.info = info;
+ return this;
+ }
+
+ public Builder primaryNetworkConnectionIndex(Integer primaryNetworkConnectionIndex) {
+ this.primaryNetworkConnectionIndex = primaryNetworkConnectionIndex;
+ return this;
+ }
+
+ public Builder connections(Iterable<NetworkConnection> connections) {
+ this.connections = ImmutableSet.copyOf(checkNotNull(connections, "connections"));
+ return this;
+ }
+
+ public Builder edit(ReferenceType edit) {
+ this.edit = edit;
+ return this;
+ }
+
+ public NetworkConnectionSection build() {
+ return new NetworkConnectionSection(type, href, info, primaryNetworkConnectionIndex, connections, edit);
+ }
+
+ public static Builder fromNetworkConnectionSection(NetworkConnectionSection in) {
+ return new Builder().type(in.getType()).href(in.getHref()).info(in.getInfo())
+ .primaryNetworkConnectionIndex(in.getPrimaryNetworkConnectionIndex()).connections(in.getConnections())
+ .edit(in.getEdit());
+ }
+ }
+
+ protected final String type;
+ protected final URI href;
+ protected final String info;
+ protected final Integer primaryNetworkConnectionIndex;
+ protected final Set<NetworkConnection> connections;
+ protected final ReferenceType edit;
+
+ public NetworkConnectionSection(String type, URI href, String info, Integer primaryNetworkConnectionIndex,
+ Iterable<NetworkConnection> connections, ReferenceType edit) {
+ this.type = type;
+ this.href = href;
+ this.info = info;
+ this.primaryNetworkConnectionIndex = primaryNetworkConnectionIndex;
+ this.connections = ImmutableSet.copyOf(checkNotNull(connections, "connections"));
+ this.edit = edit;
+ }
+
+ /**
+ *
+ * @return media type of this section
+ */
+ public String getType() {
+ return type;
+ }
+
+ /**
+ *
+ * @return URL to access this section
+ */
+ public URI getHref() {
+ return href;
+ }
+
+ /**
+ *
+ * @return
+ */
+ public String getInfo() {
+ return info;
+ }
+
+ /**
+ *
+ * @return The value of the rasd:AddressOnParent element of the device (NIC) supporting the
+ * primary network connection to the containing virtual machine.
+ */
+ public Integer getPrimaryNetworkConnectionIndex() {
+ return primaryNetworkConnectionIndex;
+ }
+
+ /**
+ *
+ */
+ public Set<NetworkConnection> getConnections() {
+ return connections;
+ }
+
+ /**
+ *
+ */
+ public ReferenceType getEdit() {
+ return edit;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + ((connections == null) ? 0 : connections.hashCode());
+ result = prime * result + ((edit == null) ? 0 : edit.hashCode());
+ result = prime * result + ((href == null) ? 0 : href.hashCode());
+ result = prime * result + ((info == null) ? 0 : info.hashCode());
+ result = prime * result
+ + ((primaryNetworkConnectionIndex == null) ? 0 : primaryNetworkConnectionIndex.hashCode());
+ result = prime * result + ((type == null) ? 0 : type.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ NetworkConnectionSection other = (NetworkConnectionSection) obj;
+ if (connections == null) {
+ if (other.connections != null)
+ return false;
+ } else if (!connections.equals(other.connections))
+ return false;
+ if (edit == null) {
+ if (other.edit != null)
+ return false;
+ } else if (!edit.equals(other.edit))
+ return false;
+ if (href == null) {
+ if (other.href != null)
+ return false;
+ } else if (!href.equals(other.href))
+ return false;
+ if (info == null) {
+ if (other.info != null)
+ return false;
+ } else if (!info.equals(other.info))
+ return false;
+ if (primaryNetworkConnectionIndex == null) {
+ if (other.primaryNetworkConnectionIndex != null)
+ return false;
+ } else if (!primaryNetworkConnectionIndex.equals(other.primaryNetworkConnectionIndex))
+ return false;
+ if (type == null) {
+ if (other.type != null)
+ return false;
+ } else if (!type.equals(other.type))
+ return false;
+ return true;
+ }
+
+ public Builder toBuilder() {
+ return Builder.fromNetworkConnectionSection(this);
+ }
+
+ @Override
+ public String toString() {
+ return "[href=" + href + ", connections=" + connections + ", primaryNetworkConnectionIndex="
+ + primaryNetworkConnectionIndex + "]";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Org.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Org.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Org.java
new file mode 100755
index 0000000..a71ad2f
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Org.java
@@ -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.
+ */
+package org.jclouds.vcloud.domain;
+
+import java.util.List;
+import java.util.Map;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.vcloud.domain.internal.OrgImpl;
+
+import com.google.inject.ImplementedBy;
+
+/**
+ * A vCloud organization is a high-level abstraction that provides a unit of administration for
+ * objects and resources. As viewed by a user, an organization (represented by an Org element) can
+ * contain Catalog, Network, and vDC elements. If there are any queued, running, or recently
+ * completed tasks owned by a member of the organization, it also contains a TasksList element. As
+ * viewed by an administrator, an organization also contains users, groups, and other information
+ *
+ * @author Adrian Cole
+ */
+@ImplementedBy(OrgImpl.class)
+public interface Org extends ReferenceType {
+ /**
+ * optional description
+ *
+ * @since vcloud api 0.8
+ */
+ @Nullable
+ String getDescription();
+
+ /**
+ * full name of the organization
+ *
+ * @since vcloud api 1.0
+ */
+ @Nullable
+ String getFullName();
+
+ /**
+ * @since vcloud api 0.8
+ */
+ Map<String, ReferenceType> getCatalogs();
+
+ /**
+ * @since vcloud api 0.8
+ */
+ Map<String, ReferenceType> getVDCs();
+
+ /**
+ * If there are any queued, running, or recently completed tasks owned by a member of the
+ * organization, it also contains a TasksList.
+ *
+ * @since vcloud api 0.8
+ */
+ @Nullable
+ ReferenceType getTasksList();
+
+ /**
+ * @since vcloud api 1.0
+ */
+ Map<String, ReferenceType> getNetworks();
+
+ /**
+ * read‐only container for Task elements. Each element in the container represents a queued,
+ * running, or failed task owned by this object.
+ *
+ * @since vcloud api 1.0
+ */
+ List<Task> getTasks();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/ReferenceType.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/ReferenceType.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/ReferenceType.java
new file mode 100755
index 0000000..98712f9
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/ReferenceType.java
@@ -0,0 +1,55 @@
+/*
+ * 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.jclouds.vcloud.domain;
+
+import java.net.URI;
+
+import org.jclouds.vcloud.domain.internal.ReferenceTypeImpl;
+
+import com.google.inject.ImplementedBy;
+
+/**
+ * Many container elements are populated with references to contained objects. Each reference
+ * consists of a hyperlink, an optional media type, and a name.
+ *
+ * @author Adrian Cole
+ *
+ */
+@ImplementedBy(ReferenceTypeImpl.class)
+public interface ReferenceType extends Comparable<ReferenceType> {
+ /**
+ * @return hyperlink to the referenced object
+ */
+ URI getHref();
+
+ /**
+ * @return name of the referenced object.
+ *
+ */
+ String getName();
+
+ /**
+ * @return object type, expressed as the media type of the XML representing of the object
+ * @see VCloudMediaType
+ */
+ String getType();
+
+ /**
+ * @return relationship to the referenced object.
+ */
+ String getRelationship();
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Status.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Status.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Status.java
new file mode 100755
index 0000000..d215126
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Status.java
@@ -0,0 +1,246 @@
+/*
+ * 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.jclouds.vcloud.domain;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+/**
+ * Objects such as vAppTemplate, vApp, and Vm have a status attribute whose value indicates the
+ * state of the object. Status for an object, such as a vAppTemplate or vApp, whose Children (Vm
+ * objects) each have a status of their own, is computed from the status of the Children.
+ *
+ * <h2>NOTE</h2>
+ * <p/>
+ * The deployment status of an object is indicated by the value of its deployed attribute.
+ *
+ * @since vcloud api 0.8
+ *
+ * @author Adrian Cole
+ */
+public enum Status {
+ /**
+ * The {@link VAppTemplate}, {@link VApp}, or {@link Vm} could not be created.
+ *
+ * @since vcloud api 1.0
+ */
+ ERROR,
+ /**
+ * The {@link VAppTemplate}, {@link VApp}, or {@link Vm} is unresolved.
+ *
+ * @since vcloud api 0.8
+ */
+ UNRESOLVED,
+ /**
+ * The {@link VAppTemplate}, {@link VApp}, or {@link Vm} is resolved.
+ *
+ * @since vcloud api 0.8
+ */
+ RESOLVED,
+ /**
+ * The object is deployed.
+ * <p/>
+ * note that the documentation does not reference use of this.
+ *
+ * @since vcloud api 1.0
+ */
+ DEPLOYED,
+ /**
+ * The {@link VApp} or {@link Vm} is suspended.
+ *
+ * @since vcloud api 0.8
+ */
+ SUSPENDED,
+ /**
+ * The {@link VApp} or {@link Vm} is powered on
+ *
+ * @since vcloud api 0.8
+ */
+ ON,
+ /**
+ * The {@link VApp} or {@link Vm} waiting for user input.
+ *
+ * @since vcloud api 1.0
+ */
+ WAITING_FOR_INPUT,
+ /**
+ * The {@link VAppTemplate}, {@link VApp}, or {@link Vm} is in an unknown state.
+ *
+ * @since vcloud api 1.0
+ */
+ UNKNOWN,
+ /**
+ * The {@link VAppTemplate}, {@link VApp}, or {@link Vm} is in an unrecognized state.
+ *
+ * @since vcloud api 1.0
+ */
+ UNRECOGNIZED,
+ /**
+ * The {@link VAppTemplate}, {@link VApp}, or {@link Vm} is off.
+ *
+ * @since vcloud api 0.8
+ */
+ OFF,
+ /**
+ * The {@link VApp} or {@link Vm} is in an inconsistent state.
+ *
+ * @since vcloud api 1.0
+ */
+ INCONSISTENT,
+ /**
+ * The {@link VAppTemplate} or {@link VApp} have children do not all have the same status.
+ *
+ * @since vcloud api 1.0
+ */
+ MIXED,
+ /**
+ * The {@link VAppTemplate} Upload initiated, OVF descriptor pending
+ *
+ * @since vcloud api 1.0
+ */
+ PENDING_DESCRIPTOR,
+ /**
+ * The {@link VAppTemplate} Upload initiated, copying contents
+ *
+ * @since vcloud api 1.0
+ */
+ COPYING,
+ /**
+ * The {@link VAppTemplate} Upload initiated, disk contents pending
+ *
+ * @since vcloud api 1.0
+ */
+ PENDING_CONTENTS,
+ /**
+ * The {@link VAppTemplate} Upload has been quarantined
+ *
+ * @since vcloud api 1.0
+ */
+ QUARANTINED,
+ /**
+ * The {@link VAppTemplate} Upload quarantine period has expired
+ *
+ * @since vcloud api 1.0
+ */
+ QUARANTINE_EXPIRED,
+ /**
+ * The {@link VAppTemplate} rejected
+ *
+ * @since vcloud api 1.0
+ */
+ REJECTED,
+ /**
+ * The {@link VAppTemplate} transfer timeout
+ *
+ * @since vcloud api 1.0
+ */
+ TRANSFER_TIMEOUT;
+
+ public String value() {
+ switch (this) {
+ case UNRESOLVED:
+ return "0";
+ case RESOLVED:
+ return "1";
+ case DEPLOYED:
+ return "2";
+ case SUSPENDED:
+ return "3";
+ case ON:
+ return "4";
+ case WAITING_FOR_INPUT:
+ return "5";
+ case UNKNOWN:
+ return "6";
+ case UNRECOGNIZED:
+ return "7";
+ case OFF:
+ return "8";
+ case INCONSISTENT:
+ return "9";
+ case MIXED:
+ return "10";
+ case PENDING_DESCRIPTOR:
+ return "11";
+ case COPYING:
+ return "12";
+ case PENDING_CONTENTS:
+ return "13";
+ case QUARANTINED:
+ return "14";
+ case QUARANTINE_EXPIRED:
+ return "15";
+ case REJECTED:
+ return "16";
+ case TRANSFER_TIMEOUT:
+ return "17";
+ default:
+ return "7";
+ }
+ }
+
+ public static Status fromValue(String status) {
+ try {
+ return fromValue(Integer.parseInt(checkNotNull(status, "status")));
+ } catch (IllegalArgumentException e) {
+ return UNRECOGNIZED;
+ }
+ }
+
+ public static Status fromValue(int v) {
+ switch (v) {
+ case 0:
+ return UNRESOLVED;
+ case 1:
+ return RESOLVED;
+ case 2:
+ return DEPLOYED;
+ case 3:
+ return SUSPENDED;
+ case 4:
+ return ON;
+ case 5:
+ return WAITING_FOR_INPUT;
+ case 6:
+ return UNKNOWN;
+ case 7:
+ return UNRECOGNIZED;
+ case 8:
+ return OFF;
+ case 9:
+ return INCONSISTENT;
+ case 10:
+ return MIXED;
+ case 11:
+ return PENDING_DESCRIPTOR;
+ case 12:
+ return COPYING;
+ case 13:
+ return PENDING_CONTENTS;
+ case 14:
+ return QUARANTINED;
+ case 15:
+ return QUARANTINE_EXPIRED;
+ case 16:
+ return REJECTED;
+ case 17:
+ return TRANSFER_TIMEOUT;
+ default:
+ return UNRECOGNIZED;
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Task.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Task.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Task.java
new file mode 100755
index 0000000..82585d6
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Task.java
@@ -0,0 +1,72 @@
+/*
+ * 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.jclouds.vcloud.domain;
+
+import java.util.Date;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.vcloud.domain.internal.TaskImpl;
+
+import com.google.inject.ImplementedBy;
+
+/**
+ * Whenever the result of a request cannot be returned immediately, the server creates a Task
+ * object. Tasks owned by an object such as a vApp or vDC are contained in the Tasks element of the
+ * object’s XML representation. This element is read‐only.
+ */
+@ImplementedBy(TaskImpl.class)
+public interface Task extends ReferenceType {
+ /**
+ * The current status of the task.
+ */
+ String getOperation();
+
+ /**
+ * The current status of the task.
+ */
+ TaskStatus getStatus();
+
+ /**
+ * date and time when the task was started.
+ */
+ Date getStartTime();
+
+ /**
+ * date and time when the task completed. Does not appear for running tasks.
+ */
+ Date getEndTime();
+
+ /**
+ * date and time at which the task expires. By default, tasks expire 24 hours after their start
+ * time. Expired tasks cannot be queried.
+ */
+ Date getExpiryTime();
+
+ /**
+ * A link to the object that owns the task. For copy operations, the owner is the copy that is
+ * being created. For delete operations, the owner is the deleted object, so this element is not
+ * included. For all other operations, the owner is the object to which the request was made.
+ */
+ ReferenceType getOwner();
+
+ /**
+ * error message or related information returned by the task
+ */
+ @Nullable
+ VCloudError getError();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/TaskStatus.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/TaskStatus.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/TaskStatus.java
new file mode 100755
index 0000000..f2ab975
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/TaskStatus.java
@@ -0,0 +1,71 @@
+/*
+ * 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.jclouds.vcloud.domain;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+/**
+ * @author Adrian Cole
+ */
+public enum TaskStatus {
+ /**
+ * The task has completed and returned a value indicating success.
+ */
+ SUCCESS,
+ /**
+ * The task is running.
+ */
+ RUNNING,
+
+ /**
+ * The task has been queued for execution.
+ */
+ QUEUED,
+ /**
+ * The task has completed and returned a value indicating an error.
+ */
+ ERROR,
+ /**
+ * not an official status, temporarily in.
+ */
+ CANCELLED, UNRECOGNIZED;
+ public String value() {
+ return name().toLowerCase();
+ }
+
+ @Override
+ public String toString() {
+ return value();
+ }
+
+ public static TaskStatus fromValue(String status) {
+ if ("CANCELED".equals(status.toUpperCase())) {
+ // TODO: ecloud hack
+ status = "CANCELLED";
+ } else if ("FAILED".equals(status.toUpperCase())) {
+ status = "ERROR";
+ } else if ("COMPLETED".equals(status.toUpperCase())) {
+ status = "SUCCESS";
+ }
+ try {
+ return valueOf(checkNotNull(status, "status").toUpperCase());
+ } catch (IllegalArgumentException e) {
+ return UNRECOGNIZED;
+ }
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/TasksList.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/TasksList.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/TasksList.java
new file mode 100755
index 0000000..9d41fbc
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/TasksList.java
@@ -0,0 +1,37 @@
+/*
+ * 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.jclouds.vcloud.domain;
+
+import java.net.URI;
+import java.util.SortedSet;
+
+import org.jclouds.vcloud.domain.internal.TasksListImpl;
+
+import com.google.inject.ImplementedBy;
+
+/**
+ * @author Adrian Cole
+ */
+@org.jclouds.vcloud.endpoints.TasksList
+@ImplementedBy(TasksListImpl.class)
+public interface TasksList {
+
+ URI getLocation();
+
+ SortedSet<Task> getTasks();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VApp.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VApp.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VApp.java
new file mode 100755
index 0000000..957bfd8
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VApp.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.jclouds.vcloud.domain;
+
+import java.util.List;
+import java.util.Set;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.vcloud.domain.ovf.VCloudNetworkSection;
+
+/**
+ * A VApp is the result of instantiation of a {@link VAppTemplate}. <h2>note</h2>
+ * <p/>
+ * When the {@link #getStatus} is {@link Status#UNRESOLVED}, there will be a task present for the
+ * instantiation of the VApp.
+ *
+ * @author Adrian Cole
+ */
+public interface VApp extends ReferenceType {
+ /**
+ * Reference to the vdc containing this vApp.
+ *
+ * @since vcloud api 1.0
+ * @return vdc, or null if this is a version before 1.0 where the org isn't present
+ */
+ ReferenceType getVDC();
+
+ /**
+ * The creation status of the vDC
+ *
+ * @since vcloud api 1.0
+ */
+ Status getStatus();
+
+ /**
+ * optional description
+ *
+ * @since vcloud api 0.8
+ */
+ @Nullable
+ String getDescription();
+
+ /**
+ *
+ * @return true if the OVF descriptor for the template has been uploaded to the containing vDC.
+ * @since vcloud api 1.0
+ */
+ boolean isOvfDescriptorUploaded();
+
+ /**
+ * read‐only container for Task elements. Each element in the container represents a queued,
+ * running, or failed task owned by this object.
+ *
+ * @since vcloud api 1.0
+ */
+ List<Task> getTasks();
+
+ /**
+ * container for Vm elements representing virtual machines
+ *
+ * @since vcloud api 1.0
+ */
+ Set<Vm> getChildren();
+
+ /**
+ * description of the predefined vApp internal networks in this template
+ *
+ * @return null if the vApp is not yet instantiated
+ * @since vcloud api 1.0
+ */
+ @Nullable
+ VCloudNetworkSection getNetworkSection();
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VAppTemplate.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VAppTemplate.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VAppTemplate.java
new file mode 100755
index 0000000..b290f2c
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VAppTemplate.java
@@ -0,0 +1,97 @@
+/*
+ * 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.jclouds.vcloud.domain;
+
+import java.util.List;
+import java.util.Set;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.vcloud.domain.internal.VAppTemplateImpl;
+import org.jclouds.vcloud.domain.ovf.VCloudNetworkSection;
+
+import com.google.inject.ImplementedBy;
+
+/**
+ * A VAppTemplate is an abstract description of a vApp. It is created when you upload an OVF package
+ * to a vDC.
+ *
+ * @author Adrian Cole
+ */
+@ImplementedBy(VAppTemplateImpl.class)
+public interface VAppTemplate extends ReferenceType {
+ /**
+ * Reference to the VDC containing this template.
+ *
+ * @since vcloud api 1.0
+ * @return org, or null if this is a version before 1.0 where the vdc isn't present
+ */
+ ReferenceType getVDC();
+
+ /**
+ * @return creation status of the VAppTemplate.
+ *
+ * @since vcloud api 1.0
+ */
+ Status getStatus();
+
+ /**
+ * optional description
+ *
+ * @since vcloud api 1.0
+ */
+ @Nullable
+ String getDescription();
+
+ /**
+ * read-only container for Task elements. Each element in the container represents a queued,
+ * running, or failed task owned by this object.
+ *
+ * @since vcloud api 1.0
+ */
+ List<Task> getTasks();
+
+ /**
+ *
+ * @return true if the OVF descriptor for the template has been uploaded to the containing vDC.
+ * @since vcloud api 1.0
+ */
+ boolean isOvfDescriptorUploaded();
+
+ /**
+ * read-only identifier created on import
+ *
+ * @since vcloud api 1.0
+ */
+ @Nullable
+ String getVAppScopedLocalId();
+
+ /**
+ * container for Vm elements representing virtual machines
+ *
+ * @since vcloud api 1.0
+ */
+ Set<Vm> getChildren();
+
+ /**
+ * description of the predefined vApp internal networks in this template
+ *
+ * @return null if the vAppTemplate is still copying
+ * @since vcloud api 1.0
+ */
+ @Nullable
+ VCloudNetworkSection getNetworkSection();
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VCloudError.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VCloudError.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VCloudError.java
new file mode 100755
index 0000000..1c8f26d
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VCloudError.java
@@ -0,0 +1,123 @@
+/*
+ * 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.jclouds.vcloud.domain;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.vcloud.domain.internal.ErrorImpl;
+
+import com.google.inject.ImplementedBy;
+
+/**
+ *
+ *
+ * @author Adrian Cole
+ */
+@ImplementedBy(ErrorImpl.class)
+public interface VCloudError {
+ public static enum MinorCode {
+ /**
+ * The request was made by a user who had insufficient rights to the object or operation.
+ */
+ ACCESS_TO_RESOURCE_IS_FORBIDDEN,
+ /**
+ * The request could not be validated or contained invalid XML.
+ */
+ BAD_REQUEST,
+ /**
+ * A conflict was detected between sections of an OVF descriptor.
+ */
+ CONFLICT,
+ /**
+ * The entity is busy
+ */
+ BUSY_ENTITY,
+ /**
+ * An attempt to instantiate a vAppTemplate or use a vAppTemplate or a Vm in a composition did
+ * not include an AllEULAsAccepted element with a value of true.
+ */
+ EULA_NOT_ACCEPTED,
+ /**
+ * Returned for any failure that cannot be matched to another minor error code.
+ */
+ INTERNAL_SERVER_ERROR,
+ /**
+ * One or more references (href attribute values) supplied in the request could not be
+ * resolved to an object.
+ */
+ INVALID_REFERENCE,
+ /**
+ * The HTTP method (GET, PUT, POST, DELETE) is not allowed for the request.
+ */
+ METHOD_NOT_ALLOWED,
+ /**
+ * One or more references (href attribute values) supplied in the request could not be
+ * resolved to an object, or the Content‐type of the request was incorrect.
+ */
+ RESOURCE_NOT_FOUND,
+ /**
+ * The request raised an exception that did not match any HTTP status code.
+ */
+ UNKNOWN,
+ /**
+ * The wrong content type was specified for the request.
+ */
+ UNSUPPORTED_MEDIA_TYPE, UNRECOGNIZED;
+
+ public static MinorCode fromValue(String minorCode) {
+ try {
+ return valueOf(checkNotNull(minorCode, "minorCode"));
+ } catch (IllegalArgumentException e) {
+ return UNRECOGNIZED;
+ }
+ }
+ }
+
+ /**
+ *
+ * @return message describing the error
+ */
+ String getMessage();
+
+ /**
+ *
+ * @return matches the HTTP status code
+ */
+ int getMajorErrorCode();
+
+ /**
+ *
+ * @return error code specific to the failed operation or null if vcloud <0.9
+ */
+ @Nullable
+ MinorCode getMinorErrorCode();
+
+ /**
+ *
+ * @return optional additional information about the source of the error
+ */
+ @Nullable
+ String getVendorSpecificErrorCode();
+
+ /**
+ *
+ * @return stack trace of the error, if available. This attribute is returned only when a request
+ * is made by the system administrator.
+ */
+ String getStackTrace();
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VCloudSession.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VCloudSession.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VCloudSession.java
new file mode 100755
index 0000000..1ba5699
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VCloudSession.java
@@ -0,0 +1,29 @@
+/*
+ * 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.jclouds.vcloud.domain;
+
+import java.util.Map;
+
+/**
+ *
+ * @author Adrian Cole
+ */
+public interface VCloudSession {
+ String getVCloudToken();
+
+ Map<String, ReferenceType> getOrgs();
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VDC.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VDC.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VDC.java
new file mode 100755
index 0000000..205a38a
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VDC.java
@@ -0,0 +1,146 @@
+/*
+ * 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.jclouds.vcloud.domain;
+
+import java.util.List;
+import java.util.Map;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.vcloud.domain.internal.VDCImpl;
+
+import com.google.inject.ImplementedBy;
+
+/**
+ * A vDC is a deployment environment for vApps. A Vdc element provides a user view of a vDC.
+ *
+ * @author Adrian Cole
+ */
+@org.jclouds.vcloud.endpoints.VDC
+@ImplementedBy(VDCImpl.class)
+public interface VDC extends ReferenceType {
+ /**
+ * Reference to the org containing this vDC.
+ *
+ * @since vcloud api 1.0
+ * @return org, or null if this is a version before 1.0 where the org isn't present
+ */
+ ReferenceType getOrg();
+
+ /**
+ * The creation status of the vDC
+ *
+ * @since vcloud api 1.0
+ */
+ VDCStatus getStatus();
+
+ /**
+ * optional description
+ *
+ * @since vcloud api 0.8
+ */
+ @Nullable
+ String getDescription();
+
+ /**
+ * read‐only container for Task elements. Each element in the container represents a queued,
+ * running, or failed task owned by this object.
+ *
+ * @since vcloud api 1.0
+ */
+ List<Task> getTasks();
+
+ /**
+ * defines how resources are allocated by the vDC. The value of this element is set by the
+ * administrator who created the vDC. It is read‐only to users.
+ *
+ * @since vcloud api 1.0
+ */
+ AllocationModel getAllocationModel();
+
+ /**
+ * defines the storage capacity available in the vDC
+ *
+ * @since vcloud api 0.8
+ * @return null if the provider doesn't support storage capacity
+ */
+ @Nullable
+ Capacity getStorageCapacity();
+
+ /**
+ * reports CPU resource consumption in a vDC
+ *
+ * @since vcloud api 0.8
+ * @return null if the provider doesn't support cpu capacity
+ */
+ @Nullable
+ Capacity getCpuCapacity();
+
+ /**
+ * reports memory resource consumption in a vDC
+ *
+ * @since vcloud api 0.8
+ * @return null if the provider doesn't support memory capacity
+ */
+ @Nullable
+ Capacity getMemoryCapacity();
+
+ /**
+ * container for ResourceEntity elements
+ *
+ * @since vcloud api 0.8
+ */
+ Map<String, ReferenceType> getResourceEntities();
+
+ /**
+ * container for OrgNetwork elements that represent organization networks contained by the vDC
+ *
+ * @since vcloud api 0.8
+ */
+ Map<String, ReferenceType> getAvailableNetworks();
+
+ /**
+ * maximum number of virtual NICs allowed in this vDC. Defaults to 0, which specifies an
+ * unlimited number.
+ *
+ * @since vcloud api 1.0
+ */
+ int getNicQuota();
+
+ /**
+ * maximum number of OrgNetwork objects that can be deployed in this vDC. Defaults to 0, which
+ * specifies an unlimited number.
+ *
+ * @since vcloud api 1.0
+ */
+ int getNetworkQuota();
+
+ /**
+ * maximum number of virtual machines that can be deployed in this vDC. Defaults to 0, which
+ * specifies an unlimited number.
+ *
+ * @since vcloud api 0.8
+ */
+ int getVmQuota();
+
+ /**
+ * true if this vDC is enabled
+ *
+ * @since vcloud api 1.0
+ */
+ boolean isEnabled();
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VDCStatus.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VDCStatus.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VDCStatus.java
new file mode 100755
index 0000000..81b25d9
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/VDCStatus.java
@@ -0,0 +1,57 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.vcloud.domain;
+
+/**
+ * The creation status of the vDC
+ *
+ * @see VDC#getStatus
+ */
+public enum VDCStatus {
+
+ CREATION_FAILED, NOT_READY, READY, UNKNOWN, UNRECOGNIZED;
+
+ public int value() {
+ switch (this) {
+ case CREATION_FAILED:
+ return -1;
+ case NOT_READY:
+ return 0;
+ case READY:
+ return 1;
+ case UNKNOWN:
+ return 2;
+ default:
+ return 3;
+ }
+ }
+
+ public static VDCStatus fromValue(int status) {
+ switch (status) {
+ case -1:
+ return CREATION_FAILED;
+ case 0:
+ return NOT_READY;
+ case 1:
+ return READY;
+ case 2:
+ return UNKNOWN;
+ default:
+ return UNRECOGNIZED;
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Vm.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Vm.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Vm.java
new file mode 100755
index 0000000..0fd8f34
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/Vm.java
@@ -0,0 +1,108 @@
+/*
+ * 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.jclouds.vcloud.domain;
+
+import java.util.List;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.vcloud.domain.internal.VmImpl;
+import org.jclouds.vcloud.domain.ovf.VCloudOperatingSystemSection;
+import org.jclouds.vcloud.domain.ovf.VCloudVirtualHardwareSection;
+
+import com.google.inject.ImplementedBy;
+
+/**
+ * A Vm represents a virtual machine, a member of a vApp’s Children container. <h2>note</h2>
+ * <p/>
+ * When the {@link #getStatus} is {@link Status#UNRESOLVED}, there will be a task present for the
+ * instantiation of the VApp.
+ *
+ * @author Adrian Cole
+ */
+@ImplementedBy(VmImpl.class)
+public interface Vm extends ReferenceType {
+ /**
+ * Reference to the {@link VApp} or {@link VAppTemplate} containing this vm.
+ *
+ * @since vcloud api 1.0
+ */
+ ReferenceType getParent();
+
+ /**
+ * @return creation status of the Vm or null, if a part of a VAppTemplate
+ *
+ * @since vcloud api 1.0
+ */
+ @Nullable
+ Status getStatus();
+
+ /**
+ * optional description
+ *
+ * @since vcloud api 0.8
+ */
+ @Nullable
+ String getDescription();
+
+ /**
+ * read‐only container for Task elements. Each element in the container represents a queued,
+ * running, or failed task owned by this object.
+ *
+ * @since vcloud api 1.0
+ */
+ List<Task> getTasks();
+
+ /**
+ * @return virtual hardware that comprises this VM, or null, if part of a vApp template
+ *
+ * @since vcloud api 1.0
+ */
+ @Nullable
+ VCloudVirtualHardwareSection getVirtualHardwareSection();
+
+ /**
+ * @return operating system on this VM, or null, if part of a vApp template
+ *
+ * @since vcloud api 1.0
+ */
+ @Nullable
+ VCloudOperatingSystemSection getOperatingSystemSection();
+
+ /**
+ * @return network connections for this VM, or null if it doesn't exist
+ *
+ * @since vcloud api 1.0
+ */
+ @Nullable
+ NetworkConnectionSection getNetworkConnectionSection();
+
+ /**
+ * @return guest customization section for this VM, or null if it doesn't exist
+ *
+ * @since vcloud api 1.0
+ */
+ @Nullable
+ GuestCustomizationSection getGuestCustomizationSection();
+
+ /**
+ * read-only identifier created on import
+ *
+ * @since vcloud api 1.0
+ */
+ @Nullable
+ String getVAppScopedLocalId();
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/CatalogImpl.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/CatalogImpl.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/CatalogImpl.java
new file mode 100755
index 0000000..983600e
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/CatalogImpl.java
@@ -0,0 +1,193 @@
+/*
+ * 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.jclouds.vcloud.domain.internal;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.net.URI;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.vcloud.domain.Catalog;
+import org.jclouds.vcloud.domain.ReferenceType;
+import org.jclouds.vcloud.domain.Task;
+
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+
+/**
+ * Locations of resources in vCloud
+ *
+ * @author Adrian Cole
+ *
+ */
+public class CatalogImpl extends LinkedHashMap<String, ReferenceType> implements Catalog {
+
+ private final String name;
+ private final String type;
+ private final URI href;
+ private final ReferenceType org;
+ @Nullable
+ private final String description;
+ private final List<Task> tasks = Lists.newArrayList();
+ private final boolean published;
+ private final boolean readOnly;
+
+ public CatalogImpl(String name, String type, URI href, ReferenceType org, @Nullable String description,
+ Map<String, ReferenceType> contents, Iterable<Task> tasks, boolean published, boolean readOnly) {
+ this.name = checkNotNull(name, "name");
+ this.type = checkNotNull(type, "type");
+ this.org = org;// TODO: once <1.0 is killed check not null
+ this.description = description;
+ this.href = checkNotNull(href, "href");
+ putAll(checkNotNull(contents, "contents"));
+ Iterables.addAll(this.tasks, checkNotNull(tasks, "tasks"));
+ this.published = published;
+ this.readOnly = readOnly;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public URI getHref() {
+ return href;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public ReferenceType getOrg() {
+ return org;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public String getType() {
+ return type;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public List<Task> getTasks() {
+ return tasks;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isPublished() {
+ return published;
+ }
+
+ /**
+ * {@inheritDoc}
+ */
+ @Override
+ public boolean isReadOnly() {
+ return readOnly;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result + ((description == null) ? 0 : description.hashCode());
+ result = prime * result + ((href == null) ? 0 : href.hashCode());
+ result = prime * result + ((name == null) ? 0 : name.hashCode());
+ result = prime * result + ((org == null) ? 0 : org.hashCode());
+ result = prime * result + ((tasks == null) ? 0 : tasks.hashCode());
+ result = prime * result + ((type == null) ? 0 : type.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (!super.equals(obj))
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ CatalogImpl other = (CatalogImpl) obj;
+ if (description == null) {
+ if (other.description != null)
+ return false;
+ } else if (!description.equals(other.description))
+ return false;
+ if (href == null) {
+ if (other.href != null)
+ return false;
+ } else if (!href.equals(other.href))
+ return false;
+ if (name == null) {
+ if (other.name != null)
+ return false;
+ } else if (!name.equals(other.name))
+ return false;
+ if (org == null) {
+ if (other.org != null)
+ return false;
+ } else if (!org.equals(other.org))
+ return false;
+ if (tasks == null) {
+ if (other.tasks != null)
+ return false;
+ } else if (!tasks.equals(other.tasks))
+ return false;
+ if (type == null) {
+ if (other.type != null)
+ return false;
+ } else if (!type.equals(other.type))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int compareTo(ReferenceType o) {
+ return (this == o) ? 0 : getHref().compareTo(o.getHref());
+ }
+
+ @Override
+ public String getRelationship() {
+ throw new UnsupportedOperationException();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/CatalogItemImpl.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/CatalogItemImpl.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/CatalogItemImpl.java
new file mode 100755
index 0000000..5a972e5
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/CatalogItemImpl.java
@@ -0,0 +1,111 @@
+/*
+ * 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.jclouds.vcloud.domain.internal;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.net.URI;
+import java.util.Map;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.vcloud.VCloudMediaType;
+import org.jclouds.vcloud.domain.CatalogItem;
+import org.jclouds.vcloud.domain.ReferenceType;
+
+import com.google.common.collect.Maps;
+
+/**
+ *
+ * @author Adrian Cole
+ *
+ */
+public class CatalogItemImpl extends ReferenceTypeImpl implements CatalogItem {
+
+ private final String description;
+ private final ReferenceType entity;
+ private final Map<String, String> properties = Maps.newLinkedHashMap();
+
+ public CatalogItemImpl(String name, URI id, @Nullable String description, ReferenceType entity,
+ Map<String, String> properties) {
+ super(name, VCloudMediaType.CATALOGITEM_XML, id);
+ this.description = description;
+ this.entity = checkNotNull(entity, "entity");
+ this.properties.putAll(checkNotNull(properties, "properties"));
+ }
+
+ @Override
+ public String getType() {
+ return VCloudMediaType.CATALOGITEM_XML;
+ }
+
+ public ReferenceType getEntity() {
+ return entity;
+ }
+
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ public Map<String, String> getProperties() {
+ return properties;
+ }
+
+ @Override
+ public String toString() {
+ return "CatalogItemImpl [id=" + getHref() + ", name=" + getName() + ", type=" + getType() + ", description="
+ + getDescription() + ", entity=" + entity + ", properties=" + properties + "]";
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result + ((description == null) ? 0 : description.hashCode());
+ result = prime * result + ((entity == null) ? 0 : entity.hashCode());
+ result = prime * result + ((properties == null) ? 0 : properties.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (!super.equals(obj))
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ CatalogItemImpl other = (CatalogItemImpl) obj;
+ if (description == null) {
+ if (other.description != null)
+ return false;
+ } else if (!description.equals(other.description))
+ return false;
+ if (entity == null) {
+ if (other.entity != null)
+ return false;
+ } else if (!entity.equals(other.entity))
+ return false;
+ if (properties == null) {
+ if (other.properties != null)
+ return false;
+ } else if (!properties.equals(other.properties))
+ return false;
+ return true;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/ErrorImpl.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/ErrorImpl.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/ErrorImpl.java
new file mode 100755
index 0000000..5eb7ea1
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/ErrorImpl.java
@@ -0,0 +1,119 @@
+/*
+ * 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.jclouds.vcloud.domain.internal;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.vcloud.domain.VCloudError;
+
+/**
+ *
+ * @author Adrian Cole
+ *
+ */
+public class ErrorImpl implements VCloudError {
+ private final String message;
+ private final int majorErrorCode;
+ private final MinorCode minorErrorCode;
+ @Nullable
+ private final String vendorSpecificErrorCode;
+ @Nullable
+ private final String stackTrace;
+
+ public ErrorImpl(String message, int majorErrorCode, @Nullable MinorCode minorErrorCode,
+ @Nullable String vendorSpecificErrorCode, @Nullable String stackTrace) {
+ this.message = checkNotNull(message, "message");
+ this.majorErrorCode = majorErrorCode;
+ this.minorErrorCode = minorErrorCode; // check null after 0.8 is gone
+ this.vendorSpecificErrorCode = vendorSpecificErrorCode;
+ this.stackTrace = stackTrace;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+
+ public int getMajorErrorCode() {
+ return majorErrorCode;
+ }
+
+ public MinorCode getMinorErrorCode() {
+ return minorErrorCode;
+ }
+
+ public String getVendorSpecificErrorCode() {
+ return vendorSpecificErrorCode;
+ }
+
+ public String getStackTrace() {
+ return stackTrace;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = 1;
+ result = prime * result + majorErrorCode;
+ result = prime * result + ((message == null) ? 0 : message.hashCode());
+ result = prime * result + ((minorErrorCode == null) ? 0 : minorErrorCode.hashCode());
+ result = prime * result + ((stackTrace == null) ? 0 : stackTrace.hashCode());
+ result = prime * result + ((vendorSpecificErrorCode == null) ? 0 : vendorSpecificErrorCode.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (obj == null)
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ ErrorImpl other = (ErrorImpl) obj;
+ if (majorErrorCode != other.majorErrorCode)
+ return false;
+ if (message == null) {
+ if (other.message != null)
+ return false;
+ } else if (!message.equals(other.message))
+ return false;
+ if (minorErrorCode == null) {
+ if (other.minorErrorCode != null)
+ return false;
+ } else if (!minorErrorCode.equals(other.minorErrorCode))
+ return false;
+ if (stackTrace == null) {
+ if (other.stackTrace != null)
+ return false;
+ } else if (!stackTrace.equals(other.stackTrace))
+ return false;
+ if (vendorSpecificErrorCode == null) {
+ if (other.vendorSpecificErrorCode != null)
+ return false;
+ } else if (!vendorSpecificErrorCode.equals(other.vendorSpecificErrorCode))
+ return false;
+ return true;
+ }
+
+ @Override
+ public String toString() {
+ return "[majorErrorCode=" + majorErrorCode + ", message=" + message + ", minorErrorCode=" + minorErrorCode
+ + ", stackTrace=" + stackTrace + ", vendorSpecificErrorCode=" + vendorSpecificErrorCode + "]";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/OrgImpl.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/OrgImpl.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/OrgImpl.java
new file mode 100755
index 0000000..a085076
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/OrgImpl.java
@@ -0,0 +1,171 @@
+/*
+ * 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.jclouds.vcloud.domain.internal;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+import java.net.URI;
+import java.util.List;
+import java.util.Map;
+
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.vcloud.domain.Org;
+import org.jclouds.vcloud.domain.ReferenceType;
+import org.jclouds.vcloud.domain.Task;
+
+import com.google.common.collect.Iterables;
+import com.google.common.collect.Lists;
+import com.google.common.collect.Maps;
+
+/**
+ * Locations of resources in vCloud
+ *
+ * @author Adrian Cole
+ *
+ */
+public class OrgImpl extends ReferenceTypeImpl implements Org {
+ private final String fullName;
+ @Nullable
+ private final String description;
+ private final Map<String, ReferenceType> catalogs = Maps.newLinkedHashMap();
+ private final Map<String, ReferenceType> vdcs = Maps.newLinkedHashMap();
+ private final Map<String, ReferenceType> networks = Maps.newLinkedHashMap();
+ private final ReferenceType tasksList;
+ private final List<Task> tasks = Lists.newArrayList();
+
+ public OrgImpl(String name, String type, URI id, String fullName, String description,
+ Map<String, ReferenceType> catalogs, Map<String, ReferenceType> vdcs, Map<String, ReferenceType> networks,
+ @Nullable ReferenceType tasksList, Iterable<Task> tasks) {
+ super(name, type, id);
+ this.fullName = checkNotNull(fullName, "fullName");
+ this.description = description;
+ this.catalogs.putAll(checkNotNull(catalogs, "catalogs"));
+ this.vdcs.putAll(checkNotNull(vdcs, "vdcs"));
+ this.networks.putAll(checkNotNull(networks, "networks"));
+ this.tasksList = tasksList;
+ Iterables.addAll(this.tasks, checkNotNull(tasks, "tasks"));
+ }
+
+ @Override
+ public String getFullName() {
+ return fullName;
+ }
+
+ @Override
+ public String getDescription() {
+ return description;
+ }
+
+ @Override
+ public Map<String, ReferenceType> getCatalogs() {
+ return catalogs;
+ }
+
+ @Override
+ public Map<String, ReferenceType> getVDCs() {
+ return vdcs;
+ }
+
+ @Override
+ public Map<String, ReferenceType> getNetworks() {
+ return networks;
+ }
+
+ @Override
+ public ReferenceType getTasksList() {
+ return tasksList;
+ }
+
+ @Override
+ public List<Task> getTasks() {
+ return tasks;
+ }
+
+ @Override
+ public int hashCode() {
+ final int prime = 31;
+ int result = super.hashCode();
+ result = prime * result + ((catalogs == null) ? 0 : catalogs.hashCode());
+ result = prime * result + ((description == null) ? 0 : description.hashCode());
+ result = prime * result + ((fullName == null) ? 0 : fullName.hashCode());
+ result = prime * result + ((networks == null) ? 0 : networks.hashCode());
+ result = prime * result + ((tasks == null) ? 0 : tasks.hashCode());
+ result = prime * result + ((tasksList == null) ? 0 : tasksList.hashCode());
+ result = prime * result + ((vdcs == null) ? 0 : vdcs.hashCode());
+ return result;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ if (this == obj)
+ return true;
+ if (!super.equals(obj))
+ return false;
+ if (getClass() != obj.getClass())
+ return false;
+ OrgImpl other = (OrgImpl) obj;
+ if (catalogs == null) {
+ if (other.catalogs != null)
+ return false;
+ } else if (!catalogs.equals(other.catalogs))
+ return false;
+ if (description == null) {
+ if (other.description != null)
+ return false;
+ } else if (!description.equals(other.description))
+ return false;
+ if (fullName == null) {
+ if (other.fullName != null)
+ return false;
+ } else if (!fullName.equals(other.fullName))
+ return false;
+ if (networks == null) {
+ if (other.networks != null)
+ return false;
+ } else if (!networks.equals(other.networks))
+ return false;
+ if (tasks == null) {
+ if (other.tasks != null)
+ return false;
+ } else if (!tasks.equals(other.tasks))
+ return false;
+ if (tasksList == null) {
+ if (other.tasksList != null)
+ return false;
+ } else if (!tasksList.equals(other.tasksList))
+ return false;
+ if (vdcs == null) {
+ if (other.vdcs != null)
+ return false;
+ } else if (!vdcs.equals(other.vdcs))
+ return false;
+ return true;
+ }
+
+ @Override
+ public int compareTo(ReferenceType o) {
+ return (this == o) ? 0 : getHref().compareTo(o.getHref());
+ }
+
+ @Override
+ public String toString() {
+ return "[href=" + getHref() + ", name=" + getName() + ", type=" + getType() + ", fullName=" + fullName
+ + ", description=" + description + ", catalogs=" + catalogs + ", networks=" + networks + ", tasksList="
+ + tasksList + ", vdcs=" + vdcs + ", tasks=" + tasks + "]";
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-stratos/blob/19c8cdaf/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/ReferenceTypeImpl.java
----------------------------------------------------------------------
diff --git a/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/ReferenceTypeImpl.java b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/ReferenceTypeImpl.java
new file mode 100755
index 0000000..b0ed12f
--- /dev/null
+++ b/dependencies/jclouds/apis/vcloud/1.7.1-stratos/src/main/java/org/jclouds/vcloud/domain/internal/ReferenceTypeImpl.java
@@ -0,0 +1,103 @@
+/*
+ * 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.jclouds.vcloud.domain.internal;
+
+import static com.google.common.base.Objects.equal;
+
+import java.net.URI;
+
+import org.jclouds.vcloud.domain.ReferenceType;
+
+import com.google.common.base.Objects;
+import com.google.common.base.Objects.ToStringHelper;
+
+/**
+ * Location of a Rest resource
+ *
+ * @author Adrian Cole
+ *
+ */
+public class ReferenceTypeImpl implements ReferenceType {
+ private final String name;
+ private final String type;
+ private final URI href;
+ private final String relationship;
+
+ public ReferenceTypeImpl(String name, String type, URI href) {
+ this.name = name;
+ this.type = type;
+ this.href = href;
+ this.relationship = null;
+ }
+
+ public ReferenceTypeImpl(String name, String type, URI href, String relationship) {
+ this.name = name;
+ this.type = type;
+ this.href = href;
+ this.relationship = relationship;
+ }
+
+ @Override
+ public String getName() {
+ return name;
+ }
+
+ @Override
+ public String getType() {
+ return type;
+ }
+
+ @Override
+ public URI getHref() {
+ return href;
+ }
+
+ @Override
+ public int compareTo(ReferenceType that) {
+ return (this == that) ? 0 : getHref().compareTo(that.getHref());
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ if (this == o)
+ return true;
+ if (o == null || getClass() != o.getClass())
+ return false;
+ ReferenceTypeImpl that = ReferenceTypeImpl.class.cast(o);
+ return equal(this.href, that.href);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hashCode(href);
+ }
+
+ @Override
+ public String toString() {
+ return string().toString();
+ }
+
+ protected ToStringHelper string() {
+ return Objects.toStringHelper("").omitNullValues().add("href", href).add("name", name).add("type", type).add("relationship", relationship);
+ }
+
+ @Override
+ public String getRelationship() {
+ return relationship;
+ }
+
+}