{"action":"created","comment":{"url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls/comments/98413368","pull_request_review_id":19051853,"id":98413368,"diff_hunk":"@@ -0,0 +1,1277 @@\n+---\n+layout: bt_wiki\n+title: Google Cloud Plugin\n+category: Plugins\n+draft: false\n+weight: 100\n+---\n+{{% gsSummary %}} {{% /gsSummary %}}\n+\n+The GCP plugin allows users to use Cloudify to manage cloud resources on GCP. See below for currently supported resource types.\n+\n+Be aware that some services and resources vary in availability between regions and accounts.\n+\n+\n+# Plugin Requirements\n+\n+* Python versions:\n+  * 2.7.x\n+* [GCP](https://cloud.google.com/) account\n+\n+\n+# Compatibility\n+\n+The GCP plugin uses the official [Google API Python Client](https://github.com/google/google-api-python-client).\n+\n+\n+\n+# Terminology\n+\n+* Region refers to a general geographical area, such as \"Central Europe\" or \"East US\".\n+* Zone refers to a distinct area within a region. Zones are usually referred to as '{region}-{zone}, i.e. 'us-east1-b' is a zone within the reigon 'us-east1'.\n+\n+\n+# Types\n+\n+The following are [node type]({{< relref \"blueprints/spec-node-types.md\" >}}) definitions. Nodes describe resources in your cloud infrastructure. For more information, see [node type]({{< relref \"blueprints/spec-node-types.md\" >}}).\n+\n+## Common Properties\n+\n+All cloud resource nodes have common properties:\n+\n+**Properties**\n+\n+Every time you manage a resource with Cloudify,\n+it creates one or more connections to the GCP API.\n+You specify the configuration for these clients using the `gcp_config` property.\n+It should be a dictionary, with the following values:\n+\n+  * `project` the name of your project on GCP.\n+  * `zone` the default zone which will be used,\n+    unless overridden by a defined zone/subnetwork.\n+  * `auth` the JSON key file provided by GCP.\n+    Can either be the contents of the JSON file, or a file path.\n+    This should be in the format provided by the GCP credentials JSON export (https://developers.google.com/identity/protocols/OAuth2ServiceAccount#creatinganaccount)\n+  * (optional) `network` the default network to place network-scoped nodes in.\n+    The default network (`default`) will be used if this is not specified.\n+\n+Example\n+{{< gsHighlight  yaml  >}}\n+...\n+node_types:\n+  my_vm:\n+    type: cloudify.gcp.nodes.Instance\n+    properties:\n+      image_id: <GCP image ID>\n+      gcp_config:\n+        project: a-gcp-project-123456\n+        zone: us-east1-b\n+        auth: <GCP auth JSON file>\n+{{< /gsHighlight >}}\n+\n+\n+## Using Existing Resources\n+\n+Many Cloudify GCP types have a property named `use_external_resource`, which defaults to `false`. When set to `true`, the plugin will apply different semantics for each of the operations executed on the relevant node's instances:\n+\n+  If `use_external_resource` is `true`, then the required properties for that type (`name`, possibly `region` or `zone`) will be used to look up an existing entity in the GCP project.\n+  If the entity is found, then its data will be used to popluate the cloudify instance's attributes (`runtime_properties`). If it is not found then the blueprint will fail to deploy.","path":"content/blueprints/gcp.md","position":78,"original_position":78,"commit_id":"2aa0c586cefd70f9768f5be7d55d53736281a1d0","original_commit_id":"2aa0c586cefd70f9768f5be7d55d53736281a1d0","user":{"login":"chanagershom","id":24986992,"avatar_url":"https://avatars.githubusercontent.com/u/24986992?v=3","gravatar_id":"","url":"https://api.github.com/users/chanagershom","html_url":"https://github.com/chanagershom","followers_url":"https://api.github.com/users/chanagershom/followers","following_url":"https://api.github.com/users/chanagershom/following{/other_user}","gists_url":"https://api.github.com/users/chanagershom/gists{/gist_id}","starred_url":"https://api.github.com/users/chanagershom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chanagershom/subscriptions","organizations_url":"https://api.github.com/users/chanagershom/orgs","repos_url":"https://api.github.com/users/chanagershom/repos","events_url":"https://api.github.com/users/chanagershom/events{/privacy}","received_events_url":"https://api.github.com/users/chanagershom/received_events","type":"User","site_admin":false},"body":" If the entity is found, ~~then~~ its data will be used to ~~popluate~~ **populate** the ~~cloudify~~ **Cloudify** instance's attributes (`runtime_properties`). If it is not found **,** ~~then~~ the blueprint will fail to deploy.","created_at":"2017-01-30T10:33:47Z","updated_at":"2017-01-30T10:42:00Z","html_url":"https://github.com/cloudify-cosmo/docs.getcloudify.org/pull/320#discussion_r98413368","pull_request_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls/320","_links":{"self":{"href":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls/comments/98413368"},"html":{"href":"https://github.com/cloudify-cosmo/docs.getcloudify.org/pull/320#discussion_r98413368"},"pull_request":{"href":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls/320"}}},"pull_request":{"url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls/320","id":103644413,"html_url":"https://github.com/cloudify-cosmo/docs.getcloudify.org/pull/320","diff_url":"https://github.com/cloudify-cosmo/docs.getcloudify.org/pull/320.diff","patch_url":"https://github.com/cloudify-cosmo/docs.getcloudify.org/pull/320.patch","issue_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/issues/320","number":320,"state":"open","locked":false,"title":"Adding stuff about Managed Plugins","user":{"login":"EarthmanT","id":9653571,"avatar_url":"https://avatars.githubusercontent.com/u/9653571?v=3","gravatar_id":"","url":"https://api.github.com/users/EarthmanT","html_url":"https://github.com/EarthmanT","followers_url":"https://api.github.com/users/EarthmanT/followers","following_url":"https://api.github.com/users/EarthmanT/following{/other_user}","gists_url":"https://api.github.com/users/EarthmanT/gists{/gist_id}","starred_url":"https://api.github.com/users/EarthmanT/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/EarthmanT/subscriptions","organizations_url":"https://api.github.com/users/EarthmanT/orgs","repos_url":"https://api.github.com/users/EarthmanT/repos","events_url":"https://api.github.com/users/EarthmanT/events{/privacy}","received_events_url":"https://api.github.com/users/EarthmanT/received_events","type":"User","site_admin":false},"body":"Adding stuff about Managed Plugins","created_at":"2017-01-29T12:34:11Z","updated_at":"2017-01-30T10:42:02Z","closed_at":null,"merged_at":null,"merge_commit_sha":"98e7bf58f8ce56f7a0e30acf4abf90c9bfa68b9b","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls/320/commits","review_comments_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls/320/comments","review_comment_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls/comments{/number}","comments_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/issues/320/comments","statuses_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/statuses/2aa0c586cefd70f9768f5be7d55d53736281a1d0","head":{"label":"cloudify-cosmo:clarify-managed-vs-community","ref":"clarify-managed-vs-community","sha":"2aa0c586cefd70f9768f5be7d55d53736281a1d0","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":37913171,"name":"docs.getcloudify.org","full_name":"cloudify-cosmo/docs.getcloudify.org","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/docs.getcloudify.org","description":"Documentation web site for Cloudify 3.x","fork":false,"url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org","forks_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/forks","keys_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/teams","hooks_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/hooks","issue_events_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/issues/events{/number}","events_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/events","assignees_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/assignees{/user}","branches_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/branches{/branch}","tags_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/tags","blobs_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/git/refs{/sha}","trees_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/statuses/{sha}","languages_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/languages","stargazers_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/stargazers","contributors_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/contributors","subscribers_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/subscribers","subscription_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/subscription","commits_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/commits{/sha}","git_commits_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/git/commits{/sha}","comments_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/comments{/number}","issue_comment_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/issues/comments{/number}","contents_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/contents/{+path}","compare_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/merges","archive_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/downloads","issues_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/issues{/number}","pulls_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls{/number}","milestones_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/milestones{/number}","notifications_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/labels{/name}","releases_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/releases{/id}","deployments_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/deployments","created_at":"2015-06-23T10:45:22Z","updated_at":"2017-01-09T12:24:23Z","pushed_at":"2017-01-29T15:16:58Z","git_url":"git://github.com/cloudify-cosmo/docs.getcloudify.org.git","ssh_url":"git@github.com:cloudify-cosmo/docs.getcloudify.org.git","clone_url":"https://github.com/cloudify-cosmo/docs.getcloudify.org.git","svn_url":"https://github.com/cloudify-cosmo/docs.getcloudify.org","homepage":null,"size":13152,"stargazers_count":2,"watchers_count":2,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":43,"mirror_url":null,"open_issues_count":37,"forks":43,"open_issues":37,"watchers":2,"default_branch":"4.0.0-build"}},"base":{"label":"cloudify-cosmo:3.4.1-build","ref":"3.4.1-build","sha":"225efb51cb82de5ad39b97adf87da9a63015970b","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":37913171,"name":"docs.getcloudify.org","full_name":"cloudify-cosmo/docs.getcloudify.org","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/docs.getcloudify.org","description":"Documentation web site for Cloudify 3.x","fork":false,"url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org","forks_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/forks","keys_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/teams","hooks_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/hooks","issue_events_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/issues/events{/number}","events_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/events","assignees_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/assignees{/user}","branches_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/branches{/branch}","tags_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/tags","blobs_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/git/refs{/sha}","trees_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/statuses/{sha}","languages_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/languages","stargazers_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/stargazers","contributors_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/contributors","subscribers_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/subscribers","subscription_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/subscription","commits_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/commits{/sha}","git_commits_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/git/commits{/sha}","comments_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/comments{/number}","issue_comment_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/issues/comments{/number}","contents_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/contents/{+path}","compare_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/merges","archive_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/downloads","issues_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/issues{/number}","pulls_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls{/number}","milestones_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/milestones{/number}","notifications_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/labels{/name}","releases_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/releases{/id}","deployments_url":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/deployments","created_at":"2015-06-23T10:45:22Z","updated_at":"2017-01-09T12:24:23Z","pushed_at":"2017-01-29T15:16:58Z","git_url":"git://github.com/cloudify-cosmo/docs.getcloudify.org.git","ssh_url":"git@github.com:cloudify-cosmo/docs.getcloudify.org.git","clone_url":"https://github.com/cloudify-cosmo/docs.getcloudify.org.git","svn_url":"https://github.com/cloudify-cosmo/docs.getcloudify.org","homepage":null,"size":13152,"stargazers_count":2,"watchers_count":2,"language":"JavaScript","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":43,"mirror_url":null,"open_issues_count":37,"forks":43,"open_issues":37,"watchers":2,"default_branch":"4.0.0-build"}},"_links":{"self":{"href":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls/320"},"html":{"href":"https://github.com/cloudify-cosmo/docs.getcloudify.org/pull/320"},"issue":{"href":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/issues/320"},"comments":{"href":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/issues/320/comments"},"review_comments":{"href":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls/320/comments"},"review_comment":{"href":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/pulls/320/commits"},"statuses":{"href":"https://api.github.com/repos/cloudify-cosmo/docs.getcloudify.org/statuses/2aa0c586cefd70f9768f5be7d55d53736281a1d0"}}}}
{"actor":{"display_login":"chanagershom"}}