diff --git a/gcloud-java-resource-manager/README.md b/gcloud-java-resource-manager/README.md
new file mode 100644
index 000000000000..c52c47eb8d29
--- /dev/null
+++ b/gcloud-java-resource-manager/README.md
@@ -0,0 +1,79 @@
+Google Cloud Java Client for Resource Manager
+=============================================
+
+Java idiomatic client for [Google Cloud Resource Manager] (https://cloud.google.com/resource-manager/).
+
+[![Build Status](https://travis-ci.org/GoogleCloudPlatform/gcloud-java.svg?branch=master)](https://travis-ci.org/GoogleCloudPlatform/gcloud-java)
+[![Coverage Status](https://coveralls.io/repos/GoogleCloudPlatform/gcloud-java/badge.svg?branch=master)](https://coveralls.io/r/GoogleCloudPlatform/gcloud-java?branch=master)
+
+
+
+- [Homepage] (https://googlecloudplatform.github.io/gcloud-java/)
+
+
+
+> Note: This client is a work-in-progress, and may occasionally
+> make backwards-incompatible changes.
+
+Quickstart
+----------
+This library is currently under development and will be available soon!
+
+
+
+
+Authentication
+--------------
+
+See the [Authentication](https://github.com/GoogleCloudPlatform/gcloud-java#authentication) section in the base directory's README.
+
+About Google Cloud Resource Manager
+-----------------------------------
+
+Google [Cloud Resource Manager][cloud-resourcemanager] provides a programmatic way to manage your Google Cloud Platform projects. Google Cloud Resource Manager is currently in beta and may occasionally make backwards incompatible changes.
+
+Be sure to activate the Google Cloud Resource Manager API on the Developer's Console to use Resource Manager from your project.
+
+See the ``gcloud-java`` API [Resource Manager documentation][resourcemanager-api] to learn how to interact
+with the Cloud Resource Manager using this client Library.
+
+
+
+Java Versions
+-------------
+
+Java 7 or above is required for using this client.
+
+
+
+Versioning
+----------
+
+This library follows [Semantic Versioning] (http://semver.org/).
+
+It is currently in major version zero (``0.y.z``), which means that anything
+may change at any time and the public API should not be considered
+stable.
+
+Contributing
+------------
+
+Contributions to this library are always welcome and highly encouraged.
+
+See [CONTRIBUTING] for more information on how to get started.
+
+License
+-------
+
+Apache 2.0 - See [LICENSE] for more information.
+
+
+[CONTRIBUTING]:https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/CONTRIBUTING.md
+[LICENSE]: https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/LICENSE
+[TESTING]: https://github.com/GoogleCloudPlatform/gcloud-java/blob/master/TESTING.md#testing-code-that-uses-resource-manager
+[cloud-platform]: https://cloud.google.com/
+[cloud-resourcemanager]: https://cloud.google.com/resource-manager/docs
+[resourcemanager-api]: http://googlecloudplatform.github.io/gcloud-java/apidocs/index.html?com/google/gcloud/resourcemanager/package-summary.html
+
diff --git a/gcloud-java-resource-manager/pom.xml b/gcloud-java-resource-manager/pom.xml
new file mode 100644
index 000000000000..799348379969
--- /dev/null
+++ b/gcloud-java-resource-manager/pom.xml
@@ -0,0 +1,44 @@
+
+
+ 4.0.0
+ com.google.gcloud
+ gcloud-java-resource-manager
+ jar
+ GCloud Java resource manager
+
+ Java idiomatic client for Google Cloud Resource Manager.
+
+
+ com.google.gcloud
+ gcloud-java-pom
+ 0.0.11-SNAPSHOT
+
+
+ gcloud-java-resource-manager
+
+
+
+ ${project.groupId}
+ gcloud-java-core
+ ${project.version}
+
+
+ com.google.apis
+ google-api-services-cloudresourcemanager
+ v1beta1-rev6-1.19.0
+ compile
+
+
+ junit
+ junit
+ 4.12
+ test
+
+
+ org.easymock
+ easymock
+ 3.3
+ test
+
+
+
diff --git a/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/ResourceManager.java b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/ResourceManager.java
new file mode 100644
index 000000000000..8a9966faa653
--- /dev/null
+++ b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/ResourceManager.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed 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 com.google.gcloud.resourcemanager;
+
+import com.google.gcloud.Service;
+
+/**
+ * An interface for Google Cloud Resource Manager.
+ *
+ * @see Google Cloud Resource Manager
+ */
+public interface ResourceManager extends Service {
+
+ public static final String DEFAULT_CONTENT_TYPE = "application/octet-stream";
+
+ // TODO(ajaykannan): Fix me! Add in missing methods.
+}
diff --git a/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerException.java b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerException.java
new file mode 100644
index 000000000000..13812bfc5df6
--- /dev/null
+++ b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerException.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed 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 com.google.gcloud.resourcemanager;
+
+import com.google.gcloud.RetryHelper;
+import com.google.gcloud.RetryHelper.RetryHelperException;
+import com.google.gcloud.RetryHelper.RetryInterruptedException;
+
+/**
+ * Resource Manager service exception.
+ *
+ * @see Google Cloud
+ * Resource Manager error codes
+ */
+public class ResourceManagerException extends RuntimeException {
+
+ private static final long serialVersionUID = 6841689911565501705L;
+ private static final int UNKNOWN_CODE = -1;
+
+ private final int code;
+ private final boolean retryable;
+
+ public ResourceManagerException(int code, String message, boolean retryable) {
+ super(message);
+ this.code = code;
+ this.retryable = retryable;
+ }
+
+ /**
+ * Returns the code associated with this exception.
+ */
+ public int code() {
+ return code;
+ }
+
+ public boolean retryable() {
+ return retryable;
+ }
+
+ /**
+ * Translate RetryHelperException to the ResourceManagerException that caused the error. This
+ * method will always throw an exception.
+ *
+ * @throws ResourceManagerException when {@code ex} was caused by a {@code
+ * ResourceManagerException}
+ * @throws RetryInterruptedException when {@code ex} is a {@code RetryInterruptedException}
+ */
+ static ResourceManagerException translateAndThrow(RetryHelperException ex) {
+ if (ex.getCause() instanceof ResourceManagerException) {
+ throw (ResourceManagerException) ex.getCause();
+ }
+ if (ex instanceof RetryHelper.RetryInterruptedException) {
+ RetryHelper.RetryInterruptedException.propagate();
+ }
+ throw new ResourceManagerException(UNKNOWN_CODE, ex.getMessage(), false);
+ }
+}
diff --git a/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerFactory.java b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerFactory.java
new file mode 100644
index 000000000000..256fc321e4e1
--- /dev/null
+++ b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerFactory.java
@@ -0,0 +1,25 @@
+/*
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed 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 com.google.gcloud.resourcemanager;
+
+import com.google.gcloud.ServiceFactory;
+
+/**
+ * An interface for ResourceManager factories.
+ */
+public interface ResourceManagerFactory
+ extends ServiceFactory {}
diff --git a/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerOptions.java b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerOptions.java
new file mode 100644
index 000000000000..e43609be95c1
--- /dev/null
+++ b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/ResourceManagerOptions.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed 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 com.google.gcloud.resourcemanager;
+
+import com.google.common.collect.ImmutableSet;
+import com.google.gcloud.ServiceOptions;
+import com.google.gcloud.spi.ResourceManagerRpc;
+import com.google.gcloud.spi.ResourceManagerRpcFactory;
+
+import java.util.Set;
+
+public class ResourceManagerOptions
+ extends ServiceOptions {
+
+ private static final long serialVersionUID = 538303101192527452L;
+ private static final String GCRM_SCOPE = "https://www.googleapis.com/auth/cloud-platform";
+ private static final Set SCOPES = ImmutableSet.of(GCRM_SCOPE);
+
+ public static class DefaultResourceManagerFactory implements ResourceManagerFactory {
+ private static final ResourceManagerFactory INSTANCE = new DefaultResourceManagerFactory();
+
+ @Override
+ public ResourceManager create(ResourceManagerOptions options) {
+ // return new ResourceManagerImpl(options);
+ return null; // TODO(ajaykannan): Fix me!
+ }
+ }
+
+ public static class DefaultResourceManagerRpcFactory implements ResourceManagerRpcFactory {
+ private static final ResourceManagerRpcFactory INSTANCE =
+ new DefaultResourceManagerRpcFactory();
+
+ @Override
+ public ResourceManagerRpc create(ResourceManagerOptions options) {
+ // return new DefaultResourceManagerRpc(options);
+ return null; // TODO(ajaykannan): Fix me!
+ }
+ }
+
+ public static class Builder extends ServiceOptions.Builder {
+
+ private Builder() {}
+
+ private Builder(ResourceManagerOptions options) {
+ super(options);
+ }
+
+ @Override
+ public ResourceManagerOptions build() {
+ return new ResourceManagerOptions(this);
+ }
+ }
+
+ private ResourceManagerOptions(Builder builder) {
+ super(ResourceManagerFactory.class, ResourceManagerRpcFactory.class, builder);
+ }
+
+ @Override
+ protected ResourceManagerFactory defaultServiceFactory() {
+ return DefaultResourceManagerFactory.INSTANCE;
+ }
+
+ @Override
+ protected ResourceManagerRpcFactory defaultRpcFactory() {
+ return DefaultResourceManagerRpcFactory.INSTANCE;
+ }
+
+ @Override
+ protected Set scopes() {
+ return SCOPES;
+ }
+
+ @Override
+ public boolean equals(Object obj) {
+ return obj instanceof ResourceManagerOptions && baseEquals((ResourceManagerOptions) obj);
+ }
+
+ @Override
+ public Builder toBuilder() {
+ return new Builder(this);
+ }
+
+ public static Builder builder() {
+ return new Builder();
+ }
+}
diff --git a/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/package-info.java b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/package-info.java
new file mode 100644
index 000000000000..3beaa0967443
--- /dev/null
+++ b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/resourcemanager/package-info.java
@@ -0,0 +1,23 @@
+/*
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed 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.
+ */
+
+/**
+ * A client to Google Cloud Resource Manager.
+ * //TODO(ajaykannan): add code example
+ * @see Google Cloud Resource Manager
+ */
+
+package com.google.gcloud.resourcemanager;
diff --git a/gcloud-java-resource-manager/src/main/java/com/google/gcloud/spi/ResourceManagerRpc.java b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/spi/ResourceManagerRpc.java
new file mode 100644
index 000000000000..492b18a96c8a
--- /dev/null
+++ b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/spi/ResourceManagerRpc.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed 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 com.google.gcloud.spi;
+
+import com.google.api.services.cloudresourcemanager.model.Policy;
+import com.google.api.services.cloudresourcemanager.model.Project;
+import com.google.gcloud.resourcemanager.ResourceManagerException;
+
+import java.util.List;
+
+public interface ResourceManagerRpc {
+
+ class Tuple {
+ private final X x;
+ private final Y y;
+
+ private Tuple(X x, Y y) {
+ this.x = x;
+ this.y = y;
+ }
+
+ public static Tuple of(X x, Y y) {
+ return new Tuple<>(x, y);
+ }
+
+ public X x() {
+ return x;
+ }
+
+ public Y y() {
+ return y;
+ }
+ }
+
+ Project create(Project project) throws ResourceManagerException;
+
+ void delete(String projectId) throws ResourceManagerException;
+
+ Project get(String projectId) throws ResourceManagerException;
+
+ Tuple> list() throws ResourceManagerException;
+
+ Tuple> list(String filter) throws ResourceManagerException;
+
+ void undelete(String projectId) throws ResourceManagerException;
+
+ Project update(String projectId, Project project) throws ResourceManagerException;
+
+ Policy getIamPolicy(String projectId) throws ResourceManagerException;
+
+ void setIamPolicy(String projectId, Policy policy) throws ResourceManagerException;
+
+ List testIamPermissions(String projectId, List permissions)
+ throws ResourceManagerException;
+}
diff --git a/gcloud-java-resource-manager/src/main/java/com/google/gcloud/spi/ResourceManagerRpcFactory.java b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/spi/ResourceManagerRpcFactory.java
new file mode 100644
index 000000000000..c2c607c0c205
--- /dev/null
+++ b/gcloud-java-resource-manager/src/main/java/com/google/gcloud/spi/ResourceManagerRpcFactory.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright 2015 Google Inc. All Rights Reserved.
+ *
+ * Licensed 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 com.google.gcloud.spi;
+
+import com.google.gcloud.resourcemanager.ResourceManagerOptions;
+
+/**
+ * An interface for Resource Manager RPC factory.
+ * Implementation will be loaded via {@link java.util.ServiceLoader}.
+ */
+public interface ResourceManagerRpcFactory
+ extends ServiceRpcFactory {
+}