http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/Instance.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/Instance.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/Instance.java deleted file mode 100644 index e67366e..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/Instance.java +++ /dev/null @@ -1,1187 +0,0 @@ -/* - * 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.googlecomputeengine.domain; - -import static com.google.common.base.Objects.equal; -import static com.google.common.base.Objects.toStringHelper; -import static com.google.common.base.Optional.fromNullable; -import static com.google.common.base.Preconditions.checkNotNull; -import static com.google.common.collect.Iterables.getLast; - -import java.beans.ConstructorProperties; -import java.net.URI; -import java.util.Date; -import java.util.Set; - -import org.jclouds.javax.annotation.Nullable; - -import com.google.common.annotations.Beta; -import com.google.common.base.Objects; -import com.google.common.base.Optional; -import com.google.common.base.Splitter; -import com.google.common.collect.ImmutableSet; - -/** - * Represents a virtual machine. - * - * @see <a href="https://developers.google.com/compute/docs/reference/v1/instances"/> - */ -@Beta -public class Instance extends Resource { - - public enum Status { - PROVISIONING, - STAGING, - RUNNING, - STOPPING, - STOPPED, - TERMINATED - } - - protected final Tags tags; - protected final URI machineType; - protected final Status status; - protected final Optional<String> statusMessage; - protected final URI zone; - protected final Set<NetworkInterface> networkInterfaces; - protected final Set<AttachedDisk> disks; - protected final Metadata metadata; - protected final Set<ServiceAccount> serviceAccounts; - - protected Instance(String id, Date creationTimestamp, URI selfLink, String name, String description, - Tags tags, URI machineType, Status status, String statusMessage, - URI zone, Set<NetworkInterface> networkInterfaces, Set<AttachedDisk> disks, - Metadata metadata, Set<ServiceAccount> serviceAccounts) { - super(Kind.INSTANCE, id, creationTimestamp, selfLink, name, description); - this.tags = checkNotNull(tags, "tags"); - this.machineType = checkNotNull(machineType, "machineType of %s", name); - this.status = checkNotNull(status, "status"); - this.statusMessage = fromNullable(statusMessage); - this.zone = checkNotNull(zone, "zone of %s", name); - this.networkInterfaces = networkInterfaces == null ? ImmutableSet.<NetworkInterface>of() : networkInterfaces; - this.disks = disks == null ? ImmutableSet.<AttachedDisk>of() : disks; - this.metadata = checkNotNull(metadata, "metadata"); - this.serviceAccounts = serviceAccounts == null ? ImmutableSet.<ServiceAccount>of() : serviceAccounts; - } - - /** - * Used to identify valid sources or targets for network firewalls. Provided by the client when the instance is - * created. Each tag must be unique, must be 1-63 characters long, and comply with RFC1035. - * - * @return an optional set of items applied to this instance. - */ - public Tags getTags() { - return tags; - } - - /** - * @return URL of the machine type resource describing which machine type to use to host the instance. - */ - public URI getMachineType() { - return machineType; - } - - /** - * @return Instance status - */ - public Status getStatus() { - return status; - } - - /** - * @return an optional, human-readable explanation of the status. - */ - @Nullable - public Optional<String> getStatusMessage() { - return statusMessage; - } - - /** - * @return URL of the zone resource describing where this instance should be hosted; provided by the client when - * the instance is created. - */ - public URI getZone() { - return zone; - } - - /** - * @return set of NetworkInterfaces - * @see NetworkInterface - */ - public Set<NetworkInterface> getNetworkInterfaces() { - return networkInterfaces; - } - - /** - * @return array of disks associated with this instance. Persistent disks must be created before - * you can assign them. - * @see org.jclouds.googlecomputeengine.domain.Instance.AttachedDisk - */ - public Set<AttachedDisk> getDisks() { - return disks; - } - - /** - * @return metadata for this instance - */ - public Metadata getMetadata() { - return metadata; - } - - /** - * @return list of service accounts each with specified scopes. - * @see ServiceAccount - */ - public Set<ServiceAccount> getServiceAccounts() { - return serviceAccounts; - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - Instance that = Instance.class.cast(obj); - return equal(this.kind, that.kind) - && equal(this.name, that.name) - && equal(this.zone, that.zone); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return super.string() - .omitNullValues() - .add("items", tags) - .add("machineType", machineType) - .add("status", status) - .add("statusMessage", statusMessage.orNull()) - .add("zone", zone) - .add("networkInterfaces", networkInterfaces) - .add("disks", disks) - .add("metadata", metadata) - .add("serviceAccounts", serviceAccounts); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return new Builder().fromInstance(this); - } - - public static final class Builder extends Resource.Builder<Builder> { - - private Tags tags; - private URI machineType; - private Status status; - private String statusMessage; - private URI zone; - private Metadata metadata; - private ImmutableSet.Builder<NetworkInterface> networkInterfaces = ImmutableSet.builder(); - private ImmutableSet.Builder<AttachedDisk> disks = ImmutableSet.builder(); - private ImmutableSet.Builder<ServiceAccount> serviceAccounts = ImmutableSet.builder(); - - - /** - * @see Instance#getTags() - */ - public Builder tags(Tags tags) { - this.tags = tags; - return this; - } - - /** - * @see Instance#getMachineType() - */ - public Builder machineType(URI machineType) { - this.machineType = machineType; - return this; - } - - /** - * @see Instance#getStatus() - */ - public Builder status(Status status) { - this.status = status; - return this; - } - - /** - * @see Instance#getStatusMessage() - */ - public Builder statusMessage(String statusMessage) { - this.statusMessage = statusMessage; - return this; - } - - /** - * @see Instance#getZone() - */ - public Builder zone(URI zone) { - this.zone = zone; - return this; - } - - /** - * @see Instance#getNetworkInterfaces() - */ - public Builder addNetworkInterface(NetworkInterface networkInterface) { - this.networkInterfaces.add(networkInterface); - return this; - } - - /** - * @see Instance#getNetworkInterfaces() - */ - public Builder networkInterfaces(Set<NetworkInterface> networkInterfaces) { - this.networkInterfaces.addAll(networkInterfaces); - return this; - } - - /** - * @see Instance#getDisks() - */ - public Builder addDisk(AttachedDisk disk) { - this.disks.add(disk); - return this; - } - - /** - * @see Instance#getDisks() - */ - public Builder disks(Set<AttachedDisk> disks) { - this.disks.addAll(disks); - return this; - } - - /** - * @see Instance#getMetadata() - */ - public Builder metadata(Metadata metadata) { - this.metadata = metadata; - return this; - } - - /** - * @see Instance#getServiceAccounts() - */ - public Builder addServiceAccount(ServiceAccount serviceAccount) { - this.serviceAccounts.add(serviceAccount); - return this; - } - - /** - * @see Instance#getServiceAccounts() - */ - public Builder serviceAccounts(Set<ServiceAccount> serviceAccounts) { - this.serviceAccounts.addAll(serviceAccounts); - return this; - } - - - @Override - protected Builder self() { - return this; - } - - public Instance build() { - return new Instance(super.id, super.creationTimestamp, super.selfLink, super.name, - super.description, tags, machineType, status, statusMessage, zone, - networkInterfaces.build(), disks.build(), metadata, serviceAccounts.build()); - } - - public Builder fromInstance(Instance in) { - return super.fromResource(in) - .tags(in.getTags()) - .machineType(in.getMachineType()) - .status(in.getStatus()) - .statusMessage(in.getStatusMessage().orNull()) - .zone(in.getZone()) - .networkInterfaces(in.getNetworkInterfaces()) - .disks(in.getDisks()) - .metadata(in.getMetadata()) - .serviceAccounts(in.getServiceAccounts()); - } - } - - - - - /** - * Tags for an instance, with their fingerprint. - */ - public static class Tags { - private final String fingerprint; - private final Set<String> items; - - @ConstructorProperties({"fingerprint", "items"}) - public Tags(String fingerprint, @Nullable Set<String> items) { - this.fingerprint = checkNotNull(fingerprint); - this.items = items == null ? ImmutableSet.<String>of() : items; - } - - /** - * Used to identify valid sources or targets for network firewalls. Provided by the client when the instance is - * created. Each tag must be unique, must be 1-63 characters long, and comply with RFC1035. - * - * @return an optional set of items applied to this instance. - */ - public Set<String> getItems() { - return items; - } - - /** - * Gets the fingerprint for the items - needed for updating them. - * - * @return the fingerprint string for the items. - */ - public String getFingerprint() { - return fingerprint; - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return Objects.hashCode(fingerprint, items); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - Tags that = Tags.class.cast(obj); - return equal(this.items, that.items) - && equal(this.fingerprint, that.fingerprint); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return toStringHelper(this) - .add("items", items) - .add("fingerprint", fingerprint); - } - - public static Builder builder() { - return new Builder(); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } - - public static final class Builder { - - private ImmutableSet.Builder<String> items = ImmutableSet.builder(); - private String fingerprint; - - /** - * @see Tags#getItems() - */ - public Builder addItem(String item) { - this.items.add(item); - return this; - } - - /** - * @see Tags#getItems() - */ - public Builder items(Set<String> items) { - this.items.addAll(items); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.Tags#getFingerprint() - */ - public Builder fingerprint(String fingerprint) { - this.fingerprint = fingerprint; - return this; - } - - public Tags build() { - return new Tags(this.fingerprint, this.items.build()); - } - - public Builder fromTags(Tags in) { - return this.fingerprint(in.getFingerprint()) - .items(in.getItems()); - } - } - } - - /** - * A disk attached to an Instance. - * - * @see <a href="https://developers.google.com/compute/docs/reference/v1/instances"/> - */ - public static class AttachedDisk { - - private final int index; - - public AttachedDisk(Integer index) { - this.index = checkNotNull(index, "index"); - } - - public boolean isPersistent() { - return false; - } - - /** - * @return a zero-based index to assign to this disk, where 0 is reserved for the boot disk. - */ - public int getIndex() { - return index; - } - - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return Objects.hashCode(index); - } - - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - AttachedDisk that = AttachedDisk.class.cast(obj); - return equal(this.index, that.index); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return toStringHelper(this).add("index", index); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } - - public static AttachedDisk ephemeralDiskAtIndex(Integer index) { - return new AttachedDisk(index); - } - } - - public static class PersistentAttachedDisk extends AttachedDisk { - public enum Mode { - READ_WRITE, - READ_ONLY; - } - - @ConstructorProperties({"mode", "source", "deviceName", "index", "deleteOnTerminate", - "boot"}) - public PersistentAttachedDisk(Mode mode, URI source, String deviceName, Integer index, - boolean deleteOnTerminate, boolean boot) { - super(index); - this.mode = checkNotNull(mode, "mode"); - this.source = checkNotNull(source, "source"); - this.deviceName = fromNullable(deviceName); - this.deleteOnTerminate = deleteOnTerminate; - this.boot = boot; - } - - private final Mode mode; - private final URI source; - private final boolean deleteOnTerminate; - private final Optional<String> deviceName; - private final boolean boot; - - @Override - public boolean isPersistent() { - return true; - } - - /** - * @return the mode in which to attach this disk, either READ_WRITE or READ_ONLY. - */ - public Mode getMode() { - return mode; - } - - /** - * @return the URL of the persistent disk resource. - */ - public URI getSource() { - return source; - } - - /** - * @return the Name of the persistent disk resource - */ - public String getSourceDiskName() { - return getLast(Splitter.on("/").split(source.toString()), null); - } - - /** - * @return Must be unique within the instance when specified. This represents a unique - * device name that is reflected into the /dev/ tree of a Linux operating system running within the - * instance. If not specified, a default will be chosen by the system. - */ - public Optional<String> getDeviceName() { - return deviceName; - } - - - /** - * @return If true, delete the disk and all its data when the associated instance is deleted. - */ - public boolean isDeleteOnTerminate() { - return deleteOnTerminate; - } - - /** - * @return If true, this is the boot disk for this instance. - */ - public boolean isBoot() { - return boot; - } - - public static Builder builder() { - return new Builder(); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return toStringHelper(this).add("boot", boot); - } - - - public static final class Builder { - - private Mode mode; - private URI source; - private String deviceName; - private Integer index; - private boolean deleteOnTerminate; - private boolean boot; - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.PersistentAttachedDisk#getMode() - */ - public Builder mode(Mode mode) { - this.mode = mode; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.PersistentAttachedDisk#getSource() - */ - public Builder source(URI source) { - this.source = source; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.PersistentAttachedDisk#getDeviceName() - */ - public Builder deviceName(String deviceName) { - this.deviceName = deviceName; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.AttachedDisk#getIndex() - */ - public Builder index(Integer index) { - this.index = index; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.PersistentAttachedDisk#isDeleteOnTerminate() - */ - public Builder deleteOnTerminate(Boolean deleteOnTerminate) { - this.deleteOnTerminate = deleteOnTerminate; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.PersistentAttachedDisk#isBoot() - */ - public Builder boot(Boolean boot) { - this.boot = boot; - return this; - } - - public PersistentAttachedDisk build() { - return new PersistentAttachedDisk(this.mode, this.source, this.deviceName, this.index, - this.deleteOnTerminate, this.boot); - } - - public Builder fromPersistentAttachedDisk(PersistentAttachedDisk in) { - return this.mode(in.getMode()) - .source(in.getSource()) - .deviceName(in.getDeviceName().orNull()) - .index(in.getIndex()) - .deleteOnTerminate(in.isDeleteOnTerminate()) - .boot(in.isBoot()); - } - } - } - - /** - * A network interface for an Instance. - * - * @see <a href="https://developers.google.com/compute/docs/reference/v1/instances"/> - */ - public static final class NetworkInterface { - - private final String name; - private final URI network; - private final Optional<String> networkIP; - private final Set<AccessConfig> accessConfigs; - - @ConstructorProperties({ - "name", "network", "networkIP", "accessConfigs" - }) - private NetworkInterface(String name, URI network, String networkIP, - Set<AccessConfig> accessConfigs) { - this.name = checkNotNull(name, "name"); - this.network = checkNotNull(network, "network"); - this.networkIP = fromNullable(networkIP); - this.accessConfigs = accessConfigs == null ? ImmutableSet.<AccessConfig>of() : accessConfigs; - } - - /** - * @return the name of the network interface - */ - public String getName() { - return name; - } - - /** - * @return URL of the network resource attached to this interface. - */ - public URI getNetwork() { - return network; - } - - /** - * @return An IPV4 internal network address to assign to this instance. - */ - public Optional<String> getNetworkIP() { - return networkIP; - } - - /** - * @return array of access configurations for this interface. - */ - public Set<AccessConfig> getAccessConfigs() { - return accessConfigs; - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return Objects.hashCode(name, network, networkIP, accessConfigs); - } - - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - NetworkInterface that = NetworkInterface.class.cast(obj); - return equal(this.name, that.name) - && equal(this.network, that.network); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return toStringHelper(this) - .add("name", name) - .add("network", network).add("networkIP", networkIP).add("accessConfigs", - accessConfigs); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return builder().fromNetworkInterface(this); - } - - public static class Builder { - - private String name; - private URI network; - private String networkIP; - private ImmutableSet.Builder<AccessConfig> accessConfigs = ImmutableSet.builder(); - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.NetworkInterface#getName() - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.NetworkInterface#getNetwork() - */ - public Builder network(URI network) { - this.network = network; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.NetworkInterface#getNetworkIP() - */ - public Builder networkIP(String networkIP) { - this.networkIP = networkIP; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.NetworkInterface#getAccessConfigs() - */ - public Builder addAccessConfig(AccessConfig accessConfig) { - this.accessConfigs.add(accessConfig); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.NetworkInterface#getAccessConfigs() - */ - public Builder accessConfigs(Set<AccessConfig> accessConfigs) { - this.accessConfigs = ImmutableSet.builder(); - this.accessConfigs.addAll(accessConfigs); - return this; - } - - public NetworkInterface build() { - return new NetworkInterface(this.name, this.network, this.networkIP, this.accessConfigs.build()); - } - - public Builder fromNetworkInterface(NetworkInterface in) { - return this.network(in.getNetwork()) - .networkIP(in.getNetworkIP().orNull()) - .accessConfigs(in.getAccessConfigs()); - } - } - - /** - * Access configuration to an instance's network. - * <p/> - * This specifies how this interface is configured to interact with other network services, - * such as connecting to the internet. Currently, ONE_TO_ONE_NAT is the only access config supported. - */ - public static final class AccessConfig { - - public enum Type { - ONE_TO_ONE_NAT - } - - private Optional<String> name; - private Type type; - private Optional<String> natIP; - - @ConstructorProperties({ - "name", "type", "natIP" - }) - private AccessConfig(String name, Type type, String natIP) { - this.name = fromNullable(name); - this.type = checkNotNull(type, "type"); - this.natIP = fromNullable(natIP); - } - - /** - * @return name of this access configuration. - */ - public Optional<String> getName() { - return name; - } - - /** - * @return type of configuration. Must be set to ONE_TO_ONE_NAT. This configures port-for-port NAT to the - * internet. - */ - public Type getType() { - return type; - } - - /** - * @return an external IP address associated with this instance, if there is one. - */ - @Nullable - public Optional<String> getNatIP() { - return natIP; - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return Objects.hashCode(name, type, natIP); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - AccessConfig that = AccessConfig.class.cast(obj); - return equal(this.name, that.name) - && equal(this.type, that.type) - && equal(this.natIP, that.natIP); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return toStringHelper(this) - .add("name", name).add("type", type).add("natIP", natIP); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return builder().fromAccessConfig(this); - } - - public static class Builder { - - private String name; - private Type type; - private String natIP; - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.NetworkInterface.AccessConfig#getName() - */ - public Builder name(String name) { - this.name = name; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.NetworkInterface.AccessConfig#getType() - */ - public Builder type(Type type) { - this.type = type; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.NetworkInterface.AccessConfig#getNatIP() - */ - public Builder natIP(String natIP) { - this.natIP = natIP; - return this; - } - - public AccessConfig build() { - return new AccessConfig(name, type, natIP); - } - - public Builder fromAccessConfig(AccessConfig in) { - return this.name(in.getName().orNull()) - .type(in.getType()) - .natIP(in.getNatIP().orNull()); - } - } - } - } - - /** - * The output of an instance's serial port; - * - * @see <a href="https://developers.google.com/compute/docs/reference/v1/instances/serialPort"/> - */ - public static final class SerialPortOutput { - - private final Optional<String> selfLink; - private final String contents; - - @ConstructorProperties({ - "selfLink", "contents" - }) - public SerialPortOutput(String selfLink, String contents) { - this.selfLink = fromNullable(selfLink); - this.contents = checkNotNull(contents, "contents"); - } - - /** - * @return unique identifier for the resource; defined by the server (output only). - */ - public Optional<String> getSelfLink() { - return selfLink; - } - - /** - * @return the contents of the console output. - */ - public String getContents() { - return contents; - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return Objects.hashCode(selfLink, contents); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - SerialPortOutput that = SerialPortOutput.class.cast(obj); - return equal(this.selfLink, that.selfLink); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return toStringHelper(this).add("selfLink", selfLink).add("contents", contents); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return builder().fromInstanceSerialPortOutput(this); - } - - public static final class Builder { - - private String selfLink; - private String contents; - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.SerialPortOutput#getSelfLink() - */ - public Builder selfLink(String selfLink) { - this.selfLink = checkNotNull(selfLink); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.SerialPortOutput#getContents() - */ - public Builder contents(String contents) { - this.contents = contents; - return this; - } - - public SerialPortOutput build() { - return new SerialPortOutput(selfLink, contents); - } - - public Builder fromInstanceSerialPortOutput(SerialPortOutput in) { - return this.selfLink(in.getSelfLink().orNull()) - .contents(in.getContents()); - } - } - - } - - /** - * A service account for which access tokens are to be made available to the instance through metadata queries. - * - * @see <a href="https://developers.google.com/compute/docs/reference/v1/instances"/> - */ - public static final class ServiceAccount { - - private final String email; - private final Set<String> scopes; - - @ConstructorProperties({ - "email", "scopes" - }) - public ServiceAccount(String email, Set<String> scopes) { - this.email = checkNotNull(email, "email"); - this.scopes = checkNotNull(scopes, "scopes"); - } - - /** - * @return email address of the service account. - */ - public String getEmail() { - return email; - } - - /** - * @return the list of scopes to be made available for this service account. - */ - public Set<String> getScopes() { - return scopes; - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return Objects.hashCode(email, scopes); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - ServiceAccount that = ServiceAccount.class.cast(obj); - return equal(this.email, that.email) - && equal(this.scopes, that.scopes); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return toStringHelper(this).add("email", email).add("scopes", scopes); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return builder().fromInstanceServiceAccount(this); - } - - public static final class Builder { - - private String email; - private ImmutableSet.Builder<String> scopes = ImmutableSet.builder(); - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.ServiceAccount#getEmail() - */ - public Builder email(String email) { - this.email = checkNotNull(email); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.ServiceAccount#getScopes() - */ - public Builder addScopes(String scopes) { - this.scopes.add(scopes); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance.ServiceAccount#getScopes() - */ - public Builder scopes(Set<String> scopes) { - this.scopes.addAll(scopes); - return this; - } - - public ServiceAccount build() { - return new ServiceAccount(email, scopes.build()); - } - - public Builder fromInstanceServiceAccount(ServiceAccount in) { - return this.email(in.getEmail()).scopes(in.getScopes()); - } - } - } -}
http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/InstanceInZone.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/InstanceInZone.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/InstanceInZone.java deleted file mode 100644 index 09a3088..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/InstanceInZone.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.googlecomputeengine.domain; - -import static com.google.common.base.Objects.equal; -import static com.google.common.base.Preconditions.checkNotNull; - -public class InstanceInZone extends SlashEncodedIds { - protected final Instance instance; - - public InstanceInZone(Instance instance, String zoneId) { - super(zoneId, checkNotNull(instance, "instance").getName()); - this.instance = instance; - } - - public Instance getInstance() { - return instance; - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - InstanceInZone that = InstanceInZone.class.cast(obj); - return equal(this.instance, that.instance) - && equal(this.firstId, that.firstId) - && equal(this.secondId, that.secondId); - } - - @Override - public String toString() { - return "[instance=" + instance + ", zoneId=" + firstId + "]"; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/InstanceTemplate.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/InstanceTemplate.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/InstanceTemplate.java deleted file mode 100644 index e86bed2..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/InstanceTemplate.java +++ /dev/null @@ -1,445 +0,0 @@ -/* - * 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.googlecomputeengine.domain; - -import static com.google.common.base.Objects.equal; -import static com.google.common.base.Preconditions.checkNotNull; -import static org.jclouds.googlecomputeengine.domain.Instance.NetworkInterface.AccessConfig.Type; - -import java.net.URI; -import java.util.List; -import java.util.Map; -import java.util.Set; - -import com.google.common.base.Objects; -import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Lists; -import com.google.common.collect.Maps; -import com.google.common.collect.Sets; - -/** - * Optional information for creating an instance. - */ -public class InstanceTemplate { - - protected String name; - protected String description; - protected URI machineType; - protected URI image; - protected Set<Instance.ServiceAccount> serviceAccounts = Sets.newLinkedHashSet(); - - protected transient List<PersistentDisk> disks = Lists.newArrayList(); - protected transient Set<NetworkInterface> networkInterfaces = Sets.newLinkedHashSet(); - protected transient Map<String, String> metadata = Maps.newLinkedHashMap(); - protected transient String machineTypeName; - - - protected InstanceTemplate(URI machineType) { - this.machineType = checkNotNull(machineType, "machineType"); - } - - protected InstanceTemplate(String machineTypeName) { - this.machineTypeName = checkNotNull(machineTypeName, "machineTypeName"); - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getName() - */ - public InstanceTemplate name(String name) { - this.name = name; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getDescription() - */ - public InstanceTemplate description(String description) { - this.description = description; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getImage() - */ - public InstanceTemplate image(URI image) { - this.image = image; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getMachineType() - */ - public InstanceTemplate machineType(URI machineType) { - this.machineType = machineType; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getMachineType() - */ - public InstanceTemplate machineType(String machineTypeName) { - this.machineTypeName = machineTypeName; - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getDisks() - */ - public InstanceTemplate addDisk(PersistentDisk.Mode mode, URI source) { - this.disks.add(new PersistentDisk(mode, source, null, false, false)); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getDisks() - */ - public InstanceTemplate addDisk(PersistentDisk.Mode mode, URI source, Boolean deleteOnTerminate) { - this.disks.add(new PersistentDisk(mode, source, null, deleteOnTerminate, false)); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getDisks() - */ - public InstanceTemplate addDisk(PersistentDisk.Mode mode, URI source, String deviceName, Boolean deleteOnTerminate) { - this.disks.add(new PersistentDisk(mode, source, deviceName, deleteOnTerminate, false)); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getDisks() - */ - public InstanceTemplate addDisk(PersistentDisk.Mode mode, URI source, String deviceName, - Boolean deleteOnTerminate, Boolean boot) { - this.disks.add(new PersistentDisk(mode, source, deviceName, deleteOnTerminate, boot)); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getDisks() - */ - public InstanceTemplate disks(List<PersistentDisk> disks) { - this.disks = Lists.newArrayList(); - this.disks.addAll(checkNotNull(disks, "disks")); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getNetworkInterfaces() - */ - public InstanceTemplate addNetworkInterface(URI network) { - this.networkInterfaces.add(new NetworkInterface(checkNotNull(network, "network"), null, null)); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getNetworkInterfaces() - */ - public InstanceTemplate addNetworkInterface(URI network, Type type) { - this.networkInterfaces.add(new NetworkInterface(checkNotNull(network, "network"), null, - ImmutableSet.of(Instance.NetworkInterface.AccessConfig.builder() - .type(type) - .build()))); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getNetworkInterfaces() - */ - public InstanceTemplate addNetworkInterface(NetworkInterface networkInterface) { - this.networkInterfaces.add(networkInterface); - return this; - } - - public InstanceTemplate networkInterfaces(Set<NetworkInterface> networkInterfaces) { - this.networkInterfaces = Sets.newLinkedHashSet(networkInterfaces); - return this; - } - - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getMetadata() - */ - public InstanceTemplate addMetadata(String key, String value) { - this.metadata.put(checkNotNull(key, "key"), checkNotNull(value, "value of %", key)); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getMetadata() - */ - public InstanceTemplate metadata(Map<String, String> metadata) { - this.metadata = Maps.newLinkedHashMap(); - this.metadata.putAll(checkNotNull(metadata, "metadata")); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getServiceAccounts() - */ - public InstanceTemplate addServiceAccount(Instance.ServiceAccount serviceAccount) { - this.serviceAccounts.add(checkNotNull(serviceAccount, "serviceAccount")); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getServiceAccounts() - */ - public InstanceTemplate serviceAccounts(Set<Instance.ServiceAccount> serviceAccounts) { - this.serviceAccounts = Sets.newLinkedHashSet(); - this.serviceAccounts.addAll(checkNotNull(serviceAccounts, "serviceAccounts")); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getDescription() - */ - public String getDescription() { - return description; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getDisks() - */ - public List<PersistentDisk> getDisks() { - return disks; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getImage() - */ - public URI getImage() { - return image; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getMachineType() - */ - public URI getMachineType() { - return machineType; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getMachineType() - */ - public String getMachineTypeName() { - return machineTypeName; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getMetadata() - */ - public Map<String, String> getMetadata() { - return metadata; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getNetworkInterfaces() - */ - public Set<NetworkInterface> getNetworkInterfaces() { - return networkInterfaces; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getServiceAccounts() - */ - public Set<Instance.ServiceAccount> getServiceAccounts() { - return serviceAccounts; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Instance#getName() - */ - public String getName() { - return name; - } - - public static Builder builder() { - return new Builder(); - } - - public static InstanceTemplate fromInstanceTemplate(InstanceTemplate instanceTemplate) { - return Builder.fromInstanceTemplate(instanceTemplate); - } - - public static class Builder { - - public InstanceTemplate forMachineType(URI machineType) { - return new InstanceTemplate(machineType); - } - - public InstanceTemplate forMachineType(String machineTypeName) { - return new InstanceTemplate(machineTypeName); - } - - public static InstanceTemplate fromInstanceTemplate(InstanceTemplate instanceTemplate) { - return InstanceTemplate.builder() - .forMachineType(instanceTemplate.getMachineType()) - .networkInterfaces(instanceTemplate.getNetworkInterfaces()) - .name(instanceTemplate.getName()) - .description(instanceTemplate.getDescription()) - .image(instanceTemplate.getImage()) - .disks(instanceTemplate.getDisks()) - .metadata(instanceTemplate.getMetadata()) - .serviceAccounts(instanceTemplate.getServiceAccounts()); - } - } - - - public static class PersistentDisk { - - public enum Mode { - READ_WRITE, - READ_ONLY - } - - public PersistentDisk(Mode mode, URI source, String deviceName, Boolean deleteOnTerminate, - Boolean boot) { - this.mode = checkNotNull(mode, "mode"); - this.source = checkNotNull(source, "source"); - this.deviceName = deviceName; - this.deleteOnTerminate = checkNotNull(deleteOnTerminate, "deleteOnTerminate"); - this.boot = checkNotNull(boot, "boot"); - } - - private final Mode mode; - private final URI source; - private final Boolean deleteOnTerminate; - private final String deviceName; - private final Boolean boot; - - /** - * @return the mode in which to attach this disk, either READ_WRITE or READ_ONLY. - */ - public Mode getMode() { - return mode; - } - - /** - * @return the URL of the persistent disk resource. - */ - public URI getSource() { - return source; - } - - /** - * @return Must be unique within the instance when specified. This represents a unique - * device name that is reflected into the /dev/ tree of a Linux operating system running within the - * instance. If not specified, a default will be chosen by the system. - */ - public String getDeviceName() { - return deviceName; - } - - - /** - * @return If true, delete the disk and all its data when the associated instance is deleted. - */ - public boolean isDeleteOnTerminate() { - return deleteOnTerminate; - } - - /** - * @return If true, boot from this disk. - */ - public boolean isBoot() { - return boot; - } - } - - public static class NetworkInterface { - - private final URI network; - private final String networkIP; - private final Set<Instance.NetworkInterface.AccessConfig> accessConfigs; - - public NetworkInterface(URI network, String networkIP, Set<Instance.NetworkInterface.AccessConfig> - accessConfigs) { - this.networkIP = networkIP; - this.network = network; - this.accessConfigs = accessConfigs != null ? accessConfigs : ImmutableSet.<Instance.NetworkInterface.AccessConfig>of(); - } - - public Set<Instance.NetworkInterface.AccessConfig> getAccessConfigs() { - return accessConfigs; - } - - public URI getNetwork() { - return network; - } - - public String getNetworkIP() { - return networkIP; - } - } - - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object object) { - if (this == object) { - return true; - } - if (object instanceof InstanceTemplate) { - final InstanceTemplate other = InstanceTemplate.class.cast(object); - return equal(description, other.description) - && equal(image, other.image) - && equal(disks, other.disks) - && equal(networkInterfaces, other.networkInterfaces) - && equal(metadata, other.metadata) - && equal(serviceAccounts, other.serviceAccounts); - } else { - return false; - } - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return Objects.hashCode(description, image, disks, networkInterfaces, metadata, serviceAccounts); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - Objects.ToStringHelper toString = Objects.toStringHelper("") - .omitNullValues(); - toString.add("description", description); - if (disks.size() > 0) - toString.add("disks", disks); - if (metadata.size() > 0) - toString.add("metadata", metadata); - if (serviceAccounts.size() > 0) - toString.add("serviceAccounts", serviceAccounts); - toString.add("image", image); - toString.add("networkInterfaces", networkInterfaces); - return toString; - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/ListPage.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/ListPage.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/ListPage.java deleted file mode 100644 index 63107e7..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/ListPage.java +++ /dev/null @@ -1,179 +0,0 @@ -/* - * 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.googlecomputeengine.domain; - -import static com.google.common.base.Objects.equal; -import static com.google.common.base.Objects.toStringHelper; -import static com.google.common.base.Preconditions.checkNotNull; -import static org.jclouds.googlecomputeengine.domain.Resource.Kind; - -import java.beans.ConstructorProperties; -import java.net.URI; -import java.util.Iterator; - -import org.jclouds.collect.IterableWithMarker; - -import com.google.common.base.Objects; -import com.google.common.base.Optional; -import com.google.common.collect.ImmutableSet; - -/** - * The collection returned from any <code>listFirstPage()</code> method. - */ -public class ListPage<T> extends IterableWithMarker<T> { - - private final Kind kind; - private final String id; - private final URI selfLink; - private final String nextPageToken; - private final Iterable<T> items; - - @ConstructorProperties({ - "kind", "id", "selfLink", "nextPageToken", "items" - }) - protected ListPage(Kind kind, String id, URI selfLink, String nextPageToken, Iterable<T> items) { - this.id = checkNotNull(id, "id"); - this.kind = checkNotNull(kind, "kind of %id", id); - this.selfLink = checkNotNull(selfLink, "selfLink of %id", id); - this.nextPageToken = nextPageToken; - this.items = items != null ? ImmutableSet.copyOf(items) : ImmutableSet.<T>of(); - } - - public Kind getKind() { - return kind; - } - - public String getId() { - return id; - } - - public URI getSelfLink() { - return selfLink; - } - - @Override - public Optional<Object> nextMarker() { - return Optional.<Object>fromNullable(nextPageToken); - } - - @Override - public Iterator<T> iterator() { - return checkNotNull(items, "items").iterator(); - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return Objects.hashCode(kind, id); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - ListPage<?> that = ListPage.class.cast(obj); - return equal(this.kind, that.kind) - && equal(this.id, that.id); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return toStringHelper(this) - .omitNullValues() - .add("kind", kind) - .add("id", id) - .add("selfLink", selfLink) - .add("nextPageToken", nextPageToken) - .add("items", items); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } - - public static <T> Builder<T> builder() { - return new Builder<T>(); - } - - public Builder<T> toBuilder() { - return new Builder<T>().fromPagedList(this); - } - - public static final class Builder<T> { - - private Kind kind; - private String id; - private URI selfLink; - private String nextPageToken; - private ImmutableSet.Builder<T> items = ImmutableSet.builder(); - - public Builder<T> kind(Kind kind) { - this.kind = kind; - return this; - } - - public Builder<T> id(String id) { - this.id = id; - return this; - } - - public Builder<T> selfLink(URI selfLink) { - this.selfLink = selfLink; - return this; - } - - public Builder<T> addItem(T item) { - this.items.add(item); - return this; - } - - public Builder<T> items(Iterable<T> items) { - this.items.addAll(items); - return this; - } - - public Builder<T> nextPageToken(String nextPageToken) { - this.nextPageToken = nextPageToken; - return this; - } - - public ListPage<T> build() { - return new ListPage<T>(kind, id, selfLink, nextPageToken, items.build()); - } - - public Builder<T> fromPagedList(ListPage<T> in) { - return this - .kind(in.getKind()) - .id(in.getId()) - .selfLink(in.getSelfLink()) - .nextPageToken((String) in.nextMarker().orNull()) - .items(in); - - } - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/MachineType.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/MachineType.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/MachineType.java deleted file mode 100644 index 6a538e5..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/MachineType.java +++ /dev/null @@ -1,348 +0,0 @@ -/* - * 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.googlecomputeengine.domain; - -import static com.google.common.base.Objects.equal; -import static com.google.common.base.Objects.toStringHelper; -import static com.google.common.base.Optional.fromNullable; -import static com.google.common.base.Preconditions.checkNotNull; -import java.beans.ConstructorProperties; -import java.net.URI; -import java.util.Date; -import java.util.List; - -import org.jclouds.javax.annotation.Nullable; - -import com.google.common.annotations.Beta; -import com.google.common.base.Objects; -import com.google.common.base.Optional; -import com.google.common.collect.ImmutableList; - -/** - * Represents a machine type used to host an instance. - * - * @see <a href="https://developers.google.com/compute/docs/reference/v1/machineTypes"/> - */ -@Beta -public final class MachineType extends Resource { - - private final Integer guestCpus; - private final Integer memoryMb; - private final List<ScratchDisk> scratchDisks; - private final Integer maximumPersistentDisks; - private final Long maximumPersistentDisksSizeGb; - private final String zone; - private final Optional<Deprecated> deprecated; - - @ConstructorProperties({ - "id", "creationTimestamp", "selfLink", "name", "description", "guestCpus", "memoryMb", - "scratchDisks", "maximumPersistentDisks", "maximumPersistentDisksSizeGb", "zone", "deprecated" - }) - private MachineType(String id, Date creationTimestamp, URI selfLink, String name, String description, - int guestCpus, int memoryMb, List<ScratchDisk> scratchDisks, - int maximumPersistentDisks, long maximumPersistentDisksSizeGb, String zone, - @Nullable Deprecated deprecated) { - super(Kind.MACHINE_TYPE, id, creationTimestamp, selfLink, name, description); - this.guestCpus = checkNotNull(guestCpus, "guestCpus of %s", name); - this.memoryMb = checkNotNull(memoryMb, "memoryMb of %s", name); - this.scratchDisks = scratchDisks == null ? ImmutableList.<ScratchDisk>of() : scratchDisks; - this.maximumPersistentDisks = checkNotNull(maximumPersistentDisks, "maximumPersistentDisks of %s", name); - this.maximumPersistentDisksSizeGb = maximumPersistentDisksSizeGb; - this.zone = checkNotNull(zone, "zone of %s", name); - this.deprecated = fromNullable(deprecated); - } - - /** - * @return count of CPUs exposed to the instance. - */ - public int getGuestCpus() { - return guestCpus; - } - - /** - * @return physical memory assigned to the instance, defined in MB. - */ - public int getMemoryMb() { - return memoryMb; - } - - /** - * @return extended scratch disks assigned to the instance. - */ - public List<ScratchDisk> getScratchDisks() { - return scratchDisks; - } - - /** - * @return maximum persistent disks allowed. - */ - public int getMaximumPersistentDisks() { - return maximumPersistentDisks; - } - - /** - * @return maximum total persistent disks size (GB) allowed. - */ - public long getMaximumPersistentDisksSizeGb() { - return maximumPersistentDisksSizeGb; - } - - /** - * @return the zones that this machine type can run in. - */ - public String getZone() { - return zone; - } - - /** - * @return the deprecation information for this machine type - */ - public Optional<Deprecated> getDeprecated() { - return deprecated; - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - MachineType that = MachineType.class.cast(obj); - return equal(this.kind, that.kind) - && equal(this.name, that.name) - && equal(this.zone, that.zone); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return super.string() - .add("guestCpus", guestCpus) - .add("memoryMb", memoryMb) - .add("scratchDisks", scratchDisks) - .add("maximumPersistentDisks", maximumPersistentDisks) - .add("maximumPersistentDisksSizeGb", maximumPersistentDisksSizeGb) - .add("zone", zone) - .add("deprecated", deprecated.orNull()); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return new Builder().fromMachineType(this); - } - - public static final class Builder extends Resource.Builder<Builder> { - - private Integer guestCpus; - private Integer memoryMb; - private Integer imageSpaceGb; - private ImmutableList.Builder<ScratchDisk> scratchDisks = ImmutableList.builder(); - private Integer maximumPersistentDisks; - private Long maximumPersistentDisksSizeGb; - private String zone; - private Deprecated deprecated; - - /** - * @see MachineType#getGuestCpus() - */ - public Builder guestCpus(int guesCpus) { - this.guestCpus = guesCpus; - return this; - } - - /** - * @see MachineType#getMemoryMb() - */ - public Builder memoryMb(int memoryMb) { - this.memoryMb = memoryMb; - return this; - } - - /** - * @see MachineType#getImageSpaceGb() - */ - public Builder imageSpaceGb(int imageSpaceGb) { - this.imageSpaceGb = imageSpaceGb; - return this; - } - - /** - * @see MachineType#getScratchDisks() - */ - public Builder addScratchDisk(int diskGb) { - this.scratchDisks.add(ScratchDisk.builder().diskGb(diskGb).build()); - return this; - } - - /** - * @see MachineType#getScratchDisks() - */ - public Builder scratchDisks(List<ScratchDisk> scratchDisks) { - this.scratchDisks.addAll(scratchDisks); - return this; - } - - /** - * @see MachineType#getMaximumPersistentDisks() - */ - public Builder maximumPersistentDisks(int maximumPersistentDisks) { - this.maximumPersistentDisks = maximumPersistentDisks; - return this; - } - - /** - * @see MachineType#getMaximumPersistentDisksSizeGb() - */ - public Builder maximumPersistentDisksSizeGb(long maximumPersistentDisksSizeGb) { - this.maximumPersistentDisksSizeGb = maximumPersistentDisksSizeGb; - return this; - } - - /** - * @see MachineType#getZone() - */ - public Builder zone(String zone) { - this.zone = zone; - return this; - } - - /** - * @see MachineType#getDeprecated() - */ - public Builder deprecated(Deprecated deprecated) { - this.deprecated = deprecated; - return this; - } - - @Override - protected Builder self() { - return this; - } - - public MachineType build() { - return new MachineType(id, creationTimestamp, selfLink, name, description, guestCpus, memoryMb, - scratchDisks.build(), maximumPersistentDisks, maximumPersistentDisksSizeGb, zone, deprecated); - } - - - public Builder fromMachineType(MachineType in) { - return super.fromResource(in).memoryMb(in.getMemoryMb()).scratchDisks(in - .getScratchDisks()).maximumPersistentDisks(in.getMaximumPersistentDisks()) - .maximumPersistentDisksSizeGb(in.getMaximumPersistentDisksSizeGb()).zone(in.getZone()) - .deprecated(in.getDeprecated().orNull()); - } - } - - /** - * An scratch disk of a MachineType - */ - public static final class ScratchDisk { - - private final int diskGb; - - @ConstructorProperties({ - "diskGb" - }) - private ScratchDisk(int diskGb) { - this.diskGb = diskGb; - } - - /** - * @return size of the scratch disk, defined in GB. - */ - public int getDiskGb() { - return diskGb; - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return Objects.hashCode(diskGb); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - ScratchDisk that = ScratchDisk.class.cast(obj); - return equal(this.diskGb, that.diskGb); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return toStringHelper(this) - .add("diskGb", diskGb); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return builder().fromScratchDisk(this); - } - - public static class Builder { - - private int diskGb; - - /** - * @see org.jclouds.googlecomputeengine.domain.MachineType.ScratchDisk#getDiskGb() - */ - public Builder diskGb(int diskGb) { - this.diskGb = diskGb; - return this; - } - - public ScratchDisk build() { - return new ScratchDisk(diskGb); - } - - public Builder fromScratchDisk(ScratchDisk in) { - return new Builder().diskGb(in.getDiskGb()); - } - } - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/MachineTypeInZone.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/MachineTypeInZone.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/MachineTypeInZone.java deleted file mode 100644 index 0a4b5fb..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/MachineTypeInZone.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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.googlecomputeengine.domain; - -import static com.google.common.base.Objects.equal; -import static com.google.common.base.Preconditions.checkNotNull; - -public class MachineTypeInZone extends SlashEncodedIds { - protected final MachineType machineType; - - public MachineTypeInZone(MachineType machineType, String zoneId) { - super(zoneId, checkNotNull(machineType, "machineType").getName()); - this.machineType = machineType; - } - - public MachineType getMachineType() { - return machineType; - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - MachineTypeInZone that = MachineTypeInZone.class.cast(obj); - return equal(this.machineType, that.machineType) - && equal(this.firstId, that.firstId) - && equal(this.secondId, that.secondId); - } - - @Override - public String toString() { - return "[machineType=" + machineType + ", zoneId=" + firstId + "]"; - } - -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/Metadata.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/Metadata.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/Metadata.java deleted file mode 100644 index 53a8cfb..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/Metadata.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * 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.googlecomputeengine.domain; - -import static com.google.common.base.Objects.equal; -import static com.google.common.base.Objects.toStringHelper; - -import java.beans.ConstructorProperties; -import java.util.Map; - -import org.jclouds.javax.annotation.Nullable; - -import com.google.common.base.Objects; -import com.google.common.collect.ImmutableMap; - -/** - * Metadata for an instance or project, with their fingerprint. - */ -public class Metadata { - @Nullable - private final String fingerprint; - private final Map<String, String> items; - - @ConstructorProperties({"fingerprint", "items"}) - public Metadata(@Nullable String fingerprint, @Nullable Map<String, String> items) { - this.fingerprint = fingerprint; - this.items = items == null ? ImmutableMap.<String, String>of() : items; - } - - /** - * @return an optional map of metadata key/value pairs for this instance/project - */ - public Map<String, String> getItems() { - return items; - } - - /** - * Gets the fingerprint for the items - needed for updating them. - * - * @return the fingerprint string for the items. - */ - public String getFingerprint() { - return fingerprint; - } - - /** - * {@inheritDoc} - */ - @Override - public int hashCode() { - return Objects.hashCode(fingerprint, items); - } - - /** - * {@inheritDoc} - */ - @Override - public boolean equals(Object obj) { - if (this == obj) return true; - if (obj == null || getClass() != obj.getClass()) return false; - Metadata that = Metadata.class.cast(obj); - return equal(this.items, that.items) - && equal(this.fingerprint, that.fingerprint); - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return toStringHelper(this) - .add("items", items) - .add("fingerprint", fingerprint); - } - - public static Builder builder() { - return new Builder(); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } - - public static final class Builder { - - private ImmutableMap.Builder<String, String> items = ImmutableMap.builder(); - private String fingerprint; - - /** - * @see Metadata#getItems() - */ - public Builder addItem(String key, String value) { - this.items.put(key, value); - return this; - } - - /** - * @see Metadata#getItems() - */ - public Builder items(Map<String, String> items) { - this.items.putAll(items); - return this; - } - - /** - * @see org.jclouds.googlecomputeengine.domain.Metadata#getFingerprint() - */ - public Builder fingerprint(String fingerprint) { - this.fingerprint = fingerprint; - return this; - } - - public Metadata build() { - return new Metadata(this.fingerprint, this.items.build()); - } - - public Builder fromMetadata(Metadata in) { - return this.fingerprint(in.getFingerprint()) - .items(in.getItems()); - } - } -} http://git-wip-us.apache.org/repos/asf/stratos/blob/295c545c/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/Network.java ---------------------------------------------------------------------- diff --git a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/Network.java b/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/Network.java deleted file mode 100644 index 0919c89..0000000 --- a/dependencies/jclouds/apis/gce/1.8.1-stratos/src/main/java/org/jclouds/googlecomputeengine/domain/Network.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * 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.googlecomputeengine.domain; - - -import static com.google.common.base.Optional.fromNullable; -import static com.google.common.base.Preconditions.checkNotNull; - -import java.beans.ConstructorProperties; -import java.net.URI; -import java.util.Date; - -import com.google.common.annotations.Beta; -import com.google.common.base.Objects; -import com.google.common.base.Optional; - -/** - * Represents a network used to enable instance communication. - * - * @see <a href="https://developers.google.com/compute/docs/reference/v1/networks"/> - */ -@Beta -public final class Network extends Resource { - - private final String IPv4Range; - private final Optional<String> gatewayIPv4; - - @ConstructorProperties({ - "id", "creationTimestamp", "selfLink", "name", "description", "IPv4Range", - "gatewayIPv4" - }) - protected Network(String id, Date creationTimestamp, URI selfLink, String name, String description, - String IPv4Range, String gatewayIPv4) { - super(Kind.NETWORK, id, creationTimestamp, selfLink, name, description); - this.IPv4Range = checkNotNull(IPv4Range); - this.gatewayIPv4 = fromNullable(gatewayIPv4); - } - - /** - * @return Required; The range of internal addresses that are legal on this network. This range is a CIDR - * specification, for example: 192.168.0.0/16. - */ - public String getIPv4Range() { - return IPv4Range; - } - - /** - * This must be within the range specified by IPv4Range, and is typically the first usable address in that range. - * If not specified, the default value is the first usable address in IPv4Range. - * - * @return an optional address that is used for default routing to other networks. - */ - public Optional<String> getGatewayIPv4() { - return gatewayIPv4; - } - - /** - * {@inheritDoc} - */ - protected Objects.ToStringHelper string() { - return super.string() - .omitNullValues() - .add("IPv4Range", IPv4Range) - .add("gatewayIPv4", gatewayIPv4.orNull()); - } - - /** - * {@inheritDoc} - */ - @Override - public String toString() { - return string().toString(); - } - - public static Builder builder() { - return new Builder(); - } - - public Builder toBuilder() { - return new Builder().fromNetwork(this); - } - - public static final class Builder extends Resource.Builder<Builder> { - - private String IPv4Range; - private String gatewayIPv4; - - /** - * @see Network#getIPv4Range() - */ - public Builder IPv4Range(String IPv4Range) { - this.IPv4Range = IPv4Range; - return this; - } - - /** - * @see Network#getGatewayIPv4() - */ - public Builder gatewayIPv4(String gatewayIPv4) { - this.gatewayIPv4 = gatewayIPv4; - return this; - } - - @Override - protected Builder self() { - return this; - } - - public Network build() { - return new Network(super.id, super.creationTimestamp, super.selfLink, super.name, - super.description, IPv4Range, gatewayIPv4); - } - - public Builder fromNetwork(Network in) { - return super.fromResource(in); - } - } - -}
