{"action":"created","comment":{"url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls/comments/31418958","id":31418958,"diff_hunk":"@@ -0,0 +1,239 @@\n+# #######\n+# Copyright (c) 2014 GigaSpaces Technologies Ltd. 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+from plugin.gcp import utils\n+from plugin.gcp.service import GoogleCloudPlatform\n+from plugin.gcp.service import GCPError\n+from plugin.gcp.service import blocking\n+\n+\n+class Instance(GoogleCloudPlatform):\n+    ACCESS_CONFIG = 'External NAT'\n+    ACCESS_CONFIG_TYPE = 'ONE_TO_ONE_NAT'\n+    NETWORK_INTERFACE = 'nic0'\n+    STANDARD_MACHINE_TYPE = 'n1-standard-1'\n+\n+    def __init__(self,\n+                 config,\n+                 logger,\n+                 instance_name,\n+                 image=None,\n+                 machine_type=None,\n+                 startup_script=None,\n+                 external_ip=False,\n+                 tags=[]):\n+        \"\"\"\n+        Create Instance object\n+\n+        :param config: gcp auth file\n+        :param logger: logger object\n+        :param instance_name: name of the instance\n+        :param image: image id in Google Cloud Platform\n+        :param machine_type: machine type on GCP, default None\n+        :param startup_script: shell script text to be run on instance startup,\n+        default None\n+        :param external_ip: boolean external ip indicator, default False\n+        :param tags: tags for the instance, default []\n+        \"\"\"\n+        super(Instance, self).__init__(config, logger)\n+        self.project = config['project']\n+        self.zone = config['zone']\n+        self.name = utils.get_gcp_resource_name(instance_name)\n+        self.image = image\n+        self.machine_type = machine_type \\\n+            if machine_type else self.STANDARD_MACHINE_TYPE\n+        self.network = config['network']\n+        self.startup_script = startup_script\n+        self.tags = tags\n+        self.externalIP = external_ip\n+\n+    @blocking(True)\n+    def create(self):\n+        \"\"\"\n+        Create GCP VM instance with given parameters.\n+        Zone operation.\n+\n+        :return: REST response with operation responsible for the instance\n+        creation process and its status\n+        :raise: GCPError if there is any problem with startup script file:\n+        e.g. the file is not under the given path or it has wrong permissions\n+        \"\"\"\n+        self.logger.info('Create instance')\n+        body = self.to_dict()\n+\n+        if self.startup_script is not None:\n+            try:\n+                with open(self.startup_script, 'r') as script:\n+                    item = {\n+                        'key': 'startup-script',\n+                        'value': script.read()\n+                    }\n+                    body['metadata']['items'].append(item)\n+            except IOError as e:\n+                self.logger.error(str(e))\n+                raise GCPError(str(e))\n+\n+        return self.compute.instances().insert(\n+            project=self.project,\n+            zone=self.zone,\n+            body=body).execute()\n+\n+    @blocking(True)\n+    def delete(self):\n+        \"\"\"\n+        Delete GCP instance.\n+        Zone operation.\n+\n+        :return: REST response with operation responsible for the instance\n+        deletion process and its status\n+        \"\"\"\n+        self.logger.info('Delete instance')\n+        return self.compute.instances().delete(\n+            project=self.project,\n+            zone=self.zone,\n+            instance=self.name).execute()\n+\n+    @blocking(True)\n+    def set_tags(self, tags):\n+        \"\"\"\n+        Set GCP instance tags.\n+        Zone operation.\n+\n+        :return: REST response with operation responsible for the instance\n+        tag setting process and its status\n+        \"\"\"\n+        # each tag should be RFC1035 compliant\n+        self.logger.info('Set tags')\n+        self.tags.extend(tags)\n+        self.tags = list(set(self.tags))\n+        fingerprint = self.get()[\"tags\"][\"fingerprint\"]\n+        return self.compute.instances().setTags(\n+            project=self.project,\n+            zone=self.zone,\n+            instance=self.name,\n+            body={\"items\": self.tags, \"fingerprint\": fingerprint}).execute()\n+\n+    @blocking(True)\n+    def remove_tags(self, tags):\n+        \"\"\"\n+        Remove GCP instance tags.\n+        Zone operation.\n+\n+        :return: REST response with operation responsible for the instance\n+        tag removal process and its status\n+        \"\"\"\n+        # each tag should be RFC1035 compliant\n+        self.logger.info('Remove tags')\n+        self.tags = [tag for tag in self.tags if tag not in tags]\n+        fingerprint = self.get()[\"tags\"][\"fingerprint\"]\n+        return self.compute.instances().setTags(\n+            project=self.project,\n+            zone=self.zone,\n+            instance=self.name,\n+            body={\"items\": self.tags, \"fingerprint\": fingerprint}).execute()\n+\n+    def get(self):\n+        \"\"\"\n+        Get GCP instance details.\n+        \"\"\"\n+        self.logger.info(\"Get instance details\")\n+        return self.compute.instances().get(\n+            instance=self.name,\n+            project=self.project,\n+            zone=self.zone).execute()\n+\n+    @blocking(True)\n+    def add_access_config(self):\n+        \"\"\"\n+        Set GCP instance external IP.\n+        Zone operation.\n+\n+        :return: REST response with operation responsible for the instance\n+        external IP setting process and its status\n+        \"\"\"\n+        body = {\"kind\": \"compute#accessConfig\",\n+                \"name\": self.ACCESS_CONFIG,\n+                \"type\": self.ACCESS_CONFIG_TYPE}\n+        return self.compute.instances().addAccessConfig(\n+            project=self.project,\n+            instance=self.name,\n+            zone=self.zone,\n+            networkInterface=self.NETWORK_INTERFACE,","path":"plugin/gcp/instance.py","position":169,"original_position":172,"commit_id":"88f6d460b50a8c4653a33a4f61031251f38a1128","original_commit_id":"23dcf5eb9750ff769b26a149e2763f09dbb37e47","user":{"login":"noakup","id":1745412,"avatar_url":"https://avatars.githubusercontent.com/u/1745412?v=3","gravatar_id":"","url":"https://api.github.com/users/noakup","html_url":"https://github.com/noakup","followers_url":"https://api.github.com/users/noakup/followers","following_url":"https://api.github.com/users/noakup/following{/other_user}","gists_url":"https://api.github.com/users/noakup/gists{/gist_id}","starred_url":"https://api.github.com/users/noakup/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noakup/subscriptions","organizations_url":"https://api.github.com/users/noakup/orgs","repos_url":"https://api.github.com/users/noakup/repos","events_url":"https://api.github.com/users/noakup/events{/privacy}","received_events_url":"https://api.github.com/users/noakup/received_events","type":"User","site_admin":false},"body":":+1: ","created_at":"2015-06-01T12:00:55Z","updated_at":"2015-06-01T12:00:55Z","html_url":"https://github.com/cloudify-cosmo/cloudify-gcp-plugin/pull/6#discussion_r31418958","pull_request_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls/6","_links":{"self":{"href":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls/comments/31418958"},"html":{"href":"https://github.com/cloudify-cosmo/cloudify-gcp-plugin/pull/6#discussion_r31418958"},"pull_request":{"href":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls/6"}}},"pull_request":{"url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls/6","id":36307981,"html_url":"https://github.com/cloudify-cosmo/cloudify-gcp-plugin/pull/6","diff_url":"https://github.com/cloudify-cosmo/cloudify-gcp-plugin/pull/6.diff","patch_url":"https://github.com/cloudify-cosmo/cloudify-gcp-plugin/pull/6.patch","issue_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/issues/6","number":6,"state":"open","locked":false,"title":"Add keypair","user":{"login":"szpotona","id":9609709,"avatar_url":"https://avatars.githubusercontent.com/u/9609709?v=3","gravatar_id":"","url":"https://api.github.com/users/szpotona","html_url":"https://github.com/szpotona","followers_url":"https://api.github.com/users/szpotona/followers","following_url":"https://api.github.com/users/szpotona/following{/other_user}","gists_url":"https://api.github.com/users/szpotona/gists{/gist_id}","starred_url":"https://api.github.com/users/szpotona/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/szpotona/subscriptions","organizations_url":"https://api.github.com/users/szpotona/orgs","repos_url":"https://api.github.com/users/szpotona/repos","events_url":"https://api.github.com/users/szpotona/events{/privacy}","received_events_url":"https://api.github.com/users/szpotona/received_events","type":"User","site_admin":false},"body":"","created_at":"2015-05-27T14:15:27Z","updated_at":"2015-06-01T12:00:55Z","closed_at":null,"merged_at":null,"merge_commit_sha":"0eb09f76d05789f4d35bbafaef55adc043854a79","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls/6/commits","review_comments_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls/6/comments","review_comment_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/issues/6/comments","statuses_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/statuses/88f6d460b50a8c4653a33a4f61031251f38a1128","head":{"label":"szpotona:add_keypair","ref":"add_keypair","sha":"88f6d460b50a8c4653a33a4f61031251f38a1128","user":{"login":"szpotona","id":9609709,"avatar_url":"https://avatars.githubusercontent.com/u/9609709?v=3","gravatar_id":"","url":"https://api.github.com/users/szpotona","html_url":"https://github.com/szpotona","followers_url":"https://api.github.com/users/szpotona/followers","following_url":"https://api.github.com/users/szpotona/following{/other_user}","gists_url":"https://api.github.com/users/szpotona/gists{/gist_id}","starred_url":"https://api.github.com/users/szpotona/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/szpotona/subscriptions","organizations_url":"https://api.github.com/users/szpotona/orgs","repos_url":"https://api.github.com/users/szpotona/repos","events_url":"https://api.github.com/users/szpotona/events{/privacy}","received_events_url":"https://api.github.com/users/szpotona/received_events","type":"User","site_admin":false},"repo":{"id":34128120,"name":"cloudify-gcp-plugin","full_name":"szpotona/cloudify-gcp-plugin","owner":{"login":"szpotona","id":9609709,"avatar_url":"https://avatars.githubusercontent.com/u/9609709?v=3","gravatar_id":"","url":"https://api.github.com/users/szpotona","html_url":"https://github.com/szpotona","followers_url":"https://api.github.com/users/szpotona/followers","following_url":"https://api.github.com/users/szpotona/following{/other_user}","gists_url":"https://api.github.com/users/szpotona/gists{/gist_id}","starred_url":"https://api.github.com/users/szpotona/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/szpotona/subscriptions","organizations_url":"https://api.github.com/users/szpotona/orgs","repos_url":"https://api.github.com/users/szpotona/repos","events_url":"https://api.github.com/users/szpotona/events{/privacy}","received_events_url":"https://api.github.com/users/szpotona/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/szpotona/cloudify-gcp-plugin","description":"A Cloudify Plugin that provisions resources in Google Cloud Platform","fork":true,"url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin","forks_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/forks","keys_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/teams","hooks_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/hooks","issue_events_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/issues/events{/number}","events_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/events","assignees_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/assignees{/user}","branches_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/branches{/branch}","tags_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/tags","blobs_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/statuses/{sha}","languages_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/languages","stargazers_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/stargazers","contributors_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/contributors","subscribers_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/subscribers","subscription_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/subscription","commits_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/contents/{+path}","compare_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/merges","archive_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/downloads","issues_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/issues{/number}","pulls_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/pulls{/number}","milestones_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/milestones{/number}","notifications_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/labels{/name}","releases_url":"https://api.github.com/repos/szpotona/cloudify-gcp-plugin/releases{/id}","created_at":"2015-04-17T16:42:03Z","updated_at":"2015-04-09T17:06:58Z","pushed_at":"2015-06-01T09:59:14Z","git_url":"git://github.com/szpotona/cloudify-gcp-plugin.git","ssh_url":"git@github.com:szpotona/cloudify-gcp-plugin.git","clone_url":"https://github.com/szpotona/cloudify-gcp-plugin.git","svn_url":"https://github.com/szpotona/cloudify-gcp-plugin","homepage":null,"size":502,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"cloudify-cosmo:master","ref":"master","sha":"ce574594f5038e5f180251e58d04bf8322df6dfc","user":{"login":"cloudify-cosmo","id":6260555,"avatar_url":"https://avatars.githubusercontent.com/u/6260555?v=3","gravatar_id":"","url":"https://api.github.com/users/cloudify-cosmo","html_url":"https://github.com/cloudify-cosmo","followers_url":"https://api.github.com/users/cloudify-cosmo/followers","following_url":"https://api.github.com/users/cloudify-cosmo/following{/other_user}","gists_url":"https://api.github.com/users/cloudify-cosmo/gists{/gist_id}","starred_url":"https://api.github.com/users/cloudify-cosmo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cloudify-cosmo/subscriptions","organizations_url":"https://api.github.com/users/cloudify-cosmo/orgs","repos_url":"https://api.github.com/users/cloudify-cosmo/repos","events_url":"https://api.github.com/users/cloudify-cosmo/events{/privacy}","received_events_url":"https://api.github.com/users/cloudify-cosmo/received_events","type":"Organization","site_admin":false},"repo":{"id":33681785,"name":"cloudify-gcp-plugin","full_name":"cloudify-cosmo/cloudify-gcp-plugin","owner":{"login":"cloudify-cosmo","id":6260555,"avatar_url":"https://avatars.githubusercontent.com/u/6260555?v=3","gravatar_id":"","url":"https://api.github.com/users/cloudify-cosmo","html_url":"https://github.com/cloudify-cosmo","followers_url":"https://api.github.com/users/cloudify-cosmo/followers","following_url":"https://api.github.com/users/cloudify-cosmo/following{/other_user}","gists_url":"https://api.github.com/users/cloudify-cosmo/gists{/gist_id}","starred_url":"https://api.github.com/users/cloudify-cosmo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cloudify-cosmo/subscriptions","organizations_url":"https://api.github.com/users/cloudify-cosmo/orgs","repos_url":"https://api.github.com/users/cloudify-cosmo/repos","events_url":"https://api.github.com/users/cloudify-cosmo/events{/privacy}","received_events_url":"https://api.github.com/users/cloudify-cosmo/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/cloudify-cosmo/cloudify-gcp-plugin","description":"A Cloudify Plugin that provisions resources in Google Cloud Platform","fork":false,"url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin","forks_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/forks","keys_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/teams","hooks_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/hooks","issue_events_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/issues/events{/number}","events_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/events","assignees_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/assignees{/user}","branches_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/branches{/branch}","tags_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/tags","blobs_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/statuses/{sha}","languages_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/languages","stargazers_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/stargazers","contributors_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/contributors","subscribers_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/subscribers","subscription_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/subscription","commits_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/contents/{+path}","compare_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/merges","archive_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/downloads","issues_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/issues{/number}","pulls_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls{/number}","milestones_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/milestones{/number}","notifications_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/labels{/name}","releases_url":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/releases{/id}","created_at":"2015-04-09T17:06:58Z","updated_at":"2015-05-07T13:46:13Z","pushed_at":"2015-06-01T09:59:14Z","git_url":"git://github.com/cloudify-cosmo/cloudify-gcp-plugin.git","ssh_url":"git@github.com:cloudify-cosmo/cloudify-gcp-plugin.git","clone_url":"https://github.com/cloudify-cosmo/cloudify-gcp-plugin.git","svn_url":"https://github.com/cloudify-cosmo/cloudify-gcp-plugin","homepage":null,"size":754,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":2,"mirror_url":null,"open_issues_count":4,"forks":2,"open_issues":4,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls/6"},"html":{"href":"https://github.com/cloudify-cosmo/cloudify-gcp-plugin/pull/6"},"issue":{"href":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/issues/6"},"comments":{"href":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/issues/6/comments"},"review_comments":{"href":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls/6/comments"},"review_comment":{"href":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/pulls/6/commits"},"statuses":{"href":"https://api.github.com/repos/cloudify-cosmo/cloudify-gcp-plugin/statuses/88f6d460b50a8c4653a33a4f61031251f38a1128"}}}}