Get desktop application:
View/edit binary Protocol Buffers messages
////// Information about what a provider supports/expects
GetMetadata returns upfront information about server capabilities and supported resource types without requiring the server to instantiate all schema information, which may be memory intensive. This RPC is optional, where clients may receive an unimplemented RPC error. Clients should ignore the error and call the GetProviderSchema RPC as a fallback.
(message has no fields)
functions returns metadata for any functions.
GetSchema returns schema information for the provider, data resources, and managed resources.
(message has no fields)
functions is a mapping of function names to definitions.
GetResourceIdentitySchemas returns the identity schemas for all managed resources.
(message has no fields)
identity_schemas is a mapping of resource type names to their identity schemas.
diagnostics is the collection of warning and error diagnostics for this request.
Request is the message that is sent to the provider during the UpgradeResourceState RPC. This message intentionally does not include configuration data as any configuration-based or configuration-conditional changes should occur during the PlanResourceChange RPC. Additionally, the configuration is not guaranteed to exist (in the case of resource destruction), be wholly known, nor match the given prior state, which could lead to unexpected provider behaviors for practitioners.
version is the schema_version number recorded in the state file
raw_state is the raw states as stored for the resource. Core does not have access to the schema of prior_version, so it's the provider's responsibility to interpret this value using the appropriate older schema. The raw_state will be the json encoded state, or a legacy flat-mapped format.
new_state is a msgpack-encoded data structure that, when interpreted with the _current_ schema for this resource type, is functionally equivalent to that which was given in prior_state_raw.
diagnostics describes any errors encountered during migration that could not be safely resolved, and warnings about any possibly-risky assumptions made in the upgrade process.
UpgradeResourceIdentityData should return the upgraded resource identity data for a managed resource type.
type_name is the managed resource type name
version is the version of the resource identity data to upgrade
raw_identity is the raw identity as stored for the resource. Core does not have access to the identity schema of prior_version, so it's the provider's responsibility to interpret this value using the appropriate older schema. The raw_identity will be json encoded.
upgraded_identity returns the upgraded resource identity data
diagnostics is the collection of warning and error diagnostics for this request
////// One-time initialization, called before other functions below
////// Managed Resource Lifecycle
Request is the message that is sent to the provider during the ReadResource RPC. This message intentionally does not include configuration data as any configuration-based or configuration-conditional changes should occur during the PlanResourceChange RPC. Additionally, the configuration is not guaranteed to be wholly known nor match the given prior state, which could lead to unexpected provider behaviors for practitioners.
deferred is set if the provider is deferring the change. If set the caller needs to handle the deferral.
This may be set only by the helper/schema "SDK" in the main Terraform repository, to request that Terraform Core >=0.12 permit additional inconsistencies that can result from the legacy SDK type system and its imprecise mapping to the >=0.12 type system. The change in behavior implied by this flag makes sense only for the specific details of the legacy SDK type system, and are not a general mechanism to avoid proper type handling in providers. ==== DO NOT USE THIS ==== ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ==== ==== DO NOT USE THIS ====
deferred is set if the provider is deferring the change. If set the caller needs to handle the deferral.
This may be set only by the helper/schema "SDK" in the main Terraform repository, to request that Terraform Core >=0.12 permit additional inconsistencies that can result from the legacy SDK type system and its imprecise mapping to the >=0.12 type system. The change in behavior implied by this flag makes sense only for the specific details of the legacy SDK type system, and are not a general mechanism to avoid proper type handling in providers. ==== DO NOT USE THIS ==== ==== THIS MUST BE LEFT UNSET IN ALL OTHER SDKS ==== ==== DO NOT USE THIS ====
deferred is set if the provider is deferring the change. If set the caller needs to handle the deferral.
The address of the provider the resource is being moved from.
The resource type that the resource is being moved from.
The schema version of the resource type that the resource is being moved from.
The raw state of the resource being moved. Only the json field is populated, as there should be no legacy providers using the flatmap format that support newly introduced RPCs.
The resource type that the resource is being moved to.
The private state of the resource being moved.
The raw identity of the resource being moved. Only the json field is populated, as there should be no legacy providers using the flatmap format that support newly introduced RPCs.
The identity schema version of the resource type that the resource is being moved from.
The state of the resource after it has been moved.
Any diagnostics that occurred during the move.
The private state of the resource after it has been moved.
deferred is set if the provider is deferring the change. If set the caller needs to handle the deferral.
////// Ephemeral Resource Lifecycle
deferred is set if the provider is deferring the change. If set the caller needs to handle the deferral.
GetFunctions returns the definitions of all functions.
(message has no fields)
functions is a mapping of function names to definitions.
diagnostics is any warnings or errors.
CallFunction runs the provider-defined function logic and returns the result with any diagnostics.
name is the name of the function being called.
arguments is the data of each function argument value.
result is result value after running the function logic.
error is any error from the function logic.
////// Graceful Shutdown
(message has no fields)
(message has no fields)
Used in:
,Used in:
Set "attribute_name" to represent looking up an attribute in the current object value.
Set "element_key_*" to represent looking up an element in an indexable collection type.
(message has no fields)
ClientCapabilities allows Terraform to publish information regarding supported protocol features. This is used to indicate availability of certain forward-compatible changes which may be optional in a major protocol version, but cannot be tested for directly.
Used in:
, , , , , ,The deferral_allowed capability signals that the client is able to handle deferred responses from the provider.
The write_only_attributes_allowed capability signals that the client is able to handle write_only attributes for managed resources.
(message has no fields)
(message has no fields)
Deferred is a message that indicates that change is deferred for a reason.
Used in:
, , , ,reason is the reason for deferring the change.
Reason is the reason for deferring the change.
Used in:
UNKNOWN is the default value, and should not be used.
RESOURCE_CONFIG_UNKNOWN is used when the config is partially unknown and the real values need to be known before the change can be planned.
PROVIDER_CONFIG_UNKNOWN is used when parts of the provider configuration are unknown, e.g. the provider configuration is only known after the apply is done.
ABSENT_PREREQ is used when a hard dependency has not been satisfied.
Used in:
, , , , , , , , , , , , , , , , , , ,Used in:
DynamicValue is an opaque encoding of terraform data, with the field name indicating the encoding scheme used.
Used in:
, , , , , , , , , , , , , , , , , , , ,Used in:
,parameters is the ordered list of positional function parameters.
variadic_parameter is an optional final parameter which accepts zero or more argument values, in which Terraform will send an ordered list of the parameter type.
return is the function result.
summary is the human-readable shortened documentation for the function.
description is human-readable documentation for the function.
description_kind is the formatting of the description.
deprecation_message is human-readable documentation if the function is deprecated.
Used in:
name is the human-readable display name for the parameter.
type is the type constraint for the parameter.
allow_null_value when enabled denotes that a null argument value can be passed to the provider. When disabled, Terraform returns an error if the argument value is null.
allow_unknown_values when enabled denotes that only wholly known argument values will be passed to the provider. When disabled, Terraform skips the function call entirely and assumes an unknown value result from the function.
description is human-readable documentation for the parameter.
description_kind is the formatting of the description.
Used in:
type is the type constraint for the function result.
Used in:
The optional function_argument records the index position of the argument which caused the error.
(message has no fields)
(message has no fields)
Used in:
Used in:
Used in:
name is the function name.
Used in:
(message has no fields)
Returns resource identity schemas for all resources
(message has no fields)
(message has no fields)
Used in:
(message has no fields)
(message has no fields)
(message has no fields)
RawState holds the stored state for a resource to be upgraded by the provider. It can be in one of two formats, the current json encoded format in bytes, or the legacy flatmap format as a map of strings.
Used in:
, ,(message has no fields)
(message has no fields)
(message has no fields)
ResourceIdentityData is a separate message for better extensibility
Used in:
, , , , , , , , ,identity_data is the resource identity data for the given definition. It should be decoded using the identity schema. This data is considered permanent for the identity version and suitable for longer-term storage.
ResourceIdentitySchema represents the structure and types of data used to identify a managed resource type. Effectively, resource identity is a versioned object that can be used to compare resources, whether already managed and/or being discovered.
Used in:
version is the identity version and separate from the Schema version. Any time the structure or format of identity_attributes changes, this version should be incremented. Versioning implicitly starts at 0 and by convention should be incremented by 1 each change. When comparing identity_attributes data, differing versions should always be treated as inequal.
identity_attributes are the individual value definitions which define identity data for a managed resource type. This information is used to decode DynamicValue of identity data. These attributes are intended for permanent identity data and must be wholly representative of all data necessary to compare two managed resource instances with no other data. This generally should include account, endpoint, location, and automatically generated identifiers. For some resources, this may include configuration-based data, such as a required name which must be unique.
IdentityAttribute represents one value of data within resource identity. These are always used in resource identity comparisons.
Used in:
name is the identity attribute name
type is the identity attribute type
required_for_import when enabled signifies that this attribute must be defined for ImportResourceState to complete successfully
optional_for_import when enabled signifies that this attribute is not required for ImportResourceState, because it can be supplied by the provider. It is still possible to supply this attribute during import.
description is a human-readable description of the attribute in Markdown
Schema is the configuration schema for a Resource or Provider.
Used in:
The version of the schema. Schemas are versioned, so that providers can upgrade a saved resource state when the schema is changed.
Block is the top level configuration block for this schema.
Used in:
,write_only indicates that the attribute value will be provided via configuration and must be omitted from state. write_only must be combined with optional or required, and is only valid for managed resource schemas.
Used in:
,Used in:
Used in:
Used in:
MinItems and MaxItems were never used in the protocol, and have no effect on validation.
Used in:
ServerCapabilities allows providers to communicate extra information regarding supported protocol features. This is used to indicate availability of certain forward-compatible changes which may be optional in a major protocol version, but cannot be tested for directly.
Used in:
,The plan_destroy capability signals that a provider expects a call to PlanResourceChange when a resource is going to be destroyed.
The get_provider_schema_optional capability indicates that this provider does not require calling GetProviderSchema to operate normally, and the caller can used a cached copy of the provider's schema.
The move_resource_state capability signals that a provider supports the MoveResourceState RPC.
(message has no fields)
Used in:
, , ,(message has no fields)
(message has no fields)
(message has no fields)
(message has no fields)
(message has no fields)
(message has no fields)