@pulumi/pulumi 3.182.0-alpha.x520a039 → 3.182.0-alpha.x7baa41a

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.
@@ -7463,6 +7463,8 @@ proto.pulumirpc.ResourceHookRequest.toObject = function(includeInstance, msg) {
7463
7463
  var f, obj = {
7464
7464
  urn: jspb.Message.getFieldWithDefault(msg, 1, ""),
7465
7465
  id: jspb.Message.getFieldWithDefault(msg, 2, ""),
7466
+ name: jspb.Message.getFieldWithDefault(msg, 3, ""),
7467
+ type: jspb.Message.getFieldWithDefault(msg, 4, ""),
7466
7468
  newInputs: (f = msg.getNewInputs()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),
7467
7469
  oldInputs: (f = msg.getOldInputs()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),
7468
7470
  newOutputs: (f = msg.getNewOutputs()) && google_protobuf_struct_pb.Struct.toObject(includeInstance, f),
@@ -7512,21 +7514,29 @@ proto.pulumirpc.ResourceHookRequest.deserializeBinaryFromReader = function(msg,
7512
7514
  msg.setId(value);
7513
7515
  break;
7514
7516
  case 3:
7517
+ var value = /** @type {string} */ (reader.readString());
7518
+ msg.setName(value);
7519
+ break;
7520
+ case 4:
7521
+ var value = /** @type {string} */ (reader.readString());
7522
+ msg.setType(value);
7523
+ break;
7524
+ case 5:
7515
7525
  var value = new google_protobuf_struct_pb.Struct;
7516
7526
  reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
7517
7527
  msg.setNewInputs(value);
7518
7528
  break;
7519
- case 4:
7529
+ case 6:
7520
7530
  var value = new google_protobuf_struct_pb.Struct;
7521
7531
  reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
7522
7532
  msg.setOldInputs(value);
7523
7533
  break;
7524
- case 5:
7534
+ case 7:
7525
7535
  var value = new google_protobuf_struct_pb.Struct;
7526
7536
  reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
7527
7537
  msg.setNewOutputs(value);
7528
7538
  break;
7529
- case 6:
7539
+ case 8:
7530
7540
  var value = new google_protobuf_struct_pb.Struct;
7531
7541
  reader.readMessage(value,google_protobuf_struct_pb.Struct.deserializeBinaryFromReader);
7532
7542
  msg.setOldOutputs(value);
@@ -7574,10 +7584,24 @@ proto.pulumirpc.ResourceHookRequest.serializeBinaryToWriter = function(message,
7574
7584
  f
7575
7585
  );
7576
7586
  }
7587
+ f = message.getName();
7588
+ if (f.length > 0) {
7589
+ writer.writeString(
7590
+ 3,
7591
+ f
7592
+ );
7593
+ }
7594
+ f = message.getType();
7595
+ if (f.length > 0) {
7596
+ writer.writeString(
7597
+ 4,
7598
+ f
7599
+ );
7600
+ }
7577
7601
  f = message.getNewInputs();
7578
7602
  if (f != null) {
7579
7603
  writer.writeMessage(
7580
- 3,
7604
+ 5,
7581
7605
  f,
7582
7606
  google_protobuf_struct_pb.Struct.serializeBinaryToWriter
7583
7607
  );
@@ -7585,7 +7609,7 @@ proto.pulumirpc.ResourceHookRequest.serializeBinaryToWriter = function(message,
7585
7609
  f = message.getOldInputs();
7586
7610
  if (f != null) {
7587
7611
  writer.writeMessage(
7588
- 4,
7612
+ 6,
7589
7613
  f,
7590
7614
  google_protobuf_struct_pb.Struct.serializeBinaryToWriter
7591
7615
  );
@@ -7593,7 +7617,7 @@ proto.pulumirpc.ResourceHookRequest.serializeBinaryToWriter = function(message,
7593
7617
  f = message.getNewOutputs();
7594
7618
  if (f != null) {
7595
7619
  writer.writeMessage(
7596
- 5,
7620
+ 7,
7597
7621
  f,
7598
7622
  google_protobuf_struct_pb.Struct.serializeBinaryToWriter
7599
7623
  );
@@ -7601,7 +7625,7 @@ proto.pulumirpc.ResourceHookRequest.serializeBinaryToWriter = function(message,
7601
7625
  f = message.getOldOutputs();
7602
7626
  if (f != null) {
7603
7627
  writer.writeMessage(
7604
- 6,
7628
+ 8,
7605
7629
  f,
7606
7630
  google_protobuf_struct_pb.Struct.serializeBinaryToWriter
7607
7631
  );
@@ -7646,12 +7670,48 @@ proto.pulumirpc.ResourceHookRequest.prototype.setId = function(value) {
7646
7670
 
7647
7671
 
7648
7672
  /**
7649
- * optional google.protobuf.Struct new_inputs = 3;
7673
+ * optional string name = 3;
7674
+ * @return {string}
7675
+ */
7676
+ proto.pulumirpc.ResourceHookRequest.prototype.getName = function() {
7677
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 3, ""));
7678
+ };
7679
+
7680
+
7681
+ /**
7682
+ * @param {string} value
7683
+ * @return {!proto.pulumirpc.ResourceHookRequest} returns this
7684
+ */
7685
+ proto.pulumirpc.ResourceHookRequest.prototype.setName = function(value) {
7686
+ return jspb.Message.setProto3StringField(this, 3, value);
7687
+ };
7688
+
7689
+
7690
+ /**
7691
+ * optional string type = 4;
7692
+ * @return {string}
7693
+ */
7694
+ proto.pulumirpc.ResourceHookRequest.prototype.getType = function() {
7695
+ return /** @type {string} */ (jspb.Message.getFieldWithDefault(this, 4, ""));
7696
+ };
7697
+
7698
+
7699
+ /**
7700
+ * @param {string} value
7701
+ * @return {!proto.pulumirpc.ResourceHookRequest} returns this
7702
+ */
7703
+ proto.pulumirpc.ResourceHookRequest.prototype.setType = function(value) {
7704
+ return jspb.Message.setProto3StringField(this, 4, value);
7705
+ };
7706
+
7707
+
7708
+ /**
7709
+ * optional google.protobuf.Struct new_inputs = 5;
7650
7710
  * @return {?proto.google.protobuf.Struct}
7651
7711
  */
7652
7712
  proto.pulumirpc.ResourceHookRequest.prototype.getNewInputs = function() {
7653
7713
  return /** @type{?proto.google.protobuf.Struct} */ (
7654
- jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 3));
7714
+ jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 5));
7655
7715
  };
7656
7716
 
7657
7717
 
@@ -7660,7 +7720,7 @@ proto.pulumirpc.ResourceHookRequest.prototype.getNewInputs = function() {
7660
7720
  * @return {!proto.pulumirpc.ResourceHookRequest} returns this
7661
7721
  */
7662
7722
  proto.pulumirpc.ResourceHookRequest.prototype.setNewInputs = function(value) {
7663
- return jspb.Message.setWrapperField(this, 3, value);
7723
+ return jspb.Message.setWrapperField(this, 5, value);
7664
7724
  };
7665
7725
 
7666
7726
 
@@ -7678,17 +7738,17 @@ proto.pulumirpc.ResourceHookRequest.prototype.clearNewInputs = function() {
7678
7738
  * @return {boolean}
7679
7739
  */
7680
7740
  proto.pulumirpc.ResourceHookRequest.prototype.hasNewInputs = function() {
7681
- return jspb.Message.getField(this, 3) != null;
7741
+ return jspb.Message.getField(this, 5) != null;
7682
7742
  };
7683
7743
 
7684
7744
 
7685
7745
  /**
7686
- * optional google.protobuf.Struct old_inputs = 4;
7746
+ * optional google.protobuf.Struct old_inputs = 6;
7687
7747
  * @return {?proto.google.protobuf.Struct}
7688
7748
  */
7689
7749
  proto.pulumirpc.ResourceHookRequest.prototype.getOldInputs = function() {
7690
7750
  return /** @type{?proto.google.protobuf.Struct} */ (
7691
- jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 4));
7751
+ jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 6));
7692
7752
  };
7693
7753
 
7694
7754
 
@@ -7697,7 +7757,7 @@ proto.pulumirpc.ResourceHookRequest.prototype.getOldInputs = function() {
7697
7757
  * @return {!proto.pulumirpc.ResourceHookRequest} returns this
7698
7758
  */
7699
7759
  proto.pulumirpc.ResourceHookRequest.prototype.setOldInputs = function(value) {
7700
- return jspb.Message.setWrapperField(this, 4, value);
7760
+ return jspb.Message.setWrapperField(this, 6, value);
7701
7761
  };
7702
7762
 
7703
7763
 
@@ -7715,17 +7775,17 @@ proto.pulumirpc.ResourceHookRequest.prototype.clearOldInputs = function() {
7715
7775
  * @return {boolean}
7716
7776
  */
7717
7777
  proto.pulumirpc.ResourceHookRequest.prototype.hasOldInputs = function() {
7718
- return jspb.Message.getField(this, 4) != null;
7778
+ return jspb.Message.getField(this, 6) != null;
7719
7779
  };
7720
7780
 
7721
7781
 
7722
7782
  /**
7723
- * optional google.protobuf.Struct new_outputs = 5;
7783
+ * optional google.protobuf.Struct new_outputs = 7;
7724
7784
  * @return {?proto.google.protobuf.Struct}
7725
7785
  */
7726
7786
  proto.pulumirpc.ResourceHookRequest.prototype.getNewOutputs = function() {
7727
7787
  return /** @type{?proto.google.protobuf.Struct} */ (
7728
- jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 5));
7788
+ jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 7));
7729
7789
  };
7730
7790
 
7731
7791
 
@@ -7734,7 +7794,7 @@ proto.pulumirpc.ResourceHookRequest.prototype.getNewOutputs = function() {
7734
7794
  * @return {!proto.pulumirpc.ResourceHookRequest} returns this
7735
7795
  */
7736
7796
  proto.pulumirpc.ResourceHookRequest.prototype.setNewOutputs = function(value) {
7737
- return jspb.Message.setWrapperField(this, 5, value);
7797
+ return jspb.Message.setWrapperField(this, 7, value);
7738
7798
  };
7739
7799
 
7740
7800
 
@@ -7752,17 +7812,17 @@ proto.pulumirpc.ResourceHookRequest.prototype.clearNewOutputs = function() {
7752
7812
  * @return {boolean}
7753
7813
  */
7754
7814
  proto.pulumirpc.ResourceHookRequest.prototype.hasNewOutputs = function() {
7755
- return jspb.Message.getField(this, 5) != null;
7815
+ return jspb.Message.getField(this, 7) != null;
7756
7816
  };
7757
7817
 
7758
7818
 
7759
7819
  /**
7760
- * optional google.protobuf.Struct old_outputs = 6;
7820
+ * optional google.protobuf.Struct old_outputs = 8;
7761
7821
  * @return {?proto.google.protobuf.Struct}
7762
7822
  */
7763
7823
  proto.pulumirpc.ResourceHookRequest.prototype.getOldOutputs = function() {
7764
7824
  return /** @type{?proto.google.protobuf.Struct} */ (
7765
- jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 6));
7825
+ jspb.Message.getWrapperField(this, google_protobuf_struct_pb.Struct, 8));
7766
7826
  };
7767
7827
 
7768
7828
 
@@ -7771,7 +7831,7 @@ proto.pulumirpc.ResourceHookRequest.prototype.getOldOutputs = function() {
7771
7831
  * @return {!proto.pulumirpc.ResourceHookRequest} returns this
7772
7832
  */
7773
7833
  proto.pulumirpc.ResourceHookRequest.prototype.setOldOutputs = function(value) {
7774
- return jspb.Message.setWrapperField(this, 6, value);
7834
+ return jspb.Message.setWrapperField(this, 8, value);
7775
7835
  };
7776
7836
 
7777
7837
 
@@ -7789,7 +7849,7 @@ proto.pulumirpc.ResourceHookRequest.prototype.clearOldOutputs = function() {
7789
7849
  * @return {boolean}
7790
7850
  */
7791
7851
  proto.pulumirpc.ResourceHookRequest.prototype.hasOldOutputs = function() {
7792
- return jspb.Message.getField(this, 6) != null;
7852
+ return jspb.Message.getField(this, 8) != null;
7793
7853
  };
7794
7854
 
7795
7855
 
@@ -341,6 +341,16 @@ class Server {
341
341
  providers[pkg] = createProviderResource(ref);
342
342
  }
343
343
  }
344
+ const resourceHooks = {};
345
+ const binding = req.getResourceHooks();
346
+ if (binding) {
347
+ resourceHooks.beforeCreate = binding.getBeforeCreateList().map((n) => new StubResourceHook(n));
348
+ resourceHooks.afterCreate = binding.getAfterCreateList().map((n) => new StubResourceHook(n));
349
+ resourceHooks.beforeUpdate = binding.getBeforeUpdateList().map((n) => new StubResourceHook(n));
350
+ resourceHooks.afterUpdate = binding.getAfterUpdateList().map((n) => new StubResourceHook(n));
351
+ resourceHooks.beforeDelete = binding.getBeforeDeleteList().map((n) => new StubResourceHook(n));
352
+ resourceHooks.afterDelete = binding.getAfterDeleteList().map((n) => new StubResourceHook(n));
353
+ }
344
354
  const opts = {
345
355
  aliases: req.getAliasesList(),
346
356
  dependsOn: dependsOn,
@@ -351,6 +361,7 @@ class Server {
351
361
  replaceOnChanges: req.getReplaceonchangesList(),
352
362
  customTimeouts: req.getCustomtimeouts()?.toObject(),
353
363
  retainOnDelete: req.getRetainondelete(),
364
+ hooks: resourceHooks,
354
365
  };
355
366
  const deletedWith = req.getDeletedwith();
356
367
  if (deletedWith !== "") {
@@ -678,4 +689,22 @@ function createProviderResource(ref) {
678
689
  }
679
690
  return new resource.DependencyProviderResource(ref);
680
691
  }
692
+ /**
693
+ * StubResourceHook is a resource hook that does nothing.
694
+ *
695
+ * We need to reconstruct {@link ResourceHook} instances here to set
696
+ * on the {@link ResourceOption}s, but we only have the name
697
+ * available to us. We also know that these hooks have already been
698
+ * registered when the remote component called register_resource, so we
699
+ * can construct dummy hooks here, that will be serialized back into
700
+ * list of hook names.
701
+ */
702
+ class StubResourceHook extends resource.ResourceHook {
703
+ constructor(n) {
704
+ super(n, () => {
705
+ return;
706
+ });
707
+ this.__registered = Promise.resolve(); // Mark the hook as registered.
708
+ }
709
+ }
681
710
  //# sourceMappingURL=server.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../provider/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../provider/server.ts"],"names":[],"mappings":"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"}
package/resource.d.ts CHANGED
@@ -248,6 +248,11 @@ export interface ResourceOptions {
248
248
  * if specified is being deleted as well.
249
249
  */
250
250
  deletedWith?: Resource;
251
+ /**
252
+ * Optional resource hooks to bind to this resource. The hooks will be
253
+ * invoked during certain step of the lifecycle of the resource.
254
+ */
255
+ hooks?: ResourceHookBinding;
251
256
  }
252
257
  export interface CustomTimeouts {
253
258
  /**
@@ -394,6 +399,133 @@ export interface CustomResourceOptions extends ResourceOptions {
394
399
  */
395
400
  import?: ID;
396
401
  }
402
+ /**
403
+ * ResourceHook is a named hook that can be registered as a resource hook.
404
+ */
405
+ export declare class ResourceHook {
406
+ /**
407
+ * The unqiue name of the resource hook.
408
+ */
409
+ name: string;
410
+ /**
411
+ * The function that will be called when the resource hook is triggered.
412
+ */
413
+ callback: ResourceHookFunction;
414
+ /**
415
+ * Run the hook during dry run (preview) operations. Defaults to false.
416
+ */
417
+ opts?: ResourceHookOptions;
418
+ constructor(name: string, callback: ResourceHookFunction, opts?: ResourceHookOptions);
419
+ static isInstance(obj: any): obj is ResourceHook;
420
+ }
421
+ /**
422
+ * Options for registering a resource hook.
423
+ */
424
+ export interface ResourceHookOptions {
425
+ /**
426
+ * Run the hook during dry run (preview) operations. Defaults to false.
427
+ */
428
+ onDryRun?: boolean;
429
+ }
430
+ /**
431
+ * ResourceHookArgs represents the arguments passed to a resource hook
432
+ * Depending on the hook type, only some of the new/old inputs/outputs are set.
433
+ *
434
+ * | Hook Type | old_inputs | new_inputs | old_outputs | new_outputs |
435
+ * | ------------- | ---------- | ---------- | ----------- | ----------- |
436
+ * | before_create | | ✓ | | |
437
+ * | after_create | | ✓ | | ✓ |
438
+ * | before_update | ✓ | ✓ | ✓ | |
439
+ * | after_update | ✓ | ✓ | ✓ | ✓ |
440
+ * | before_delete | ✓ | | ✓ | |
441
+ * | after_delete | ✓ | | ✓ | |
442
+ */
443
+ export interface ResourceHookArgs {
444
+ /**
445
+ * The URN of the resource that triggered the hook.
446
+ */
447
+ urn: URN;
448
+ /**
449
+ * The ID of the resource that triggered the hook.
450
+ */
451
+ id: ID;
452
+ /**
453
+ * The name of the resource that triggered the hook.
454
+ */
455
+ name: string;
456
+ /**
457
+ * The type of the resource that triggered the hook.
458
+ */
459
+ type: string;
460
+ /**
461
+ * The new inputs of the resource that triggered the hook.
462
+ */
463
+ newInputs?: Record<string, any>;
464
+ /**
465
+ * The old inputs of the resource that triggered the hook.
466
+ */
467
+ oldInputs?: Record<string, any>;
468
+ /**
469
+ * The new outputs of the resource that triggered the hook.
470
+ */
471
+ newOutputs?: Record<string, any>;
472
+ /**
473
+ * The old outputs of the resource that triggered the hook.
474
+ */
475
+ oldOutputs?: Record<string, any>;
476
+ }
477
+ /**
478
+ * ResourceHookFunction is a function that can be registered as a resource hook.
479
+ */
480
+ export declare type ResourceHookFunction = (args: ResourceHookArgs) => void | Promise<void>;
481
+ /**
482
+ * Binds {@link ResourceHook} instances to a resource. The resource hooks will
483
+ * be invoked during certain step of the lifecycle of the resource.
484
+ *
485
+ * `before_${action}` hooks that raise an exception cause the action to fail.
486
+ * `after_${action}` hooks that raise an exception will log a warning, but do
487
+ * not cause the action or the deployment to fail.
488
+ *
489
+ * When running `pulumi destroy`, `before_delete` and `after_delete` resource
490
+ * hooks require the operation to run with `--run-program`, to ensure that the
491
+ * program which defines the hooks is available.
492
+ */
493
+ export interface ResourceHookBinding {
494
+ /**
495
+ * Hooks to be invoked before the resource is created.
496
+ */
497
+ beforeCreate?: Array<ResourceHookFunction | ResourceHook>;
498
+ /**
499
+ * Hooks to be invoked after the resource is created.
500
+ */
501
+ afterCreate?: Array<ResourceHookFunction | ResourceHook>;
502
+ /**
503
+ * Hooks to be invoked before the resource is updated.
504
+ */
505
+ beforeUpdate?: Array<ResourceHookFunction | ResourceHook>;
506
+ /**
507
+ * Hooks to be invoked after the resource is updated.
508
+ */
509
+ afterUpdate?: Array<ResourceHookFunction | ResourceHook>;
510
+ /**
511
+ * Hooks to be invoked before the resource is deleted.
512
+ *
513
+ * Note that delete hooks require that destroy operations are run with `--run-program`. Unlike other hook types,
514
+ * this argument requires named {@link ResourceHook} instances, and does not accept anonymous
515
+ * {@link ResourceHookFunction}. This is because the engine needs to be able to identify a hook when a resource is
516
+ * deleted.
517
+ */
518
+ beforeDelete?: Array<ResourceHook>;
519
+ /**
520
+ * Hooks to be invoked after the resource is deleted.
521
+ *
522
+ * Note that delete hooks require that destroy operations are run with `--run-program`. Unlike other hook types,
523
+ * this argument requires named {@link ResourceHook} instances, and does not accept anonymous
524
+ * {@link ResourceHookFunction}. This is because the engine needs to be able to identify a hook when a resource is
525
+ * deleted.
526
+ */
527
+ afterDelete?: Array<ResourceHook>;
528
+ }
397
529
  /**
398
530
  * {@link ComponentResourceOptions} is a bag of optional settings that control a
399
531
  * component resource's behavior.
package/resource.js CHANGED
@@ -399,6 +399,27 @@ function collapseAliasToUrn(alias, defaultName, defaultType, defaultParent) {
399
399
  return createUrn(name, type, parent, project, stack);
400
400
  });
401
401
  }
402
+ /**
403
+ * ResourceHook is a named hook that can be registered as a resource hook.
404
+ */
405
+ class ResourceHook {
406
+ constructor(name, callback, opts) {
407
+ /**
408
+ * A private field to help with RTTI that works in SxS scenarios.
409
+ *
410
+ * @internal
411
+ */
412
+ this.__pulumiResourceHook = true;
413
+ this.name = name;
414
+ this.callback = callback;
415
+ this.opts = opts;
416
+ this.__registered = resource_1.registerResourceHook(this);
417
+ }
418
+ static isInstance(obj) {
419
+ return utils.isInstance(obj, "__pulumiResourceHook");
420
+ }
421
+ }
422
+ exports.ResourceHook = ResourceHook;
402
423
  /**
403
424
  * {@link CustomResource} is a resource whose create, read, update, and delete
404
425
  * (CRUD) operations are managed by performing external operations on some
@@ -622,8 +643,31 @@ function mergeOptions(opts1, opts2) {
622
643
  dest[key] = merge(destVal, sourceVal, /*alwaysCreateArray:*/ true);
623
644
  continue;
624
645
  }
646
+ if (key === "hooks") {
647
+ continue;
648
+ }
625
649
  dest[key] = merge(destVal, sourceVal, /*alwaysCreateArray:*/ false);
626
650
  }
651
+ if (dest.hooks || source.hooks) {
652
+ const hookTypes = [
653
+ "beforeCreate",
654
+ "afterCreate",
655
+ "beforeUpdate",
656
+ "afterUpdate",
657
+ "beforeDelete",
658
+ "afterDelete",
659
+ ];
660
+ for (const hookType of hookTypes) {
661
+ const destHooks = dest?.hooks?.[hookType];
662
+ const sourceHooks = source?.hooks?.[hookType];
663
+ if (destHooks || sourceHooks) {
664
+ if (!dest.hooks) {
665
+ dest.hooks = {};
666
+ }
667
+ dest.hooks[hookType] = merge(destHooks, sourceHooks, /*alwaysCreateArray:*/ false);
668
+ }
669
+ }
670
+ }
627
671
  // Now, if we are left with a .providers that is just a single key/value pair, then
628
672
  // collapse that down into .provider form.
629
673
  normalizeProviders(dest);