# Resource registration
<gh-file:pulumi#proto/pulumi/resource.proto>

## Services

(pulumirpc.ResourceMonitor)=
### 🔌 ResourceMonitor
ResourceMonitor is the interface a source uses to talk back to the planning monitor orchestrating the execution.


(pulumirpc.ResourceMonitor.GetDeploymentInfo)=
#### 📞 GetDeploymentInfo

⤵️ [.google.protobuf.Empty](#google.protobuf.Empty) ⤴️ [DeploymentInfo](#pulumirpc.DeploymentInfo)

GetDeploymentInfo returns the execution context associated with this monitor instance.

This is an additive API intended to reduce duplicated state passed through
environment variables and per-request protobuf fields. New clients should
prefer this over piecemeal feature probing via SupportsFeature.

Backward compatibility:
- Older monitors may not implement this RPC and will return UNIMPLEMENTED.
- Clients should fall back to existing request fields/env vars/SupportsFeature.


(pulumirpc.ResourceMonitor.SupportsFeature)=
#### 📞 SupportsFeature

⤵️ [SupportsFeatureRequest](#pulumirpc.SupportsFeatureRequest) ⤴️ [SupportsFeatureResponse](#pulumirpc.SupportsFeatureResponse)




(pulumirpc.ResourceMonitor.Invoke)=
#### 📞 Invoke

⤵️ [ResourceInvokeRequest](#pulumirpc.ResourceInvokeRequest) ⤴️ [ResourceInvokeResponse](#pulumirpc.ResourceInvokeResponse)




(pulumirpc.ResourceMonitor.Call)=
#### 📞 Call

⤵️ [ResourceCallRequest](#pulumirpc.ResourceCallRequest) ⤴️ [CallResponse](#pulumirpc.CallResponse)




(pulumirpc.ResourceMonitor.ReadResource)=
#### 📞 ReadResource

⤵️ [ReadResourceRequest](#pulumirpc.ReadResourceRequest) ⤴️ [ReadResourceResponse](#pulumirpc.ReadResourceResponse)




(pulumirpc.ResourceMonitor.RegisterResource)=
#### 📞 RegisterResource

⤵️ [RegisterResourceRequest](#pulumirpc.RegisterResourceRequest) ⤴️ [RegisterResourceResponse](#pulumirpc.RegisterResourceResponse)




(pulumirpc.ResourceMonitor.RegisterResourceOutputs)=
#### 📞 RegisterResourceOutputs

⤵️ [RegisterResourceOutputsRequest](#pulumirpc.RegisterResourceOutputsRequest) ⤴️ [.google.protobuf.Empty](#google.protobuf.Empty)




(pulumirpc.ResourceMonitor.RegisterStackTransform)=
#### 📞 RegisterStackTransform

⤵️ [Callback](#pulumirpc.Callback) ⤴️ [.google.protobuf.Empty](#google.protobuf.Empty)

Register a resource transform for the stack


(pulumirpc.ResourceMonitor.RegisterStackInvokeTransform)=
#### 📞 RegisterStackInvokeTransform

⤵️ [Callback](#pulumirpc.Callback) ⤴️ [.google.protobuf.Empty](#google.protobuf.Empty)

Register an invoke transform for the stack


(pulumirpc.ResourceMonitor.RegisterResourceHook)=
#### 📞 RegisterResourceHook

⤵️ [RegisterResourceHookRequest](#pulumirpc.RegisterResourceHookRequest) ⤴️ [.google.protobuf.Empty](#google.protobuf.Empty)

Register a resource hook that can be called by the engine during certain
steps of a resource's lifecycle.


(pulumirpc.ResourceMonitor.RegisterErrorHook)=
#### 📞 RegisterErrorHook

⤵️ [RegisterErrorHookRequest](#pulumirpc.RegisterErrorHookRequest) ⤴️ [.google.protobuf.Empty](#google.protobuf.Empty)

Register an error hook that can be called by the engine when an operation fails and is retryable.

Error hooks are a separate type of hook to other life cycle hooks as they have different inputs and outputs.


(pulumirpc.ResourceMonitor.RegisterPackage)=
#### 📞 RegisterPackage

⤵️ [RegisterPackageRequest](#pulumirpc.RegisterPackageRequest) ⤴️ [RegisterPackageResponse](#pulumirpc.RegisterPackageResponse)

Registers a package and allocates a packageRef. The same package can be registered multiple times in Pulumi.
Multiple requests are idempotent and guaranteed to return the same result.


(pulumirpc.ResourceMonitor.SignalAndWaitForShutdown)=
#### 📞 SignalAndWaitForShutdown

⤵️ [.google.protobuf.Empty](#google.protobuf.Empty) ⤴️ [.google.protobuf.Empty](#google.protobuf.Empty)

SignalAndWaitForShutdown lets the resource monitor know that no more
events will be generated. This call blocks until the resource monitor is
finished, which will happen once all the steps have executed. This allows
the language runtime to stay running and handle callback requests, even
after the user program has completed. Runtime SDKs should call this after
executing the user's program. This can only be called once.

## Messages
(pulumirpc.DeploymentInfo)=
### 📨 DeploymentInfo
DeploymentInfo returns monitor execution state currently sent to programs
and/or providers through other channels.


`project` [string](#string)
:   The project name.


`stack` [string](#string)
:   The stack name.


`organization` [string](#string)
:   The organization name.


`config` [DeploymentInfo.ConfigEntry](#pulumirpc.DeploymentInfo.ConfigEntry)
:   The stack configuration values.


`configSecretKeys` [string](#string)
:   Configuration keys whose values are secret.


`dryRun` [bool](#bool)
:   True if the current execution is preview/dry-run.


`parallel` [int32](#int32)
:   Requested operation parallelism (<=1 for serial execution).


`supportedFeatures` [ResourceMonitorFeature](#pulumirpc.ResourceMonitorFeature)
:   The set of monitor-supported protocol features.

(pulumirpc.DeploymentInfo.ConfigEntry)=
### 📨 ConfigEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [string](#string)
: &lt;No description&gt;

(pulumirpc.ErrorHookRequest)=
### 📨 ErrorHookRequest
ErrorHookRequest is the request object for error hook callbacks in CallbackInvokeRequest.


`urn` [string](#string)
:   the urn of the resource for which the hook is called.


`id` [string](#string)
:   the optional urn of the resource for which the hook is called.


`name` [string](#string)
:   the name of the resource for which the hook is called.


`type` [string](#string)
:   the type of the resource for which the hook is called.


`new_inputs` [google.protobuf.Struct](#google.protobuf.Struct)
:   the optional checked new inputs of the resource.


`old_inputs` [google.protobuf.Struct](#google.protobuf.Struct)
:   the optional checked old inputs of the resource.


`old_outputs` [google.protobuf.Struct](#google.protobuf.Struct)
:   the optional old outputs of the resource.


`failed_operation` [string](#string)
:   the operation that failed (create, read, update, or delete).


`errors` [string](#string)
:   the errors that have been seen so far (newest-first).


`old_options` [ResourceOptions](#pulumirpc.ResourceOptions)
:   optional old resource options for the resource. Old engines may not set this.


`new_options` [ResourceOptions](#pulumirpc.ResourceOptions)
:   optional new resource options for the resource. Old engines may not set this.

(pulumirpc.ErrorHookResponse)=
### 📨 ErrorHookResponse
ErrorHookResponse is the response object for error hook callbacks in CallbackInvokeResponse.


`error` [string](#string)
:   an optional error message to return from the hook.


`retry` [bool](#bool)
:   whether we should retry the operation.

(pulumirpc.Parameterization)=
### 📨 Parameterization



`name` [string](#string)
:   the parameterized package name.


`version` [string](#string)
:   the parameterized package version.


`value` [bytes](#bytes)
:   the parameter value for the parameterized package.

(pulumirpc.ReadResourceRequest)=
### 📨 ReadResourceRequest
ReadResourceRequest contains enough information to uniquely qualify and read a resource's state.


`id` [string](#string)
:   the ID of the resource to read.


`type` [string](#string)
:   the type of the resource object.


`name` [string](#string)
:   the name, for URN purposes, of the object.


`parent` [string](#string)
:   an optional parent URN that this child resource belongs to.


`properties` [google.protobuf.Struct](#google.protobuf.Struct)
:   optional state sufficient to uniquely identify the resource.


`dependencies` [string](#string)
:   a list of URNs that this read depends on, as observed by the language host.


`provider` [string](#string)
:   an optional reference to the provider to use for this read.


`version` [string](#string)
:   the version of the provider to use when servicing this request.


`acceptSecrets` [bool](#bool)
:   when true operations should return secrets as strongly typed.


`additionalSecretOutputs` [string](#string)
:   a list of output properties that should also be treated as secret, in addition to ones we detect.


`acceptResources` [bool](#bool)
:   when true operations should return resource references as strongly typed.


`pluginDownloadURL` [string](#string)
:   the server url of the provider to use when servicing this request.


`pluginChecksums` [ReadResourceRequest.PluginChecksumsEntry](#pulumirpc.ReadResourceRequest.PluginChecksumsEntry)
:   a map of checksums of the provider to use when servicing this request.


`sourcePosition` [SourcePosition](#pulumirpc.SourcePosition)
:   the optional source position of the user code that initiated the read.


`stackTrace` [StackTrace](#pulumirpc.StackTrace)
:   the optional stack trace at the time of the request.


`parentStackTraceHandle` [string](#string)
:   the optional parent stack trace handle for the request. Supports stitching stack traces across plugins.


`packageRef` [string](#string)
:   a reference from RegisterPackageRequest.


`accepts_byte_string` [bool](#bool)
:   When true operations may return strings containing bytes that are not valid UTF-8, marshaled as objects
  carrying the byte string signature and a base64 encoding of the string's bytes.

(pulumirpc.ReadResourceRequest.PluginChecksumsEntry)=
### 📨 PluginChecksumsEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [bytes](#bytes)
: &lt;No description&gt;

(pulumirpc.ReadResourceResponse)=
### 📨 ReadResourceResponse
ReadResourceResponse contains the result of reading a resource's state.


`urn` [string](#string)
:   the URN for this resource.


`properties` [google.protobuf.Struct](#google.protobuf.Struct)
:   the state of the resource read from the live environment.

(pulumirpc.RegisterErrorHookRequest)=
### 📨 RegisterErrorHookRequest



`name` [string](#string)
:   The name of the hook. Must be unique within a program, registering the
  same name twice is an error.


`callback` [Callback](#pulumirpc.Callback)
:   the callback that the engine can call to run the hook.

(pulumirpc.RegisterPackageRequest)=
### 📨 RegisterPackageRequest



`name` [string](#string)
:   the plugin name.


`version` [string](#string)
:   the plugin version.


`download_url` [string](#string)
:   the optional plugin download url.


`checksums` [RegisterPackageRequest.ChecksumsEntry](#pulumirpc.RegisterPackageRequest.ChecksumsEntry)
:   the optional plugin checksums.


`parameterization` [Parameterization](#pulumirpc.Parameterization)
:   the optional parameterization for this package.


`extension` [Parameterization](#pulumirpc.Parameterization)
:   the optional extension parameterization for this package.

(pulumirpc.RegisterPackageRequest.ChecksumsEntry)=
### 📨 ChecksumsEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [bytes](#bytes)
: &lt;No description&gt;

(pulumirpc.RegisterPackageResponse)=
### 📨 RegisterPackageResponse



`ref` [string](#string)
:   The UUID package reference for this registered package.
  
  Lifecycle methods accept this reference in the 'packageRef' field.

(pulumirpc.RegisterResourceHookRequest)=
### 📨 RegisterResourceHookRequest



`name` [string](#string)
:   The name of the hook. Must be unique within a program, registering the
  same name twice is an error.


`callback` [Callback](#pulumirpc.Callback)
:   the callback that the engine can call to run the hook.


`on_dry_run` [bool](#bool)
:   whether to run the hook on dry runs.


`ignore_errors` [bool](#bool)
:   If true, errors from this hook are logged as warnings instead of failing the program.

(pulumirpc.RegisterResourceOutputsRequest)=
### 📨 RegisterResourceOutputsRequest
RegisterResourceOutputsRequest adds extra resource outputs created by the program after registration has occurred.


`urn` [string](#string)
:   the URN for the resource to attach output properties to.


`outputs` [google.protobuf.Struct](#google.protobuf.Struct)
:   additional output properties to add to the existing resource.

(pulumirpc.RegisterResourceRequest)=
### 📨 RegisterResourceRequest
RegisterResourceRequest contains information about a resource object that was newly allocated.


`type` [string](#string)
:   the type of the object allocated.


`name` [string](#string)
:   the name, for URN purposes, of the object.


`parent` [string](#string)
:   an optional parent URN that this child resource belongs to.


`custom` [bool](#bool)
:   true if the resource is a custom, managed by a plugin's CRUD operations.


`object` [google.protobuf.Struct](#google.protobuf.Struct)
:   an object produced by the interpreter/source.


`protect` [bool](#bool)
:   true if the resource should be marked protected.


`dependencies` [string](#string)
:   a list of URNs that this resource depends on, as observed by the language host.


`provider` [string](#string)
:   an optional reference to the provider to manage this resource's CRUD operations.


`propertyDependencies` [RegisterResourceRequest.PropertyDependenciesEntry](#pulumirpc.RegisterResourceRequest.PropertyDependenciesEntry)
:   a map from property keys to the dependencies of the property.


`deleteBeforeReplace` [bool](#bool)
:   true if this resource should be deleted before replacement.


`version` [string](#string)
:   the version of the provider to use when servicing this request.


`ignoreChanges` [string](#string)
:   a list of property selectors to ignore during updates.


`acceptSecrets` [bool](#bool)
:   when true operations should return secrets as strongly typed.


`additionalSecretOutputs` [string](#string)
:   a list of output properties that should also be treated as secret, in addition to ones we detect.


`aliasURNs` [string](#string)
:   a list of additional URNs that should be considered the same.


`importId` [string](#string)
:   if set, this resource's state should be imported from the given ID.


`customTimeouts` [RegisterResourceRequest.CustomTimeouts](#pulumirpc.RegisterResourceRequest.CustomTimeouts)
:   ability to pass a custom Timeout block.


`deleteBeforeReplaceDefined` [bool](#bool)
:   true if the deleteBeforeReplace property should be treated as defined even if it is false.


`supportsPartialValues` [bool](#bool)
:   true if the request is from an SDK that supports partially-known properties during preview.


`remote` [bool](#bool)
:   true if the resource is a plugin-managed component resource.


`acceptResources` [bool](#bool)
:   when true operations should return resource references as strongly typed.


`providers` [RegisterResourceRequest.ProvidersEntry](#pulumirpc.RegisterResourceRequest.ProvidersEntry)
:   an optional reference to the provider map to manage this resource's CRUD operations.


`replaceOnChanges` [string](#string)
:   a list of properties that if changed should force a replacement.


`pluginDownloadURL` [string](#string)
:   the server URL of the provider to use when servicing this request.


`pluginChecksums` [RegisterResourceRequest.PluginChecksumsEntry](#pulumirpc.RegisterResourceRequest.PluginChecksumsEntry)
:   a map of checksums expected for the provider plugin.


`retainOnDelete` [bool](#bool)
:   if true the engine will not call the resource providers delete method for this resource.


`aliases` [Alias](#pulumirpc.Alias)
:   a list of additional aliases that should be considered the same.


`deletedWith` [string](#string)
:   if set the engine will not call the resource providers delete method for this resource when specified resource is deleted.


`replace_with` [string](#string)
:   if set the engine will replace this resource when any of the specified resources are replaced.


`replacement_trigger` [google.protobuf.Value](#google.protobuf.Value)
:   if set, the engine will diff this with the last recorded value, and trigger a replace if they are not equal.


`aliasSpecs` [bool](#bool)
:   Indicates that alias specs are specified correctly according to the spec.
  Older versions of the Node.js SDK did not send alias specs correctly.
  If this is not set to true and the engine detects the request is from the
  Node.js runtime, the engine will transform incorrect alias specs into
  correct ones.
  Other SDKs that are correctly specifying alias specs could set this to
  true, but it's not necessary.


`sourcePosition` [SourcePosition](#pulumirpc.SourcePosition)
:   the optional source position of the user code that initiated the register.


`stackTrace` [StackTrace](#pulumirpc.StackTrace)
:   the optional stack trace at the time of the request.


`parentStackTraceHandle` [string](#string)
:   the optional parent stack trace handle for the request. Supports stitching stack traces across plugins.


`transforms` [Callback](#pulumirpc.Callback)
:   a list of transforms to apply to the resource before registering it.


`supportsResultReporting` [bool](#bool)
:   true if the request is from an SDK that supports the result field in the response.


`packageRef` [string](#string)
:   a reference from RegisterPackageRequest.


`hooks` [RegisterResourceRequest.ResourceHooksBinding](#pulumirpc.RegisterResourceRequest.ResourceHooksBinding)
:   The resource hooks that should run at certain points in the resource's lifecycle.


`hideDiffs` [string](#string)
: &lt;No description&gt;


`envVarMappings` [RegisterResourceRequest.EnvVarMappingsEntry](#pulumirpc.RegisterResourceRequest.EnvVarMappingsEntry)
:   environment variable remappings for provider resources (NEW_KEY -> OLD_KEY)


`snippetId` [string](#string)
:   if set, the UUID of the snippet that issued this registration.


`accepts_byte_string` [bool](#bool)
:   When true operations may return strings containing bytes that are not valid UTF-8, marshaled as objects
  carrying the byte string signature and a base64 encoding of the string's bytes.


`state_migrations` [Callback](#pulumirpc.Callback)
:   A list of state migrations to apply to the prior state of this resource and its descendants before diffing.

(pulumirpc.RegisterResourceRequest.CustomTimeouts)=
### 📨 CustomTimeouts
CustomTimeouts allows a user to be able to create a set of custom timeout parameters.


`create` [string](#string)
:   The create resource timeout represented as a string e.g. 5m.


`update` [string](#string)
:   The update resource timeout represented as a string e.g. 5m.


`delete` [string](#string)
:   The delete resource timeout represented as a string e.g. 5m.


`read` [string](#string)
:   The read resource timeout represented as a string e.g. 5m.

(pulumirpc.RegisterResourceRequest.EnvVarMappingsEntry)=
### 📨 EnvVarMappingsEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [string](#string)
: &lt;No description&gt;

(pulumirpc.RegisterResourceRequest.PluginChecksumsEntry)=
### 📨 PluginChecksumsEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [bytes](#bytes)
: &lt;No description&gt;

(pulumirpc.RegisterResourceRequest.PropertyDependencies)=
### 📨 PropertyDependencies
PropertyDependencies describes the resources that a particular property depends on.


`urns` [string](#string)
:   A list of URNs this property depends on.

(pulumirpc.RegisterResourceRequest.PropertyDependenciesEntry)=
### 📨 PropertyDependenciesEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [RegisterResourceRequest.PropertyDependencies](#pulumirpc.RegisterResourceRequest.PropertyDependencies)
: &lt;No description&gt;

(pulumirpc.RegisterResourceRequest.ProvidersEntry)=
### 📨 ProvidersEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [string](#string)
: &lt;No description&gt;

(pulumirpc.RegisterResourceRequest.ResourceHooksBinding)=
### 📨 ResourceHooksBinding



`before_create` [string](#string)
: &lt;No description&gt;


`after_create` [string](#string)
: &lt;No description&gt;


`before_update` [string](#string)
: &lt;No description&gt;


`after_update` [string](#string)
: &lt;No description&gt;


`before_delete` [string](#string)
: &lt;No description&gt;


`after_delete` [string](#string)
: &lt;No description&gt;


`on_error` [string](#string)
: &lt;No description&gt;

(pulumirpc.RegisterResourceResponse)=
### 📨 RegisterResourceResponse
RegisterResourceResponse is returned by the engine after a resource has finished being initialized.  It includes the
auto-assigned URN, the provider-assigned ID, and any other properties initialized by the engine.


`urn` [string](#string)
:   the URN assigned by the engine.


`id` [string](#string)
:   the unique ID assigned by the provider.


`object` [google.protobuf.Struct](#google.protobuf.Struct)
:   the resulting object properties, including provider defaults.


`stable` [bool](#bool)
:   if true, the object's state is stable and may be trusted not to change.


`stables` [string](#string)
:   an optional list of guaranteed-stable properties.


`propertyDependencies` [RegisterResourceResponse.PropertyDependenciesEntry](#pulumirpc.RegisterResourceResponse.PropertyDependenciesEntry)
:   a map from property keys to the dependencies of the property.


`result` [Result](#pulumirpc.Result)
:   the reason, whether the resource registration was successful, failed, or skipped.


`unknown` [bool](#bool)
:   true if the result of the registration is unknown, e.g. because the create was elided by a targeted update or a destroy run; result is still SUCCESS and SDKs should resolve outputs as unknown.

(pulumirpc.RegisterResourceResponse.PropertyDependencies)=
### 📨 PropertyDependencies
PropertyDependencies describes the resources that a particular property depends on.


`urns` [string](#string)
:   A list of URNs this property depends on.

(pulumirpc.RegisterResourceResponse.PropertyDependenciesEntry)=
### 📨 PropertyDependenciesEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [RegisterResourceResponse.PropertyDependencies](#pulumirpc.RegisterResourceResponse.PropertyDependencies)
: &lt;No description&gt;

(pulumirpc.ResourceCallRequest)=
### 📨 ResourceCallRequest



`tok` [string](#string)
:   the function token to invoke.


`args` [google.protobuf.Struct](#google.protobuf.Struct)
:   the arguments for the function invocation.


`argDependencies` [ResourceCallRequest.ArgDependenciesEntry](#pulumirpc.ResourceCallRequest.ArgDependenciesEntry)
:   a map from argument keys to the dependencies of the argument.


`provider` [string](#string)
:   an optional reference to the provider to use for this invoke.


`version` [string](#string)
:   the version of the provider to use when servicing this request.


`pluginDownloadURL` [string](#string)
:   the pluginDownloadURL of the provider to use when servicing this request.


`pluginChecksums` [ResourceCallRequest.PluginChecksumsEntry](#pulumirpc.ResourceCallRequest.PluginChecksumsEntry)
:   a map of checksums of the provider to use when servicing this request.


`sourcePosition` [SourcePosition](#pulumirpc.SourcePosition)
:   the optional source position of the user code that initiated the call.


`stackTrace` [StackTrace](#pulumirpc.StackTrace)
:   the optional stack trace at the time of the request.


`parentStackTraceHandle` [string](#string)
:   the optional parent stack trace handle for the request. Supports stitching stack traces across plugins.


`packageRef` [string](#string)
:   a reference from RegisterPackageRequest.


`accepts_byte_string` [bool](#bool)
:   When true operations may return strings containing bytes that are not valid UTF-8, marshaled as objects
  carrying the byte string signature and a base64 encoding of the string's bytes.

(pulumirpc.ResourceCallRequest.ArgDependenciesEntry)=
### 📨 ArgDependenciesEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [ResourceCallRequest.ArgumentDependencies](#pulumirpc.ResourceCallRequest.ArgumentDependencies)
: &lt;No description&gt;

(pulumirpc.ResourceCallRequest.ArgumentDependencies)=
### 📨 ArgumentDependencies
ArgumentDependencies describes the resources that a particular argument depends on.


`urns` [string](#string)
:   A list of URNs this argument depends on.

(pulumirpc.ResourceCallRequest.PluginChecksumsEntry)=
### 📨 PluginChecksumsEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [bytes](#bytes)
: &lt;No description&gt;

(pulumirpc.ResourceHookRequest)=
### 📨 ResourceHookRequest
ResourceHookRequest is the request object for resource hook callbacks in CallbackInvokeRequest.


`urn` [string](#string)
:   the urn of the resource for which the hook is called.


`id` [string](#string)
:   the optional urn of the resource for which the hook is called.


`name` [string](#string)
:   the name of the resource for which the hook is called.


`type` [string](#string)
:   the type of the resource for which the hook is called.


`new_inputs` [google.protobuf.Struct](#google.protobuf.Struct)
:   the optional checked new inputs of the resource.


`old_inputs` [google.protobuf.Struct](#google.protobuf.Struct)
:   the optional checked old inputs of the resource.


`new_outputs` [google.protobuf.Struct](#google.protobuf.Struct)
:   the optional new outputs of the resource.


`old_outputs` [google.protobuf.Struct](#google.protobuf.Struct)
:   the optional old outputs of the resource.


`old_options` [ResourceOptions](#pulumirpc.ResourceOptions)
:   optional old resource options for the resource. Old engines may not set this.


`new_options` [ResourceOptions](#pulumirpc.ResourceOptions)
:   optional new resource options for the resource. Old engines may not set this.

(pulumirpc.ResourceHookResponse)=
### 📨 ResourceHookResponse
ResourceHookResponse is the response object for resource hook callbacks in CallbackInvokeResponse.


`error` [string](#string)
:   an optional error message to return from the hook.

(pulumirpc.ResourceInvokeRequest)=
### 📨 ResourceInvokeRequest



`tok` [string](#string)
:   the function token to invoke.


`args` [google.protobuf.Struct](#google.protobuf.Struct)
:   the arguments for the function invocation.


`provider` [string](#string)
:   an optional reference to the provider version to use for this invoke.


`version` [string](#string)
:   the version of the provider to use when servicing this request.


`acceptResources` [bool](#bool)
:   when true operations should return resource references as strongly typed.


`pluginDownloadURL` [string](#string)
:   an optional reference to the provider url to use for this invoke.


`pluginChecksums` [ResourceInvokeRequest.PluginChecksumsEntry](#pulumirpc.ResourceInvokeRequest.PluginChecksumsEntry)
:   a map of checksums expected for the provider plugin.


`sourcePosition` [SourcePosition](#pulumirpc.SourcePosition)
:   the optional source position of the user code that initiated the invoke.


`stackTrace` [StackTrace](#pulumirpc.StackTrace)
:   the optional stack trace at the time of the request.


`parentStackTraceHandle` [string](#string)
:   the optional parent stack trace handle for the request. Supports stitching stack traces across plugins.


`packageRef` [string](#string)
:   a reference from RegisterPackageRequest.


`accepts_byte_string` [bool](#bool)
:   When true operations may return strings containing bytes that are not valid UTF-8, marshaled as objects
  carrying the byte string signature and a base64 encoding of the string's bytes.


`dependsOn` [string](#string)
:   The URNs of the resources this invoke depends on.
  
  The engine will advertise `INVOKE_DEPENDS_ON` when it reads this field.


`parent` [string](#string)
:   An optional URN of the resource this invoke is parented to. When `provider` is empty, the invoke is served by
  the provider its parent's `providers` option names for the invoke's package, the same resolution applied to
  resource registrations. Only respected when the monitor advertises `INVOKE_PARENT`.

(pulumirpc.ResourceInvokeRequest.PluginChecksumsEntry)=
### 📨 PluginChecksumsEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [bytes](#bytes)
: &lt;No description&gt;

(pulumirpc.ResourceInvokeResponse)=
### 📨 ResourceInvokeResponse



`return` [google.protobuf.Struct](#google.protobuf.Struct)
:   the returned values, if invoke was successful.


`failures` [CheckFailure](#pulumirpc.CheckFailure)
:   the failures if any arguments didn't pass verification.


`unknown` [bool](#bool)
:   True if the result must be treated as wholly unknown, which the monitor reports when it declines to service an
  invoke whose dependencies are pending creation.

(pulumirpc.ResourceOptions)=
### 📨 ResourceOptions
ResourceOptions is a subset of all resource options that are relevant to
hook callbacks.


`depends_on` [string](#string)
: &lt;No description&gt;


`protect` [bool](#bool)
: &lt;No description&gt;


`ignore_changes` [string](#string)
: &lt;No description&gt;


`replace_on_changes` [string](#string)
: &lt;No description&gt;


`version` [string](#string)
: &lt;No description&gt;


`aliases` [Alias](#pulumirpc.Alias)
: &lt;No description&gt;


`provider` [string](#string)
: &lt;No description&gt;


`custom_timeouts` [RegisterResourceRequest.CustomTimeouts](#pulumirpc.RegisterResourceRequest.CustomTimeouts)
: &lt;No description&gt;


`plugin_download_url` [string](#string)
: &lt;No description&gt;


`retain_on_delete` [bool](#bool)
: &lt;No description&gt;


`deleted_with` [string](#string)
: &lt;No description&gt;


`delete_before_replace` [bool](#bool)
: &lt;No description&gt;


`additional_secret_outputs` [string](#string)
: &lt;No description&gt;


`providers` [ResourceOptions.ProvidersEntry](#pulumirpc.ResourceOptions.ProvidersEntry)
: &lt;No description&gt;


`plugin_checksums` [ResourceOptions.PluginChecksumsEntry](#pulumirpc.ResourceOptions.PluginChecksumsEntry)
: &lt;No description&gt;


`hooks` [RegisterResourceRequest.ResourceHooksBinding](#pulumirpc.RegisterResourceRequest.ResourceHooksBinding)
: &lt;No description&gt;


`import` [string](#string)
: &lt;No description&gt;


`hide_diff` [string](#string)
: &lt;No description&gt;


`replace_with` [string](#string)
: &lt;No description&gt;


`replacement_trigger` [google.protobuf.Value](#google.protobuf.Value)
: &lt;No description&gt;


`parent` [string](#string)
: &lt;No description&gt;

(pulumirpc.ResourceOptions.PluginChecksumsEntry)=
### 📨 PluginChecksumsEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [bytes](#bytes)
: &lt;No description&gt;

(pulumirpc.ResourceOptions.ProvidersEntry)=
### 📨 ProvidersEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [string](#string)
: &lt;No description&gt;

(pulumirpc.StateMigrationRequest)=
### 📨 StateMigrationRequest
StateMigrationRequest is the request object for state migration callbacks registered via
RegisterResourceRequest.state_migrations.


`urn` [string](#string)
:   the URN of the registering resource.


`old_state` [bytes](#bytes)
:   A JSON-encoded array of resources in the checkpoint format (apitype.ResourceV3): the prior state of the
  registering resource followed by the prior state of all resources transitively parented to it. Secret property
  values are supplied to the callback in plaintext inside their secret envelopes and must be treated as sensitive.

(pulumirpc.StateMigrationResponse)=
### 📨 StateMigrationResponse
StateMigrationResponse is the response object for state migration callbacks.


`new_state` [bytes](#bytes)
:   A JSON-encoded array of resources in the checkpoint format (apitype.ResourceV3) that replaces old_state.
  If unset, the prior state is left unchanged. Every resource URN present in old_state must either be present
  in new_state or have an entry in successors.


`successors` [StateMigrationResponse.SuccessorsEntry](#pulumirpc.StateMigrationResponse.SuccessorsEntry)
:   Maps the URN of each resource removed from old_state to the URN of the resource in new_state that succeeds it.
  Multiple old URNs may have the same successor, allowing N-to-M migrations while giving the engine enough
  information to rewrite references to the old resources. An old resource may not be removed without a successor.

(pulumirpc.StateMigrationResponse.SuccessorsEntry)=
### 📨 SuccessorsEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [string](#string)
: &lt;No description&gt;

(pulumirpc.SupportsFeatureRequest)=
### 📨 SupportsFeatureRequest
SupportsFeatureRequest allows a client to test if the resource monitor supports a certain feature, which it may use
to control the format or types of messages it sends.


`id` [string](#string)
:   the ID of the feature to test support for.

(pulumirpc.SupportsFeatureResponse)=
### 📨 SupportsFeatureResponse



`hasSupport` [bool](#bool)
:   true when the resource monitor supports this feature.

(pulumirpc.TransformInvokeOptions)=
### 📨 TransformInvokeOptions
TransformInvokeOptions is a subset of all invoke options that are relevant to transforms.


`provider` [string](#string)
: &lt;No description&gt;


`plugin_download_url` [string](#string)
: &lt;No description&gt;


`version` [string](#string)
: &lt;No description&gt;


`plugin_checksums` [TransformInvokeOptions.PluginChecksumsEntry](#pulumirpc.TransformInvokeOptions.PluginChecksumsEntry)
: &lt;No description&gt;

(pulumirpc.TransformInvokeOptions.PluginChecksumsEntry)=
### 📨 PluginChecksumsEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [bytes](#bytes)
: &lt;No description&gt;

(pulumirpc.TransformInvokeRequest)=
### 📨 TransformInvokeRequest
TransformInvokeRequest is the request object for the TransformInvoke RPC.


`token` [string](#string)
:   the token for the invoke request.


`args` [google.protobuf.Struct](#google.protobuf.Struct)
:   the input args of the resource.


`options` [TransformInvokeOptions](#pulumirpc.TransformInvokeOptions)
:   the options for the resource.

(pulumirpc.TransformInvokeResponse)=
### 📨 TransformInvokeResponse
TransformInvokeResponse is the response object for the TransformInvoke RPC.


`args` [google.protobuf.Struct](#google.protobuf.Struct)
:   the transformed input args.


`options` [TransformInvokeOptions](#pulumirpc.TransformInvokeOptions)
:   the options for the resource.

(pulumirpc.TransformRequest)=
### 📨 TransformRequest



`type` [string](#string)
:   the type of the resource.


`name` [string](#string)
:   the name of the resource.


`custom` [bool](#bool)
:   true if the resource is a custom resource, else it's a component resource.


`parent` [string](#string)
:   the parent of the resource, this can't be changed by the transform.


`properties` [google.protobuf.Struct](#google.protobuf.Struct)
:   the input properties of the resource.


`options` [TransformResourceOptions](#pulumirpc.TransformResourceOptions)
:   the options for the resource.

(pulumirpc.TransformResourceOptions)=
### 📨 TransformResourceOptions
TransformResourceOptions is a subset of all resource options that are relevant to transforms.


`depends_on` [string](#string)
: &lt;No description&gt;


`protect` [bool](#bool)
: &lt;No description&gt;


`ignore_changes` [string](#string)
: &lt;No description&gt;


`replace_on_changes` [string](#string)
: &lt;No description&gt;


`version` [string](#string)
: &lt;No description&gt;


`aliases` [Alias](#pulumirpc.Alias)
: &lt;No description&gt;


`provider` [string](#string)
: &lt;No description&gt;


`custom_timeouts` [RegisterResourceRequest.CustomTimeouts](#pulumirpc.RegisterResourceRequest.CustomTimeouts)
: &lt;No description&gt;


`plugin_download_url` [string](#string)
: &lt;No description&gt;


`retain_on_delete` [bool](#bool)
: &lt;No description&gt;


`deleted_with` [string](#string)
: &lt;No description&gt;


`delete_before_replace` [bool](#bool)
: &lt;No description&gt;


`additional_secret_outputs` [string](#string)
: &lt;No description&gt;


`providers` [TransformResourceOptions.ProvidersEntry](#pulumirpc.TransformResourceOptions.ProvidersEntry)
: &lt;No description&gt;


`plugin_checksums` [TransformResourceOptions.PluginChecksumsEntry](#pulumirpc.TransformResourceOptions.PluginChecksumsEntry)
: &lt;No description&gt;


`hooks` [RegisterResourceRequest.ResourceHooksBinding](#pulumirpc.RegisterResourceRequest.ResourceHooksBinding)
: &lt;No description&gt;


`import` [string](#string)
: &lt;No description&gt;


`hide_diff` [string](#string)
: &lt;No description&gt;


`replace_with` [string](#string)
: &lt;No description&gt;


`replacement_trigger` [google.protobuf.Value](#google.protobuf.Value)
: &lt;No description&gt;

(pulumirpc.TransformResourceOptions.PluginChecksumsEntry)=
### 📨 PluginChecksumsEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [bytes](#bytes)
: &lt;No description&gt;

(pulumirpc.TransformResourceOptions.ProvidersEntry)=
### 📨 ProvidersEntry



`key` [string](#string)
: &lt;No description&gt;


`value` [string](#string)
: &lt;No description&gt;

(pulumirpc.TransformResponse)=
### 📨 TransformResponse



`properties` [google.protobuf.Struct](#google.protobuf.Struct)
:   the transformed input properties.


`options` [TransformResourceOptions](#pulumirpc.TransformResourceOptions)
:   the options for the resource.

