@pulumi/pulumi 3.137.1-alpha.x3fc9162 → 3.137.1-alpha.xdd3168b

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pulumi/pulumi",
3
- "version": "3.137.1-alpha.x3fc9162",
3
+ "version": "3.137.1-alpha.xdd3168b",
4
4
  "description": "Pulumi's Node.js SDK",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -353,22 +353,38 @@ function deserialize_pulumirpc_UpdateResponse(buffer_arg) {
353
353
  }
354
354
 
355
355
 
356
- // ResourceProvider is a service that understands how to create, read, update, or delete resources for types defined
357
- // within a single package. It is driven by the overall planning engine in response to resource diffs.
356
+ // The ResourceProvider service defines a standard interface for [resource providers](providers). A resource provider
357
+ // manages a set of configuration, resources, functions and so on in a single package, and offers methods such as CRUD
358
+ // operations on resources and invocations of functions. Resource providers are primarily managed by the Pulumi engine
359
+ // as part of a deployment in order to interact with the cloud providers underpinning a Pulumi application.
358
360
  var ResourceProviderService = exports.ResourceProviderService = {
359
- // Parameterize takes either a string array of command line inputs or a value embedded from sdk generation.
361
+ // `Parameterize` is the primary means of supporting [parameterized providers](parameterized-providers), which allow
362
+ // a caller to change a provider's behavior ahead of its [configuration](pulumirpc.ResourceProvider.Configure) and
363
+ // subsequent use. Where a [](pulumirpc.ResourceProvider.Configure) call allows a caller to influence provider
364
+ // behaviour at a high level (e.g. by specifying the region in which an AWS provider should operate), a
365
+ // `Parameterize` call may change the set of resources and functions that a provider offers (that is, its schema).
366
+ // This is useful in any case where some "set" of providers can be captured by a single implementation that may
367
+ // power fundamentally different schemata -- dynamically bridging Terraform providers, or managing Kubernetes
368
+ // clusters with custom resource definitions, for instance, are good examples. The parameterized package that
369
+ // `Parameterize` yields is known as a *sub-package* of the original (unparameterized) package.
360
370
  //
361
- // Providers can be parameterized with either multiple extension packages (which don't define their own provider
362
- // resources), or with a replacement package (which does define its own provider resource).
371
+ // `Parameterize` supports two types of parameterization:
363
372
  //
364
- // Parameterize may be called multiple times for extension packages, but for a replacement package it will only be
365
- // called once. Extension packages may even be called multiple times for the same package name, but with different
366
- // versions.
373
+ // * *Replacement parameterization*, whereby a `Parameterize` call results in a schema that completely replaces the
374
+ // original provider schema. Bridging a Terraform provider dynamically might be an example of this -- following
375
+ // the call to `Parameterize`, the provider's schema will become that of the Terraform provider that was bridged.
376
+ // Providers that implement replacement parameterization expect a *single* call to `Parameterize`.
367
377
  //
368
- // Parameterize should work the same for both the `ParametersArgs` input and the `ParametersValue` input. Either way
369
- // should return the sub-package name and version (which for `ParametersValue` should match the given input).
378
+ // * *Extension parameterization*, in which a `Parameterize` call results in a schema that is a superset of the
379
+ // original. This is useful in cases where a provider can be extended with additional resources or functions, such
380
+ // as a Kubernetes provider that can be extended with resources representing custom resource definitions.
381
+ // Providers that implement extension parameterization should accept multiple calls to `Parameterize`. Extension
382
+ // packages may even be called multiple times with the same package name, but with different versions. The CRUD
383
+ // operations of extension resources must include the version of which sub-package they correspond to.
370
384
  //
371
- // For extension resources their CRUD operations will include the version of which sub-package they correspond to.
385
+ // `Parameterize` should work the same whether it is provided with `ParametersArgs` or `ParametersValue` input. In
386
+ // each case it should return the sub-package name and version (which when a `ParametersValue` is supplied should
387
+ // match the given input).
372
388
  parameterize: {
373
389
  path: '/pulumirpc.ResourceProvider/Parameterize',
374
390
  requestStream: false,
package/version.js CHANGED
@@ -13,5 +13,5 @@
13
13
  // See the License for the specific language governing permissions and
14
14
  // limitations under the License.
15
15
  Object.defineProperty(exports, "__esModule", { value: true });
16
- exports.version = "3.137.1-alpha.x3fc9162";
16
+ exports.version = "3.137.1-alpha.xdd3168b";
17
17
  //# sourceMappingURL=version.js.map