Providers#
pulumi/pulumi:proto/pulumi/provider.proto
Services#
π ResourceProvider#
The ResourceProvider service defines a standard interface for resource providers. A resource provider manages a set of configuration, resources, functions and so on in a single package, and offers methods such as CRUD operations on resources and invocations of functions. Resource providers are primarily managed by the Pulumi engine as part of a deployment in order to interact with the cloud providers underpinning a Pulumi application.
π Handshake#
β€΅οΈ ProviderHandshakeRequest β€΄οΈ ProviderHandshakeResponse
Handshake is the first call made by the engine to a provider. It is used to pass the engineβs address to the
provider so that it may establish its own connections back, and to establish protocol configuration that will be
used to communicate between the two parties. Providers that support Handshake should return responses
consistent with those returned in response to π Configure calls where there is
overlap due to the use of Configure prior to Handshakeβs introduction.
π Parameterize#
β€΅οΈ ParameterizeRequest β€΄οΈ ParameterizeResponse
Parameterize is the primary means of supporting parameterized providers, which allow
a caller to change a providerβs behavior ahead of its configuration and
subsequent use. Where a π Configure call allows a caller to influence provider
behaviour at a high level (e.g. by specifying the region in which an AWS provider should operate), a
Parameterize call may change the set of resources and functions that a provider offers (that is, its schema).
This is useful in any case where some βsetβ of providers can be captured by a single implementation that may
power fundamentally different schemata β dynamically bridging Terraform providers, or managing Kubernetes
clusters with custom resource definitions, for instance, are good examples. The parameterized package that
Parameterize yields is known as a sub-package of the original (unparameterized) package.
Parameterize supports two types of parameterization:
Replacement parameterization, whereby a
Parameterizecall results in a schema that completely replaces the original provider schema. Bridging a Terraform provider dynamically might be an example of this β following the call toParameterize, the providerβs schema will become that of the Terraform provider that was bridged. Providers that implement replacement parameterization expect a single call toParameterize.Extension parameterization, in which a
Parameterizecall results in a schema that is a superset of the original. This is useful in cases where a provider can be extended with additional resources or functions, such as a Kubernetes provider that can be extended with resources representing custom resource definitions. Providers that implement extension parameterization should accept multiple calls toParameterize. Extension packages may even be called multiple times with the same package name, but with different versions. The CRUD operations of extension resources must include the version of which sub-package they correspond to.
Parameterize should work the same whether it is provided with ParametersArgs or ParametersValue input. In
each case it should return the sub-package name and version (which when a ParametersValue is supplied should
match the given input).
π GetSchema#
β€΅οΈ GetSchemaRequest β€΄οΈ GetSchemaResponse
GetSchema fetches the schema for this resource provider.
π CheckConfig#
β€΅οΈ CheckRequest β€΄οΈ CheckResponse
CheckConfig validates a set of configuration inputs that will be passed to this provider instance.
CheckConfig is to provider resources what π Check is to individual resources, and
is the first stage in configuring (that is, eventually executing a π Configure call)
a provider using user-supplied values. In the case that provider inputs are coming from some source that has been
checked previously (e.g. a Pulumi state), it is not necessary to call CheckConfig.
A CheckConfig call returns either a set of checked, known-valid inputs that may subsequently be passed to
π DiffConfig and/or π Configure, or a set of errors
explaining why the inputs are invalid. In the case that a set of inputs are successfully validated and returned,
CheckConfig may also populate default values for provider configuration, returning them so that they may be
passed to a subsequent π Configure call and persisted in the Pulumi state. In the
case that CheckConfig fails and returns a set of errors, it is expected that the caller (typically the Pulumi
engine) will fail provider registration.
As a rule, the provider inputs returned by a call to CheckConfig should preserve the original representation of
the properties as present in the program inputs. Though this rule is not required for correctness, violations
thereof can negatively impact the end-user experience, as the provider inputs are used for detecting and
rendering diffs.
π DiffConfig#
β€΅οΈ DiffRequest β€΄οΈ DiffResponse
DiffConfig compares an existing (βoldβ) provider configuration with a new configuration and computes the
difference (if any) between them. DiffConfig is to provider resources what π Diff
is to individual resources. DiffConfig should only be called with values that have at some point been validated
by a π CheckConfig call. The π¨ DiffResponse returned by a DiffConfig
call is used primarily to determine whether or not the newly configured provider is capable of managing resources
owned by the old provider. If DiffConfig indicates that the provider resource needs to be replaced, for
instance, then all resources owned by that provider will also need to be replaced. Replacement semantics should
thus be reserved for changes to configuration properties that are guaranteed to make old resources unmanageable.
Changes to an AWS region, for example, will almost certainly require a provider replacement, but changes to an
AWS access key, should almost certainly not.
Implementations must satisfy the invariants documented on DiffResponse.
π Configure#
β€΅οΈ ConfigureRequest β€΄οΈ ConfigureResponse
Configure is the final stage in configuring a provider instance. Callers may supply two sets of data:
Provider-specific configuration, which is the set of inputs that have been validated by a previous π CheckConfig call.
Provider-agnostic (βprotocolβ) configuration, such as whether or not the caller supports secrets.
The provider is expected to return its own set of protocol configuration, indicating which features it supports in turn so that the caller and the provider can interact appropriately.
Providers may expect a single call to Configure. If a call to Configure is missing required configuration,
the provider may return a set of error details containing π¨ ConfigureErrorMissingKeys values to
indicate which keys are missing.
Important
The use of Configure to configure protocol features is deprecated in favour of the
π Handshake method, which should be implemented by newer providers. To enable
compatibility between older engines and providers:
Callers which call
Handshakemust callConfigurewith flags such asacceptSecretsandacceptResourcesset totrue, since these features predate the introduction ofHandshakeand thusHandshake-aware callers must support them. See π¨ ConfigureRequest for more information.Providers which implement
Handshakemust support flags such asacceptSecretsandacceptResources, and indicate as such by always returningtruefor these fields in π¨ ConfigureResponse. See π¨ ConfigureResponse for more information.
π Invoke#
β€΅οΈ InvokeRequest β€΄οΈ InvokeResponse
Invoke dynamically executes a built-in function in the provider.
π Call#
β€΅οΈ CallRequest β€΄οΈ CallResponse
Call dynamically executes a method in the provider associated with a component resource.
π Check#
β€΅οΈ CheckRequest β€΄οΈ CheckResponse
Check validates a set of input properties against a given resource type. A Check call returns either a set of
checked, known-valid inputs that may subsequently be passed to π Diff,
π Create, or π Update; or a set of errors explaining
why the inputs are invalid. In the case that a set of inputs are successfully validated and returned, Check
may also populate default values for resource inputs, returning them so that they may be passed to a subsequent
call and persisted in the Pulumi state. In the case that Check fails and returns a set of errors, it is
expected that the caller (typically the Pulumi engine) will fail resource registration.
As a rule, the provider inputs returned by a call to Check should preserve the original representation of the
properties as present in the program inputs. Though this rule is not required for correctness, violations thereof
can negatively impact the end-user experience, as the provider inputs are used for detecting and rendering
diffs.
π Diff#
β€΅οΈ DiffRequest β€΄οΈ DiffResponse
Diff compares an existing (βoldβ) set of resource properties with a new set of properties and computes the
difference (if any) between them. Diff should only be called with values that have at some point been validated
by a π Check call.
Implementations must satisfy the invariants documented on DiffResponse.
π Create#
β€΅οΈ CreateRequest β€΄οΈ CreateResponse
Create provisions a new instance of the specified (custom) resource. It returns a
provider-assigned ID for the resource as well as the output properties that arose from the creation properties.
Output properties are typically the union of the resourceβs input properties and any additional values that were
computed or made available during creation.
If creation fails, Create may return an π¨ ErrorResourceInitFailed error detail explaining why.
Moreover, if Create does return an error, it must be the case that the resource was not created (that is,
Create can be thought of as transactional or atomic).
π Read#
β€΅οΈ ReadRequest β€΄οΈ ReadResponse
Read reads the current live state associated with a resource identified by the supplied state. The given state
must be sufficient to uniquely identify the resource. This is typically just the resource ID, but may also
include other properties.
π Update#
β€΅οΈ UpdateRequest β€΄οΈ UpdateResponse
Update updates an existing resource according to a new set of inputs, returning a new set of output properties.
π Delete#
β€΅οΈ DeleteRequest β€΄οΈ .google.protobuf.Empty
Delete deprovisions an existing resource as specified by its ID. Delete should be transactional/atomic β if
a call to Delete fails, it must be the case that the resource was not deleted and can be assumed to still
exist.
π Construct#
β€΅οΈ ConstructRequest β€΄οΈ ConstructResponse
Construct provisions a new component resource. Providers that implement Construct are
referred to as component providers. Construct is to component resources what
π Create is to custom resources. Components do not have any
lifecycle of their own, and instead embody the lifecycles of the resources that they are composed of. As such,
Construct is effectively a subprogram whose resources will be persisted in the callerβs state. It is
consequently passed enough information to manage fully these resources. At a high level, this comprises:
A π ResourceMonitor endpoint which the provider can use to register nested custom or component resources that belong to the component.
A set of input properties.
A full set of resource options that the component should propagate to resources it registers against the supplied resource monitor.
π Cancel#
β€΅οΈ .google.protobuf.Empty β€΄οΈ .google.protobuf.Empty
Cancel signals the provider to gracefully shut down and abort any ongoing resource operations.
Operations aborted in this way will return an error (e.g., Update and Create will either return a
creation error or an initialization error). Since Cancel is advisory and non-blocking, it is up
to the host to decide how long to wait after Cancel is called before (e.g.)
hard-closing any gRPC connection.
π GetPluginInfo#
β€΅οΈ .google.protobuf.Empty β€΄οΈ PluginInfo
GetPluginInfo returns generic information about this plugin, like its version.
π Attach#
β€΅οΈ PluginAttach β€΄οΈ .google.protobuf.Empty
Attach sends the engine address to an already running plugin.
π GetMapping#
β€΅οΈ GetMappingRequest β€΄οΈ GetMappingResponse
GetMapping returns mappings designed to aid in converting programs and state from other
ecosystems. It accepts a βconversion keyβ, which effectively corresponds to a source language, such
as terraform, and a source provider name, which is the name of the provider in the source language. Given
these, it returns source-specific mapping data for the provider requested. As an example, the Pulumi AWS
provider, which is bridged from the Terraform AWS provider and thus capable of mapping names between the two,
might respond to a call with key terraform and source provider name aws with mapping data for transforming
(among other things) Terraform AWS names such as aws_s3_bucket into Pulumi AWS types such as
aws:s3/bucket:Bucket. If a provider only supports a single source provider, or has some sensible default, it
may respond also to a call in which the source provider name is empty (""), which will be made when the engine
does not have sufficient knowledge to work out which provider offers a specific mapping.
In general, it is expected that providers implemented by bridging an equivalent provider from another ecosystem
(such as bridged Terraform providers built atop the pulumi-terraform-bridge, for instance) implement
GetMapping to support conversion from that ecosystem into Pulumi using the same logic that underpins the
bridging itself.
π GetMappings#
β€΅οΈ GetMappingsRequest β€΄οΈ GetMappingsResponse
GetMappings is an optional method designed to aid in converting programs and state from other
ecosystems. GetMappings accepts a βconversion keyβ. This corresponds to a source language, for
which we want to retrieve mappings for names etc. from that source language into Pulumi. An example key might
therefore be terraform in the event that we wish to map e.g. Terraform resource names to Pulumi resource types.
Given a key, GetMappings returns a list of source provider names for which calls to GetMapping will return
mappings. So, continuing the Terraform example, the Pulumi AWS provider, which is bridged from the Terraform AWS
provider and thus capable of mapping names between the two, might return the list ["aws"] in response to a call
with key terraform.
If a provider does not implement GetMappings, the engine will fall back to calling GetMapping blindly without
a source provider name (that is, with the value "").
Messages#
π¨ CallRequest#
tokstringthe function token to invoke.
argsgoogle.protobuf.Structthe arguments for the function invocation.
argDependenciesCallRequest.ArgDependenciesEntrya map from argument keys to the dependencies of the argument.
projectstringthe project name.
stackstringthe name of the stack being deployed into.
configCallRequest.ConfigEntrythe configuration variables to apply before running.
configSecretKeysstringthe configuration keys that have secret values.
dryRunbooltrue if weβre only doing a dryrun (preview).
parallelint32the degree of parallelism for resource operations (<=1 for serial).
monitorEndpointstringthe address for communicating back to the resource monitor.
organizationstringthe organization of the stack being deployed into.
accepts_output_valuesboolthe engine can be passed output values back, returnDependencies can be left blank if returning output values.
stack_trace_handlestringThe stack trace handle for the call. Supports stitching stack traces together across plugins.
π¨ ArgDependenciesEntry#
keystring<No description>
valueCallRequest.ArgumentDependencies<No description>
π¨ ArgumentDependencies#
ArgumentDependencies describes the resources that a particular argument depends on.
urnsstringA list of URNs this argument depends on.
π¨ ConfigEntry#
π¨ CallResponse#
returngoogle.protobuf.Structthe returned values, if call was successful.
failuresCheckFailurethe failures if any arguments didnβt pass verification.
returnDependenciesCallResponse.ReturnDependenciesEntrya map from return value keys to the dependencies of the return value.
returnDependencies will be augmented by the set of dependencies specified in return via output property values.
π¨ ReturnDependencies#
ReturnDependencies describes the resources that a particular return value depends on.
urnsstringA list of URNs this return value depends on.
π¨ ReturnDependenciesEntry#
keystring<No description>
valueCallResponse.ReturnDependencies<No description>
π¨ CheckFailure#
A CheckFailure describes a single validation error that arose as part of a
π CheckConfig or π Check call.
π¨ CheckRequest#
CheckRequest is the type of requests sent as part of π CheckConfig and
π Check calls. A CheckRequest primarily captures the URN and inputs of the resource
being checked. In the case of π CheckConfig, the URN will be the URN of the provider
resource being constructed, which may or may not be a default provider, and the inputs will be
the provider configuration.
urnstringThe URN of the resource whose inputs are being checked. In the case of π CheckConfig, this will be the URN of the provider resource being constructed, which may or may not be a default provider.
oldsgoogle.protobuf.StructThe old input properties or configuration for the resource, if any.
newsgoogle.protobuf.StructThe new input properties or configuration for the resource, if any.
Note
If this resource has been specified with the
ignoreChanges, then the values innewsmay differ from those written in the Pulumi program registering this resource. In such cases, the caller (e.g. the Pulumi engine) is expected to preprocess thenewsvalue by replacing every property matched byignoreChangeswith its correspondingoldsvalue (effectively ignoring the change).randomSeedbytesA random but deterministically computed hash, intended to be used for generating globally unique names.
namestringThe name of the resource being checked. This must match the name specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the name of the resource.typestringThe type of the resource being checked. This must match the type specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the type of the resource.autonamingCheckRequest.AutonamingOptions<No description>
π¨ AutonamingOptions#
Configuration for automatic resource naming behavior. This structure contains fields that control how the provider handles resource names, including proposed names and naming modes.
proposed_namestringThe proposed name for the resource being checked. This may be used by the provider as a suggestion for the final resource name, depending on the specified mode.
modeCheckRequest.AutonamingOptions.Mode<No description>
π¨ CheckResponse#
CheckResponse is the type of responses sent by a π CheckConfig or
π Check call. A CheckResponse may contain either:
a set of checked, known-valid
inputs. In the case of π CheckConfig, these may subsequently be passed to π DiffConfig and/or π Configure. In the case of π Check, these may be passed to any of the supported lifecycle methods that accept provider inputs.a set of
failuresdetailing invalid inputs.
In cases where the supplied set of inputs is valid, a CheckResponse may contain default values that should
persisted to Pulumi state and passed to subsequent calls.
inputsgoogle.protobuf.StructA valid, checked set of inputs. May contain defaults.
failuresCheckFailureAny validation failures that occurred.
π¨ ConfigureErrorMissingKeys#
ConfigureErrorMissingKeys is the type of error details that may be sent in response to a
π Configure call when required configuration keys are missing.
missingKeysConfigureErrorMissingKeys.MissingKeyA list of required configuration keys that were not supplied.
π¨ MissingKey#
The type of key-value pairs representing keys that are missing from a π Configure call.
namestringThe name of the missing configuration key.
Note
This should be the Pulumi name of the missing key, and not any provider-internal or upstream name. Names that differ between Pulumi and an upstream provider should be translated prior to being returned.
descriptionstringA description of the missing config key, as reported by the provider.
π¨ ConfigureRequest#
ConfigureRequest is the type of requests sent as part of a π Configure call. Requests
include both provider-specific inputs (variables or args) and provider-agnostic (βprotocolβ) configuration
(acceptSecrets, acceptResources, and so on).
variablesConfigureRequest.VariablesEntryWarning
variablesis deprecated;argsshould be used instead wherever possible.A map of input properties for the provider. Compound values, such as nested objects, should be JSON encoded so that they too can be passed as strings. For instance, the following configuration:
{ "a": 42, "b": { "c": "hello", "d": true } }
should be encoded as:
{ "a": "42", "b": "{\"c\":\"hello\",\"d\":true}" }
argsgoogle.protobuf.StructA map of input properties for the provider.
Warning
argsmay include secrets. BecauseConfigureRequestis sent before π¨ ConfigureResponse can specify whether or not the provider accepts secrets in general, providers must handle secrets if they appear inargs.acceptSecretsboolTrue if and only if the caller supports secrets. If true, operations should return strongly typed secrets if the provider supports them also. Must be true if the caller has previously called π Handshake.
acceptResourcesboolTrue if and only if the caller supports strongly typed resources. If true, operations should return resources as strongly typed values if the provider supports them also. Must be true if the caller has previously called π Handshake.
sends_old_inputsboolTrue if and only if the caller supports sending old inputs as part of π Diff and π Update calls. If true, the provider should expect these fields to be populated in these calls. Must be true if the caller has previously called π Handshake.
sends_old_inputs_to_deleteboolTrue if and only if the caller supports sending old inputs and outputs as part of π Delete calls. If true, the provider should expect these fields to be populated in these calls. Must be true if the caller has previously called π Handshake.
idstringThe ID of the provider being configured. N.B. This will be null if configure_with_urn was false in Handshake.
urnstringThe URN of the provider being configured. N.B. This will be null if configure_with_urn was false in Handshake.
namestringThe name of the provider being configured. This must match the name specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the name of the provider. N.B. This will be null if configure_with_urn was false in Handshake.typestringThe type of the provider being configured. This must match the type specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the type of the provider. N.B. This will be null if configure_with_urn was false in Handshake.
π¨ VariablesEntry#
π¨ ConfigureResponse#
ConfigureResponse is the type of responses sent by a π Configure call. Its primary
purpose is to communicate features that the provider supports back to the caller.
acceptSecretsboolTrue if and only if the provider supports secrets. If true, the caller should pass secrets as strongly typed values to the provider. Must match the value returned in response to π Handshake if the provider supports handshaking.
supportsPreviewboolTrue if and only if the provider supports the
previewfield on π Create and π Update calls. If true, the engine should invoke these calls withpreviewset totrueduring previews. Must be true if the provider implements π Handshake.acceptResourcesboolTrue if and only if the provider supports strongly typed resources. If true, the caller should pass resources as strongly typed values to the provider. Must match the value returned in response to π Handshake if the provider supports handshaking.
acceptOutputsboolTrue if and only if the provider supports output values as inputs. If true, the engine should pass output values to the provider where possible. Must match the value returned in response to π Handshake if the provider supports handshaking.
supports_autonaming_configurationboolTrue if the provider accepts and respects autonaming configuration that the engine provides on behalf of the user. Must match the value returned in response to π Handshake if the provider supports handshaking.
π¨ ConstructRequest#
ConstructRequest is the type of requests sent as part of a π Construct call. A
ConstructRequest captures enough data to be able to register nested components against the callerβs resource
monitor.
projectstringThe project to which this resource and its nested resources will belong.
stackstringThe name of the stack being deployed into.
configConstructRequest.ConfigEntryConfiguration for the specified project and stack.
dryRunboolTrue if and only if the request is being made as part of a preview/dry run, in which case the provider should not actually construct the component.
parallelint32The degree of parallelism that may be used for resource operations. A value less than or equal to 1 indicates that operations should be performed serially.
monitorEndpointstringThe address of the π ResourceMonitor that the provider should connect to in order to send resource registrations for its nested resources.
typestringThe type of the component resource being constructed. This must match the type specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the type of the resource.namestringThe name of the component resource being constructed. This must match the name specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the name of the resource.parentstringAn optional parent resource that the component (and by extension, its nested resources) should be children of.
inputsgoogle.protobuf.StructThe component resourceβs input properties. Unlike the inputs of custom resources, these will not have been passed to a call to π Check. By virtue of their being a composition of other resources, component resources are able to (and therefore expected) to validate their own inputs. Moreover, π Check will be called on any inputs passed to nested custom resources as usual.
inputDependenciesConstructRequest.InputDependenciesEntryA map of property dependencies for the component resource and its nested resources.
providersConstructRequest.ProvidersEntryA map of package names to provider references for the component resource and its nested resources.
dependenciesstringA list of URNs that this resource and its nested resources depend on.
configSecretKeysstringA set of configuration keys whose values are secret.
organizationstringThe organization to which this resource and its nested resources will belong.
protectboolTrue if and only if the resource (and by extension, its nested resources) should be marked as protected. Protected resources cannot be deleted without first being unprotected.
additionalSecretOutputsstringA list of input properties whose values should be treated as secret.
customTimeoutsConstructRequest.CustomTimeoutsA set of custom timeouts that specify how long the caller is prepared to wait for the various CRUD operations of this resourceβs nested resources.
deletedWithstringThe URN of a resource that this resource (and thus its nested resources) will be implicitly deleted with. If the resource referred to by this URN is deleted in the same operation that this resource would be deleted, the π Delete call for this resource will be elided (since this dependency signals that it will have already been deleted).
deleteBeforeReplaceboolIf true, this resource (and its nested resources) must be deleted before its replacement is created.
ignoreChangesstringA set of property paths that should be treated as unchanged.
replaceOnChangesstringA set of properties that, when changed, trigger a replacement.
retainOnDeleteboolTrue if π Delete should not be called when the resource (and by extension, its nested resources) are removed from a Pulumi program.
accepts_output_valuesboolTrue if the caller is capable of accepting output values in response to the call. If this is set, these outputs may be used to communicate dependency information and so there is no need to populate π¨ ConstructResponseβs
stateDependenciesfield.resource_hooksConstructRequest.ResourceHooksBinding<No description>
stack_trace_handlestringThe stack trace handle for the construct call. Supports stitching stack traces together across plugins.
replace_withstringThe URNs of resources whose replaces will trigger a replace on this resource.
aliasesAliasa list of additional aliases that should be considered the same.
replacement_triggergoogle.protobuf.ValueIf set, the engine will diff this value with the last recorded value, and trigger a replace if they are not equal.
π¨ ConfigEntry#
π¨ CustomTimeouts#
A CustomTimeouts object encapsulates a set of timeouts for the various CRUD operations that might be performed
on this resourceβs nested resources. Timeout values are specified as duration strings, such as "5ms" (5
milliseconds), "40s" (40 seconds), or "1m30s" (1 minute and 30 seconds). The following units of time are
supported:
ns: nanosecondsusorΒ΅s: microsecondsms: millisecondss: secondsm: minutesh: hours
createstringHow long a caller is prepared to wait for a nested resourceβs π Create operation to complete.
updatestringHow long a caller is prepared to wait for a nested resourceβs π Update operation to complete.
deletestringHow long a caller is prepared to wait for a nested resourceβs π Delete operation to complete.
π¨ InputDependenciesEntry#
keystring<No description>
valueConstructRequest.PropertyDependencies<No description>
π¨ PropertyDependencies#
A PropertyDependencies list is a set of URNs that a particular property may depend on.
urnsstringA list of URNs that this property depends on.
π¨ ProvidersEntry#
π¨ ResourceHooksBinding#
π¨ ConstructResponse#
ConstructResponse is the type of responses sent by a π Construct call.
urnstringThe URN of the constructed component resource.
stategoogle.protobuf.StructAny output properties that the component registered as part of its construction.
stateDependenciesConstructResponse.StateDependenciesEntryA map of property dependencies for the componentβs outputs. This will be set if the caller indicated that it could not receive dependency-communicating output values by setting π¨ ConstructRequestβs
accepts_output_valuesfield to false.
π¨ PropertyDependencies#
A PropertyDependencies list is a set of URNs that a particular property may depend on.
urnsstringA list of URNs that this property depends on.
π¨ StateDependenciesEntry#
keystring<No description>
valueConstructResponse.PropertyDependencies<No description>
π¨ CreateRequest#
CreateRequest is the type of requests sent as part of a π Create call.
urnstringThe URN of the resource being created.
propertiesgoogle.protobuf.StructThe resourceβs input properties, to be set during creation. These should have been validated by a call to π Check.
timeoutdoubleA timeout in seconds that the caller is prepared to wait for the operation to complete.
previewboolTrue if and only if the request is being made as part of a preview/dry run, in which case the provider should not actually create the resource.
namestringThe name of the resource being created. This must match the name specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the name of the resource.typestringThe type of the resource being created. This must match the type specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the type of the resource.resource_status_addressstringThe address of a
pulumirpc.ResourceStatusservice which can be used to e.g. create or update view resources.resource_status_tokenstringThe
pulumirpc.ResourceStatusservice context token to pass when calling methods on the service.
π¨ CreateResponse#
CreateResponse is the type of responses sent by a π Create call. A CreateResponse
contains the ID of the created resource, as well as any output properties that arose from the creation process.
idstringThe ID of the created resource.
propertiesgoogle.protobuf.StructThe resourceβs output properties. Typically this will be a union of the resourceβs input properties and any additional values that were computed or made available during creation.
refresh_before_updateboolIndicates that this resource should always be refreshed prior to updates.
π¨ DeleteRequest#
DeleteRequest is the type of requests sent as part of a π Delete call.
idstringThe ID of the resource to delete.
urnstringThe URN of the resource to delete.
propertiesgoogle.protobuf.StructThe old output properties of the resource being deleted.
timeoutdoubleA timeout in seconds that the caller is prepared to wait for the operation to complete.
old_inputsgoogle.protobuf.StructThe old input properties of the resource being deleted.
the old input values of the resource to delete.
namestringThe name of the resource being deleted. This must match the name specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the name of the resource.typestringThe type of the resource being deleted. This must match the type specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the type of the resource.resource_status_addressstringThe address of a
pulumirpc.ResourceStatusservice which can be used to e.g. create or update view resources.resource_status_tokenstringThe
pulumirpc.ResourceStatusservice context token to pass when calling methods on the service.old_viewsViewThe old views for the resource being read.
π¨ DiffRequest#
DiffRequest is the type of requests sent as part of π DiffConfig and
π Diff calls. A DiffRequest primarily captures:
the URN of the resource whose properties are being compared;
the old and new input properties of the resource; and
the old output properties of the resource.
In the case of π DiffConfig, the URN will be the URN of the provider resource being examined, which may or may not be a default provider, and the inputs and outputs will be the provider configuration and state. Inputs supplied to a π DiffConfig call should have been previously checked by a call to π CheckConfig; inputs supplied to a π Diff call should have been previously checked by a call to π Check.
idstringThe ID of the resource being diffed.
urnstringThe URN of the resource being diffed.
oldsgoogle.protobuf.StructThe old output properties of the resource being diffed.
newsgoogle.protobuf.StructThe new input properties of the resource being diffed. These should have been validated by an appropriate call to π CheckConfig or π Check.
ignoreChangesstringA set of property paths that should be treated as unchanged.
old_inputsgoogle.protobuf.StructThe old input properties of the resource being diffed.
namestringThe name of the resource being diffed. This must match the name specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the name of the resource.typestringThe type of the resource being diffed. This must match the type specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the type of the resource.
π¨ DiffResponse#
DiffResponse is the type of responses sent by a π DiffConfig or
π Diff call. A DiffResponse indicates whether a resource is unchanged, requires
updating (that is, can be changed βin placeβ), or requires replacement (that is, must be destroyed and recreated
anew). Legacy implementations may also signal that it is unknown whether there are changes or not.
DiffResponse has evolved since its inception and there are now a number of ways that providers can signal their
intent to callers:
Simple diffs utilise the
changesfield to signal which fields are responsible for a change, and thereplacesfield to further communicate which changes (if any) require a replacement as opposed to an update.Detailed diffs are those with
hasDetailedDiffset, and utilise thedetailedDifffield to provide a more granular view of the changes that have occurred. Detailed diffs are designed to allow providers to control precisely which field names are displayed as responsible for a change, and to signal more accurately what kind of change occurred (e.g. a field was added, deleted or updated).
The response must satisfy the following invariants:
For each top-level key in
diffthere is at least one matching property path, starting at that key, indetailedDiff.For each entry in
detailedDiff, its top-level property is indiff.diffdoes not contain duplicates.detailedDiffdoes not contain duplicate keys.
replacesstringA set of properties which have changed and whose changes require the resource being diffed to be replaced. The caller should replace the resource if this set is non-empty, or if any of the properties specified in
detailedDiffhave a*_REPLACEkind.stablesstringAn optional list of properties that will not ever change (are stable).
deleteBeforeReplaceboolIf true, this resource must be deleted before its replacement is created.
changesDiffResponse.DiffChangesThe result of the diff. Indicates at a high level whether the resource has changed or not (or, in legacy cases, if the provider does not know).
diffsstringThe set of properties which have changed. This field only supports top-level properties. It does not support full property paths; implementations should use
detailedDiffwhen this is required.detailedDiffDiffResponse.DetailedDiffEntrydetailedDiffcan be used to implement more detailed diffs. A detailed diff is a map from property paths to π¨ PropertyDiffs, which describe the kind of change that occurred to the property located at that path. If a provider does not implement this, the caller (typically the Pulumi engine) will compute a representation based on the simple diff fields (changes,replaces, and so on).hasDetailedDiffboolTrue if and only if this response contains a
detailedDiff.
π¨ DetailedDiffEntry#
keystring<No description>
valuePropertyDiff<No description>
π¨ ErrorResourceInitFailed#
ErrorResourceInitFailed is sent as a Detail ResourceProvider.{Create, Update} fail because a
resource was created successfully, but failed to initialize.
idstringthe ID of the created resource.
propertiesgoogle.protobuf.Structany properties that were computed during updating.
reasonsstringerror messages associated with initialization failure.
inputsgoogle.protobuf.Structthe current inputs to this resource (only applicable for Read)
refresh_before_updateboolIndicates that this resource should always be refreshed prior to updates.
π¨ GetMappingRequest#
GetMappingRequest is the type of requests sent as part of a π GetMapping call.
keystringThe conversion key for the mapping being requested. This typically corresponds to the source language, such as
terraformin the case of mapping Terraform names to Pulumi names.providerstringAn optional source provider key for the mapping being requested. If this is empty, the provider should assume that this request is from an old engine prior to the introduction of π GetMappings. In these cases the request should be answered with the βprimaryβ mapping. If this field is set, the
providerfield in the corresponding π¨ GetMappingResponse should contain the same value.
π¨ GetMappingResponse#
GetMappingResponse is the type of responses sent by a π GetMapping call. The data
within a GetMappingResponse will normally be human-readable JSON (e.g. an object mapping names from the source to
Pulumi), but the engine doesnβt mandate any specific format.
π¨ GetMappingsRequest#
GetMappingsRequest is the type of requests sent as part of a π GetMappings call.
keystringThe conversion key for the mapping being requested. This typically corresponds to the source language, such as
terraformin the case of mapping Terraform names to Pulumi names.
π¨ GetMappingsResponse#
GetMappingsResponse is the type of responses sent by a π GetMappings call.
providersstringThe set of source provider keys this provider can supply mappings for. For example the Pulumi provider
terraform-templatewould return["template"]for this.
π¨ GetSchemaRequest#
π¨ GetSchemaResponse#
schemastringthe JSON-encoded schema.
π¨ InvokeRequest#
tokstringthe function token to invoke.
argsgoogle.protobuf.Structthe arguments for the function invocation.
previewboolThis is only set if
HandshakeRequest.invoke_with_previewwas true. If this is true then the engine is currently running a preview deployment.
π¨ InvokeResponse#
returngoogle.protobuf.Structthe returned values, if invoke was successful.
failuresCheckFailurethe failures if any arguments didnβt pass verification.
π¨ ParameterizeRequest#
ParameterizeRequest is the type of requests sent as part of a π Parameterize call. A
ParameterizeRequest may contain either:
a string array (
ParametersArgs), intended to represent a set of command-line arguments so as to support instantiating a parameterized provider from a command-line invocation (e.g. to generate an SDK).a byte array accompanied by a name and version (
ParametersValue), intended to represent a parameter embedded in a previously generated SDK.
Embedding parameter values in SDKs allows programs to consume parameterized providers without needing to know the details of the parameterization. Allowing the representation embedded into an SDK to differ from that supplied on the command-line permits providers to implement optimizations for the common, fast-path case (program execution), such as embedding a generated schema as opposed to generating it on-demand for each resource registration.
argsParameterizeRequest.ParametersArgsArguments from the command line.
valueParameterizeRequest.ParametersValueValues from a generated SDK.
π¨ ParametersArgs#
A parameter value, represented as an array of strings, as might be provided by a command-line invocation, such as that used to generate an SDK.
argsstring<No description>
π¨ ParametersValue#
A parameter value, represented by an arbitrary array of bytes accompanied by a name and version. This is expected to be the format used by parameterized provider SDKs.
π¨ ParameterizeResponse#
ParameterizeResponse is the type of responses sent by a π Parameterize call. It
contains a name and version that can be used to identify the sub-package that now exists as a result of
parameterization.
π¨ PropertyDiff#
PropertyDiff describes the kind of change that occurred to a property during a diff operation. A PropertyDiff may
indicate that a property was added, deleted, or updated, and may further indicate that the change requires a
replacement.
kindPropertyDiff.KindThe kind of diff associated with this property.
inputDiffboolTrue if and only if this difference represents one between a pair of old and new inputs, as opposed to a pair of old and new states.
π¨ ProviderHandshakeRequest#
ProviderHandshakeRequest is the type of requests sent as part of a π Handshake call.
engine_addressstringThe gRPC address of the engine handshaking with the provider. At a minimum, this address will expose an instance of the π Engine service.
root_directorystringA root directory where the providerβs binary,
PulumiPlugin.yaml, or other identifying source code is located. In the event that the provider is not being booted by the engine (e.g. in the case that the engine has been asked to attach to an existing running provider instance via a host/port number), this field will be empty.program_directorystringA program directory in which the provider should execute. This is generally a subdirectory of the root directory, though this is not required. In the event that the provider is not being booted by the engine (e.g. in the case that the engine has been asked to attach to an existing running provider instance via a host/port number), this field will be empty.
configure_with_urnboolIf true the engine will send URN, Name, Type, and ID to the provider as part of the configuration.
supports_viewsboolIf true the engine supports views and can send the address of a
pulumirpc.ResourceStatusservice which can be used to e.g. create or update view resources.supports_refresh_before_updateboolIf true the engine supports letting the provider mark resource states as requiring refresh before update.
invoke_with_previewboolIf true the engine will send
previewtoInvokemethods to let them know if the current operation is a preview or up.
π¨ ProviderHandshakeResponse#
ProviderHandshakeResponse is the type of responses sent by a π Handshake call.
accept_secretsboolTrue if and only if the provider supports secrets. If true, the caller should pass secrets as strongly typed values to the provider. Must match the value returned in response to π Configure.
accept_resourcesboolTrue if and only if the provider supports strongly typed resources. If true, the caller should pass resources as strongly typed values to the provider. Must match the value returned in response to π Configure.
accept_outputsboolTrue if and only if the provider supports output values as inputs. If true, the engine should pass output values to the provider where possible. Must match the value returned in response to π Configure.
supports_autonaming_configurationboolTrue if the provider accepts and respects autonaming configuration that the engine provides on behalf of the user. Must match the value returned in response to π Configure.
π¨ ReadRequest#
ReadRequest is the type of requests sent as part of a π Read call.
idstringThe ID of the resource to read.
urnstringThe URN of the resource being read.
propertiesgoogle.protobuf.StructAny current state for the resource being read. This state should be sufficient to uniquely identify the resource.
inputsgoogle.protobuf.StructAny current input properties for the resource being read. These will only be populated when the π Read call is being made as part of a refresh operation.
namestringThe name of the resource being read. This must match the name specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the name of the resource.typestringThe type of the resource being read. This must match the type specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the type of the resource.resource_status_addressstringThe address of a
pulumirpc.ResourceStatusservice which can be used to e.g. create or update view resources.resource_status_tokenstringThe
pulumirpc.ResourceStatusservice context token to pass when calling methods on the service.old_viewsViewThe old views for the resource being read. These will only be populated when the π Read call is being made as part of a refresh operation.
π¨ ReadResponse#
ReadResponse is the type of responses sent by a π Read call. A ReadResponse contains
the ID of the resource being read, as well as any state that was successfully read from the live environment.
idstringThe ID of the read resource.
propertiesgoogle.protobuf.StructThe output properties of the resource read from the live environment.
inputsgoogle.protobuf.StructOutput-derived input properties for the resource. These are returned as they would be returned from a π Check call with the same values.
refresh_before_updateboolIndicates that this resource should always be refreshed prior to updates.
π¨ UpdateRequest#
UpdateRequest is the type of requests sent as part of a π Update call.
idstringThe ID of the resource being updated.
urnstringThe URN of the resource being updated.
oldsgoogle.protobuf.StructThe old output properties of the resource being updated.
newsgoogle.protobuf.StructThe new input properties of the resource being updated. These should have been validated by a call to π Check.
timeoutdoubleA timeout in seconds that the caller is prepared to wait for the operation to complete.
ignoreChangesstringA set of property paths that should be treated as unchanged.
previewboolTrue if and only if the request is being made as part of a preview/dry run, in which case the provider should not actually update the resource.
old_inputsgoogle.protobuf.StructThe old input properties of the resource being updated.
namestringThe name of the resource being updated. This must match the name specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the name of the resource.typestringThe type of the resource being updated. This must match the type specified by the
urnfield, and is passed so that providers do not have to implement URN parsing in order to extract the type of the resource.resource_status_addressstringThe address of a
pulumirpc.ResourceStatusservice which can be used to e.g. create or update view resources.resource_status_tokenstringThe
pulumirpc.ResourceStatusservice context token to pass when calling methods on the service.old_viewsViewThe old views for the resource being updated.
π¨ UpdateResponse#
UpdateResponse is the type of responses sent by a π Update call.
propertiesgoogle.protobuf.StructAn updated set of resource output properties. Typically this will be a union of the resourceβs inputs and any additional values that were computed or made available during the update.
refresh_before_updateboolIndicates that this resource should always be refreshed prior to updates.
π¨ View#
View represents the state of a view resource.
typestringThe type of the view resource.
namestringThe name of the view resource.
parent_typestringAn optional type of the parent view resource.
parent_namestringAn optional name of the parent view resource.
inputsgoogle.protobuf.StructThe view resourceβs inputs.
outputsgoogle.protobuf.StructThe view resourceβs outputs.