terraform/helper/schema
Martin Atkins 4de0b33097 helper/schema: Honor ConfigMode when building core schema
This makes some slight adjustments to the shape of the schema we
present to Terraform Core without affecting how it is consumed by the
SDK and thus the provider. This mechanism is designed specifically to
avoid changing how the schema is interpreted by the SDK itself or by the
provider, so that prior behavior can be preserved in Terraform v0.11 mode.

This also includes a new rule that Computed-only (i.e. not also Optional)
schemas _always_ map to attributes, because that is a better mapping of
the intent: they are object values to be used in expressions. Nested
blocks conceptually represent nested objects that are in some sense
independent of what they are embedded in, and so they cannot themselves be
computed.
2019-03-11 17:02:05 -07:00
..
README.md helper/schema: README 2014-08-17 20:51:09 -07:00
backend.go don't panic of the users aborts backend input 2019-03-01 18:45:06 -05:00
backend_test.go don't panic of the users aborts backend input 2019-03-01 18:45:06 -05:00
core_schema.go helper/schema: Honor ConfigMode when building core schema 2019-03-11 17:02:05 -07:00
core_schema_test.go helper/schema: Honor ConfigMode when building core schema 2019-03-11 17:02:05 -07:00
data_source_resource_shim.go Deprecated -> DeprecationMessage. 2018-06-20 11:21:46 -07:00
equal.go helper/schema: use interface for equality check 2015-01-16 09:32:15 -08:00
field_reader.go helper/schema: handle TypeMap elem consistently with other collection types 2018-03-14 14:50:41 -07:00
field_reader_config.go helper/schema: handle TypeMap elem consistently with other collection types 2018-03-14 14:50:41 -07:00
field_reader_config_test.go helper/schema: handle TypeMap elem consistently with other collection types 2018-03-14 14:50:41 -07:00
field_reader_diff.go don't modify argument slices 2018-12-10 11:59:27 -05:00
field_reader_diff_test.go helper/schema: handle TypeMap elem consistently with other collection types 2018-03-14 14:50:41 -07:00
field_reader_map.go don't modify argument slices 2018-12-10 11:59:27 -05:00
field_reader_map_test.go helper/schema: handle TypeMap elem consistently with other collection types 2018-03-14 14:50:41 -07: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 helper/schema: handle TypeMap elem consistently with other collection types 2018-03-14 14:50:41 -07:00
field_writer.go helper/schema: FieldWriter, replace Set 2015-01-10 11:44:26 -08:00
field_writer_map.go helper/schema: Fix setting a set in a list 2018-12-05 10:09:54 +01:00
field_writer_map_test.go helper/schema: Clear existing map/set/list contents before overwriting 2017-11-05 12:04:23 -08:00
getsource_string.go Update various files for new version of "stringer" 2017-12-11 13:26:29 -08:00
provider.go Copy TF version to helper/schema provider 2019-01-28 14:38:49 -05:00
provider_test.go decode legacy timeouts 2019-01-30 16:10:17 -05:00
provisioner.go create a SimpleDiff for the new provider shims 2018-10-16 19:14:11 -07:00
provisioner_test.go Refactor the provisioner validation function (#15273) 2017-06-15 19:57:04 +02:00
resource.go move InstanceState shim into schema.Resource 2018-11-16 09:59:03 -05:00
resource_data.go helper/schema: Add deprecation to ResourceData.UnsafeSetFieldRaw 2019-02-13 22:12:10 -05: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 make sure id really gets set in SetId 2019-01-10 20:28:11 -05:00
resource_diff.go Don't allow sub-blocks for SetNew. 2018-09-26 12:38:38 -07:00
resource_diff_test.go helper/schema: Always propagate NewComputed for previously zero value primative type attributes 2018-12-04 22:48:30 -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: Fix timeout parsing in ResourceTimeout.ConfigDecode 2018-11-05 12:42:12 +00:00
resource_timeout.go decode legacy timeouts 2019-01-30 16:10:17 -05:00
resource_timeout_test.go decode legacy timeouts 2019-01-30 16:10:17 -05:00
schema.go helper/schema: ConfigMode field in *Schema 2019-03-11 17:02:05 -07:00
schema_test.go helper/schema: ConfigMode field in *Schema 2019-03-11 17:02:05 -07:00
serialize.go core: Avoid crash on empty TypeSet blocks (#14305) 2017-05-09 20:45:53 +02:00
serialize_test.go Add test for TypeMap in a Schema 2016-06-09 16:00:33 -04:00
set.go don't allow computed set elems to be equal 2019-02-05 12:08:17 -05:00
set_test.go helper/schema: More tests for Set.HashEqual 2017-08-15 21:56:01 -07:00
shims.go use ShimInstanceStateFromValue in DiffFromValues 2018-11-16 09:59:03 -05:00
shims_test.go providers: Consistently use int64 for schema versions 2018-11-30 11:22:39 -08:00
testing.go create a SimpleDiff for the new provider shims 2018-10-16 19:14:11 -07:00
valuetype.go helper/schema: zero value of a set should be empty 2015-02-17 16:58:47 -08:00
valuetype_string.go Update various files for new version of "stringer" 2017-12-11 13:26:29 -08: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.