Commit Graph

172 Commits

Author SHA1 Message Date
Nathan McKinley
f50d4a19b4
New Resource: Dataflow Job (#855)
Add support for Google Dataflow jobs

Note: A dataflow job exists when it is in a nonterminal state, and does not exist if it
is in a terminal state (or a non-running state which can only transition into terminal
states).  See doc for more detail.
2018-01-10 14:38:15 -08:00
sarunask
f07c332849 Cloud functions (#899)
* Initial commit

* Adding google_cloudfunction_function resource

* Some FMT updates

* Working Cloud Function Create/Delete/Get
Create is limited to gs:// source now.

* Fixed tests import

* Terraform now is able to apply and destroy function

* Fully working Basic test

* Added:
1. Allowed region check
2. readTimeout helper

* Found better solution for conflicting values

* Adding description

* Adding full basic test

* dded Update functionality

* Made few more optional params

* Added test for Labels

* Added update tests

* Added storage_* members and made function source deploy from storage bucket object

* Adding comments

* Adding tests for PubSub

* Adding tests for Bucket

* Adding Data provider

* Fixing bug which allowed to miss error

* Amending Operation retrieval

* Fixing vet errors and vendoring cloudfunctions/v1

* Fixing according to comments

* Fixing according to comments round #2

* Fixing tabs to space

* Fixing tabs to space and some comments #3

* Re-done update to include labels in one update with others

* Adding back default values. In case of such scenario, when user creates function with some values for "timeout" or "available_memory_mb", and then disables those attributes. Terraform plan then gives:
No changes. Infrastructure is up-to-date.
This is an error. By adding const we would avoid this error.

* Fixed MixedCase and more tabs
2018-01-10 13:25:43 -08:00
Quinn Vallance
5a557546a7 Add google_logging_organization_sink resource (#923)
* Add google_logging_organization_sink resource

* cleanup
2018-01-08 18:15:30 -05:00
Dana Hoffman
5bf56797f7
make provider-wide region optional (#916) 2018-01-03 14:09:46 -08:00
Kit Ewbank
49a0008643 Add 'google_organization' data source (#887)
* Add 'google_organization' data source.

* Use 'GetResourceNameFromSelfLink'.

* Remove 'resourcemanager_helpers'.

* Use 'ConflictsWith' in schema.

* Add 'organization' argument and make 'name' an output-only attribute.
2017-12-21 16:12:44 -08:00
Kit Ewbank
a086e70e79 Add 'google_billing_account' data source (#889)
* Add 'google_billing_account' data source.

* Use 'GetResourceNameFromSelfLink'.

* Use 'ConflictsWith' in schema.

* Use pagination for List() API call.

* Add ability to filter by 'open' attribute.

* Don't use 'ForceNew' for data sources.

* Add 'billing_account' argument and make 'name' an output-only attribute.

* Correct error message.
2017-12-21 16:09:58 -08:00
Matt Morrison
23ef50f5ca New datasource: google_container_cluster (#740)
* Add google_kubernetes_cluster datasource

Add documentation for google_kubernetes_cluster datasource

Rename datasource to google_container_cluster

To be consistent with the equivalent resource.

Rename datasource in docs.
google_kubernetes_cluster -> google_container_cluster.
Also add reference in google.erb file.

WIP

Datasource read needs to set an ID, then call resource read func

Add additional cluster attributes to datasource schema

* Generate datasource schema from resource

Datasource documentation also updated.

* add test for datasourceSchemaFromResourceSchema

* Code review changes
2017-12-20 13:21:11 -08:00
Vincent Roseberry
42cc44efe2
Add IAM support for pubsub topic (#875)
* Add IAM support for pubsub topic

* Fix resource name

* Add update test for iam_policy resource

* Standardize policy conversion function

* Standardize policy conversion function all resources
2017-12-19 17:19:04 -08:00
Michael Parker
18a6255064 Adds google_kms_secret data source (#741)
* Create google_kms_secret datasource

* Create google_kms_secret datasource documentation

* Remove duplicated code

* Create acceptance test

* Fix indentation

* Add documentation to sidebar

* Update Cloud SDK link in docs

* Oxford comma

* Rename variable to make it clear which resource is under test

* Update test to use utils from provider_test
2017-12-19 13:24:35 -08:00
Vincent Roseberry
b70803264f
Add service account IAM support (#840)
* Add service account iam resources
* Add documentation
* Add import functionality to iam resources
* Add import documentation
2017-12-14 14:52:44 -08:00
Nathan McKinley
d2611d4ce3
New data source: compute region instance group (#851)
* Add new data source: compute region instance group manager's groups.
* Add documentation for wait_for_instances and for the timeout mechanism in resourceComputeRegionInstanceGroupManagerCreate.
2017-12-14 13:35:39 -08:00
Nathan McKinley
ced8cb506c
Consistent IAM resource imports. (#835)
Add consistency for for IAM imports.
- Adds imports for projects, folders, crypto keys, organizations, and key rings.
- Anything else with IAM can implement a simple method and begin working immediately.
- Add tests for all the IAM imports.
- Import documentation for IAM resources.
2017-12-11 10:24:53 -08:00
Paddy
792fa311c7
Merge pull request #832 from terraform-providers/paddy_creds_file_or_path
Fix our provider validation to allow file paths.
2017-12-08 14:28:46 -08:00
Paddy
f5a835141d
Merge pull request #833 from terraform-providers/paddy_compute_image_ds
Add compute image data source
2017-12-08 14:11:47 -08:00
Paddy
f18607b849 Fix our provider validation to allow file paths.
Previously, provider credentials were _supposed_ to be able to be
specified as the file contents or the path to the file. We even had a
test for the code for this!

Then we updated the validation for the provider, and forgot to validate
filepaths as ok. So provider validation failed. And because our test
only tested the config validation, and not the provider validation, our
tests thought this was just fine still.

This fixes that oversight, accepting filepaths as valid. It also adds
tests to ensure that provider validation allows both file paths and
contents.
2017-12-08 13:57:55 -08:00
Vincent Roseberry
3bceb8f951
Add IAM support for storage bucket (#822)
* Add IAM support for storage bucket
* Add documentation
* Test multiple roles
2017-12-07 13:12:25 -08:00
Nathan McKinley
114b646fae
Enable 'zone' to be specified at the provider level instead of per-resource. (#816)
- Fetch Zone attribute any place where it *was* being fetched from the schema by
	combination schema / provider-level attribute.
- Allow region to be unspecified if zone is specified.
- Switch one example to using provider-level zone as an example.
- Make provider-level zone optional.  (Individual resources will fail if they can't find a zone.)
- Add tests for getZone and getRegion.
2017-12-06 14:30:04 -08:00
Vincent Roseberry
d4e297ec44
Add google_kms_key_ring_iam_policy resource and improve iam docs (#814)
* Add google_kms_key_ring_iam_policy resource and improve iam docs
* Delete iam_binding and iam_member specific doc page for key ring
2017-12-06 09:33:21 -08:00
thomas jouannic
af3dcfde4c Include the "compute_image" datasource in the provider 2017-12-05 00:09:20 +01:00
Vincent Roseberry
10f764aa9b
Add new resource google_folder_organization_policy (#747)
* Add new resource google_folder_organization_policy
* Add documentation
2017-11-27 14:53:01 -08:00
James Turley
6f4a7926ba IAM resources for KMS KeyRIng and CryptoKey (#781)
* Add IAM bindings and member resources for KMS KeyRings

* Add IAM bindings and member resources for KMS CryptoKeys

* Docs for key ring and crypto key IAM resources

* Exctract KMS policy conversions to helper functions

* Split iam_binding and iam_member tests for KMS

* Docs for kms IAM member resources

* Run KMS IAM tests in own project
2017-11-23 11:26:43 -08:00
Vincent Roseberry
ac0948e7d6
Refactored authoritative IAM policy logic to be reusable (#776) 2017-11-21 14:58:02 -08:00
Vincent Roseberry
e70d1fc44b
Add IAM binding and member support for organizations (#775) 2017-11-21 14:30:48 -08:00
Nicki Watt
68f7d775c3 Add google_dataproc_job resource (#253)
* Add google_dataproc_job resource

* Correct state ref in docs

* make tests parallel

* cleanup, mostly whitespace related

* docs fmt
2017-11-21 09:32:43 -08:00
Vincent Roseberry
1859c558fe
Refactor project iam binding and member resources to improve reusability (#744)
* Refactor project iam binding and member resources to improve reusability
* Use default mask when updating project iam policy
* Add a doc comment for the ResourceIamUpdater interface
2017-11-20 17:01:39 -08:00
thomas
8ee14c4424 Add the "google_compute_global_address" datasource (#759)
* Add the "compute_global_address" datasource

* Add a basic test for the "compute_global_address" datasource

* Include the "compute_global_address" in the provider

* Add docs for the "compute_global_address" datasource
2017-11-17 11:22:37 -08:00
thomas
06140c553a Add the "google_compute_address" datasource (#748)
* Add the "compute_address" datasource

* Add a basic test for the "compute_address" datasource

* Include the "compute_address" datasource in the provider

* Add the documentation for the "compute_address" datasource
2017-11-16 09:16:52 -08:00
Norberto Lopes
5a261e0cff Add folder data source (#738) 2017-11-15 13:14:03 -08:00
Andrew Farrell
56d633a8d4 Adds support for creating KMS CryptoKeys resources (#692)
* Adds support for creating KMS CryptoKeys resources

* Destroy extant CryptoKeyVersions on CryptoKey destroy

* Inherit project, location etc from KeyRing in CryptoKey

* Add function to calculate next rotation

* Implement RotationPeriod parameter on CryptoKey

* Import CryptoKey state

* Uncommit my local acceptance test hacks

* Docs for google_kms_crypto_key

* Clear id at the end of CryptoKey deletion

Also add more detail to warning message.

* Fix parseCryptoKeyId error messages

* Use correct naming in CryptoKeyIdParsing test

* Check RotationPeriod is present in acceptance test

* Rename variable in test function for consistency

* Fix wrong resource name in cryptokey docs

* Add KeyRing to CryptoKey doc example

* Run test CryptoKey configs through terraform fmt

* Don't set CryptoKey purpose in terraform state on import

* Fix indentation in CryptoKey test

* Parallelise CryptoKey tests

* Set rotation_key on CryptoKey read

* Move RotationPeriod validation to planning phase

* Use import state passthrough for CryptoKey

* Correct casing issues in test case names

* Remove redundant CheckDestroy calls in CryptoKey tests

* Add explanatory comment about extra test steps

* More explicit error handling in CryptoKey tests

* Explicit dependency on project services in test keyring configs

* Clean up comments in cryptokey resource

* Do not repeat in cryptokey id regexes
2017-11-14 13:21:25 -08:00
Vincent Roseberry
108971f261
Add new resource to support IAM custom organization roles (#735)
* Add new resource to support IAM custom organization roles
* Add documentation
2017-11-13 16:05:16 -08:00
Vincent Roseberry
ab68b06af5
Add new resource to support IAM custom project roles. (#709)
* Upgrade iam client to latest version
* Add new resource to support IAM custom roles.
* Add documentation
2017-11-10 11:01:33 -08:00
Dana Hoffman
10e4f68441
Add new google_project_service resource for fine-grained service control. (#668)
* add new project service resource; add retry logic for enable/disable

* docs for google_project_service

* add project into the id
2017-11-07 15:19:57 -08:00
Nicki Watt
96ac8fc8a4 Add google_dataproc_cluster resource (#252)
* Add google_dataproc_cluster resource

* Add google_dataproc_cluster tests

* Add google_dataproc_cluster docs

* Removed google_dataproc_job ref (to be added in separate PR)

* Added delete_autogen_bucket attribute

* Refactored / simplified wait mechanism

* Changes based on review

* go fmt

* Add  cluster_config enclosing config block

* Review updates - primarily re restructuring hierarchy

* Removed rogue import

* docs - alignment

* Changes for review

* Refactoring into expandXXX methods

* Refactoring of flattenXXX methods to be explicit
2017-10-30 16:41:37 -07:00
Michael Parker
f2fc78d082 Adds support for creating KMS KeyRing resources (#518)
* Instantiate the cloudkms client

* Implement Create and Read for the kms key ring resource

* Expose the kms key ring resource

* Create acceptance test for creating a KeyRing, fix read to use KeyRing ID

* Add cloudkms library to vendor

* Address style comments

* Use fully-qualified keyring name in read operation

* Remove call to SetId during read operation

* Set ID as entire resource string

* Spin up a new project for acceptance test

* Use Getenv for billing and org environment variables

* And test and logs around removal from state

* Add comments

* Fixes formatting

* Log warning instead of info

* Use a single line for cloudkms client actions

* Add resource import test

* Add ability to import resource, update helper functions to use keyRingId struct

* Use shorter terraform ID for easier import

* Update import test to use the same config as the basic test

* Update KeyRing name regex to be consistent with API docs

* Add documentation page for resource

* Add KeyRing documentation to sidebar

* Adds unit tests around parsing the KeyRing import id

* Allow for project in id to be autopopulated from config

* Throw error in import if project provider is not provided for location/name format

* Consistent variable names

* Use tabs in resource config instead of spaces

* Remove "-x" suffix for docs

* Set project attribute on import if different from the project config
2017-10-27 09:40:01 -07:00
Sébastien GLON
94e0b746df Add support for google_service_account_key (#472)
* Initial support for google service account keys

* Add vendor for vault and encryption

* Add change for PR comment

* Add doc and improvement fo public key management

* adding waiter for compatibility with issue google/google-api-go-client#234

* improvement

* Add test with pgp_key

* Perform doc anf format

* remove test if public_key exists

* Add link on doc

* correct pr
2017-10-25 12:43:20 -07:00
Vincent Roseberry
66f876e6ae Add new resource google_compute_target_ssl_proxy (#569)
* Add target ssl proxy
* Add documentation
2017-10-13 11:02:42 -07:00
Radek Simko
25869fa5c8 Merge pull request #567 from terraform-providers/f-ds-lb-ip-ranges
d/compute_lb_ip_ranges: Add new data source
2017-10-13 07:09:09 +01:00
Vincent Roseberry
e5d9fe6163 Add support for shared VPC (#572)
* Add VPC host project resource
* Add VPC service project resource
* Add combined acceptance test for shared VPC
* Add docs for shared VPC
* Increase deadline for project services operation
2017-10-11 12:51:09 -07:00
Radek Simko
80ca6c26b1
d/compute_lb_ip_ranges: Add new data source 2017-10-10 22:07:21 +01:00
Scott Stevenson
d574c6a910 Add resource_compute_region_autoscaler (#544)
* Add resource_compute_region_autoscaler
* Add import acceptance tests, reuse zonal autoscaler code
* Enforce single autoscaling policy requirement at terraform plan time
2017-10-09 10:59:38 -07:00
Vincent Roseberry
87f3a58cb2 Add support for org policies at the organization level (#523)
* Fetch latest resource manager client
* Add new resource to manage Org Policy at the organization level.
* Update documentation
2017-10-05 13:20:16 -07:00
Alberto
2f94ff9ad4 Add support for target_tcp_proxy (#528) 2017-10-05 10:27:56 -07:00
Joe Selman
ef543b20c5 Add google_logging_folder_sink resource (#470)
* Fix bad page title

* Add resource logging_folder_sink

* Use proper parse function and string format

* Remove unused strings
2017-10-03 09:26:19 -07:00
Paddy
02512af271 Revert Shared VPC.
We want to talk about the design of Shared VPC a little bit more before
it ships, so this PR removes it, to be added back at a later date.
2017-09-29 04:59:41 -07:00
Joe Selman
8231d6a83a Add resource_logging_billing_account_sink resource (#457)
* Add resource_logging_billing_account_sink resource

* Fix bad style
2017-09-26 15:26:54 -07:00
Vincent Roseberry
20929eb468 Assign IAM policy to folder. (#447)
* Assign IAM policy to folder.
* Add documentation for google_folder_iam_policy
2017-09-25 11:30:45 -07:00
Joe Selman
3d5eccc1c6 Add stackdriver project sink support (#432)
* Vendor cloud logging api

* Add logging sink support

* Remove typo

* Set Filter simpler

* Rename typ, typName to resourceType, resourceId

* Handle notFoundError

* Use # instead of // for hcl comments

* Cleanup test code

* Change testAccCheckLoggingProjectSink to take a provided api object

* Fix whitespace change after merge conflict
2017-09-14 19:15:14 -07:00
Vincent Roseberry
167abea500 Create, update, move and delete a GCP folders. (#416)
* Initialize resourcemanager v2beta1 client
* Create new google_folder resource supporting create, move, update and delete operations.
* Add documentation for folders
2017-09-14 11:19:58 -07:00
Dana Hoffman
2d733a1600 Add new google_compute_shared_vpc resource (#396)
* Revendor compute apis

* Add new resource for shared VPC host

* add test for disabled

* add docs for shared vpc host resource

* make project required

* Add new resource google_compute_shared_vpc

* Remove google_compute_shared_vpc_host

* Add docs for shared vpc resource

* Remove docs for shared vpc host resource

* fix typos in shared vpc docs

* move helper fn to utils.go
2017-09-13 10:36:07 +08:00
Vincent Roseberry
c751a32626 Add new resource region_instance_group_manager (#394) 2017-09-08 17:02:32 -07:00
Kit Ewbank
0858e7cd2d Add google_client_config data source (#385) 2017-09-06 14:52:32 -07:00
Joe Selman
329a25848b Move non-provider related functions into a utils.go file (#325) 2017-08-15 16:35:46 -07:00
Joe Selman
bcaa151cfa Add support for Google RuntimeConfig (#315)
* Vendor runtimeconfig

* Add support for RuntimeConfig config and variable resources

This allows users to create/manage Google RuntimeConfig resources and
variables. More information here:
https://cloud.google.com/deployment-manager/runtime-configurator/

Closes #236

* Remove typo

* Use top-level declaration rather than init()

* Cleanup testing-related code by using ConflictsWith

Also adds better comments around how update works
2017-08-14 14:16:11 -07:00
Nicki Watt
752b406783 Add Google Spanner Support (google_spanner_database) (#271) 2017-08-14 09:53:11 -07:00
Nicki Watt
04b3ffb8ea Add Google Spanner Support (google_spanner_instance) (#270) 2017-08-14 09:30:41 -07:00
Aleksandr Didenko
99b43ac400 Add compute instance group data source (#267) 2017-08-11 10:17:36 -07:00
Vincent Roseberry
3fde8cf24e google_compute_instance can specified the subnetwork using a self_link (#290) 2017-08-04 11:00:45 -07:00
alex1x
8570849022 Add Support for Google source repos (#256) 2017-08-03 15:00:34 -07:00
Vincent Roseberry
53e481434e Add new data source: google_dns_managed_zone (#268) 2017-07-31 09:27:18 -07:00
Paddy
37df58296b Merge pull request #171 from terraform-providers/paddy_iam
Add google_project_iam_binding and google_project_iam_member resources.
2017-07-28 12:22:33 -07:00
Joe Selman
50c10d4e7d Revert "Revert metadata item changes (#225)" (#257)
* Revert "Revert metadata item changes (#225)"

This reverts commit 884158d891.

* Use computeOperationWait instead of computeOperationWaitGlobal
2017-07-28 10:49:02 -07:00
Vincent Roseberry
3eaf4751db Add new resource google_compute_network_peering (#259) 2017-07-28 09:51:29 -07:00
Riley Karson
232cb87c7a Add versioned Beta support to google_compute_instance_group_manager (#234)
* Vendor GCP Compute Beta client library.

* Refactor resource_compute_instance_group_manager for multi version support (#129)

* Refactor resource_compute_instance_group_manager for multi version support.
* Minor changes based on review.
* Removed type-specific API version conversion functions.

* Add support for Beta operations.

* Add v0beta support to google_compute_instance_group_manager.

* Renamed Key to Feature, added comments & updated some parameter names.

* Fix code and tests for version finder to match fields that don't have a change.

* Store non-v1 resources' self links as v1 so that dependent single-version resources don't see diffs.

* Fix weird change to vendor.json from merge.

* Add a note that Convert loses ForceSendFields, fix failing test.

* Moved nil type to a switch case in compute_shared_operation.go.

* Move base api version declaration above schema.
2017-07-26 13:37:59 -07:00
Dana Hoffman
884158d891 Revert metadata item changes (#225)
* Revert "Add additional fingerprint error to check for when updating metadata (#221)"

This reverts commit 4c8f62edf6.

* Revert "Fix bug where range variable is improperly dereferenced (#217)"

This reverts commit 8f75c1c9a5.

* Revert "Add support for google_compute_project_metadata_item (#176)"

This reverts commit 236c0f5d24.
2017-07-20 09:54:59 -07:00
Joe Selman
236c0f5d24 Add support for google_compute_project_metadata_item (#176)
* Add support for google_compute_project_metadata_item

This allows terraform users to manage single key/value items within the
project metadata map, rather than the entire map itself.

* Update CHANGELOG.md

* Add details about import
2017-07-17 16:28:51 -07:00
Joe Selman
95e72d513e Merge pull request #177 from terraform-providers/bigtable-support
Add support for Google Cloud Bigtable.
2017-07-11 16:26:51 -07:00
Dana Hoffman
ae5ea9fd0f allow updating additional_zones, turn it into a set (#152) 2017-07-05 16:00:49 -07:00
Riley Karson
d0d116fa3e Add support for Bigtable table. 2017-07-05 10:46:11 -07:00
Paddy
f9236abdf8 Add the google_project_iam_member resource.
Adds the google_project_iam_member resource, which just ensures that a
single member has a single role.

google_project_iam_member should not be used to grant permissions to a
role controlled by google_project_iam_binding or to a policy controlled
by google_project_iam_policy, as they'll fight for control.
2017-07-03 20:59:26 -07:00
Paddy
8e704876bc Add google_project_iam_binding resource.
Add a resource that manages just a single binding within a Google
project's IAM Policy.

Note that this resource should not be used when
google_project_iam_policy is used, or they will fight over which is
correct.

This also required wrapping the error returned from setProjectIamPolicy,
as we need to test to see if it's a 409 error and retry, which can't be
done if we just use fmt.Errorf.
2017-07-03 19:01:08 -07:00
Riley Karson
53b91630f5 Bigtable instance support. 2017-06-26 15:13:18 -07:00
Jake Champlin
66029ac431
Transfer google provider 2017-06-06 11:58:51 -04:00