@pulumi/cloudamqp 3.26.1 → 3.27.0-alpha.1770934853

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.
Files changed (85) hide show
  1. package/alarm.d.ts +120 -12
  2. package/alarm.js +120 -12
  3. package/alarm.js.map +1 -1
  4. package/config/vars.d.ts +3 -0
  5. package/config/vars.js.map +1 -1
  6. package/customDomain.d.ts +0 -26
  7. package/customDomain.js +0 -26
  8. package/customDomain.js.map +1 -1
  9. package/extraDiskSize.d.ts +0 -1
  10. package/extraDiskSize.js +0 -1
  11. package/extraDiskSize.js.map +1 -1
  12. package/getVpcGcpInfo.d.ts +108 -0
  13. package/getVpcGcpInfo.js +108 -0
  14. package/getVpcGcpInfo.js.map +1 -1
  15. package/getVpcInfo.d.ts +108 -0
  16. package/getVpcInfo.js +108 -0
  17. package/getVpcInfo.js.map +1 -1
  18. package/instance.d.ts +0 -24
  19. package/instance.js +0 -24
  20. package/instance.js.map +1 -1
  21. package/integrationAwsEventbridge.d.ts +0 -34
  22. package/integrationAwsEventbridge.js +0 -34
  23. package/integrationAwsEventbridge.js.map +1 -1
  24. package/integrationLog.d.ts +0 -44
  25. package/integrationLog.js +0 -44
  26. package/integrationLog.js.map +1 -1
  27. package/integrationMetric.d.ts +0 -34
  28. package/integrationMetric.js +0 -34
  29. package/integrationMetric.js.map +1 -1
  30. package/integrationMetricPrometheus.d.ts +2 -40
  31. package/integrationMetricPrometheus.js +2 -40
  32. package/integrationMetricPrometheus.js.map +1 -1
  33. package/maintenanceWindow.d.ts +0 -28
  34. package/maintenanceWindow.js +0 -28
  35. package/maintenanceWindow.js.map +1 -1
  36. package/notification.d.ts +0 -28
  37. package/notification.js +0 -28
  38. package/notification.js.map +1 -1
  39. package/oauth2Configuration.d.ts +0 -22
  40. package/oauth2Configuration.js +0 -22
  41. package/oauth2Configuration.js.map +1 -1
  42. package/package.json +2 -2
  43. package/plugin.d.ts +128 -13
  44. package/plugin.js +128 -13
  45. package/plugin.js.map +1 -1
  46. package/pluginCommunity.d.ts +50 -14
  47. package/pluginCommunity.js +50 -14
  48. package/pluginCommunity.js.map +1 -1
  49. package/privatelinkAws.d.ts +139 -12
  50. package/privatelinkAws.js +139 -12
  51. package/privatelinkAws.js.map +1 -1
  52. package/privatelinkAzure.d.ts +138 -13
  53. package/privatelinkAzure.js +138 -13
  54. package/privatelinkAzure.js.map +1 -1
  55. package/provider.d.ts +3 -0
  56. package/rabbitConfiguration.d.ts +293 -12
  57. package/rabbitConfiguration.js +293 -12
  58. package/rabbitConfiguration.js.map +1 -1
  59. package/securityFirewall.d.ts +157 -12
  60. package/securityFirewall.js +157 -12
  61. package/securityFirewall.js.map +1 -1
  62. package/trustStore.d.ts +0 -24
  63. package/trustStore.js +0 -24
  64. package/trustStore.js.map +1 -1
  65. package/upgradeLavinmq.d.ts +41 -0
  66. package/upgradeLavinmq.js +41 -0
  67. package/upgradeLavinmq.js.map +1 -1
  68. package/upgradeRabbitmq.d.ts +152 -0
  69. package/upgradeRabbitmq.js +152 -0
  70. package/upgradeRabbitmq.js.map +1 -1
  71. package/vpc.d.ts +0 -28
  72. package/vpc.js +0 -28
  73. package/vpc.js.map +1 -1
  74. package/vpcConnect.d.ts +220 -12
  75. package/vpcConnect.js +220 -12
  76. package/vpcConnect.js.map +1 -1
  77. package/vpcGcpPeering.d.ts +252 -6
  78. package/vpcGcpPeering.js +252 -6
  79. package/vpcGcpPeering.js.map +1 -1
  80. package/vpcPeering.d.ts +305 -5
  81. package/vpcPeering.js +305 -5
  82. package/vpcPeering.js.map +1 -1
  83. package/webhook.d.ts +94 -12
  84. package/webhook.js +94 -12
  85. package/webhook.js.map +1 -1
package/plugin.js CHANGED
@@ -6,31 +6,146 @@ exports.Plugin = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("./utilities");
8
8
  /**
9
- * ## Import
9
+ * This resource allows you to enable or disable Rabbit MQ plugins.
10
10
  *
11
- * `cloudamqp_plugin` can be imported using the name argument of the resource together with CloudAMQP
11
+ * Only available for dedicated subscription plans running ***RabbitMQ***.
12
12
  *
13
- * instance identifier (CSV separated). To retrieve list of available community plugins, use
13
+ * ## Example Usage
14
14
  *
15
- * [CloudAMQP API list plugins].
15
+ * ```typescript
16
+ * import * as pulumi from "@pulumi/pulumi";
17
+ * import * as cloudamqp from "@pulumi/cloudamqp";
16
18
  *
17
- * From Terraform v1.5.0, the `import` block can be used to import this resource:
19
+ * const rabbitmqTop = new cloudamqp.Plugin("rabbitmq_top", {
20
+ * instanceId: instance.id,
21
+ * name: "rabbitmq_top",
22
+ * enabled: true,
23
+ * });
24
+ * ```
25
+ *
26
+ * <details>
27
+ * <summary>
28
+ * <b>
29
+ * <i>Enable multiple plugins v1.19.1 and older versions</i>
30
+ * </b>
31
+ * </summary>
32
+ *
33
+ * Rabbit MQ can only change one plugin at a time. It will fail if multiple plugins resources are used,
34
+ * unless by creating dependencies with `dependOn` between the resources. Once one plugin has been
35
+ * enabled, the other will continue. See example below.
18
36
  *
19
- * hcl
37
+ * ```typescript
38
+ * import * as pulumi from "@pulumi/pulumi";
39
+ * import * as cloudamqp from "@pulumi/cloudamqp";
20
40
  *
21
- * import {
41
+ * const rabbitmqTop = new cloudamqp.Plugin("rabbitmq_top", {
42
+ * instanceId: instance.id,
43
+ * name: "rabbitmq_top",
44
+ * enabled: true,
45
+ * });
46
+ * const rabbitmqAmqp10 = new cloudamqp.Plugin("rabbitmq_amqp1_0", {
47
+ * instanceId: instance.id,
48
+ * name: "rabbitmq_amqp1_0",
49
+ * enabled: true,
50
+ * }, {
51
+ * dependsOn: [rabbitmqTop],
52
+ * });
53
+ * ```
22
54
  *
23
- * to = cloudamqp_plugin.<resource_name>
55
+ * </details>
24
56
  *
25
- * id = format("<plugin_name>,%s", cloudamqp_instance.instance.id)
57
+ * <details>
58
+ * <summary>
59
+ * <b>
60
+ * <i>Enable multiple plugins from </i>
61
+ * <a href="https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.19.2">v1.19.2</a>
62
+ * </b>
63
+ * </summary>
26
64
  *
27
- * }
65
+ * CloudAMQP Terraform provider [v1.19.2] support asynchronous request for plugin actions.
28
66
  *
29
- * Or use Terraform CLI:
67
+ * ```typescript
68
+ * import * as pulumi from "@pulumi/pulumi";
69
+ * import * as cloudamqp from "@pulumi/cloudamqp";
30
70
  *
31
- * ```sh
32
- * $ pulumi import cloudamqp:index/plugin:Plugin <resource_name> <plugin_name>,<instance_id>`
71
+ * const rabbitmqTop = new cloudamqp.Plugin("rabbitmq_top", {
72
+ * instanceId: instance.id,
73
+ * name: "rabbitmq_top",
74
+ * enabled: true,
75
+ * });
76
+ * const rabbitmqAmqp10 = new cloudamqp.Plugin("rabbitmq_amqp1_0", {
77
+ * instanceId: instance.id,
78
+ * name: "rabbitmq_amqp1_0",
79
+ * enabled: true,
80
+ * });
33
81
  * ```
82
+ *
83
+ * </details>
84
+ *
85
+ * <details>
86
+ * <summary>
87
+ * <b>
88
+ * <i>Faster instance destroy when running `terraform destroy` from </i>
89
+ * <a href="https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.27.0">v1.27.0</a>
90
+ * </b>
91
+ * </summary>
92
+ *
93
+ * CloudAMQP Terraform provider [v1.27.0] enables faster `cloudamqp.Instance` destroy when running
94
+ * `terraform destroy`.
95
+ *
96
+ * ```typescript
97
+ * import * as pulumi from "@pulumi/pulumi";
98
+ * import * as cloudamqp from "@pulumi/cloudamqp";
99
+ *
100
+ * const instance = new cloudamqp.Instance("instance", {
101
+ * name: "terraform-cloudamqp-instance",
102
+ * plan: "bunny-1",
103
+ * region: "amazon-web-services::us-west-1",
104
+ * tags: ["terraform"],
105
+ * });
106
+ * const rabbitmqTop = new cloudamqp.Plugin("rabbitmq_top", {
107
+ * instanceId: instance.id,
108
+ * name: "rabbitmq_top",
109
+ * enabled: true,
110
+ * });
111
+ * const rabbitmqAmqp10 = new cloudamqp.Plugin("rabbitmq_amqp1_0", {
112
+ * instanceId: instance.id,
113
+ * name: "rabbitmq_amqp1_0",
114
+ * enabled: true,
115
+ * });
116
+ * ```
117
+ *
118
+ * </details>
119
+ *
120
+ * ## Dependency
121
+ *
122
+ * This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
123
+ *
124
+ * If multiple plugins should be enable, create dependencies between the plugin resources. See example
125
+ * above.
126
+ *
127
+ * ## Required plugins
128
+ *
129
+ * Plugins that is not needed to be managed by the provider since they will always be enabled. We have
130
+ * made `rabbitmqPrometheus` required for all clusters since RabbitMQ version 3.10.0.
131
+ *
132
+ * | Name | Version |
133
+ * |---------------------------|---------|
134
+ * | rabbitmqManagement | all |
135
+ * | rabbitmqManagementAgent | all |
136
+ * | rabbitmqPrometheus | 3.10.0 |
137
+ *
138
+ * ## Enable faster instance destroy
139
+ *
140
+ * When running `terraform destroy` this resource will try to disable the managed plugin before
141
+ * deleting `cloudamqp.Instance`. This is not necessary since the servers will be deleted.
142
+ *
143
+ * Set `enableFasterInstanceDestroy` to ***true*** in the provider configuration to skip this.
144
+ *
145
+ * [CloudAMQP API list plugins]: https://docs.cloudamqp.com/instance-api.html#tag/plugins/get/plugins
146
+ * [v1.19.2]: https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.19.2
147
+ * [v1.27.0]: https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.27.0
148
+ * [v1.29.0]: https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.29.0
34
149
  */
35
150
  class Plugin extends pulumi.CustomResource {
36
151
  /**
package/plugin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../plugin.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAa,MAAO,SAAQ,MAAM,CAAC,cAAc;IAC7C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAmB,EAAE,IAAmC;QACjH,OAAO,IAAI,MAAM,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC;IACvD,CAAC;IA6CD,YAAY,IAAY,EAAE,WAAsC,EAAE,IAAmC;QACjG,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAsC,CAAC;YACrD,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;YAC3C,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC;YACvC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;YAC3C,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;SAC9C;aAAM;YACH,MAAM,IAAI,GAAG,WAAqC,CAAC;YACnD,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aAC1D;YACD,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC7D;YACD,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC;YACtC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAClD,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SACjD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;;AArGL,wBAsGC;AAxFG,gBAAgB;AACO,mBAAY,GAAG,+BAA+B,CAAC"}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../plugin.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6IG;AACH,MAAa,MAAO,SAAQ,MAAM,CAAC,cAAc;IAC7C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAmB,EAAE,IAAmC;QACjH,OAAO,IAAI,MAAM,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC,YAAY,CAAC;IACvD,CAAC;IA6CD,YAAY,IAAY,EAAE,WAAsC,EAAE,IAAmC;QACjG,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAsC,CAAC;YACrD,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;YAC3C,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC;YACvC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;YAC3C,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;SAC9C;aAAM;YACH,MAAM,IAAI,GAAG,WAAqC,CAAC;YACnD,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aAC1D;YACD,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC7D;YACD,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC;YACtC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAClD,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SACjD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;;AArGL,wBAsGC;AAxFG,gBAAgB;AACO,mBAAY,GAAG,+BAA+B,CAAC"}
@@ -1,30 +1,66 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  /**
3
- * ## Import
3
+ * This resource allows you to install or uninstall community plugins. Once installed the plugin will
4
+ * be available in `cloudamqp.Plugin`.
4
5
  *
5
- * `cloudamqp_plugin_community` can be imported if it's has already been installed by using the name
6
+ * Only available for dedicated subscription plans running ***RabbitMQ***.
6
7
  *
7
- * argument of the resource together with CloudAMQP instance identifier (CSV separated). To retrieve
8
+ * ## Example Usage
8
9
  *
9
- * list of available community plugins, use [CloudAMQP API list community plugins].
10
+ * ```typescript
11
+ * import * as pulumi from "@pulumi/pulumi";
12
+ * import * as cloudamqp from "@pulumi/cloudamqp";
10
13
  *
11
- * From Terraform v1.5.0, the `import` block can be used to import this resource:
14
+ * const rabbitmqDelayedMessageExchange = new cloudamqp.PluginCommunity("rabbitmq_delayed_message_exchange", {
15
+ * instanceId: instance.id,
16
+ * name: "rabbitmq_delayed_message_exchange",
17
+ * enabled: true,
18
+ * });
19
+ * ```
20
+ *
21
+ * <details>
22
+ * <summary>
23
+ * <b>
24
+ * <i>Faster instance destroy when running `terraform destroy` from [v1.27.0]</i>
25
+ * </b>
26
+ * </summary>
12
27
  *
13
- * hcl
28
+ * CloudAMQP Terraform provider [v1.27.0] enables faster `cloudamqp.Instance` destroy when running
29
+ * `terraform destroy`.
14
30
  *
15
- * import {
31
+ * ```typescript
32
+ * import * as pulumi from "@pulumi/pulumi";
33
+ * import * as cloudamqp from "@pulumi/cloudamqp";
16
34
  *
17
- * to = cloudamqp_plugin_community.rabbitmq_delayed_message_exchange
35
+ * const instance = new cloudamqp.Instance("instance", {
36
+ * name: "terraform-cloudamqp-instance",
37
+ * plan: "bunny-1",
38
+ * region: "amazon-web-services::us-west-1",
39
+ * tags: ["terraform"],
40
+ * });
41
+ * const rabbitmqDelayedMessageExchange = new cloudamqp.PluginCommunity("rabbitmq_delayed_message_exchange", {
42
+ * instanceId: instance.id,
43
+ * name: "rabbitmq_delayed_message_exchange",
44
+ * enabled: true,
45
+ * });
46
+ * ```
18
47
  *
19
- * id = format("rabbitmq_delayed_message_exchange,%s", cloudamqp_instance.instance.id)
48
+ * </details>
20
49
  *
21
- * }
50
+ * ## Dependency
22
51
  *
23
- * Or use Terraform CLI:
52
+ * This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
24
53
  *
25
- * ```sh
26
- * $ pulumi import cloudamqp:index/pluginCommunity:PluginCommunity rabbitmq_delayed_message_exchange <plugin_name>,<instance_id>`
27
- * ```
54
+ * ## Enable faster instance destroy
55
+ *
56
+ * When running `terraform destroy` this resource will try to uninstall the managed community plugin
57
+ * before deleting `cloudamqp.Instance`. This is not necessary since the servers will be deleted.
58
+ *
59
+ * Set `enableFasterInstanceDestroy` to ***true*** in the provider configuration to skip this.
60
+ *
61
+ * [CloudAMQP API list community plugins]: https://docs.cloudamqp.com/instance-api.html#tag/plugins/get/plugins/community
62
+ * [v1.27.0]: https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.27.0
63
+ * [v1.29.0]: https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.29.0
28
64
  */
29
65
  export declare class PluginCommunity extends pulumi.CustomResource {
30
66
  /**
@@ -6,31 +6,67 @@ exports.PluginCommunity = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("./utilities");
8
8
  /**
9
- * ## Import
9
+ * This resource allows you to install or uninstall community plugins. Once installed the plugin will
10
+ * be available in `cloudamqp.Plugin`.
10
11
  *
11
- * `cloudamqp_plugin_community` can be imported if it's has already been installed by using the name
12
+ * Only available for dedicated subscription plans running ***RabbitMQ***.
12
13
  *
13
- * argument of the resource together with CloudAMQP instance identifier (CSV separated). To retrieve
14
+ * ## Example Usage
14
15
  *
15
- * list of available community plugins, use [CloudAMQP API list community plugins].
16
+ * ```typescript
17
+ * import * as pulumi from "@pulumi/pulumi";
18
+ * import * as cloudamqp from "@pulumi/cloudamqp";
16
19
  *
17
- * From Terraform v1.5.0, the `import` block can be used to import this resource:
20
+ * const rabbitmqDelayedMessageExchange = new cloudamqp.PluginCommunity("rabbitmq_delayed_message_exchange", {
21
+ * instanceId: instance.id,
22
+ * name: "rabbitmq_delayed_message_exchange",
23
+ * enabled: true,
24
+ * });
25
+ * ```
26
+ *
27
+ * <details>
28
+ * <summary>
29
+ * <b>
30
+ * <i>Faster instance destroy when running `terraform destroy` from [v1.27.0]</i>
31
+ * </b>
32
+ * </summary>
18
33
  *
19
- * hcl
34
+ * CloudAMQP Terraform provider [v1.27.0] enables faster `cloudamqp.Instance` destroy when running
35
+ * `terraform destroy`.
20
36
  *
21
- * import {
37
+ * ```typescript
38
+ * import * as pulumi from "@pulumi/pulumi";
39
+ * import * as cloudamqp from "@pulumi/cloudamqp";
22
40
  *
23
- * to = cloudamqp_plugin_community.rabbitmq_delayed_message_exchange
41
+ * const instance = new cloudamqp.Instance("instance", {
42
+ * name: "terraform-cloudamqp-instance",
43
+ * plan: "bunny-1",
44
+ * region: "amazon-web-services::us-west-1",
45
+ * tags: ["terraform"],
46
+ * });
47
+ * const rabbitmqDelayedMessageExchange = new cloudamqp.PluginCommunity("rabbitmq_delayed_message_exchange", {
48
+ * instanceId: instance.id,
49
+ * name: "rabbitmq_delayed_message_exchange",
50
+ * enabled: true,
51
+ * });
52
+ * ```
24
53
  *
25
- * id = format("rabbitmq_delayed_message_exchange,%s", cloudamqp_instance.instance.id)
54
+ * </details>
26
55
  *
27
- * }
56
+ * ## Dependency
28
57
  *
29
- * Or use Terraform CLI:
58
+ * This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
30
59
  *
31
- * ```sh
32
- * $ pulumi import cloudamqp:index/pluginCommunity:PluginCommunity rabbitmq_delayed_message_exchange <plugin_name>,<instance_id>`
33
- * ```
60
+ * ## Enable faster instance destroy
61
+ *
62
+ * When running `terraform destroy` this resource will try to uninstall the managed community plugin
63
+ * before deleting `cloudamqp.Instance`. This is not necessary since the servers will be deleted.
64
+ *
65
+ * Set `enableFasterInstanceDestroy` to ***true*** in the provider configuration to skip this.
66
+ *
67
+ * [CloudAMQP API list community plugins]: https://docs.cloudamqp.com/instance-api.html#tag/plugins/get/plugins/community
68
+ * [v1.27.0]: https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.27.0
69
+ * [v1.29.0]: https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.29.0
34
70
  */
35
71
  class PluginCommunity extends pulumi.CustomResource {
36
72
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"pluginCommunity.js","sourceRoot":"","sources":["../pluginCommunity.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAa,eAAgB,SAAQ,MAAM,CAAC,cAAc;IACtD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA4B,EAAE,IAAmC;QAC1H,OAAO,IAAI,eAAe,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,eAAe,CAAC,YAAY,CAAC;IAChE,CAAC;IA6CD,YAAY,IAAY,EAAE,WAAwD,EAAE,IAAmC;QACnH,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA+C,CAAC;YAC9D,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;YAC3C,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;YAC3C,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC;YACvC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;SAC9C;aAAM;YACH,MAAM,IAAI,GAAG,WAA8C,CAAC;YAC5D,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aAC1D;YACD,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC7D;YACD,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC;YACtC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAClD,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SACjD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;;AArGL,0CAsGC;AAxFG,gBAAgB;AACO,4BAAY,GAAG,iDAAiD,CAAC"}
1
+ {"version":3,"file":"pluginCommunity.js","sourceRoot":"","sources":["../pluginCommunity.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8DG;AACH,MAAa,eAAgB,SAAQ,MAAM,CAAC,cAAc;IACtD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA4B,EAAE,IAAmC;QAC1H,OAAO,IAAI,eAAe,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACtE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,eAAe,CAAC,YAAY,CAAC;IAChE,CAAC;IA6CD,YAAY,IAAY,EAAE,WAAwD,EAAE,IAAmC;QACnH,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA+C,CAAC;YAC9D,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;YAC3C,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;YAC3C,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC;YACvC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;SAC9C;aAAM;YACH,MAAM,IAAI,GAAG,WAA8C,CAAC;YAC5D,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC1C,MAAM,IAAI,KAAK,CAAC,qCAAqC,CAAC,CAAC;aAC1D;YACD,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC7D;YACD,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC;YACtC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAClD,cAAc,CAAC,SAAS,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SACjD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,eAAe,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACpE,CAAC;;AArGL,0CAsGC;AAxFG,gBAAgB;AACO,4BAAY,GAAG,iDAAiD,CAAC"}
@@ -1,28 +1,155 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  /**
3
- * ## Import
3
+ * Enable PrivateLink for a CloudAMQP instance hosted in AWS. If no existing VPC available when enable
4
+ * PrivateLink, a new VPC will be created with subnet `10.52.72.0/24`.
4
5
  *
5
- * `cloudamqp_privatelink_aws` can be imported using CloudAMQP instance identifier. To retrieve the
6
+ * > **Note:** Enabling PrivateLink will automatically add firewall rules for the peered subnet.
6
7
  *
7
- * identifier, use [CloudAMQP API list intances].
8
+ * <details>
9
+ * <summary>
10
+ * <i>Default PrivateLink firewall rule</i>
11
+ * </summary>
8
12
  *
9
- * From Terraform v1.5.0, the `import` block can be used to import this resource:
13
+ * ## Example Usage
10
14
  *
11
- * hcl
15
+ * <details>
16
+ * <summary>
17
+ * <b>
18
+ * <i>CloudAMQP instance without existing VPC</i>
19
+ * </b>
20
+ * </summary>
12
21
  *
13
- * import {
22
+ * ```typescript
23
+ * import * as pulumi from "@pulumi/pulumi";
24
+ * import * as cloudamqp from "@pulumi/cloudamqp";
14
25
  *
15
- * to = cloudamqp_privatelink_aws.privatelink
26
+ * const instance = new cloudamqp.Instance("instance", {
27
+ * name: "Instance 01",
28
+ * plan: "bunny-1",
29
+ * region: "amazon-web-services::us-west-1",
30
+ * tags: [],
31
+ * });
32
+ * const privatelink = new cloudamqp.PrivatelinkAws("privatelink", {
33
+ * instanceId: instance.id,
34
+ * allowedPrincipals: ["arn:aws:iam::aws-account-id:user/user-name"],
35
+ * });
36
+ * ```
37
+ *
38
+ * </details>
39
+ *
40
+ * <details>
41
+ * <summary>
42
+ * <b>
43
+ * <i>CloudAMQP instance in an existing VPC</i>
44
+ * </b>
45
+ * </summary>
46
+ *
47
+ * ```typescript
48
+ * import * as pulumi from "@pulumi/pulumi";
49
+ * import * as cloudamqp from "@pulumi/cloudamqp";
50
+ *
51
+ * const vpc = new cloudamqp.Vpc("vpc", {
52
+ * name: "Standalone VPC",
53
+ * region: "amazon-web-services::us-west-1",
54
+ * subnet: "10.56.72.0/24",
55
+ * tags: [],
56
+ * });
57
+ * const instance = new cloudamqp.Instance("instance", {
58
+ * name: "Instance 01",
59
+ * plan: "bunny-1",
60
+ * region: "amazon-web-services::us-west-1",
61
+ * tags: [],
62
+ * vpcId: vpc.id,
63
+ * keepAssociatedVpc: true,
64
+ * });
65
+ * const privatelink = new cloudamqp.PrivatelinkAws("privatelink", {
66
+ * instanceId: instance.id,
67
+ * allowedPrincipals: ["arn:aws:iam::aws-account-id:user/user-name"],
68
+ * });
69
+ * ```
70
+ *
71
+ * </details>
16
72
  *
17
- * id = cloudamqp_instance.instance.id
73
+ * ### With Additional Firewall Rules
18
74
  *
19
- * }
75
+ * <details>
76
+ * <summary>
77
+ * <b>
78
+ * <i>CloudAMQP instance in an existing VPC with managed firewall rules</i>
79
+ * </b>
80
+ * </summary>
20
81
  *
21
- * Or use Terraform CLI:
82
+ * ```typescript
83
+ * import * as pulumi from "@pulumi/pulumi";
84
+ * import * as cloudamqp from "@pulumi/cloudamqp";
22
85
  *
23
- * ```sh
24
- * $ pulumi import cloudamqp:index/privatelinkAws:PrivatelinkAws privatelink <id>`
86
+ * const vpc = new cloudamqp.Vpc("vpc", {
87
+ * name: "Standalone VPC",
88
+ * region: "amazon-web-services::us-west-1",
89
+ * subnet: "10.56.72.0/24",
90
+ * tags: [],
91
+ * });
92
+ * const instance = new cloudamqp.Instance("instance", {
93
+ * name: "Instance 01",
94
+ * plan: "bunny-1",
95
+ * region: "amazon-web-services::us-west-1",
96
+ * tags: [],
97
+ * vpcId: vpc.id,
98
+ * keepAssociatedVpc: true,
99
+ * });
100
+ * const privatelink = new cloudamqp.PrivatelinkAws("privatelink", {
101
+ * instanceId: instance.id,
102
+ * allowedPrincipals: ["arn:aws:iam::aws-account-id:user/user-name"],
103
+ * });
104
+ * const firewallSettings = new cloudamqp.SecurityFirewall("firewall_settings", {
105
+ * instanceId: instance.id,
106
+ * rules: [
107
+ * {
108
+ * description: "Custom PrivateLink setup",
109
+ * ip: vpc.subnet,
110
+ * ports: [],
111
+ * services: [
112
+ * "AMQP",
113
+ * "AMQPS",
114
+ * "HTTPS",
115
+ * "STREAM",
116
+ * "STREAM_SSL",
117
+ * ],
118
+ * },
119
+ * {
120
+ * description: "MGMT interface",
121
+ * ip: "0.0.0.0/0",
122
+ * ports: [],
123
+ * services: ["HTTPS"],
124
+ * },
125
+ * ],
126
+ * }, {
127
+ * dependsOn: [privatelink],
128
+ * });
25
129
  * ```
130
+ *
131
+ * </details>
132
+ *
133
+ * [CloudAMQP API list intances]: https://docs.cloudamqp.com/index.html#tag/instances/get/instances
134
+ * [CloudAMQP plans]: https://www.cloudamqp.com/plans.html
135
+ * [CloudAMQP PrivateLink]: https://www.cloudamqp.com/docs/cloudamqp-privatelink.html#aws-privatelink
136
+ * [cloudamqp.SecurityFirewall]: ./security_firewall.md
137
+ * [cloudamqp.VpcConnect]: ./vpc_connect.md
138
+ * [v1.29.0]: https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.29.0
139
+ *
140
+ * ## Dependency
141
+ *
142
+ * This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
143
+ *
144
+ * ## Create PrivateLink with additional firewall rules
145
+ *
146
+ * To create a PrivateLink configuration with additional firewall rules, it's required to chain the
147
+ * [cloudamqp.SecurityFirewall] resource to avoid parallel conflicting resource calls. You can do this
148
+ * by making the firewall resource depend on the PrivateLink resource,
149
+ * `cloudamqp_privatelink_aws.privatelink`.
150
+ *
151
+ * Furthermore, since all firewall rules are overwritten, the otherwise automatically added rules for
152
+ * the PrivateLink also needs to be added.
26
153
  */
27
154
  export declare class PrivatelinkAws extends pulumi.CustomResource {
28
155
  /**