terraform/helper/schema
Mitchell Hashimoto c6d0333dc0
flatmap: mark computed list as a computed value in Expand
Fixes #12183

The fix is in flatmap for this but the entire issue is a bit more
complex. Given a schema with a computed set, if you reference it like
this:

    lookup(attr[0], "field")

And "attr" contains a computed set within it, it would panic even though
"field" is available. There were a couple avenues I could've taken to
fix this:

1.) Any complex value containing any unknown value at any point is
entirely unknown.

2.) Only the specific part of the complex value is unknown.

I took route 2 so that the above works without any computed (since
"name" is not computed but something else is). This may actually have an
effect on other parts of Terraform configs, however those similar
configs would've simply crashed previously so it shouldn't break any
pre-existing configs.
2017-02-23 10:03:59 -08:00
..
README.md helper/schema: README 2014-08-17 20:51:09 -07:00
backend.go helper/schema: framework for Backends 2017-01-26 14:33:49 -08:00
backend_test.go helper/schema: framework for Backends 2017-01-26 14:33:49 -08:00
data_source_resource_shim.go helper/schema: emit warning when using data source resource shim 2016-05-14 08:26:36 -07:00
equal.go helper/schema: use interface for equality check 2015-01-16 09:32:15 -08:00
field_reader.go Check for interpolated values when reading a map 2016-11-28 09:04:24 -05:00
field_reader_config.go helper/schema: PromoteSingle for legacy support of "maybe list" types 2017-01-26 15:09:15 -08:00
field_reader_config_test.go Check for interpolated values when reading a map 2016-11-28 09:04:24 -05:00
field_reader_diff.go Allow primitive type in maps via all FieldReaders 2016-11-17 15:35:08 -05:00
field_reader_diff_test.go Allow primitive type in maps via all FieldReaders 2016-11-17 15:35:08 -05:00
field_reader_map.go Allow primitive type in maps via all FieldReaders 2016-11-17 15:35:08 -05:00
field_reader_map_test.go Allow primitive type in maps via all FieldReaders 2016-11-17 15:35:08 -05:00
field_reader_multi.go helper/schema: full object test for addrToSchema 2015-01-09 17:43:44 -08:00
field_reader_multi_test.go Revert "helper/schema: Make nested Set(s) in List(s) work" (#7436) 2016-06-30 10:48:52 -05:00
field_reader_test.go Allow primitive type in maps via all FieldReaders 2016-11-17 15:35:08 -05:00
field_writer.go helper/schema: FieldWriter, replace Set 2015-01-10 11:44:26 -08:00
field_writer_map.go core: Allow dynamic attributes in helper/schema 2016-06-11 13:29:05 +01:00
field_writer_map_test.go core: Use .% instead of .# for maps in state 2016-06-09 10:49:42 +01:00
getsource_string.go Reflect new comment format in stringer.go 2015-11-09 11:38:51 -05:00
provider.go helper/schema: expose stop information as a Context 2016-10-25 12:08:36 -07:00
provider_test.go helper/schema: expose stop information as a Context 2016-10-25 12:08:36 -07:00
provisioner.go provisioners/file: use the old communicator.New just to minimize risk 2017-01-26 15:03:28 -08:00
provisioner_test.go helper/schema: provisioner allows for nil state 2017-01-26 15:03:28 -08:00
resource.go helper/schema: validate Read, Delete are set 2016-10-30 15:04:32 -07:00
resource_data.go core: Allow dynamic attributes in helper/schema 2016-06-11 13:29:05 +01:00
resource_data_get_source.go helper/schema: diff with set going to 0 elements removes it from state 2015-02-17 11:38:56 -08:00
resource_data_test.go Convert the map fields values when reading diff 2016-11-17 14:34:18 -05:00
resource_importer.go helper/schema: pass through import state func 2016-05-16 10:03:57 -07:00
resource_test.go helper/schema: validate Read, Delete are set 2016-10-30 15:04:32 -07:00
schema.go Make sure to diff all nested schema.Set elements 2017-02-07 16:55:20 -05:00
schema_test.go flatmap: mark computed list as a computed value in Expand 2017-02-23 10:03:59 -08:00
serialize.go Serialization for hash panics on TypeMap 2016-06-09 13:37:58 -04:00
serialize_test.go Add test for TypeMap in a Schema 2016-06-09 16:00:33 -04:00
set.go Revert "helper/schema: Make nested Set(s) in List(s) work" (#7436) 2016-06-30 10:48:52 -05:00
set_test.go Change Set internals and make (extreme) performance improvements 2015-11-22 14:21:28 +01:00
testing.go provisioners/remote-exec: switch to helper/schema 2017-01-26 15:09:15 -08:00
valuetype.go helper/schema: zero value of a set should be empty 2015-02-17 16:58:47 -08:00
valuetype_string.go Reflect new comment format in stringer.go 2015-11-09 11:38:51 -05:00

README.md

Terraform Helper Lib: schema

The schema package provides a high-level interface for writing resource providers for Terraform.

If you're writing a resource provider, we recommend you use this package.

The interface exposed by this package is much friendlier than trying to write to the Terraform API directly. The core Terraform API is low-level and built for maximum flexibility and control, whereas this library is built as a framework around that to more easily write common providers.