{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/comments/60484021","id":60484021,"diff_hunk":"@@ -0,0 +1,505 @@\n+/*\n+ * Copyright 2016 Google Inc. All Rights Reserved.\n+ *\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ *       http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+package com.google.gcloud.compute;\n+\n+import static com.google.common.base.Preconditions.checkNotNull;\n+\n+import com.google.common.base.Function;\n+import com.google.common.base.MoreObjects;\n+import com.google.common.collect.ImmutableList;\n+import com.google.common.collect.Lists;\n+\n+import java.io.Serializable;\n+import java.util.Arrays;\n+import java.util.List;\n+import java.util.Objects;\n+\n+/**\n+ * A network interface for a Google Compute Engine instance. Network interfaces specify how\n+ * the instance is configured to interact with other network services, such as connecting to the\n+ * internet.\n+ *\n+ * @see <a href=\"https://cloud.google.com/compute/docs/instances-and-network\">Configuring an\n+ *     Instance's IP Addresses</a>\n+ */\n+public class NetworkInterface implements Serializable {\n+\n+  static final Function<com.google.api.services.compute.model.NetworkInterface, NetworkInterface>\n+      FROM_PB_FUNCTION =\n+      new Function<com.google.api.services.compute.model.NetworkInterface,\n+          NetworkInterface>() {\n+        @Override\n+        public NetworkInterface apply(\n+            com.google.api.services.compute.model.NetworkInterface pb) {\n+          return NetworkInterface.fromPb(pb);\n+        }\n+      };\n+  static final Function<NetworkInterface, com.google.api.services.compute.model.NetworkInterface>\n+      TO_PB_FUNCTION =\n+      new Function<NetworkInterface,\n+          com.google.api.services.compute.model.NetworkInterface>() {\n+        @Override\n+        public com.google.api.services.compute.model.NetworkInterface apply(\n+            NetworkInterface networkInterface) {\n+          return networkInterface.toPb();\n+        }\n+      };\n+\n+  private static final long serialVersionUID = 936741262053605581L;\n+\n+  private final String name;\n+  private final NetworkId network;\n+  private final String networkIp;\n+  private final SubnetworkId subnetwork;\n+  private final List<AccessConfig> accessConfigurations;\n+\n+  /**\n+   * Access configuration for a Google Compute Engine instance's network interface. Objects of this\n+   * class can be used to assign either a static or an ephemeral external IP address to Google\n+   * Compute Engine instances.\n+   *\n+   * @see <a href=\"https://cloud.google.com/compute/docs/instances-and-network#reservedaddress\">\n+   *     Static external IP addresses</a>\n+   * @see <a href=\"https://cloud.google.com/compute/docs/instances-and-network#ephemeraladdress\">\n+   *     Ephemeral external IP addresses</a>\n+   */\n+  public static final class AccessConfig implements Serializable {\n+\n+    static final Function<com.google.api.services.compute.model.AccessConfig, AccessConfig>\n+        FROM_PB_FUNCTION =\n+        new Function<com.google.api.services.compute.model.AccessConfig, AccessConfig>() {\n+          @Override\n+          public AccessConfig apply(com.google.api.services.compute.model.AccessConfig pb) {\n+            return AccessConfig.fromPb(pb);\n+          }\n+        };\n+    static final Function<AccessConfig, com.google.api.services.compute.model.AccessConfig>\n+        TO_PB_FUNCTION =\n+        new Function<AccessConfig, com.google.api.services.compute.model.AccessConfig>() {\n+          @Override\n+          public com.google.api.services.compute.model.AccessConfig apply(\n+              AccessConfig instance) {\n+            return instance.toPb();\n+          }\n+        };\n+\n+    private static final long serialVersionUID = -5438060668934041567L;\n+\n+    private final String name;\n+    private final String natIp;\n+    private final Type type;\n+\n+    /**\n+     * The type of network access configuration. The only supported value is {@code ONE_TO_ONE_NAT}.\n+     */\n+    public enum Type {\n+      ONE_TO_ONE_NAT\n+    }\n+\n+    public static final class Builder {\n+\n+      private String name;\n+      private String natIp;\n+      private Type type;\n+\n+      private Builder() {}\n+\n+      private Builder(AccessConfig accessConfig) {\n+        this.name = accessConfig.name;\n+        this.natIp = accessConfig.natIp;\n+        this.type = accessConfig.type;\n+      }\n+\n+      /**\n+       * Sets the name of the access configuration.\n+       */\n+      public Builder name(String name) {\n+        this.name = name;\n+        return this;\n+      }\n+\n+      /**\n+       * Sets an external IP address associated with this instance. Specify an unused static\n+       * external IP address available to the project or leave this field undefined to use an IP\n+       * from a shared ephemeral IP address pool. If you specify a static external IP address, it\n+       * must live in the same region as the zone of the instance.\n+       *\n+       * @see <a href=\"https://cloud.google.com/compute/docs/instances-and-network#reservedaddress\">\n+       *     Ephemeral external IP addresses</a>\n+       * @see <a\n+       *     href=\"https://cloud.google.com/compute/docs/instances-and-network#ephemeraladdress\">\n+       *     Ephemeral external IP addresses</a>\n+       */\n+      public Builder natIp(String natIp) {\n+        this.natIp = natIp;\n+        return this;\n+      }\n+\n+      /**\n+       * Sets the type of the access configuration. The only supported value is\n+       * {@link Type#ONE_TO_ONE_NAT}.\n+       */\n+      public Builder type(Type type) {\n+        this.type = type;\n+        return this;\n+      }\n+\n+      /**\n+       * Creates an {@code AccessConfig} object.\n+       */\n+      public AccessConfig build() {\n+        return new AccessConfig(this);\n+      }\n+    }\n+\n+    AccessConfig(Builder builder) {\n+      this.name = builder.name;\n+      this.natIp = builder.natIp;\n+      this.type = builder.type;\n+    }\n+\n+    /**\n+     * Returns the name of the access configuration.\n+     */\n+    public String name() {\n+      return name;\n+    }\n+\n+    /**\n+     * Returns an external IP address associated with this instance.\n+     */\n+    public String natIp() {\n+      return natIp;\n+    }\n+\n+    /**\n+     * Returns the type of network access configuration. The only supported value is\n+     * {@link Type#ONE_TO_ONE_NAT}.\n+     */\n+    public Type type() {\n+      return type;\n+    }\n+\n+    /**\n+     * Returns a builder for the current access configuration.\n+     */\n+    public Builder toBuilder() {\n+      return new Builder(this);\n+    }\n+\n+    @Override\n+    public String toString() {\n+      return MoreObjects.toStringHelper(this)\n+          .add(\"name\", name)\n+          .add(\"natIp\", natIp)\n+          .add(\"type\", type)\n+          .toString();\n+    }\n+\n+    @Override\n+    public int hashCode() {\n+      return Objects.hash(name, natIp, type);\n+    }\n+\n+    @Override\n+    public boolean equals(Object obj) {\n+      return obj == this\n+          || obj instanceof AccessConfig\n+          && Objects.equals(toPb(), ((AccessConfig) obj).toPb());\n+    }\n+\n+    com.google.api.services.compute.model.AccessConfig toPb() {\n+      com.google.api.services.compute.model.AccessConfig accessConfigPb =\n+          new com.google.api.services.compute.model.AccessConfig();\n+      accessConfigPb.setName(name);\n+      accessConfigPb.setNatIP(natIp);\n+      if (type != null) {\n+        accessConfigPb.setType(type.name());\n+      }\n+      return accessConfigPb;\n+    }\n+\n+    /**\n+     * Returns a builder for an {@code AccessConfig} object.\n+     */\n+    public static Builder builder() {\n+      return new Builder();\n+    }\n+\n+    /**\n+     * Returns an {@code AccessConfig} object given the static external IP address.\n+     *\n+     * @see <a href=\"https://cloud.google.com/compute/docs/instances-and-network#reservedaddress\">\n+     *     Static external IP addresses</a>\n+     */\n+    public static AccessConfig of(String natIp) {\n+      return builder().natIp(natIp).build();\n+    }\n+\n+    /**\n+     * Returns an {@code AccessConfig} object. IP address for this access configuration will be\n+     * taken from a pool of ephemeral addresses.\n+     *\n+     * @see <a href=\"https://cloud.google.com/compute/docs/instances-and-network#ephemeraladdress\">\n+     *     Ephemeral external IP addresses</a>\n+     */\n+    public static AccessConfig of() {","path":"gcloud-java-compute/src/main/java/com/google/gcloud/compute/NetworkInterface.java","position":260,"original_position":260,"commit_id":"bae992272ba647bf63a79941e3b27eb228fc536f","original_commit_id":"bae992272ba647bf63a79941e3b27eb228fc536f","user":{"login":"mziccard","id":450933,"avatar_url":"https://avatars.githubusercontent.com/u/450933?v=3","gravatar_id":"","url":"https://api.github.com/users/mziccard","html_url":"https://github.com/mziccard","followers_url":"https://api.github.com/users/mziccard/followers","following_url":"https://api.github.com/users/mziccard/following{/other_user}","gists_url":"https://api.github.com/users/mziccard/gists{/gist_id}","starred_url":"https://api.github.com/users/mziccard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mziccard/subscriptions","organizations_url":"https://api.github.com/users/mziccard/orgs","repos_url":"https://api.github.com/users/mziccard/repos","events_url":"https://api.github.com/users/mziccard/events{/privacy}","received_events_url":"https://api.github.com/users/mziccard/received_events","type":"User","site_admin":false},"body":"Yes it is. If you pass that empty access config an ephemeral address is associated to the instance. Instead, if you pass no access configs at all no address is associated to the instance.","created_at":"2016-04-20T20:44:58Z","updated_at":"2016-04-20T20:44:58Z","html_url":"https://github.com/GoogleCloudPlatform/gcloud-java/pull/947#discussion_r60484021","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/947","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/comments/60484021"},"html":{"href":"https://github.com/GoogleCloudPlatform/gcloud-java/pull/947#discussion_r60484021"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/947"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/947","id":67205590,"html_url":"https://github.com/GoogleCloudPlatform/gcloud-java/pull/947","diff_url":"https://github.com/GoogleCloudPlatform/gcloud-java/pull/947.diff","patch_url":"https://github.com/GoogleCloudPlatform/gcloud-java/pull/947.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues/947","number":947,"state":"open","locked":false,"title":"Add NetworkInterface, AccessConfig classes and related tests","user":{"login":"mziccard","id":450933,"avatar_url":"https://avatars.githubusercontent.com/u/450933?v=3","gravatar_id":"","url":"https://api.github.com/users/mziccard","html_url":"https://github.com/mziccard","followers_url":"https://api.github.com/users/mziccard/followers","following_url":"https://api.github.com/users/mziccard/following{/other_user}","gists_url":"https://api.github.com/users/mziccard/gists{/gist_id}","starred_url":"https://api.github.com/users/mziccard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mziccard/subscriptions","organizations_url":"https://api.github.com/users/mziccard/orgs","repos_url":"https://api.github.com/users/mziccard/repos","events_url":"https://api.github.com/users/mziccard/events{/privacy}","received_events_url":"https://api.github.com/users/mziccard/received_events","type":"User","site_admin":false},"body":"","created_at":"2016-04-20T15:16:36Z","updated_at":"2016-04-20T20:44:58Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6e67ac7962b58450da2f00aedd5794b05c04929f","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/947/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/947/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues/947/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/statuses/bae992272ba647bf63a79941e3b27eb228fc536f","head":{"label":"mziccard:compute-network-interface","ref":"compute-network-interface","sha":"bae992272ba647bf63a79941e3b27eb228fc536f","user":{"login":"mziccard","id":450933,"avatar_url":"https://avatars.githubusercontent.com/u/450933?v=3","gravatar_id":"","url":"https://api.github.com/users/mziccard","html_url":"https://github.com/mziccard","followers_url":"https://api.github.com/users/mziccard/followers","following_url":"https://api.github.com/users/mziccard/following{/other_user}","gists_url":"https://api.github.com/users/mziccard/gists{/gist_id}","starred_url":"https://api.github.com/users/mziccard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mziccard/subscriptions","organizations_url":"https://api.github.com/users/mziccard/orgs","repos_url":"https://api.github.com/users/mziccard/repos","events_url":"https://api.github.com/users/mziccard/events{/privacy}","received_events_url":"https://api.github.com/users/mziccard/received_events","type":"User","site_admin":false},"repo":{"id":40965279,"name":"gcloud-java","full_name":"mziccard/gcloud-java","owner":{"login":"mziccard","id":450933,"avatar_url":"https://avatars.githubusercontent.com/u/450933?v=3","gravatar_id":"","url":"https://api.github.com/users/mziccard","html_url":"https://github.com/mziccard","followers_url":"https://api.github.com/users/mziccard/followers","following_url":"https://api.github.com/users/mziccard/following{/other_user}","gists_url":"https://api.github.com/users/mziccard/gists{/gist_id}","starred_url":"https://api.github.com/users/mziccard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mziccard/subscriptions","organizations_url":"https://api.github.com/users/mziccard/orgs","repos_url":"https://api.github.com/users/mziccard/repos","events_url":"https://api.github.com/users/mziccard/events{/privacy}","received_events_url":"https://api.github.com/users/mziccard/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/mziccard/gcloud-java","description":"Google Cloud Client Library for Java","fork":true,"url":"https://api.github.com/repos/mziccard/gcloud-java","forks_url":"https://api.github.com/repos/mziccard/gcloud-java/forks","keys_url":"https://api.github.com/repos/mziccard/gcloud-java/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mziccard/gcloud-java/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mziccard/gcloud-java/teams","hooks_url":"https://api.github.com/repos/mziccard/gcloud-java/hooks","issue_events_url":"https://api.github.com/repos/mziccard/gcloud-java/issues/events{/number}","events_url":"https://api.github.com/repos/mziccard/gcloud-java/events","assignees_url":"https://api.github.com/repos/mziccard/gcloud-java/assignees{/user}","branches_url":"https://api.github.com/repos/mziccard/gcloud-java/branches{/branch}","tags_url":"https://api.github.com/repos/mziccard/gcloud-java/tags","blobs_url":"https://api.github.com/repos/mziccard/gcloud-java/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mziccard/gcloud-java/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mziccard/gcloud-java/git/refs{/sha}","trees_url":"https://api.github.com/repos/mziccard/gcloud-java/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mziccard/gcloud-java/statuses/{sha}","languages_url":"https://api.github.com/repos/mziccard/gcloud-java/languages","stargazers_url":"https://api.github.com/repos/mziccard/gcloud-java/stargazers","contributors_url":"https://api.github.com/repos/mziccard/gcloud-java/contributors","subscribers_url":"https://api.github.com/repos/mziccard/gcloud-java/subscribers","subscription_url":"https://api.github.com/repos/mziccard/gcloud-java/subscription","commits_url":"https://api.github.com/repos/mziccard/gcloud-java/commits{/sha}","git_commits_url":"https://api.github.com/repos/mziccard/gcloud-java/git/commits{/sha}","comments_url":"https://api.github.com/repos/mziccard/gcloud-java/comments{/number}","issue_comment_url":"https://api.github.com/repos/mziccard/gcloud-java/issues/comments{/number}","contents_url":"https://api.github.com/repos/mziccard/gcloud-java/contents/{+path}","compare_url":"https://api.github.com/repos/mziccard/gcloud-java/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mziccard/gcloud-java/merges","archive_url":"https://api.github.com/repos/mziccard/gcloud-java/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mziccard/gcloud-java/downloads","issues_url":"https://api.github.com/repos/mziccard/gcloud-java/issues{/number}","pulls_url":"https://api.github.com/repos/mziccard/gcloud-java/pulls{/number}","milestones_url":"https://api.github.com/repos/mziccard/gcloud-java/milestones{/number}","notifications_url":"https://api.github.com/repos/mziccard/gcloud-java/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mziccard/gcloud-java/labels{/name}","releases_url":"https://api.github.com/repos/mziccard/gcloud-java/releases{/id}","deployments_url":"https://api.github.com/repos/mziccard/gcloud-java/deployments","created_at":"2015-08-18T10:16:17Z","updated_at":"2016-01-12T12:42:25Z","pushed_at":"2016-04-20T19:50:50Z","git_url":"git://github.com/mziccard/gcloud-java.git","ssh_url":"git@github.com:mziccard/gcloud-java.git","clone_url":"https://github.com/mziccard/gcloud-java.git","svn_url":"https://github.com/mziccard/gcloud-java","homepage":"http://googlecloudplatform.github.io/gcloud-java/site/0.0.6/","size":34892,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"GoogleCloudPlatform:compute-alpha","ref":"compute-alpha","sha":"a05edf3291050c4e58f2fb6bdaacf1cb1d61e128","user":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"repo":{"id":26181278,"name":"gcloud-java","full_name":"GoogleCloudPlatform/gcloud-java","owner":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/GoogleCloudPlatform/gcloud-java","description":"Google Cloud Client Library for Java","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/deployments","created_at":"2014-11-04T17:57:16Z","updated_at":"2016-04-16T14:36:21Z","pushed_at":"2016-04-20T20:08:15Z","git_url":"git://github.com/GoogleCloudPlatform/gcloud-java.git","ssh_url":"git@github.com:GoogleCloudPlatform/gcloud-java.git","clone_url":"https://github.com/GoogleCloudPlatform/gcloud-java.git","svn_url":"https://github.com/GoogleCloudPlatform/gcloud-java","homepage":"http://googlecloudplatform.github.io/gcloud-java/","size":224225,"stargazers_count":89,"watchers_count":89,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":47,"mirror_url":null,"open_issues_count":145,"forks":47,"open_issues":145,"watchers":89,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/947"},"html":{"href":"https://github.com/GoogleCloudPlatform/gcloud-java/pull/947"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues/947"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/issues/947/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/947/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/pulls/947/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-java/statuses/bae992272ba647bf63a79941e3b27eb228fc536f"}}}}