You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jclouds.apache.org by ga...@apache.org on 2014/08/25 23:14:29 UTC
git commit: Jclouds-458: Changes to the GCS structure
Repository: jclouds-labs-google
Updated Branches:
refs/heads/master 38e05f6cd -> 19b43e5e3
Jclouds-458: Changes to the GCS structure
Project: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/repo
Commit: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/commit/19b43e5e
Tree: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/tree/19b43e5e
Diff: http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/diff/19b43e5e
Branch: refs/heads/master
Commit: 19b43e5e31e0ac1efb7c2685b51a2f01ac2e404b
Parents: 38e05f6
Author: hsbhathiya <hs...@gmail.com>
Authored: Sun Aug 24 11:17:32 2014 +0530
Committer: Andrew Gaul <ga...@apache.org>
Committed: Mon Aug 25 14:13:48 2014 -0700
----------------------------------------------------------------------
.../binders/BucketAccessControlsBinder.java | 42 ++++
.../binders/BucketBinder.java | 43 +++++
.../DefaultObjectAccessControlsBinder.java | 43 +++++
.../binders/ObjectAccessControlsBinder.java | 43 +++++
.../config/GoogleCloudStorageParserModule.java | 3 +-
.../domain/BucketTemplate.java | 191 ------------------
.../DefaultObjectAccessControlsTemplate.java | 65 -------
.../domain/ObjectAccessControlsTemplate.java | 65 -------
.../domain/templates/BucketTemplate.java | 193 +++++++++++++++++++
.../DefaultObjectAccessControlsTemplate.java | 65 +++++++
.../templates/ObjectAccessControlsTemplate.java | 65 +++++++
.../features/BucketAccessControlsApi.java | 2 +-
.../googlecloudstorage/features/BucketApi.java | 4 +-
.../DefaultObjectAccessControlsApi.java | 4 +-
.../features/ObjectAccessControlsApi.java | 4 +-
.../handlers/BucketAccessControlsBinder.java | 42 ----
.../handlers/BucketBinder.java | 43 -----
.../DefaultObjectAccessControlsBinder.java | 43 -----
.../handlers/ObjectAccessControlsBinder.java | 43 -----
.../BucketAccessControlsApiLiveTest.java | 2 +-
.../features/BucketApiExpectTest.java | 2 +-
.../features/BucketApiLiveTest.java | 2 +-
...efaultObjectAccessControlsApiExpectTest.java | 2 +-
.../DefaultObjectAccessControlsApiLiveTest.java | 4 +-
.../ObjectAccessControlsApiExpectTest.java | 2 +-
25 files changed, 510 insertions(+), 507 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java
new file mode 100644
index 0000000..ffa9959
--- /dev/null
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketAccessControlsBinder.java
@@ -0,0 +1,42 @@
+/*
+ * 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.googlecloudstorage.binders;
+
+import java.util.Map;
+
+import javax.inject.Inject;
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.rest.MapBinder;
+import org.jclouds.rest.binders.BindToJsonPayload;
+
+public class BucketAccessControlsBinder implements MapBinder {
+
+ @Inject
+ private BindToJsonPayload jsonBinder;
+
+ @Override
+ public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) {
+ BucketAccessControls postBucket = (BucketAccessControls) postParams.get("BACLInsert");
+ return bindToRequest(request, postBucket);
+ }
+
+ @Override
+ public <R extends HttpRequest> R bindToRequest(R request, Object input) {
+ return jsonBinder.bindToRequest(request, input);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketBinder.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketBinder.java
new file mode 100644
index 0000000..1aa8dd9
--- /dev/null
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/BucketBinder.java
@@ -0,0 +1,43 @@
+/*
+ * 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.googlecloudstorage.binders;
+
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.rest.MapBinder;
+import org.jclouds.rest.binders.BindToJsonPayload;
+
+public class BucketBinder implements MapBinder {
+
+ @Inject
+ private BindToJsonPayload jsonBinder;
+
+ @Override
+ public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) throws IllegalArgumentException {
+ BucketTemplate postBucket = (BucketTemplate) postParams.get("template");
+ return bindToRequest(request, postBucket);
+ }
+
+ @Override
+ public <R extends HttpRequest> R bindToRequest(R request, Object input) {
+ return jsonBinder.bindToRequest(request, input);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/DefaultObjectAccessControlsBinder.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/DefaultObjectAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/DefaultObjectAccessControlsBinder.java
new file mode 100644
index 0000000..0588eec
--- /dev/null
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/DefaultObjectAccessControlsBinder.java
@@ -0,0 +1,43 @@
+/*
+ * 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.googlecloudstorage.binders;
+
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.rest.MapBinder;
+import org.jclouds.rest.binders.BindToJsonPayload;
+
+public class DefaultObjectAccessControlsBinder implements MapBinder {
+
+ @Inject
+ private BindToJsonPayload jsonBinder;
+
+ @Override
+ public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) {
+ DefaultObjectAccessControlsTemplate template = (DefaultObjectAccessControlsTemplate) postParams.get("template");
+ return bindToRequest(request, template);
+ }
+
+ @Override
+ public <R extends HttpRequest> R bindToRequest(R request, Object input) {
+ return jsonBinder.bindToRequest(request, input);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/ObjectAccessControlsBinder.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/ObjectAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/ObjectAccessControlsBinder.java
new file mode 100644
index 0000000..77218db
--- /dev/null
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/binders/ObjectAccessControlsBinder.java
@@ -0,0 +1,43 @@
+/*
+ * 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.googlecloudstorage.binders;
+
+import java.util.Map;
+
+import javax.inject.Inject;
+
+import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
+import org.jclouds.http.HttpRequest;
+import org.jclouds.rest.MapBinder;
+import org.jclouds.rest.binders.BindToJsonPayload;
+
+public class ObjectAccessControlsBinder implements MapBinder {
+
+ @Inject
+ private BindToJsonPayload jsonBinder;
+
+ @Override
+ public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) throws IllegalArgumentException{
+ ObjectAccessControlsTemplate postBucket = (ObjectAccessControlsTemplate) postParams.get("template");
+ return bindToRequest(request, postBucket);
+ }
+
+ @Override
+ public <R extends HttpRequest> R bindToRequest(R request, Object input) {
+ return jsonBinder.bindToRequest(request, input);
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java
index e5eff6b..f1de81a 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/config/GoogleCloudStorageParserModule.java
@@ -18,9 +18,10 @@ package org.jclouds.googlecloudstorage.config;
import java.lang.reflect.Type;
import java.util.Map;
+
import javax.inject.Singleton;
-import org.jclouds.googlecloudstorage.domain.BucketTemplate;
+import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.json.config.GsonModule.DateAdapter;
import org.jclouds.json.config.GsonModule.Iso8601DateAdapter;
import org.jclouds.oauth.v2.domain.ClaimSet;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketTemplate.java
deleted file mode 100644
index a14ccb0..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/BucketTemplate.java
+++ /dev/null
@@ -1,191 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package org.jclouds.googlecloudstorage.domain;
-
-import java.util.Set;
-
-import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Location;
-import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.StorageClass;
-import org.jclouds.googlecloudstorage.domain.internal.BucketCors;
-import org.jclouds.googlecloudstorage.domain.internal.BucketLifeCycle;
-import org.jclouds.googlecloudstorage.domain.internal.Logging;
-import org.jclouds.googlecloudstorage.domain.internal.Owner;
-import org.jclouds.googlecloudstorage.domain.internal.Versioning;
-import org.jclouds.googlecloudstorage.domain.internal.Website;
-
-import com.google.common.collect.Sets;
-
-public class BucketTemplate {
-
- protected String name;
- protected Long projectNumber;
- protected Set<BucketAccessControls> acl = Sets.newHashSet();
- protected Set<DefaultObjectAccessControls> defaultObjectAccessControls = Sets.newHashSet();
- protected Owner owner;
- protected Location location;
- protected Website website;
- protected Logging logging;
- protected Versioning versioning;
- protected Set<BucketCors> cors = Sets.newHashSet();
- protected BucketLifeCycle lifeCycle;
- protected StorageClass storageClass;
-
- public BucketTemplate name(String name) {
- this.name = name;
- return this;
- }
-
- public BucketTemplate projectNumber(Long projectNumber) {
- this.projectNumber = projectNumber;
- return this;
- }
-
- public BucketTemplate owner(Owner owner) {
- this.owner = owner;
- return this;
- }
-
- public BucketTemplate location(Location location) {
- this.location = location;
- return this;
- }
-
- public BucketTemplate website(Website website) {
- this.website = website;
- return this;
- }
-
- public BucketTemplate logging(Logging logging) {
- this.logging = logging;
- return this;
- }
-
- public BucketTemplate versioning(Versioning versioning) {
- this.versioning = versioning;
- return this;
- }
-
- public BucketTemplate lifeCycle(BucketLifeCycle lifeCycle) {
- this.lifeCycle = lifeCycle;
- return this;
- }
-
- public BucketTemplate storageClass(StorageClass storageClass) {
- this.storageClass = storageClass;
- return this;
- }
-
- public BucketTemplate addAcl(BucketAccessControls bucketAccessControls) {
- this.acl.add(bucketAccessControls);
- return this;
- }
-
- public BucketTemplate acl(Set<BucketAccessControls> acl) {
-
- this.acl.addAll(acl);
- return this;
- }
-
- public BucketTemplate addDefaultObjectAccessControls(DefaultObjectAccessControls oac) {
- this.defaultObjectAccessControls.add(oac);
- return this;
- }
-
- public BucketTemplate defaultObjectAccessControls(Set<DefaultObjectAccessControls> defaultObjectAcl) {
- this.defaultObjectAccessControls.addAll(defaultObjectAcl);
- return this;
- }
-
- public BucketTemplate addCORS(BucketCors cors) {
- this.cors.add(cors);
- return this;
- }
-
- public BucketTemplate cors(Set<BucketCors> cors) {
- this.cors.addAll(cors);
- return this;
- }
-
- public Long getProjectNumber() {
- return projectNumber;
- }
-
- public String getName() {
- return name;
- }
-
- public Set<BucketAccessControls> getAcl() {
- return acl;
- }
-
- public Set<DefaultObjectAccessControls> getDefaultObjectAccessControls() {
- return defaultObjectAccessControls;
- }
-
- public Owner getOwner() {
- return owner;
- }
-
- public Location getLocation() {
- return location;
- }
-
- public Website getWebsite() {
- return website;
- }
-
- public Logging getLogging() {
- return logging;
- }
-
- public Versioning getVersioning() {
- return versioning;
- }
-
- public Set<BucketCors> getCors() {
- return cors;
- }
-
- public BucketLifeCycle getLifeCycle() {
- return lifeCycle;
- }
-
- public StorageClass getStorageClass() {
- return storageClass;
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static BucketTemplate fromBucketsTemplate(BucketTemplate bucketTemplate) {
- return Builder.fromBucketsTemplate(bucketTemplate);
- }
-
- public static class Builder {
-
- public static BucketTemplate fromBucketsTemplate(BucketTemplate in) {
- return new BucketTemplate().name(in.getName()).projectNumber(in.getProjectNumber()).acl(in.getAcl())
- .defaultObjectAccessControls(in.getDefaultObjectAccessControls()).owner(in.getOwner())
- .location(in.getLocation()).website(in.getWebsite()).logging(in.getLogging())
- .versioning(in.getVersioning()).cors(in.getCors()).lifeCycle(in.getLifeCycle())
- .storageClass(in.getStorageClass());
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DefaultObjectAccessControlsTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DefaultObjectAccessControlsTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DefaultObjectAccessControlsTemplate.java
deleted file mode 100644
index 176e9e8..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/DefaultObjectAccessControlsTemplate.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain;
-
-import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole;
-
-/**
- * Represents a Object Access Control Resource
- *
- * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/>
- */
-public class DefaultObjectAccessControlsTemplate {
-
- private String entity;
- private ObjectRole role;
-
- public DefaultObjectAccessControlsTemplate role(ObjectRole role) {
- this.role = role;
- return this;
- }
-
- public DefaultObjectAccessControlsTemplate entity(String entity) {
- this.entity = entity;
- return this;
- }
-
- public String getEntity() {
- return entity;
- }
-
- public ObjectRole getRole() {
- return role;
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static DefaultObjectAccessControlsTemplate fromObjectAccessControlsTemplate(
- DefaultObjectAccessControlsTemplate objectAccessControlsTemplate) {
- return Builder.fromObjectAccessControlsTemplate(objectAccessControlsTemplate);
- }
-
- public static class Builder {
-
- public static DefaultObjectAccessControlsTemplate fromObjectAccessControlsTemplate(
- DefaultObjectAccessControlsTemplate in) {
- return new DefaultObjectAccessControlsTemplate().role(in.getRole()).entity(in.getEntity());
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControlsTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControlsTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControlsTemplate.java
deleted file mode 100644
index 7740207..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/ObjectAccessControlsTemplate.java
+++ /dev/null
@@ -1,65 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.domain;
-
-import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole;
-
-/**
- * Represents a Object Access Control Resource.
- *
- * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/>
- */
-public class ObjectAccessControlsTemplate {
-
- protected String entity;
- protected ObjectRole role;
-
- public ObjectAccessControlsTemplate role(ObjectRole role) {
- this.role = role;
- return this;
- }
-
- public ObjectAccessControlsTemplate entity(String entity) {
- this.entity = entity;
- return this;
- }
-
- public String getEntity() {
- return entity;
- }
-
- public ObjectRole getRole() {
- return role;
- }
-
- public static Builder builder() {
- return new Builder();
- }
-
- public static ObjectAccessControlsTemplate fromObjectAccessControlsTemplate(
- ObjectAccessControlsTemplate objectAccessControlsTemplate) {
- return Builder.fromObjectAccessControlsTemplate(objectAccessControlsTemplate);
- }
-
- public static class Builder {
-
- public static ObjectAccessControlsTemplate fromObjectAccessControlsTemplate(ObjectAccessControlsTemplate in) {
- return new ObjectAccessControlsTemplate().role(in.getRole()).entity(in.getEntity());
- }
-
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java
new file mode 100644
index 0000000..b2ea6da
--- /dev/null
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/BucketTemplate.java
@@ -0,0 +1,193 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.jclouds.googlecloudstorage.domain.templates;
+
+import java.util.Set;
+
+import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
+import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
+import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Location;
+import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.StorageClass;
+import org.jclouds.googlecloudstorage.domain.internal.BucketCors;
+import org.jclouds.googlecloudstorage.domain.internal.BucketLifeCycle;
+import org.jclouds.googlecloudstorage.domain.internal.Logging;
+import org.jclouds.googlecloudstorage.domain.internal.Owner;
+import org.jclouds.googlecloudstorage.domain.internal.Versioning;
+import org.jclouds.googlecloudstorage.domain.internal.Website;
+
+import com.google.common.collect.Sets;
+
+public class BucketTemplate {
+
+ protected String name;
+ protected Long projectNumber;
+ protected Set<BucketAccessControls> acl = Sets.newHashSet();
+ protected Set<DefaultObjectAccessControls> defaultObjectAccessControls = Sets.newHashSet();
+ protected Owner owner;
+ protected Location location;
+ protected Website website;
+ protected Logging logging;
+ protected Versioning versioning;
+ protected Set<BucketCors> cors = Sets.newHashSet();
+ protected BucketLifeCycle lifeCycle;
+ protected StorageClass storageClass;
+
+ public BucketTemplate name(String name) {
+ this.name = name;
+ return this;
+ }
+
+ public BucketTemplate projectNumber(Long projectNumber) {
+ this.projectNumber = projectNumber;
+ return this;
+ }
+
+ public BucketTemplate owner(Owner owner) {
+ this.owner = owner;
+ return this;
+ }
+
+ public BucketTemplate location(Location location) {
+ this.location = location;
+ return this;
+ }
+
+ public BucketTemplate website(Website website) {
+ this.website = website;
+ return this;
+ }
+
+ public BucketTemplate logging(Logging logging) {
+ this.logging = logging;
+ return this;
+ }
+
+ public BucketTemplate versioning(Versioning versioning) {
+ this.versioning = versioning;
+ return this;
+ }
+
+ public BucketTemplate lifeCycle(BucketLifeCycle lifeCycle) {
+ this.lifeCycle = lifeCycle;
+ return this;
+ }
+
+ public BucketTemplate storageClass(StorageClass storageClass) {
+ this.storageClass = storageClass;
+ return this;
+ }
+
+ public BucketTemplate addAcl(BucketAccessControls bucketAccessControls) {
+ this.acl.add(bucketAccessControls);
+ return this;
+ }
+
+ public BucketTemplate acl(Set<BucketAccessControls> acl) {
+
+ this.acl.addAll(acl);
+ return this;
+ }
+
+ public BucketTemplate addDefaultObjectAccessControls(DefaultObjectAccessControls oac) {
+ this.defaultObjectAccessControls.add(oac);
+ return this;
+ }
+
+ public BucketTemplate defaultObjectAccessControls(Set<DefaultObjectAccessControls> defaultObjectAcl) {
+ this.defaultObjectAccessControls.addAll(defaultObjectAcl);
+ return this;
+ }
+
+ public BucketTemplate addCORS(BucketCors cors) {
+ this.cors.add(cors);
+ return this;
+ }
+
+ public BucketTemplate cors(Set<BucketCors> cors) {
+ this.cors.addAll(cors);
+ return this;
+ }
+
+ public Long getProjectNumber() {
+ return projectNumber;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public Set<BucketAccessControls> getAcl() {
+ return acl;
+ }
+
+ public Set<DefaultObjectAccessControls> getDefaultObjectAccessControls() {
+ return defaultObjectAccessControls;
+ }
+
+ public Owner getOwner() {
+ return owner;
+ }
+
+ public Location getLocation() {
+ return location;
+ }
+
+ public Website getWebsite() {
+ return website;
+ }
+
+ public Logging getLogging() {
+ return logging;
+ }
+
+ public Versioning getVersioning() {
+ return versioning;
+ }
+
+ public Set<BucketCors> getCors() {
+ return cors;
+ }
+
+ public BucketLifeCycle getLifeCycle() {
+ return lifeCycle;
+ }
+
+ public StorageClass getStorageClass() {
+ return storageClass;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static BucketTemplate fromBucketsTemplate(BucketTemplate bucketTemplate) {
+ return Builder.fromBucketsTemplate(bucketTemplate);
+ }
+
+ public static class Builder {
+
+ public static BucketTemplate fromBucketsTemplate(BucketTemplate in) {
+ return new BucketTemplate().name(in.getName()).projectNumber(in.getProjectNumber()).acl(in.getAcl())
+ .defaultObjectAccessControls(in.getDefaultObjectAccessControls()).owner(in.getOwner())
+ .location(in.getLocation()).website(in.getWebsite()).logging(in.getLogging())
+ .versioning(in.getVersioning()).cors(in.getCors()).lifeCycle(in.getLifeCycle())
+ .storageClass(in.getStorageClass());
+ }
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/DefaultObjectAccessControlsTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/DefaultObjectAccessControlsTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/DefaultObjectAccessControlsTemplate.java
new file mode 100644
index 0000000..e47da5c
--- /dev/null
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/DefaultObjectAccessControlsTemplate.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.googlecloudstorage.domain.templates;
+
+import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole;
+
+/**
+ * Represents a Object Access Control Resource
+ *
+ * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/>
+ */
+public class DefaultObjectAccessControlsTemplate {
+
+ private String entity;
+ private ObjectRole role;
+
+ public DefaultObjectAccessControlsTemplate role(ObjectRole role) {
+ this.role = role;
+ return this;
+ }
+
+ public DefaultObjectAccessControlsTemplate entity(String entity) {
+ this.entity = entity;
+ return this;
+ }
+
+ public String getEntity() {
+ return entity;
+ }
+
+ public ObjectRole getRole() {
+ return role;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static DefaultObjectAccessControlsTemplate fromObjectAccessControlsTemplate(
+ DefaultObjectAccessControlsTemplate objectAccessControlsTemplate) {
+ return Builder.fromObjectAccessControlsTemplate(objectAccessControlsTemplate);
+ }
+
+ public static class Builder {
+
+ public static DefaultObjectAccessControlsTemplate fromObjectAccessControlsTemplate(
+ DefaultObjectAccessControlsTemplate in) {
+ return new DefaultObjectAccessControlsTemplate().role(in.getRole()).entity(in.getEntity());
+ }
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.java
new file mode 100644
index 0000000..e050ce3
--- /dev/null
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/domain/templates/ObjectAccessControlsTemplate.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.googlecloudstorage.domain.templates;
+
+import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole;
+
+/**
+ * Represents a Object Access Control Resource.
+ *
+ * @see <a href= "https://developers.google.com/storage/docs/json_api/v1/objectAccessControls"/>
+ */
+public class ObjectAccessControlsTemplate {
+
+ protected String entity;
+ protected ObjectRole role;
+
+ public ObjectAccessControlsTemplate role(ObjectRole role) {
+ this.role = role;
+ return this;
+ }
+
+ public ObjectAccessControlsTemplate entity(String entity) {
+ this.entity = entity;
+ return this;
+ }
+
+ public String getEntity() {
+ return entity;
+ }
+
+ public ObjectRole getRole() {
+ return role;
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+
+ public static ObjectAccessControlsTemplate fromObjectAccessControlsTemplate(
+ ObjectAccessControlsTemplate objectAccessControlsTemplate) {
+ return Builder.fromObjectAccessControlsTemplate(objectAccessControlsTemplate);
+ }
+
+ public static class Builder {
+
+ public static ObjectAccessControlsTemplate fromObjectAccessControlsTemplate(ObjectAccessControlsTemplate in) {
+ return new ObjectAccessControlsTemplate().role(in.getRole()).entity(in.getEntity());
+ }
+
+ }
+}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
index 2d56cae..007073c 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApi.java
@@ -30,9 +30,9 @@ import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import org.jclouds.googlecloudstorage.binders.BucketAccessControlsBinder;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
import org.jclouds.googlecloudstorage.domain.ListBucketAccessControls;
-import org.jclouds.googlecloudstorage.handlers.BucketAccessControlsBinder;
import org.jclouds.http.HttpResponse;
import org.jclouds.javax.annotation.Nullable;
import org.jclouds.oauth.v2.config.OAuthScopes;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java
index 4b00b20..3f48520 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/BucketApi.java
@@ -32,10 +32,10 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import org.jclouds.googlecloudstorage.binders.BucketBinder;
import org.jclouds.googlecloudstorage.domain.Bucket;
-import org.jclouds.googlecloudstorage.domain.BucketTemplate;
import org.jclouds.googlecloudstorage.domain.ListPage;
-import org.jclouds.googlecloudstorage.handlers.BucketBinder;
+import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.googlecloudstorage.options.DeleteBucketOptions;
import org.jclouds.googlecloudstorage.options.GetBucketOptions;
import org.jclouds.googlecloudstorage.options.InsertBucketOptions;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
index 91d1f52..29e5a89 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApi.java
@@ -31,12 +31,12 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import org.jclouds.googlecloudstorage.binders.DefaultObjectAccessControlsBinder;
import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.ListDefaultObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControlsTemplate;
import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole;
-import org.jclouds.googlecloudstorage.handlers.DefaultObjectAccessControlsBinder;
import org.jclouds.http.HttpResponse;
+import org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate;
import org.jclouds.javax.annotation.Nullable;
import org.jclouds.oauth.v2.config.OAuthScopes;
import org.jclouds.oauth.v2.filters.OAuthAuthenticationFilter;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
index 87503a2..2836c8f 100644
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
+++ b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApi.java
@@ -31,10 +31,10 @@ import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
import org.jclouds.Fallbacks.NullOnNotFoundOr404;
+import org.jclouds.googlecloudstorage.binders.ObjectAccessControlsBinder;
import org.jclouds.googlecloudstorage.domain.ListObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.ObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.ObjectAccessControlsTemplate;
-import org.jclouds.googlecloudstorage.handlers.ObjectAccessControlsBinder;
+import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
import org.jclouds.javax.annotation.Nullable;
import org.jclouds.oauth.v2.config.OAuthScopes;
import org.jclouds.oauth.v2.filters.OAuthAuthenticator;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketAccessControlsBinder.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketAccessControlsBinder.java
deleted file mode 100644
index b274c73..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketAccessControlsBinder.java
+++ /dev/null
@@ -1,42 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.handlers;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.MapBinder;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-public class BucketAccessControlsBinder implements MapBinder {
-
- @Inject
- private BindToJsonPayload jsonBinder;
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) {
- BucketAccessControls postBucket = (BucketAccessControls) postParams.get("BACLInsert");
- return bindToRequest(request, postBucket);
- }
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- return jsonBinder.bindToRequest(request, input);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketBinder.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketBinder.java
deleted file mode 100644
index fab330d..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/BucketBinder.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.handlers;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-
-import org.jclouds.googlecloudstorage.domain.BucketTemplate;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.MapBinder;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-public class BucketBinder implements MapBinder {
-
- @Inject
- private BindToJsonPayload jsonBinder;
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) throws IllegalArgumentException {
- BucketTemplate postBucket = (BucketTemplate) postParams.get("template");
- return bindToRequest(request, postBucket);
- }
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- return jsonBinder.bindToRequest(request, input);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/DefaultObjectAccessControlsBinder.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/DefaultObjectAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/DefaultObjectAccessControlsBinder.java
deleted file mode 100644
index 97ea524..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/DefaultObjectAccessControlsBinder.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.handlers;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControlsTemplate;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.MapBinder;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-public class DefaultObjectAccessControlsBinder implements MapBinder {
-
- @Inject
- private BindToJsonPayload jsonBinder;
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) {
- DefaultObjectAccessControlsTemplate template = (DefaultObjectAccessControlsTemplate) postParams.get("template");
- return bindToRequest(request, template);
- }
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- return jsonBinder.bindToRequest(request, input);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/ObjectAccessControlsBinder.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/ObjectAccessControlsBinder.java b/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/ObjectAccessControlsBinder.java
deleted file mode 100644
index e1f4eda..0000000
--- a/google-cloud-storage/src/main/java/org/jclouds/googlecloudstorage/handlers/ObjectAccessControlsBinder.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements. See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.jclouds.googlecloudstorage.handlers;
-
-import java.util.Map;
-
-import javax.inject.Inject;
-
-import org.jclouds.googlecloudstorage.domain.ObjectAccessControlsTemplate;
-import org.jclouds.http.HttpRequest;
-import org.jclouds.rest.MapBinder;
-import org.jclouds.rest.binders.BindToJsonPayload;
-
-public class ObjectAccessControlsBinder implements MapBinder {
-
- @Inject
- private BindToJsonPayload jsonBinder;
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Map<String, Object> postParams) throws IllegalArgumentException{
- ObjectAccessControlsTemplate postBucket = (ObjectAccessControlsTemplate) postParams.get("template");
- return bindToRequest(request, postBucket);
- }
-
- @Override
- public <R extends HttpRequest> R bindToRequest(R request, Object input) {
- return jsonBinder.bindToRequest(request, input);
- }
-}
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
index ea3010c..ec0f97f 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketAccessControlsApiLiveTest.java
@@ -23,10 +23,10 @@ import java.util.UUID;
import org.jclouds.googlecloudstorage.domain.Bucket;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.BucketTemplate;
import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Role;
import org.jclouds.googlecloudstorage.domain.ListBucketAccessControls;
import org.jclouds.googlecloudstorage.domain.Resource.Kind;
+import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest;
import org.testng.annotations.Test;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
index a78bcb3..ad9f719 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiExpectTest.java
@@ -25,9 +25,9 @@ import static org.testng.AssertJUnit.assertNull;
import javax.ws.rs.core.MediaType;
import org.jclouds.googlecloudstorage.domain.BucketAccessControls;
-import org.jclouds.googlecloudstorage.domain.BucketTemplate;
import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Projection;
import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Role;
+import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest;
import org.jclouds.googlecloudstorage.options.GetBucketOptions;
import org.jclouds.googlecloudstorage.options.ListOptions;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
index 6726aee..7b0f268 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/BucketApiLiveTest.java
@@ -29,7 +29,6 @@ import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Location;
import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole;
import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Projection;
import org.jclouds.googlecloudstorage.domain.Bucket;
-import org.jclouds.googlecloudstorage.domain.BucketTemplate;
import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.Role;
import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.StorageClass;
@@ -38,6 +37,7 @@ import org.jclouds.googlecloudstorage.domain.Resource.Kind;
import org.jclouds.googlecloudstorage.domain.internal.BucketCors;
import org.jclouds.googlecloudstorage.domain.internal.Logging;
import org.jclouds.googlecloudstorage.domain.internal.Versioning;
+import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest;
import org.jclouds.googlecloudstorage.options.DeleteBucketOptions;
import org.jclouds.googlecloudstorage.options.GetBucketOptions;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
index 987605d..bf946ff 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiExpectTest.java
@@ -24,8 +24,8 @@ import static org.testng.AssertJUnit.assertNull;
import javax.ws.rs.core.MediaType;
import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControlsTemplate;
import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole;
+import org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest;
import org.jclouds.googlecloudstorage.parse.DefaultObjectAclGetTest;
import org.jclouds.googlecloudstorage.parse.DefaultObjectAclInsertTest;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
index 0f31914..ad908f5 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/DefaultObjectAccessControlsApiLiveTest.java
@@ -22,12 +22,12 @@ import static org.testng.Assert.assertNotNull;
import java.util.UUID;
import org.jclouds.googlecloudstorage.domain.Bucket;
-import org.jclouds.googlecloudstorage.domain.BucketTemplate;
import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControls;
-import org.jclouds.googlecloudstorage.domain.DefaultObjectAccessControlsTemplate;
import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole;
import org.jclouds.googlecloudstorage.domain.ListDefaultObjectAccessControls;
import org.jclouds.googlecloudstorage.domain.Resource.Kind;
+import org.jclouds.googlecloudstorage.domain.templates.BucketTemplate;
+import org.jclouds.googlecloudstorage.domain.templates.DefaultObjectAccessControlsTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiLiveTest;
import org.testng.annotations.Test;
http://git-wip-us.apache.org/repos/asf/jclouds-labs-google/blob/19b43e5e/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
----------------------------------------------------------------------
diff --git a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
index 7f87e45..adc0dbe 100644
--- a/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
+++ b/google-cloud-storage/src/test/java/org/jclouds/googlecloudstorage/features/ObjectAccessControlsApiExpectTest.java
@@ -24,7 +24,7 @@ import static org.testng.AssertJUnit.assertNull;
import javax.ws.rs.core.MediaType;
import org.jclouds.googlecloudstorage.domain.DomainResourceRefferences.ObjectRole;
-import org.jclouds.googlecloudstorage.domain.ObjectAccessControlsTemplate;
+import org.jclouds.googlecloudstorage.domain.templates.ObjectAccessControlsTemplate;
import org.jclouds.googlecloudstorage.internal.BaseGoogleCloudStorageApiExpectTest;
import org.jclouds.googlecloudstorage.parse.ObjectAclGetTest;
import org.jclouds.googlecloudstorage.parse.ObjectAclInsertTest;