You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by na...@apache.org on 2017/03/22 15:03:09 UTC
[1/2] jclouds-labs git commit: JCLOUDS-1255 - initial commit of
Dimension Data CloudControl Apache jclouds implementation.
Repository: jclouds-labs
Updated Branches:
refs/heads/master 2fe3e0c17 -> 8054a5949
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/PaginatedCollection.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/PaginatedCollection.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/PaginatedCollection.java
new file mode 100644
index 0000000..f8876cc
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/PaginatedCollection.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.dimensiondata.cloudcontrol.domain;
+
+import com.google.common.base.Optional;
+import com.google.common.collect.ImmutableSet;
+import org.jclouds.collect.IterableWithMarker;
+import org.jclouds.dimensiondata.cloudcontrol.options.PaginationOptions;
+import org.jclouds.javax.annotation.Nullable;
+
+import java.util.Iterator;
+
+/**
+ * Base class for a paginated collection in DimensionData CloudController.
+ */
+public class PaginatedCollection<T> extends IterableWithMarker<T> {
+
+ private final Iterable<T> resources;
+
+ /**
+ * The page number requested by the user or the default page (1) if none supplied.
+ */
+ private final int pageNumber;
+
+ /**
+ * The number of result records in this page.
+ */
+ private final int pageCount;
+
+ /**
+ * The total number of result records matching request criteria.
+ */
+ private final int totalCount;
+
+ /**
+ * The page size used; either specified in the request or the default for the API function being requested.
+ */
+ private final int pageSize;
+
+ protected PaginatedCollection(@Nullable Iterable<T> resources, int pageNumber, int pageCount, int totalCount,
+ int pageSize) {
+ this.resources = resources != null ? resources : ImmutableSet.<T>of();
+ this.pageNumber = pageNumber;
+ this.pageCount = pageCount;
+ this.totalCount = totalCount;
+ this.pageSize = pageSize;
+ }
+
+ public Iterable<T> getResources() {
+ return resources;
+ }
+
+ public int getPageNumber() {
+ return pageNumber;
+ }
+
+ public int getPageCount() {
+ return pageCount;
+ }
+
+ public int getTotalCount() {
+ return totalCount;
+ }
+
+ public int getPageSize() {
+ return pageSize;
+ }
+
+ @Override
+ public Iterator<T> iterator() {
+ return resources.iterator();
+ }
+
+ @Override
+ public Optional<Object> nextMarker() {
+ if (totalCount < pageSize)
+ return Optional.absent();
+
+ if ((float) pageNumber < ((float) totalCount / (float) pageSize)) {
+ return Optional.of(toPaginationOptions(pageNumber + 1));
+ }
+ return Optional.absent();
+ }
+
+ private Object toPaginationOptions(Integer pageNumber) {
+ return PaginationOptions.Builder.pageNumber(pageNumber);
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Placement.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Placement.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Placement.java
new file mode 100644
index 0000000..78f471a
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Placement.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class Placement {
+
+ public static Builder builder() {
+ return new AutoValue_Placement.Builder();
+ }
+
+ Placement() {
+ } // For AutoValue only!
+
+ public abstract String position();
+
+ @SerializedNames({ "position" })
+ public static Placement create(String position) {
+ return builder().position(position).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder position(String position);
+
+ public abstract Placement build();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Progress.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Progress.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Progress.java
new file mode 100644
index 0000000..7385926
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Progress.java
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+import java.util.Date;
+
+@AutoValue
+public abstract class Progress {
+
+ @AutoValue
+ public abstract static class Step {
+
+ Step() {
+ } // For AutoValue only!
+
+ public abstract String name();
+
+ public abstract int number();
+
+ @SerializedNames({ "name", "number" })
+ public static Step create(String name, int number) {
+ return new AutoValue_Progress_Step(name, number);
+ }
+ }
+
+ Progress() {
+ }
+
+ public abstract String action();
+
+ public abstract String requestTime();
+
+ public abstract String userName();
+
+ @Nullable
+ public abstract Integer numberOfSteps();
+
+ @Nullable
+ public abstract Date updateTime();
+
+ @Nullable
+ public abstract Step step();
+
+ @SerializedNames({ "action", "requestTime", "userName", "numberOfSteps", "updateTime", "step" })
+ public static Progress create(String action, String requestTime, String userName, Integer numberOfSteps,
+ Date updateTime, Step step) {
+ return builder().action(action).requestTime(requestTime).userName(userName).numberOfSteps(numberOfSteps)
+ .updateTime(updateTime).step(step).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder action(String action);
+
+ public abstract Builder requestTime(String requestTime);
+
+ public abstract Builder userName(String userName);
+
+ public abstract Builder numberOfSteps(Integer numberOfSteps);
+
+ public abstract Builder updateTime(Date updateTime);
+
+ public abstract Builder step(Step step);
+
+ public abstract Progress build();
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Progress.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Property.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Property.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Property.java
new file mode 100644
index 0000000..2bfc10b
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Property.java
@@ -0,0 +1,38 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class Property {
+
+ Property() {
+ } // For AutoValue only!
+
+ public abstract String name();
+
+ @Nullable
+ public abstract String value();
+
+ @SerializedNames({ "name", "value" })
+ public static Property create(String name, String value) {
+ return new AutoValue_Property(name, value);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/PublicIpBlock.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/PublicIpBlock.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/PublicIpBlock.java
new file mode 100644
index 0000000..2ee9c78
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/PublicIpBlock.java
@@ -0,0 +1,76 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.json.SerializedNames;
+
+import java.util.Date;
+
+@AutoValue
+public abstract class PublicIpBlock {
+
+ PublicIpBlock() {
+ }
+
+ public static Builder builder() {
+ return new AutoValue_PublicIpBlock.Builder();
+ }
+
+ public abstract String id();
+
+ public abstract String datacenterId();
+
+ public abstract String state();
+
+ public abstract Date createTime();
+
+ public abstract String baseIp();
+
+ public abstract int size();
+
+ public abstract String networkDomainId();
+
+ @SerializedNames({ "id", "datacenterId", "state", "createTime", "baseIp", "size", "networkDomainId" })
+ public static PublicIpBlock create(String id, String datacenterId, String state, Date createTime, String baseIp,
+ int size, String networkDomainId) {
+ return builder().id(id).datacenterId(datacenterId).state(state).createTime(createTime).baseIp(baseIp).size(size)
+ .networkDomainId(networkDomainId).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder id(String id);
+
+ public abstract Builder datacenterId(String datacenterId);
+
+ public abstract Builder state(String state);
+
+ public abstract Builder createTime(Date createTime);
+
+ public abstract Builder baseIp(String ipv4GatewayAddress);
+
+ public abstract Builder size(int size);
+
+ public abstract Builder networkDomainId(String networkDomainId);
+
+ public abstract PublicIpBlock build();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/PublicIpBlocks.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/PublicIpBlocks.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/PublicIpBlocks.java
new file mode 100644
index 0000000..9ecd00e
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/PublicIpBlocks.java
@@ -0,0 +1,32 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import java.beans.ConstructorProperties;
+import java.util.List;
+
+/**
+ * A collection of publicIpBlock
+ */
+public class PublicIpBlocks extends PaginatedCollection<PublicIpBlock> {
+
+ @ConstructorProperties({ "publicIpBlock", "pageNumber", "pageCount", "totalCount", "pageSize" })
+ public PublicIpBlocks(List<PublicIpBlock> content, Integer pageNumber, Integer pageCount, Integer totalCount,
+ Integer pageSize) {
+ super(content, pageNumber, pageCount, totalCount, pageSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Response.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Response.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Response.java
new file mode 100644
index 0000000..d3cea10
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Response.java
@@ -0,0 +1,94 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableList;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+import java.util.List;
+
+@AutoValue
+public abstract class Response {
+
+ Response() {
+ }
+
+ public abstract String operation();
+
+ public abstract String responseCode();
+
+ public abstract String message();
+
+ @Nullable
+ public abstract List<Property> info();
+
+ @Nullable
+ public abstract List<String> warning();
+
+ @Nullable
+ public abstract List<String> error();
+
+ public abstract String requestId();
+
+ @SerializedNames({ "operation", "responseCode", "message", "info", "warning", "error", "requestId" })
+ public static Response create(String operation, String responseCode, String message, List<Property> info,
+ List<String> warning, List<String> error, String requestId) {
+ return builder().operation(operation).responseCode(responseCode).message(message).info(info).warning(warning)
+ .error(error).requestId(requestId).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+
+ public abstract Builder operation(String operation);
+
+ public abstract Builder responseCode(String responseCode);
+
+ public abstract Builder message(String message);
+
+ public abstract Builder info(List<Property> info);
+
+ public abstract Builder warning(List<String> warning);
+
+ public abstract Builder error(List<String> error);
+
+ public abstract Builder requestId(String requestId);
+
+ abstract Response autoBuild();
+
+ abstract List<String> warning();
+
+ abstract List<String> error();
+
+ abstract List<Property> info();
+
+ public Response build() {
+ warning(warning() != null ? ImmutableList.copyOf(warning()) : null);
+ error(error() != null ? ImmutableList.copyOf(error()) : null);
+ info(info() != null ? ImmutableList.copyOf(info()) : null);
+ return autoBuild();
+ }
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Response.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/RoleType.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/RoleType.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/RoleType.java
new file mode 100644
index 0000000..cad05ad
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/RoleType.java
@@ -0,0 +1,49 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class RoleType {
+ public abstract String name();
+
+ RoleType() {
+ }
+
+ public static Builder builder() {
+ return new AutoValue_RoleType.Builder();
+ }
+
+ @SerializedNames({ "role" })
+ public static RoleType create(String name) {
+ return builder().name(name).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+
+ public abstract Builder name(String name);
+
+ public abstract RoleType build();
+ }
+
+}
+
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Roles.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Roles.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Roles.java
new file mode 100644
index 0000000..0471922
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Roles.java
@@ -0,0 +1,59 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableList;
+import org.jclouds.json.SerializedNames;
+
+import java.util.List;
+
+@AutoValue
+public abstract class Roles {
+ public abstract List<RoleType> role();
+
+ Roles() {
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Roles.Builder();
+ }
+
+ @SerializedNames({ "role" })
+ public static Roles create(List<RoleType> role) {
+ return builder().role(role).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+
+ public abstract Builder role(List<RoleType> role);
+
+ abstract Roles autoBuild();
+
+ abstract List<RoleType> role();
+
+ public Roles build() {
+ role(role() != null ? ImmutableList.copyOf(role()) : ImmutableList.<RoleType>of());
+ return autoBuild();
+ }
+ }
+
+}
+
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Server.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Server.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Server.java
new file mode 100644
index 0000000..96760d9
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Server.java
@@ -0,0 +1,166 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import com.google.common.base.CaseFormat;
+import com.google.common.collect.ImmutableList;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+import java.util.Date;
+import java.util.List;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+
+@AutoValue
+public abstract class Server {
+
+ public enum State {
+ NORMAL, PENDING_DELETE, DELETED, UNRECOGNIZED;
+
+ @Override
+ public String toString() {
+ return CaseFormat.UPPER_UNDERSCORE.to(CaseFormat.UPPER_CAMEL, name());
+ }
+
+ public static State fromValue(String state) {
+ try {
+ return valueOf(CaseFormat.UPPER_CAMEL.to(CaseFormat.UPPER_UNDERSCORE, checkNotNull(state, "state")));
+ } catch (IllegalArgumentException e) {
+ return UNRECOGNIZED;
+ }
+ }
+ }
+
+ Server() {
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Server.Builder();
+ }
+
+ public abstract String id();
+
+ public abstract String name();
+
+ @Nullable
+ public abstract String description();
+
+ public abstract String datacenterId();
+
+ public abstract State state();
+
+ public abstract String sourceImageId();
+
+ public abstract Date createTime();
+
+ public abstract Boolean started();
+
+ public abstract Boolean deployed();
+
+ public abstract OperatingSystem operatingSystem();
+
+ public abstract CPU cpu();
+
+ public abstract int memoryGb();
+
+ @Nullable
+ public abstract List<Disk> disks();
+
+ @Nullable
+ public abstract NetworkInfo networkInfo();
+
+ @Nullable
+ public abstract List<Object> softwareLabels();
+
+ @Nullable
+ public abstract VMwareTools vmwareTools();
+
+ @Nullable
+ public abstract Progress progress();
+
+ @Nullable
+ public abstract VirtualHardware virtualHardware();
+
+ @SerializedNames({ "id", "name", "description", "datacenterId", "state", "sourceImageId", "createTime", "started",
+ "deployed", "operatingSystem", "cpu", "memoryGb", "disk", "networkInfo", "softwareLabel", "vmwareTools",
+ "progress", "virtualHardware" })
+ public static Server create(String id, String name, String description, String datacenterId, State state,
+ String sourceImageId, Date createTime, Boolean started, Boolean deployed, OperatingSystem operatingSystem,
+ CPU cpu, int memoryGb, List<Disk> disks, NetworkInfo networkInfo, List<Object> softwareLabels,
+ VMwareTools vmwareTools, Progress progress, VirtualHardware virtualHardware) {
+ return builder().id(id).name(name).datacenterId(datacenterId).description(description).state(state)
+ .sourceImageId(sourceImageId).createTime(createTime).started(started).deployed(deployed)
+ .operatingSystem(operatingSystem).cpu(cpu).memoryGb(memoryGb).disks(disks).networkInfo(networkInfo)
+ .softwareLabels(softwareLabels).vmwareTools(vmwareTools).progress(progress).virtualHardware(virtualHardware)
+ .build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder id(String id);
+
+ public abstract Builder name(String name);
+
+ public abstract Builder description(String description);
+
+ public abstract Builder datacenterId(String datacenterId);
+
+ public abstract Builder state(State state);
+
+ public abstract Builder sourceImageId(String sourceImageId);
+
+ public abstract Builder createTime(Date createTime);
+
+ public abstract Builder started(Boolean started);
+
+ public abstract Builder deployed(Boolean deployed);
+
+ public abstract Builder operatingSystem(OperatingSystem operatingSystem);
+
+ public abstract Builder cpu(CPU cpu);
+
+ public abstract Builder memoryGb(int memoryGb);
+
+ public abstract Builder disks(List<Disk> disks);
+
+ public abstract Builder networkInfo(NetworkInfo networkInfo);
+
+ public abstract Builder softwareLabels(List<Object> softwareLabels);
+
+ public abstract Builder vmwareTools(VMwareTools vmwareTools);
+
+ public abstract Builder progress(Progress progress);
+
+ public abstract Builder virtualHardware(VirtualHardware virtualHardware);
+
+ abstract Server autoBuild();
+
+ abstract List<Disk> disks();
+
+ abstract List<Object> softwareLabels();
+
+ public Server build() {
+ disks(disks() != null ? ImmutableList.copyOf(disks()) : null);
+ softwareLabels(softwareLabels() != null ? ImmutableList.copyOf(softwareLabels()) : null);
+ return autoBuild();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Servers.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Servers.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Servers.java
new file mode 100644
index 0000000..23cf792
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Servers.java
@@ -0,0 +1,31 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import java.beans.ConstructorProperties;
+import java.util.List;
+
+/**
+ * A collection of Server
+ */
+public class Servers extends PaginatedCollection<Server> {
+
+ @ConstructorProperties({ "server", "pageNumber", "pageCount", "totalCount", "pageSize" })
+ public Servers(List<Server> content, Integer pageNumber, Integer pageCount, Integer totalCount, Integer pageSize) {
+ super(content, pageNumber, pageCount, totalCount, pageSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Status.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Status.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Status.java
new file mode 100644
index 0000000..4027943
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Status.java
@@ -0,0 +1,84 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableList;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+import java.util.List;
+
+/**
+ *
+ */
+@AutoValue
+public abstract class Status {
+
+ public enum ResultType {
+ ERROR, SUCCESS, WARNING
+ }
+
+ Status() {
+ }
+
+ public abstract ResultType result();
+
+ public abstract String resultDetail();
+
+ public abstract String resultCode();
+
+ public abstract String operation();
+
+ @Nullable
+ public abstract List<AdditionalInformationType> additionalInformation();
+
+ @SerializedNames({ "result", "resultDetail", "resultCode", "additionalInformation" })
+ public static Status create(ResultType result, String resultDetail, String resultCode,
+ List<AdditionalInformationType> additionalInformation, String operation) {
+ return builder().result(result).resultDetail(resultDetail).resultCode(resultCode)
+ .additionalInformation(additionalInformation).operation(operation).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder result(ResultType result);
+
+ public abstract Builder resultDetail(String result);
+
+ public abstract Builder resultCode(String resultCode);
+
+ public abstract Builder additionalInformation(List<AdditionalInformationType> additionalInformation);
+
+ public abstract Builder operation(String operation);
+
+ abstract Status autoBuild();
+
+ abstract List<AdditionalInformationType> additionalInformation();
+
+ public Status build() {
+ additionalInformation(additionalInformation() != null ? ImmutableList.copyOf(additionalInformation()) : null);
+ return autoBuild();
+ }
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Status.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Tag.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Tag.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Tag.java
new file mode 100644
index 0000000..741db87
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Tag.java
@@ -0,0 +1,82 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class Tag {
+
+ Tag() {
+ }
+
+ public abstract String assetType();
+
+ public abstract String assetId();
+
+ public abstract String datacenterId();
+
+ public abstract String tagKeyId();
+
+ public abstract String tagKeyName();
+
+ @Nullable
+ public abstract String value();
+
+ public abstract boolean valueRequired();
+
+ public abstract boolean displayOnReport();
+
+ @SerializedNames({ "assetType", "assetId", "datacenterId", "tagKeyId", "tagKeyName", "value", "valueRequired",
+ "displayOnReport" })
+ public static Tag create(String assetType, String assetId, String datacenterId, String tagKeyId, String tagKeyName,
+ String value, Boolean valueRequired, Boolean displayOnReport) {
+ return builder().assetType(assetType).assetId(assetId).datacenterId(datacenterId).tagKeyId(tagKeyId)
+ .tagKeyName(tagKeyName).value(value).valueRequired(valueRequired).displayOnReport(displayOnReport).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder assetType(String assetType);
+
+ public abstract Builder assetId(String assetId);
+
+ public abstract Builder datacenterId(String datacenterId);
+
+ public abstract Builder tagKeyId(String tagKeyId);
+
+ public abstract Builder tagKeyName(String tagKeyName);
+
+ public abstract Builder value(String value);
+
+ public abstract Builder valueRequired(boolean valueRequired);
+
+ public abstract Builder displayOnReport(boolean displayOnReport);
+
+ public abstract Tag build();
+
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Tag.Builder();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/TagInfo.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/TagInfo.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/TagInfo.java
new file mode 100644
index 0000000..db89c75
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/TagInfo.java
@@ -0,0 +1,53 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class TagInfo {
+
+ TagInfo() {
+ }
+
+ public abstract String tagKeyId();
+
+ @Nullable
+ public abstract String value();
+
+ @SerializedNames({ "tagKeyId", "value" })
+ public static TagInfo create(String tagKeyId, String value) {
+ return builder().tagKeyId(tagKeyId).value(value).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder tagKeyId(String tagKeyId);
+
+ public abstract Builder value(String value);
+
+ public abstract TagInfo build();
+ }
+
+ public static Builder builder() {
+ return new AutoValue_TagInfo.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/TagKey.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/TagKey.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/TagKey.java
new file mode 100644
index 0000000..afc1a3f
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/TagKey.java
@@ -0,0 +1,68 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class TagKey {
+
+ TagKey() {
+ }
+
+ public abstract String id();
+
+ public abstract String name();
+
+ @Nullable
+ public abstract String description();
+
+ public abstract boolean valueRequired();
+
+ public abstract boolean displayOnReport();
+
+ @SerializedNames({ "id", "name", "description", "valueRequired", "displayOnReport" })
+ public static TagKey create(String id, String name, String description, boolean valueRequired,
+ boolean displayOnReport) {
+ return builder().id(id).name(name).description(description).valueRequired(valueRequired)
+ .displayOnReport(displayOnReport).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder id(String id);
+
+ public abstract Builder name(String tagKeyName);
+
+ public abstract Builder description(String description);
+
+ public abstract Builder valueRequired(boolean valueRequired);
+
+ public abstract Builder displayOnReport(boolean displayOnReport);
+
+ public abstract TagKey build();
+
+ }
+
+ public static Builder builder() {
+ return new AutoValue_TagKey.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/TagKeys.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/TagKeys.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/TagKeys.java
new file mode 100644
index 0000000..d125396
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/TagKeys.java
@@ -0,0 +1,28 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import java.beans.ConstructorProperties;
+import java.util.List;
+
+public class TagKeys extends PaginatedCollection<TagKey> {
+
+ @ConstructorProperties({ "tagKey", "pageNumber", "pageCount", "totalCount", "pageSize" })
+ public TagKeys(List<TagKey> content, Integer pageNumber, Integer pageCount, Integer totalCount, Integer pageSize) {
+ super(content, pageNumber, pageCount, totalCount, pageSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Tags.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Tags.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Tags.java
new file mode 100644
index 0000000..140080d
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Tags.java
@@ -0,0 +1,28 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import java.beans.ConstructorProperties;
+import java.util.List;
+
+public class Tags extends PaginatedCollection<Tag> {
+
+ @ConstructorProperties({ "tag", "pageNumber", "pageCount", "totalCount", "pageSize" })
+ public Tags(List<Tag> content, Integer pageNumber, Integer pageCount, Integer totalCount, Integer pageSize) {
+ super(content, pageNumber, pageCount, totalCount, pageSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/VMwareTools.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/VMwareTools.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/VMwareTools.java
new file mode 100644
index 0000000..99306c1
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/VMwareTools.java
@@ -0,0 +1,59 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class VMwareTools {
+
+ VMwareTools() {
+ }
+
+ @Nullable
+ public abstract String versionStatus();
+
+ @Nullable
+ public abstract String runningStatus();
+
+ @Nullable
+ public abstract Integer apiVersion();
+
+ @SerializedNames({ "versionStatus", "runningStatus", "apiVersion" })
+ public static VMwareTools create(String versionStatus, String runningStatus, Integer apiVersion) {
+ return builder().versionStatus(versionStatus).runningStatus(runningStatus).apiVersion(apiVersion).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder versionStatus(String versionStatus);
+
+ public abstract Builder runningStatus(String runningStatus);
+
+ public abstract Builder apiVersion(Integer apiVersion);
+
+ public abstract VMwareTools build();
+ }
+
+ public static Builder builder() {
+ return new AutoValue_VMwareTools.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/VirtualHardware.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/VirtualHardware.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/VirtualHardware.java
new file mode 100644
index 0000000..a6bfd34
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/VirtualHardware.java
@@ -0,0 +1,51 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class VirtualHardware {
+
+ VirtualHardware() {
+ }
+
+ public abstract String version();
+
+ public abstract boolean upToDate();
+
+ @SerializedNames({ "version", "upToDate" })
+ public static VirtualHardware create(String version, boolean upToDate) {
+ return builder().version(version).upToDate(upToDate).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder version(String version);
+
+ public abstract Builder upToDate(boolean upToDate);
+
+ public abstract VirtualHardware build();
+ }
+
+ public static Builder builder() {
+ return new AutoValue_VirtualHardware.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlan.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlan.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlan.java
new file mode 100644
index 0000000..7a62543
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlan.java
@@ -0,0 +1,95 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.json.SerializedNames;
+
+import java.util.Date;
+
+@AutoValue
+public abstract class Vlan {
+
+ Vlan() {
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Vlan.Builder();
+ }
+
+ public abstract String id();
+
+ public abstract String name();
+
+ public abstract String description();
+
+ public abstract String datacenterId();
+
+ public abstract String state();
+
+ public abstract Date createTime();
+
+ public abstract String ipv4GatewayAddress();
+
+ public abstract String ipv6GatewayAddress();
+
+ public abstract NetworkDomain networkDomain();
+
+ public abstract IpRange privateIpv4Range();
+
+ public abstract IpRange ipv6Range();
+
+ @SerializedNames({ "id", "name", "description", "datacenterId", "state", "createTime", "ipv4GatewayAddress",
+ "ipv6GatewayAddress", "networkDomain", "privateIpv4Range", "ipv6Range" })
+ public static Vlan create(String id, String name, String description, String datacenterId, String state,
+ Date createTime, String ipv4GatewayAddress, String ipv6GatewayAddress, NetworkDomain networkDomain,
+ IpRange privateIpv4Range, IpRange ipv6Range) {
+ return builder().id(id).name(name).description(description).datacenterId(datacenterId).state(state)
+ .createTime(createTime).ipv4GatewayAddress(ipv4GatewayAddress).ipv6GatewayAddress(ipv6GatewayAddress)
+ .networkDomain(networkDomain).privateIpv4Range(privateIpv4Range).ipv6Range(ipv6Range).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder id(String id);
+
+ public abstract Builder name(String name);
+
+ public abstract Builder description(String description);
+
+ public abstract Builder datacenterId(String datacenterId);
+
+ public abstract Builder state(String state);
+
+ public abstract Builder createTime(Date createTime);
+
+ public abstract Builder ipv4GatewayAddress(String ipv4GatewayAddress);
+
+ public abstract Builder ipv6GatewayAddress(String ipv6GatewayAddress);
+
+ public abstract Builder networkDomain(NetworkDomain networkDomain);
+
+ public abstract Builder privateIpv4Range(IpRange privateIpv4Range);
+
+ public abstract Builder ipv6Range(IpRange ipv6Range);
+
+ public abstract Vlan build();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlans.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlans.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlans.java
new file mode 100644
index 0000000..3300207
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Vlans.java
@@ -0,0 +1,31 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import java.beans.ConstructorProperties;
+import java.util.List;
+
+/**
+ * A collection of Vlans
+ */
+public class Vlans extends PaginatedCollection<Vlan> {
+
+ @ConstructorProperties({ "vlan", "pageNumber", "pageCount", "totalCount", "pageSize" })
+ public Vlans(List<Vlan> content, Integer pageNumber, Integer pageCount, Integer totalCount, Integer pageSize) {
+ super(content, pageNumber, pageCount, totalCount, pageSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/options/PaginationOptions.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/options/PaginationOptions.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/options/PaginationOptions.java
new file mode 100644
index 0000000..06bd478
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/options/PaginationOptions.java
@@ -0,0 +1,69 @@
+/*
+ * 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.dimensiondata.cloudcontrol.options;
+
+import org.jclouds.http.options.BaseHttpRequestOptions;
+
+import static com.google.common.base.Preconditions.checkNotNull;
+import static com.google.common.base.Preconditions.checkState;
+
+public class PaginationOptions extends BaseHttpRequestOptions {
+
+ public PaginationOptions pageNumber(int pageNumber) {
+ this.queryParameters.put("pageNumber", Integer.toString(pageNumber));
+ return this;
+ }
+
+ public PaginationOptions orderBy(String orderBy) {
+ this.queryParameters.put("orderBy", checkNotNull(orderBy, "orderBy"));
+ return this;
+ }
+
+ public PaginationOptions pageSize(int pageSize) {
+ checkState(pageSize >= 0, "pageSize must be >= 0");
+ checkState(pageSize <= 10000, "limit must be <= 10000");
+ queryParameters.put("pageSize", Integer.toString(pageSize));
+ return this;
+ }
+
+ public static class Builder {
+
+ /**
+ * @see PaginationOptions#pageNumber(int)
+ */
+ public static PaginationOptions pageNumber(Integer pageNumber) {
+ PaginationOptions options = new PaginationOptions();
+ return options.pageNumber(pageNumber);
+ }
+
+ /**
+ * @see PaginationOptions#pageSize(int)
+ */
+ public static PaginationOptions pageSize(int pageSize) {
+ PaginationOptions options = new PaginationOptions();
+ return options.pageSize(pageSize);
+ }
+
+ /**
+ * @see PaginationOptions#orderBy(String)
+ */
+ public static PaginationOptions orderBy(String orderBy) {
+ PaginationOptions options = new PaginationOptions();
+ return options.orderBy(orderBy);
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/domain/PaginatedCollectionTest.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/domain/PaginatedCollectionTest.java b/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/domain/PaginatedCollectionTest.java
new file mode 100644
index 0000000..e2a2c85
--- /dev/null
+++ b/dimensiondata/src/test/java/org/jclouds/dimensiondata/cloudcontrol/domain/PaginatedCollectionTest.java
@@ -0,0 +1,50 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.dimensiondata.cloudcontrol.domain;
+
+import com.google.common.collect.Multimap;
+import org.assertj.core.api.Assertions;
+import org.jclouds.dimensiondata.cloudcontrol.options.PaginationOptions;
+import org.testng.Assert;
+import org.testng.annotations.Test;
+
+@Test(groups = "unit", testName = "PaginatedCollectionTest")
+public class PaginatedCollectionTest {
+
+ public void testHasNextPage() {
+ int pageNumber = 1;
+ int pageCount = 0;
+ int totalCount = 7;
+ int pageSize = 5;
+ final PaginatedCollection<Tags> collection = new PaginatedCollection<Tags>(null, pageNumber, pageCount,
+ totalCount, pageSize);
+ final Multimap<String, String> queryParameters = ((PaginationOptions) collection.nextMarker().get())
+ .buildQueryParameters();
+ final String nextPageNumber = queryParameters.get("pageNumber").iterator().next();
+ Assertions.assertThat(nextPageNumber).isEqualTo("2");
+ }
+
+ public void testAllResultsViewed() {
+ int pageNumber = 2;
+ int pageCount = 0;
+ int totalCount = 10;
+ int pageSize = 5;
+ final PaginatedCollection<Tags> collection = new PaginatedCollection<Tags>(null, pageNumber, pageCount,
+ totalCount, pageSize);
+ Assert.assertFalse(collection.nextMarker().isPresent());
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 535a6a0..b873a76 100644
--- a/pom.xml
+++ b/pom.xml
@@ -65,6 +65,7 @@
<module>cloudsigma2-sjc</module>
<module>cloudsigma2-wdc</module>
<module>cloudsigma2-zrh</module>
+ <module>dimensiondata</module>
<module>jdbc</module>
<module>h2-jdbc</module>
<module>joyent-cloudapi</module>
[2/2] jclouds-labs git commit: JCLOUDS-1255 - initial commit of
Dimension Data CloudControl Apache jclouds implementation.
Posted by na...@apache.org.
JCLOUDS-1255 - initial commit of Dimension Data CloudControl Apache jclouds implementation.
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs/commit/8054a594
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs/tree/8054a594
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs/diff/8054a594
Branch: refs/heads/master
Commit: 8054a5949b7eccccdd95d089b3b0d489e5866a2c
Parents: 2fe3e0c
Author: Trevor Flanagan <tr...@itaas.dimensiondata.com>
Authored: Thu Mar 16 15:27:28 2017 +0000
Committer: Ignasi Barrera <na...@apache.org>
Committed: Wed Mar 22 16:00:40 2017 +0100
----------------------------------------------------------------------
dimensiondata/README.md | 11 ++
dimensiondata/pom.xml | 155 +++++++++++++++++
.../cloudcontrol/domain/Account.java | 99 +++++++++++
.../domain/AdditionalInformationType.java | 51 ++++++
.../cloudcontrol/domain/Backup.java | 68 ++++++++
.../dimensiondata/cloudcontrol/domain/CPU.java | 55 ++++++
.../cloudcontrol/domain/ConsoleAccess.java | 64 +++++++
.../cloudcontrol/domain/CpuSpeed.java | 117 +++++++++++++
.../cloudcontrol/domain/Datacenter.java | 105 ++++++++++++
.../cloudcontrol/domain/Datacenters.java | 32 ++++
.../dimensiondata/cloudcontrol/domain/Disk.java | 66 ++++++++
.../cloudcontrol/domain/FirewallRule.java | 103 ++++++++++++
.../cloudcontrol/domain/FirewallRuleTarget.java | 111 +++++++++++++
.../cloudcontrol/domain/FirewallRules.java | 32 ++++
.../cloudcontrol/domain/Hypervisor.java | 130 +++++++++++++++
.../cloudcontrol/domain/IpRange.java | 38 +++++
.../cloudcontrol/domain/Monitoring.java | 64 +++++++
.../dimensiondata/cloudcontrol/domain/NIC.java | 74 +++++++++
.../cloudcontrol/domain/NatRule.java | 76 +++++++++
.../cloudcontrol/domain/NatRules.java | 31 ++++
.../cloudcontrol/domain/NetworkDomain.java | 91 ++++++++++
.../cloudcontrol/domain/NetworkDomains.java | 32 ++++
.../cloudcontrol/domain/NetworkInfo.java | 65 ++++++++
.../cloudcontrol/domain/Networking.java | 67 ++++++++
.../cloudcontrol/domain/OperatingSystem.java | 56 +++++++
.../cloudcontrol/domain/OperatingSystems.java | 32 ++++
.../cloudcontrol/domain/OsImage.java | 106 ++++++++++++
.../cloudcontrol/domain/OsImages.java | 31 ++++
.../domain/PaginatedCollection.java | 103 ++++++++++++
.../cloudcontrol/domain/Placement.java | 48 ++++++
.../cloudcontrol/domain/Progress.java | 91 ++++++++++
.../cloudcontrol/domain/Property.java | 38 +++++
.../cloudcontrol/domain/PublicIpBlock.java | 76 +++++++++
.../cloudcontrol/domain/PublicIpBlocks.java | 32 ++++
.../cloudcontrol/domain/Response.java | 94 +++++++++++
.../cloudcontrol/domain/RoleType.java | 49 ++++++
.../cloudcontrol/domain/Roles.java | 59 +++++++
.../cloudcontrol/domain/Server.java | 166 +++++++++++++++++++
.../cloudcontrol/domain/Servers.java | 31 ++++
.../cloudcontrol/domain/Status.java | 84 ++++++++++
.../dimensiondata/cloudcontrol/domain/Tag.java | 82 +++++++++
.../cloudcontrol/domain/TagInfo.java | 53 ++++++
.../cloudcontrol/domain/TagKey.java | 68 ++++++++
.../cloudcontrol/domain/TagKeys.java | 28 ++++
.../dimensiondata/cloudcontrol/domain/Tags.java | 28 ++++
.../cloudcontrol/domain/VMwareTools.java | 59 +++++++
.../cloudcontrol/domain/VirtualHardware.java | 51 ++++++
.../dimensiondata/cloudcontrol/domain/Vlan.java | 95 +++++++++++
.../cloudcontrol/domain/Vlans.java | 31 ++++
.../cloudcontrol/options/PaginationOptions.java | 69 ++++++++
.../domain/PaginatedCollectionTest.java | 50 ++++++
pom.xml | 1 +
52 files changed, 3448 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/README.md
----------------------------------------------------------------------
diff --git a/dimensiondata/README.md b/dimensiondata/README.md
new file mode 100644
index 0000000..3f9bbfc
--- /dev/null
+++ b/dimensiondata/README.md
@@ -0,0 +1,11 @@
+dimensiondata is a jclouds api modelled on DimensionData CloudControl API.
+
+
+# How to use it
+
+- use a MCP2.0 datacenter (NA9, NA12, etc)
+
+# Known Limitations
+
+- it supports only MCP2.0 datacenters
+- it currently supports only public images.
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/pom.xml
----------------------------------------------------------------------
diff --git a/dimensiondata/pom.xml b/dimensiondata/pom.xml
new file mode 100644
index 0000000..964f52a
--- /dev/null
+++ b/dimensiondata/pom.xml
@@ -0,0 +1,155 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ 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.
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+
+ <parent>
+ <groupId>org.apache.jclouds.labs</groupId>
+ <artifactId>jclouds-labs</artifactId>
+ <version>2.1.0-SNAPSHOT</version>
+ </parent>
+
+ <!-- TODO: when out of labs, switch to org.jclouds.provider -->
+ <artifactId>dimensiondata-cloudcontrol</artifactId>
+ <description>jclouds components to access an implementation of Dimension Data CloudControl</description>
+ <packaging>bundle</packaging>
+
+ <properties>
+ <test.dimensiondata-cloudcontrol.api-version>2.1</test.dimensiondata-cloudcontrol.api-version>
+ <test.dimensiondata-cloudcontrol.endpoint>FIXME</test.dimensiondata-cloudcontrol.endpoint>
+ <test.dimensiondata-cloudcontrol.identity>FIXME</test.dimensiondata-cloudcontrol.identity>
+ <test.dimensiondata-cloudcontrol.credential>FIXME</test.dimensiondata-cloudcontrol.credential>
+ <jclouds.osgi.export>org.jclouds.dimensiondata*;version="${project.version}"</jclouds.osgi.export>
+ <jclouds.osgi.import>
+ org.jclouds.compute.internal;version="${project.version}",
+ org.jclouds.rest.internal;version="${project.version}",
+ org.jclouds*;version="${project.version}",
+ *
+ </jclouds.osgi.import>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.apache.jclouds</groupId>
+ <artifactId>jclouds-core</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jclouds</groupId>
+ <artifactId>jclouds-compute</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jclouds</groupId>
+ <artifactId>jclouds-compute</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jclouds</groupId>
+ <artifactId>jclouds-core</artifactId>
+ <version>${project.version}</version>
+ <type>test-jar</type>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jclouds.driver</groupId>
+ <artifactId>jclouds-slf4j</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.jclouds.driver</groupId>
+ <artifactId>jclouds-sshj</artifactId>
+ <version>${project.version}</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>ch.qos.logback</groupId>
+ <artifactId>logback-classic</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.squareup.okhttp</groupId>
+ <artifactId>mockwebserver</artifactId>
+ <scope>test</scope>
+ <exclusions>
+ <!-- Already provided by jclouds-sshj -->
+ <exclusion>
+ <groupId>org.bouncycastle</groupId>
+ <artifactId>bcprov-jdk15on</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>com.google.auto.value</groupId>
+ <artifactId>auto-value</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>com.google.auto.service</groupId>
+ <artifactId>auto-service</artifactId>
+ <scope>provided</scope>
+ </dependency>
+ </dependencies>
+
+ <profiles>
+ <profile>
+ <id>live</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <executions>
+ <execution>
+ <id>integration</id>
+ <phase>integration-test</phase>
+ <goals>
+ <goal>test</goal>
+ </goals>
+ <configuration>
+ <threadCount>1</threadCount>
+ <systemPropertyVariables>
+ <test.dimensiondata-cloudcontrol.api-version>
+ ${test.dimensiondata-cloudcontrol.api-version}
+ </test.dimensiondata-cloudcontrol.api-version>
+ <test.dimensiondata-cloudcontrol.endpoint>
+ ${test.dimensiondata-cloudcontrol.endpoint}
+ </test.dimensiondata-cloudcontrol.endpoint>
+ <test.dimensiondata-cloudcontrol.identity>
+ ${test.dimensiondata-cloudcontrol.identity}
+ </test.dimensiondata-cloudcontrol.identity>
+ <test.dimensiondata-cloudcontrol.credential>
+ ${test.dimensiondata-cloudcontrol.credential}
+ </test.dimensiondata-cloudcontrol.credential>
+ </systemPropertyVariables>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+</project>
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Account.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Account.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Account.java
new file mode 100644
index 0000000..1149a07
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Account.java
@@ -0,0 +1,99 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class Account {
+ public abstract String userName();
+
+ @Nullable
+ public abstract String password();
+
+ public abstract String fullName();
+
+ public abstract String firstName();
+
+ public abstract String lastName();
+
+ public abstract String emailAddress();
+
+ @Nullable
+ public abstract String department();
+
+ @Nullable
+ public abstract String customDefined1();
+
+ @Nullable
+ public abstract String customDefined2();
+
+ public abstract String orgId();
+
+ @Nullable
+ public abstract Roles roles();
+
+ Account() {
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Account.Builder();
+ }
+
+ @SerializedNames({ "userName", "password", "fullName", "firstName", "lastName", "emailAddress", "department",
+ "customDefined1", "customDefined2", "orgId", "roles" })
+ public static Account create(String userName, String password, String fullName, String firstName, String lastName,
+ String emailAddress, String department, String customDefined1, String customDefined2, String orgId,
+ Roles roles) {
+ return builder().userName(userName).password(password).fullName(fullName).firstName(firstName).lastName(lastName)
+ .emailAddress(emailAddress).department(department).customDefined1(customDefined1)
+ .customDefined2(customDefined2).orgId(orgId).roles(roles).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+
+ public abstract Builder userName(String userName);
+
+ public abstract Builder password(String password);
+
+ public abstract Builder fullName(String fullName);
+
+ public abstract Builder firstName(String firstName);
+
+ public abstract Builder lastName(String lastName);
+
+ public abstract Builder emailAddress(String emailAddress);
+
+ public abstract Builder department(String department);
+
+ public abstract Builder customDefined1(String customDefined1);
+
+ public abstract Builder customDefined2(String customDefined2);
+
+ public abstract Builder orgId(String orgId);
+
+ public abstract Builder roles(Roles roles);
+
+ public abstract Account build();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/AdditionalInformationType.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/AdditionalInformationType.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/AdditionalInformationType.java
new file mode 100644
index 0000000..a0dd952
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/AdditionalInformationType.java
@@ -0,0 +1,51 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class AdditionalInformationType {
+
+ public abstract String value();
+
+ public abstract String name();
+
+ AdditionalInformationType() {
+ }
+
+ @SerializedNames({ "value", "name" })
+ public static AdditionalInformationType create(String value, String name) {
+ return builder().value(value).name(name).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder value(String value);
+
+ public abstract Builder name(String name);
+
+ public abstract AdditionalInformationType build();
+ }
+
+ public static Builder builder() {
+ return new AutoValue_AdditionalInformationType.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Backup.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Backup.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Backup.java
new file mode 100644
index 0000000..b7a5f4d
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Backup.java
@@ -0,0 +1,68 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableList;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+import java.util.List;
+
+@AutoValue
+public abstract class Backup {
+
+ Backup() {
+ }
+
+ public abstract String type();
+
+ public abstract String maintenanceStatus();
+
+ @Nullable
+ public abstract List<Property> properties();
+
+ @SerializedNames({ "type", "maintenanceStatus", "property" })
+ public static Backup create(String type, String maintenanceStatus, List<Property> properties) {
+ return builder().type(type).maintenanceStatus(maintenanceStatus).properties(properties).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+
+ public abstract Builder type(String type);
+
+ public abstract Builder maintenanceStatus(String maintenanceStatus);
+
+ public abstract Builder properties(List<Property> properties);
+
+ abstract Backup autoBuild();
+
+ abstract List<Property> properties();
+
+ public Backup build() {
+ properties(properties() != null ? ImmutableList.copyOf(properties()) : null);
+ return autoBuild();
+ }
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Backup.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/CPU.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/CPU.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/CPU.java
new file mode 100644
index 0000000..e9754c2
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/CPU.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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class CPU {
+
+ CPU() {
+ }
+
+ public abstract int count();
+
+ public abstract String speed();
+
+ public abstract int coresPerSocket();
+
+ @SerializedNames({ "count", "speed", "coresPerSocket" })
+ public static CPU create(int count, String speed, int coresPerSocket) {
+ return builder().count(count).speed(speed).coresPerSocket(coresPerSocket).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder count(int count);
+
+ public abstract Builder speed(String speed);
+
+ public abstract Builder coresPerSocket(int coresPerSocket);
+
+ public abstract CPU build();
+ }
+
+ public static Builder builder() {
+ return new AutoValue_CPU.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/ConsoleAccess.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/ConsoleAccess.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/ConsoleAccess.java
new file mode 100644
index 0000000..ccc74eb
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/ConsoleAccess.java
@@ -0,0 +1,64 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableList;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+import java.util.List;
+
+@AutoValue
+public abstract class ConsoleAccess {
+
+ ConsoleAccess() {
+ }
+
+ @Nullable
+ public abstract List<Property> properties();
+
+ public abstract String maintenanceStatus();
+
+ @SerializedNames({ "property", "maintenanceStatus" })
+ public static ConsoleAccess create(List<Property> properties, String maintenanceStatus) {
+ return builder().properties(properties).maintenanceStatus(maintenanceStatus).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+
+ public abstract Builder properties(List<Property> properties);
+
+ public abstract Builder maintenanceStatus(String maintenanceStatus);
+
+ abstract ConsoleAccess autoBuild();
+
+ abstract List<Property> properties();
+
+ public ConsoleAccess build() {
+ properties(properties() != null ? ImmutableList.copyOf(properties()) : null);
+ return autoBuild();
+ }
+ }
+
+ public static Builder builder() {
+ return new AutoValue_ConsoleAccess.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/CpuSpeed.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/CpuSpeed.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/CpuSpeed.java
new file mode 100644
index 0000000..439294e
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/CpuSpeed.java
@@ -0,0 +1,117 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+/**
+ * Defines the CPU speeds available in the Dimension Data Cloud.
+ */
+public enum CpuSpeed {
+
+ /**
+ * Dimension Data Economy speed CPU.
+ * <p/>
+ * May not be available in all datacenters.
+ */
+ ECONOMY(10),
+
+ /**
+ * Dimension Data Standard speed CPU.
+ * <p/>
+ * The default CPU speed if not otherwise specified.
+ */
+ STANDARD(20),
+
+ /**
+ * Dimension Data High-Performance speed CPU.
+ * <p/>
+ * May not be available in all datacenters.
+ */
+ HIGHPERFORMANCE(30);
+
+ /**
+ * The value used to represent this CPU speed in JClouds.
+ * <p/>
+ * There is no significance to the numerical value other than ordering of the supported speeds. Values are not
+ * proportional to each other in any way.
+ */
+ private final double speed;
+
+ CpuSpeed(double speed) {
+ this.speed = speed;
+ }
+
+ /**
+ * Gets the default CPU speed used in the Dimension Data cloud.
+ *
+ * @return the default speed.
+ */
+ public static CpuSpeed getDefaultCpuSpeed() {
+ return STANDARD;
+ }
+
+ /**
+ * Gets the CPU speed that corresponds to the supplied required speed.
+ * <p/>
+ * If there is no matching speed for the supplied value then the {@link #getDefaultCpuSpeed()} speed is returned.
+ *
+ * @param requiredSpeed the CPU speed that is required.
+ * @return the corresponding CPU speed.
+ */
+ public static CpuSpeed fromSpeed(final double requiredSpeed) {
+ for (CpuSpeed cpuSpeed : CpuSpeed.values()) {
+ if (cpuSpeed.speed == requiredSpeed) {
+ return cpuSpeed;
+ }
+ }
+ return getDefaultCpuSpeed();
+ }
+
+ /**
+ * Gets the CPU speed that corresponds to the supplied required speed.
+ * <p/>
+ * If there is no matching speed for the supplied value then the {@link #getDefaultCpuSpeed()} speed is returned.
+ *
+ * @param requiredSpeed the CPU speed that is required.
+ * @return the corresponding CPU speed.
+ */
+ public static CpuSpeed fromDimensionDataSpeed(final String requiredSpeed) {
+ for (CpuSpeed cpuSpeed : CpuSpeed.values()) {
+ if (cpuSpeed.getDimensionDataSpeed().equals(requiredSpeed)) {
+ return cpuSpeed;
+ }
+ }
+ return getDefaultCpuSpeed();
+ }
+
+ /**
+ * Gets the CPU speed as represented in JClouds.
+ *
+ * @return the CPU speed.
+ */
+ public double getSpeed() {
+ return speed;
+ }
+
+ /**
+ * Gets the CPU speed as represented in the Dimension Data cloud.
+ *
+ * @return the CPU speed.
+ */
+ public String getDimensionDataSpeed() {
+ return name();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Datacenter.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Datacenter.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Datacenter.java
new file mode 100644
index 0000000..c331fda
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Datacenter.java
@@ -0,0 +1,105 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class Datacenter {
+
+ public static Builder builder() {
+ return new AutoValue_Datacenter.Builder();
+ }
+
+ Datacenter() {
+ } // For AutoValue only!
+
+ public abstract String id();
+
+ public abstract String displayName();
+
+ public abstract String type();
+
+ public abstract String city();
+
+ public abstract String state();
+
+ public abstract String country();
+
+ public abstract String vpnUrl();
+
+ public abstract String ftpsHost();
+
+ public abstract Networking networking();
+
+ public abstract Hypervisor hypervisor();
+
+ @Nullable
+ public abstract Backup backup();
+
+ @Nullable
+ public abstract ConsoleAccess consoleAccess();
+
+ @Nullable
+ public abstract Monitoring monitoring();
+
+ @SerializedNames({ "id", "displayName", "type", "city", "state", "country", "vpnUrl", "ftpsHost", "networking",
+ "hypervisor", "backup", "consoleAccess", "monitoring" })
+ public static Datacenter create(String id, String displayName, String type, String city, String state,
+ String country, String vpnUrl, String ftpsHost, Networking networking, Hypervisor hypervisor, Backup backup,
+ ConsoleAccess consoleAccess, Monitoring monitoring) {
+ return builder().id(id).displayName(displayName).type(type).city(city).state(state).country(country)
+ .vpnUrl(vpnUrl).ftpsHost(ftpsHost).networking(networking).hypervisor(hypervisor).backup(backup)
+ .consoleAccess(consoleAccess).monitoring(monitoring).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder id(String id);
+
+ public abstract Builder displayName(String displayName);
+
+ public abstract Builder type(String type);
+
+ public abstract Builder city(String city);
+
+ public abstract Builder state(String state);
+
+ public abstract Builder country(String country);
+
+ public abstract Builder vpnUrl(String vpnUrl);
+
+ public abstract Builder ftpsHost(String ftpsHost);
+
+ public abstract Builder networking(Networking networking);
+
+ public abstract Builder hypervisor(Hypervisor hypervisor);
+
+ public abstract Builder backup(Backup backup);
+
+ public abstract Builder consoleAccess(ConsoleAccess consoleAccess);
+
+ public abstract Builder monitoring(Monitoring monitoring);
+
+ public abstract Datacenter build();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Datacenters.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Datacenters.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Datacenters.java
new file mode 100644
index 0000000..53ecc86
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Datacenters.java
@@ -0,0 +1,32 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import java.beans.ConstructorProperties;
+import java.util.List;
+
+/**
+ * A collection of Datacenter
+ */
+public class Datacenters extends PaginatedCollection<Datacenter> {
+
+ @ConstructorProperties({ "datacenter", "pageNumber", "pageCount", "totalCount", "pageSize" })
+ public Datacenters(List<Datacenter> content, Integer pageNumber, Integer pageCount, Integer totalCount,
+ Integer pageSize) {
+ super(content, pageNumber, pageCount, totalCount, pageSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Disk.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Disk.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Disk.java
new file mode 100644
index 0000000..a851fd2
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Disk.java
@@ -0,0 +1,66 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class Disk {
+
+ Disk() {
+ }
+
+ @Nullable
+ public abstract String id();
+
+ public abstract int scsiId();
+
+ public abstract int sizeGb();
+
+ public abstract String speed();
+
+ @Nullable
+ public abstract String state();
+
+ @SerializedNames({ "id", "scsiId", "sizeGb", "speed", "state" })
+ public static Disk create(String id, int scsiId, int sizeGb, String speed, String state) {
+ return builder().id(id).scsiId(scsiId).sizeGb(sizeGb).speed(speed).state(state).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder id(String id);
+
+ public abstract Builder scsiId(int scsiId);
+
+ public abstract Builder sizeGb(int sizeGb);
+
+ public abstract Builder speed(String speed);
+
+ public abstract Builder state(String state);
+
+ public abstract Disk build();
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Disk.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/FirewallRule.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/FirewallRule.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/FirewallRule.java
new file mode 100644
index 0000000..70dc884
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/FirewallRule.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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class FirewallRule {
+
+ public static Builder builder() {
+ return new AutoValue_FirewallRule.Builder();
+ }
+
+ FirewallRule() {
+ } // For AutoValue only!
+
+ public abstract String id();
+
+ public abstract String name();
+
+ public abstract String ruleType();
+
+ public abstract String networkDomainId();
+
+ public abstract String state();
+
+ public abstract String action();
+
+ public abstract String ipVersion();
+
+ public abstract String protocol();
+
+ public abstract String datacenterId();
+
+ public abstract FirewallRuleTarget source();
+
+ public abstract FirewallRuleTarget destination();
+
+ public abstract Boolean enabled();
+
+ @Nullable
+ public abstract Placement placement();
+
+ @SerializedNames({ "id", "name", "ruleType", "networkDomainId", "state", "action", "ipVersion", "protocol",
+ "datacenterId", "source", "destination", "enabled", "placement" })
+ public static FirewallRule create(String id, String name, String ruleType, String networkDomainId, String state,
+ String action, String ipVersion, String protocol, String datacenterId, FirewallRuleTarget source,
+ FirewallRuleTarget destination, Boolean enabled, Placement placement) {
+ return builder().id(id).name(name).ruleType(ruleType).networkDomainId(networkDomainId).state(state).action(action)
+ .ipVersion(ipVersion).protocol(protocol).datacenterId(datacenterId).source(source).destination(destination)
+ .enabled(enabled).placement(placement).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder id(String id);
+
+ public abstract Builder name(String name);
+
+ public abstract Builder ruleType(String ruleType);
+
+ public abstract Builder networkDomainId(String networkDomainId);
+
+ public abstract Builder state(String state);
+
+ public abstract Builder action(String action);
+
+ public abstract Builder ipVersion(String ipVersion);
+
+ public abstract Builder protocol(String protocol);
+
+ public abstract Builder datacenterId(String datacenterId);
+
+ public abstract Builder source(FirewallRuleTarget source);
+
+ public abstract Builder destination(FirewallRuleTarget destination);
+
+ public abstract Builder enabled(Boolean enabled);
+
+ public abstract Builder placement(Placement placement);
+
+ public abstract FirewallRule build();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/FirewallRuleTarget.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/FirewallRuleTarget.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/FirewallRuleTarget.java
new file mode 100644
index 0000000..edd3efa
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/FirewallRuleTarget.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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+import java.util.List;
+
+@AutoValue
+public abstract class FirewallRuleTarget {
+
+ @AutoValue
+ public abstract static class Port {
+
+ Port() {
+ } // For AutoValue only!
+
+ public abstract int begin();
+
+ @Nullable
+ public abstract Integer end();
+
+ @SerializedNames({ "begin", "end" })
+ public static Port create(int begin, Integer end) {
+ return new AutoValue_FirewallRuleTarget_Port(begin, end);
+ }
+ }
+
+ @AutoValue
+ public abstract static class PortList {
+
+ PortList() {
+ } // For AutoValue only!
+
+ public abstract String id();
+
+ @Nullable
+ public abstract String name();
+
+ @Nullable
+ public abstract String description();
+
+ @Nullable
+ public abstract List<Port> port();
+
+ @Nullable
+ public abstract List<String> childPortList();
+
+ @SerializedNames({ "id", "name", "description", "port", "childPortList" })
+ public static PortList create(String id, String name, String description, List<Port> port,
+ List<String> childPortList) {
+ return new AutoValue_FirewallRuleTarget_PortList(id, name, description, port, childPortList);
+ }
+ }
+
+ public static Builder builder() {
+ return new AutoValue_FirewallRuleTarget.Builder();
+ }
+
+ FirewallRuleTarget() {
+ } // For AutoValue only!
+
+ @Nullable
+ public abstract IpRange ip();
+
+ @Nullable
+ public abstract Port port();
+
+ @Nullable
+ public abstract String portListId();
+
+ @Nullable
+ public abstract PortList portList();
+
+ @SerializedNames({ "ip", "port", "portListId", "portList" })
+ public static FirewallRuleTarget create(IpRange ip, Port port, String portListId, PortList portList) {
+ return builder().ip(ip).port(port).portListId(portListId).portList(portList).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder ip(IpRange ip);
+
+ public abstract Builder port(Port port);
+
+ public abstract Builder portListId(String portListId);
+
+ public abstract Builder portList(PortList portList);
+
+ public abstract FirewallRuleTarget build();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/FirewallRules.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/FirewallRules.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/FirewallRules.java
new file mode 100644
index 0000000..5772749
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/FirewallRules.java
@@ -0,0 +1,32 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import java.beans.ConstructorProperties;
+import java.util.List;
+
+/**
+ * A collection of FirewallRule
+ */
+public class FirewallRules extends PaginatedCollection<FirewallRule> {
+
+ @ConstructorProperties({ "firewallRule", "pageNumber", "pageCount", "totalCount", "pageSize" })
+ public FirewallRules(List<FirewallRule> content, Integer pageNumber, Integer pageCount, Integer totalCount,
+ Integer pageSize) {
+ super(content, pageNumber, pageCount, totalCount, pageSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Hypervisor.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Hypervisor.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Hypervisor.java
new file mode 100644
index 0000000..0e8d448
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Hypervisor.java
@@ -0,0 +1,130 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableList;
+import org.jclouds.json.SerializedNames;
+
+import java.util.List;
+
+@AutoValue
+public abstract class Hypervisor {
+
+ @AutoValue
+ public abstract static class DiskSpeed {
+
+ DiskSpeed() {
+ } // For AutoValue only!
+
+ public abstract String id();
+
+ public abstract String displayName();
+
+ public abstract String abbreviation();
+
+ public abstract String description();
+
+ public abstract boolean available();
+
+ public abstract boolean _default();
+
+ @SerializedNames({ "id", "displayName", "abbreviation", "description", "available", "default" })
+ public static DiskSpeed create(String id, String displayName, String abbreviation, String description,
+ boolean available, boolean _default) {
+ return new AutoValue_Hypervisor_DiskSpeed(id, displayName, abbreviation, description, available, _default);
+ }
+ }
+
+ @AutoValue
+ public abstract static class CpuSpeed {
+
+ CpuSpeed() {
+ } // For AutoValue only!
+
+ public abstract String id();
+
+ public abstract String displayName();
+
+ public abstract String description();
+
+ public abstract boolean available();
+
+ public abstract boolean _default();
+
+ @SerializedNames({ "id", "displayName", "description", "available", "default" })
+ public static CpuSpeed create(String id, String displayName, String description, boolean available,
+ boolean _default) {
+ return new AutoValue_Hypervisor_CpuSpeed(id, displayName, description, available, _default);
+ }
+ }
+
+ Hypervisor() {
+ }
+
+ public abstract String type();
+
+ public abstract String maintenanceStatus();
+
+ public abstract List<Property> properties();
+
+ public abstract List<DiskSpeed> diskSpeeds();
+
+ public abstract List<CpuSpeed> cpuSpeeds();
+
+ @SerializedNames({ "type", "maintenanceStatus", "property", "diskSpeed", "cpuSpeed" })
+ public static Hypervisor create(String type, String maintenanceStatus, List<Property> properties,
+ List<DiskSpeed> diskSpeeds, List<CpuSpeed> cpuSpeeds) {
+ return builder().type(type).maintenanceStatus(maintenanceStatus).properties(properties).diskSpeeds(diskSpeeds)
+ .cpuSpeeds(cpuSpeeds).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder maintenanceStatus(String maintenanceStatus);
+
+ public abstract Builder type(String type);
+
+ public abstract Builder properties(List<Property> properties);
+
+ public abstract Builder diskSpeeds(List<DiskSpeed> diskSpeeds);
+
+ public abstract Builder cpuSpeeds(List<CpuSpeed> cpuSpeeds);
+
+ abstract Hypervisor autoBuild();
+
+ abstract List<Property> properties();
+
+ abstract List<DiskSpeed> diskSpeeds();
+
+ abstract List<CpuSpeed> cpuSpeeds();
+
+ public Hypervisor build() {
+ properties(properties() != null ? ImmutableList.copyOf(properties()) : ImmutableList.<Property>of());
+ diskSpeeds(diskSpeeds() != null ? ImmutableList.copyOf(diskSpeeds()) : ImmutableList.<DiskSpeed>of());
+ cpuSpeeds(cpuSpeeds() != null ? ImmutableList.copyOf(cpuSpeeds()) : ImmutableList.<CpuSpeed>of());
+ return autoBuild();
+ }
+
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Hypervisor.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/IpRange.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/IpRange.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/IpRange.java
new file mode 100644
index 0000000..78cd047
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/IpRange.java
@@ -0,0 +1,38 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class IpRange {
+
+ IpRange() {
+ } // For AutoValue only!
+
+ public abstract String address();
+
+ @Nullable
+ public abstract Integer prefixSize();
+
+ @SerializedNames({ "address", "prefixSize" })
+ public static IpRange create(String address, Integer prefixSize) {
+ return new AutoValue_IpRange(address, prefixSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Monitoring.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Monitoring.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Monitoring.java
new file mode 100644
index 0000000..be43783
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Monitoring.java
@@ -0,0 +1,64 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableList;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+import java.util.List;
+
+@AutoValue
+public abstract class Monitoring {
+
+ Monitoring() {
+ }
+
+ @Nullable
+ public abstract List<Property> properties();
+
+ public abstract String maintenanceStatus();
+
+ @SerializedNames({ "property", "maintenanceStatus" })
+ public static Monitoring create(List<Property> properties, String maintenanceStatus) {
+ return builder().properties(properties).maintenanceStatus(maintenanceStatus).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+
+ public abstract Builder properties(List<Property> properties);
+
+ public abstract Builder maintenanceStatus(String maintenanceStatus);
+
+ abstract Monitoring autoBuild();
+
+ abstract List<Property> properties();
+
+ public Monitoring build() {
+ properties(properties() != null ? ImmutableList.copyOf(properties()) : null);
+ return autoBuild();
+ }
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Monitoring.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NIC.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NIC.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NIC.java
new file mode 100644
index 0000000..33f468f
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NIC.java
@@ -0,0 +1,74 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class NIC {
+
+ NIC() {
+ }
+
+ @Nullable
+ public abstract String id();
+
+ @Nullable
+ public abstract String privateIpv4();
+
+ @Nullable
+ public abstract String ipv6();
+
+ public abstract String vlanId();
+
+ @Nullable
+ public abstract String vlanName();
+
+ @Nullable
+ public abstract String state();
+
+ @SerializedNames({ "id", "privateIpv4", "ipv6", "vlanId", "vlanName", "state" })
+ public static NIC create(String id, String privateIpv4, String ipv6, String vlanId, String vlanName, String state) {
+ return builder().id(id).privateIpv4(privateIpv4).ipv6(ipv6).vlanId(vlanId).vlanName(vlanName).state(state)
+ .build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder id(String id);
+
+ public abstract Builder privateIpv4(String privateIpv4);
+
+ public abstract Builder ipv6(String ipv6);
+
+ public abstract Builder vlanId(String vlanId);
+
+ public abstract Builder vlanName(String vlanName);
+
+ public abstract Builder state(String state);
+
+ public abstract NIC build();
+ }
+
+ public static Builder builder() {
+ return new AutoValue_NIC.Builder();
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NatRule.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NatRule.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NatRule.java
new file mode 100644
index 0000000..b1cafb1
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NatRule.java
@@ -0,0 +1,76 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.json.SerializedNames;
+
+import java.util.Date;
+
+@AutoValue
+public abstract class NatRule {
+
+ NatRule() {
+ }
+
+ public static Builder builder() {
+ return new AutoValue_NatRule.Builder();
+ }
+
+ public abstract String id();
+
+ public abstract String datacenterId();
+
+ public abstract String state();
+
+ public abstract Date createTime();
+
+ public abstract String externalIp();
+
+ public abstract String internalIp();
+
+ public abstract String networkDomainId();
+
+ @SerializedNames({ "id", "datacenterId", "state", "createTime", "externalIp", "internalIp", "networkDomainId" })
+ public static NatRule create(String id, String datacenterId, String state, Date createTime, String externalIp,
+ String internalIp, String networkDomainId) {
+ return builder().id(id).datacenterId(datacenterId).datacenterId(datacenterId).state(state).createTime(createTime)
+ .externalIp(externalIp).internalIp(internalIp).networkDomainId(networkDomainId).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder id(String id);
+
+ public abstract Builder datacenterId(String datacenterId);
+
+ public abstract Builder state(String state);
+
+ public abstract Builder createTime(Date createTime);
+
+ public abstract Builder externalIp(String externalIp);
+
+ public abstract Builder internalIp(String internalIp);
+
+ public abstract Builder networkDomainId(String networkDomainId);
+
+ public abstract NatRule build();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NatRules.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NatRules.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NatRules.java
new file mode 100644
index 0000000..1acb768
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NatRules.java
@@ -0,0 +1,31 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import java.beans.ConstructorProperties;
+import java.util.List;
+
+/**
+ * A collection of NAT rule
+ */
+public class NatRules extends PaginatedCollection<NatRule> {
+
+ @ConstructorProperties({ "natRule", "pageNumber", "pageCount", "totalCount", "pageSize" })
+ public NatRules(List<NatRule> content, Integer pageNumber, Integer pageCount, Integer totalCount, Integer pageSize) {
+ super(content, pageNumber, pageCount, totalCount, pageSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NetworkDomain.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NetworkDomain.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NetworkDomain.java
new file mode 100644
index 0000000..eb6c291
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NetworkDomain.java
@@ -0,0 +1,91 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.javax.annotation.Nullable;
+import org.jclouds.json.SerializedNames;
+
+import java.util.Date;
+
+@AutoValue
+public abstract class NetworkDomain {
+
+ public enum Type {
+ ESSENTIALS, ADVANCED
+ }
+
+ NetworkDomain() {
+ }
+
+ public static Builder builder() {
+ return new AutoValue_NetworkDomain.Builder();
+ }
+
+ public abstract String id();
+
+ @Nullable
+ public abstract String datacenterId();
+
+ public abstract String name();
+
+ @Nullable
+ public abstract String description();
+
+ @Nullable
+ public abstract String state();
+
+ @Nullable
+ public abstract Type type();
+
+ @Nullable
+ public abstract String snatIpv4Address();
+
+ @Nullable
+ public abstract Date createTime();
+
+ @SerializedNames({ "id", "datacenterId", "name", "description", "state", "type", "snatIpv4Address", "createTime" })
+ public static NetworkDomain create(String id, String datacenterId, String name, String description, String state,
+ Type type, String snatIpv4Address, Date createTime) {
+ return builder().id(id).datacenterId(datacenterId).name(name).description(description).state(state).type(type)
+ .snatIpv4Address(snatIpv4Address).createTime(createTime).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder id(String id);
+
+ public abstract Builder datacenterId(String datacenterId);
+
+ public abstract Builder name(String name);
+
+ public abstract Builder description(String description);
+
+ public abstract Builder state(String state);
+
+ public abstract Builder type(Type type);
+
+ public abstract Builder snatIpv4Address(String snatIpv4Address);
+
+ public abstract Builder createTime(Date createTime);
+
+ public abstract NetworkDomain build();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NetworkDomains.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NetworkDomains.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NetworkDomains.java
new file mode 100644
index 0000000..4844581
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NetworkDomains.java
@@ -0,0 +1,32 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import java.beans.ConstructorProperties;
+import java.util.List;
+
+/**
+ * A collection of NetworkDomain
+ */
+public class NetworkDomains extends PaginatedCollection<NetworkDomain> {
+
+ @ConstructorProperties({ "networkDomain", "pageNumber", "pageCount", "totalCount", "pageSize" })
+ public NetworkDomains(List<NetworkDomain> content, Integer pageNumber, Integer pageCount, Integer totalCount,
+ Integer pageSize) {
+ super(content, pageNumber, pageCount, totalCount, pageSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NetworkInfo.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NetworkInfo.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NetworkInfo.java
new file mode 100644
index 0000000..faaa9c8
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/NetworkInfo.java
@@ -0,0 +1,65 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableList;
+import org.jclouds.json.SerializedNames;
+
+import java.util.List;
+
+@AutoValue
+public abstract class NetworkInfo {
+
+ public static Builder builder() {
+ return new AutoValue_NetworkInfo.Builder();
+ }
+
+ NetworkInfo() {
+ } // For AutoValue only!
+
+ public abstract String networkDomainId();
+
+ public abstract NIC primaryNic();
+
+ public abstract List<NIC> additionalNic();
+
+ @SerializedNames({ "networkDomainId", "primaryNic", "additionalNic" })
+ public static NetworkInfo create(String networkDomainId, NIC primaryNic, List<NIC> additionalNic) {
+ return builder().networkDomainId(networkDomainId).primaryNic(primaryNic).additionalNic(additionalNic).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder networkDomainId(String networkDomainId);
+
+ public abstract Builder primaryNic(NIC primaryNic);
+
+ public abstract Builder additionalNic(List<NIC> additionalNic);
+
+ abstract NetworkInfo autoBuild();
+
+ abstract List<NIC> additionalNic();
+
+ public NetworkInfo build() {
+ additionalNic(additionalNic() != null ? ImmutableList.copyOf(additionalNic()) : ImmutableList.<NIC>of());
+ return autoBuild();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Networking.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Networking.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Networking.java
new file mode 100644
index 0000000..2f9c343
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/Networking.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.jclouds.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableList;
+import org.jclouds.json.SerializedNames;
+
+import java.util.List;
+
+@AutoValue
+public abstract class Networking {
+
+ Networking() {
+ }
+
+ public abstract String type();
+
+ public abstract String maintenanceStatus();
+
+ public abstract List<Property> properties();
+
+ @SerializedNames({ "type", "maintenanceStatus", "property" })
+ public static Networking create(String type, String maintenanceStatus, List<Property> properties) {
+ return builder().type(type).maintenanceStatus(maintenanceStatus).properties(properties).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+
+ public abstract Builder maintenanceStatus(String maintenanceStatus);
+
+ public abstract Builder type(String type);
+
+ public abstract Builder properties(List<Property> properties);
+
+ abstract Networking autoBuild();
+
+ abstract List<Property> properties();
+
+ public Networking build() {
+ properties(properties() != null ? ImmutableList.copyOf(properties()) : ImmutableList.<Property>of());
+ return autoBuild();
+ }
+ }
+
+ public static Builder builder() {
+ return new AutoValue_Networking.Builder();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OperatingSystem.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OperatingSystem.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OperatingSystem.java
new file mode 100644
index 0000000..73035ca
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OperatingSystem.java
@@ -0,0 +1,56 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import org.jclouds.json.SerializedNames;
+
+@AutoValue
+public abstract class OperatingSystem {
+
+ OperatingSystem() {
+ }
+
+ public static Builder builder() {
+ return new AutoValue_OperatingSystem.Builder();
+ }
+
+ public abstract String id();
+
+ public abstract String displayName();
+
+ public abstract String family();
+
+ @SerializedNames({ "id", "displayName", "family" })
+ public static OperatingSystem create(String id, String displayName, String family) {
+ return builder().id(id).displayName(displayName).family(family).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder id(String id);
+
+ public abstract Builder displayName(String displayName);
+
+ public abstract Builder family(String family);
+
+ public abstract OperatingSystem build();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OperatingSystems.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OperatingSystems.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OperatingSystems.java
new file mode 100644
index 0000000..692fa2b
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OperatingSystems.java
@@ -0,0 +1,32 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import java.beans.ConstructorProperties;
+import java.util.List;
+
+/**
+ * A collection of OperatingSystem
+ */
+public class OperatingSystems extends PaginatedCollection<OperatingSystem> {
+
+ @ConstructorProperties({ "operatingSystem", "pageNumber", "pageCount", "totalCount", "pageSize" })
+ public OperatingSystems(List<OperatingSystem> content, Integer pageNumber, Integer pageCount, Integer totalCount,
+ Integer pageSize) {
+ super(content, pageNumber, pageCount, totalCount, pageSize);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OsImage.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OsImage.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OsImage.java
new file mode 100644
index 0000000..3d8cdae
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OsImage.java
@@ -0,0 +1,106 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import com.google.auto.value.AutoValue;
+import com.google.common.collect.ImmutableList;
+import org.jclouds.json.SerializedNames;
+
+import java.util.Date;
+import java.util.List;
+
+@AutoValue
+public abstract class OsImage {
+
+ OsImage() {
+ }
+
+ public static Builder builder() {
+ return new AutoValue_OsImage.Builder();
+ }
+
+ public abstract String id();
+
+ public abstract String name();
+
+ public abstract String description();
+
+ public abstract String datacenterId();
+
+ public abstract String osImageKey();
+
+ public abstract Date createTime();
+
+ public abstract OperatingSystem operatingSystem();
+
+ public abstract CPU cpu();
+
+ public abstract int memoryGb();
+
+ public abstract List<Disk> disks();
+
+ public abstract List<Object> softwareLabels();
+
+ @SerializedNames({ "id", "name", "description", "datacenterId", "osImageKey", "createTime", "operatingSystem", "cpu",
+ "memoryGb", "disk", "softwareLabel" })
+ public static OsImage create(String id, String name, String description, String datacenterId, String osImageKey,
+ Date createTime, OperatingSystem operatingSystem, CPU cpu, int memoryGb, List<Disk> disks,
+ List<Object> softwareLabels) {
+ return builder().id(id).name(name).datacenterId(datacenterId).description(description).osImageKey(osImageKey)
+ .createTime(createTime).operatingSystem(operatingSystem).cpu(cpu).memoryGb(memoryGb).disks(disks)
+ .softwareLabels(softwareLabels).build();
+ }
+
+ public abstract Builder toBuilder();
+
+ @AutoValue.Builder
+ public abstract static class Builder {
+ public abstract Builder id(String id);
+
+ public abstract Builder name(String name);
+
+ public abstract Builder description(String description);
+
+ public abstract Builder datacenterId(String datacenterId);
+
+ public abstract Builder osImageKey(String osImageKey);
+
+ public abstract Builder createTime(Date createTime);
+
+ public abstract Builder operatingSystem(OperatingSystem operatingSystem);
+
+ public abstract Builder cpu(CPU cpu);
+
+ public abstract Builder memoryGb(int memoryGb);
+
+ public abstract Builder disks(List<Disk> disks);
+
+ public abstract Builder softwareLabels(List<Object> softwareLabels);
+
+ abstract OsImage autoBuild();
+
+ abstract List<Disk> disks();
+
+ abstract List<Object> softwareLabels();
+
+ public OsImage build() {
+ disks(disks() != null ? ImmutableList.copyOf(disks()) : ImmutableList.<Disk>of());
+ softwareLabels(softwareLabels() != null ? ImmutableList.copyOf(softwareLabels()) : ImmutableList.of());
+ return autoBuild();
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs/blob/8054a594/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OsImages.java
----------------------------------------------------------------------
diff --git a/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OsImages.java b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OsImages.java
new file mode 100644
index 0000000..69ffb0a
--- /dev/null
+++ b/dimensiondata/src/main/java/org/jclouds/dimensiondata/cloudcontrol/domain/OsImages.java
@@ -0,0 +1,31 @@
+/*
+ * 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.dimensiondata.cloudcontrol.domain;
+
+import java.beans.ConstructorProperties;
+import java.util.List;
+
+/**
+ * A collection of OsImage
+ */
+public class OsImages extends PaginatedCollection<OsImage> {
+
+ @ConstructorProperties({ "osImage", "pageNumber", "pageCount", "totalCount", "pageSize" })
+ public OsImages(List<OsImage> content, Integer pageNumber, Integer pageCount, Integer totalCount, Integer pageSize) {
+ super(content, pageNumber, pageCount, totalCount, pageSize);
+ }
+}