@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
@@ -1,5 +1,157 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  /**
3
+ * This resource allows you to upgrade RabbitMQ version. Depending on initial versions of RabbitMQ and
4
+ * Erlang of the CloudAMQP instance, multiple runs may be needed to get to the latest or wanted version.
5
+ * Reason for this is certain supported RabbitMQ version will also automatically upgrade Erlang version.
6
+ *
7
+ * There is three different ways to trigger the version upgrade
8
+ *
9
+ * > * Specify RabbitMQ version to upgrade to
10
+ * > * Upgrade to latest RabbitMQ version
11
+ * > * Old behaviour to upgrade to latest RabbitMQ version
12
+ *
13
+ * See example below for usage.
14
+ *
15
+ * Only available for dedicated subscription plans running ***RabbitMQ***.
16
+ *
17
+ * ## Example Usage
18
+ *
19
+ * <details>
20
+ * <summary>
21
+ * <b>
22
+ * <i>Specify version upgrade, from [v1.31.0]</i>
23
+ * </b>
24
+ * </summary>
25
+ *
26
+ * Specify the version to upgrade to. List available upgradable versions, use
27
+ * [CloudAMQP API available versions].
28
+ *
29
+ * After the upgrade finished, there can still be newer versions available.
30
+ *
31
+ * ```typescript
32
+ * import * as pulumi from "@pulumi/pulumi";
33
+ * import * as cloudamqp from "@pulumi/cloudamqp";
34
+ *
35
+ * const instance = new cloudamqp.Instance("instance", {
36
+ * name: "rabbitmq-version-upgrade-test",
37
+ * plan: "bunny-1",
38
+ * region: "amazon-web-services::us-west-1",
39
+ * });
40
+ * const upgrade = new cloudamqp.UpgradeRabbitmq("upgrade", {
41
+ * instanceId: instance.id,
42
+ * newVersion: "3.13.2",
43
+ * });
44
+ * ```
45
+ *
46
+ * </details>
47
+ *
48
+ * <details>
49
+ * <summary>
50
+ * <b>
51
+ * <i>Upgrade to latest possible version, from [v1.31.0]</i>
52
+ * </b>
53
+ * </summary>
54
+ *
55
+ * This will upgrade RabbitMQ to the latest possible version detected by the data source
56
+ * `cloudamqp.getUpgradableVersions`. Multiple runs can be needed to upgrade the version even further.
57
+ *
58
+ * ```typescript
59
+ * import * as pulumi from "@pulumi/pulumi";
60
+ * import * as cloudamqp from "@pulumi/cloudamqp";
61
+ *
62
+ * const instance = new cloudamqp.Instance("instance", {
63
+ * name: "rabbitmq-version-upgrade-test",
64
+ * plan: "bunny-1",
65
+ * region: "amazon-web-services::us-west-1",
66
+ * });
67
+ * const upgradableVersions = instance.id.apply(id => cloudamqp.getUpgradableVersionsOutput({
68
+ * instanceId: id,
69
+ * }));
70
+ * const upgrade = new cloudamqp.UpgradeRabbitmq("upgrade", {
71
+ * instanceId: instance.id,
72
+ * currentVersion: instance.rmqVersion,
73
+ * newVersion: upgradableVersions.apply(upgradableVersions => upgradableVersions.newRabbitmqVersion),
74
+ * });
75
+ * ```
76
+ *
77
+ * </details>
78
+ *
79
+ * <details>
80
+ * <summary>
81
+ * <b>
82
+ * <i>Upgrade to latest possible version, before v1.31.0</i>
83
+ * </b>
84
+ * </summary>
85
+ *
86
+ * Old behaviour of the upgrading the RabbitMQ version. No longer recommended.
87
+ *
88
+ * ```typescript
89
+ * import * as pulumi from "@pulumi/pulumi";
90
+ * import * as cloudamqp from "@pulumi/cloudamqp";
91
+ *
92
+ * // Retrieve latest possible upgradable versions for RabbitMQ and Erlang
93
+ * const versions = cloudamqp.getUpgradableVersions({
94
+ * instanceId: instance.id,
95
+ * });
96
+ * // Invoke automatically upgrade to latest possible upgradable versions for RabbitMQ and Erlang
97
+ * const upgrade = new cloudamqp.UpgradeRabbitmq("upgrade", {instanceId: instance.id});
98
+ * ```
99
+ *
100
+ * ```typescript
101
+ * import * as pulumi from "@pulumi/pulumi";
102
+ * import * as cloudamqp from "@pulumi/cloudamqp";
103
+ *
104
+ * // Retrieve latest possible upgradable versions for RabbitMQ and Erlang
105
+ * const versions = cloudamqp.getUpgradableVersions({
106
+ * instanceId: instance.id,
107
+ * });
108
+ * ```
109
+ *
110
+ * If newer version is still available to be upgradable in the data source, re-run again.
111
+ *
112
+ * ```typescript
113
+ * import * as pulumi from "@pulumi/pulumi";
114
+ * import * as cloudamqp from "@pulumi/cloudamqp";
115
+ *
116
+ * // Retrieve latest possible upgradable versions for RabbitMQ and Erlang
117
+ * const versions = cloudamqp.getUpgradableVersions({
118
+ * instanceId: instance.id,
119
+ * });
120
+ * // Invoke automatically upgrade to latest possible upgradable versions for RabbitMQ and Erlang
121
+ * const upgrade = new cloudamqp.UpgradeRabbitmq("upgrade", {instanceId: instance.id});
122
+ * ```
123
+ *
124
+ * </details>
125
+ *
126
+ * ## Important upgrade information
127
+ *
128
+ * > * All single node upgrades will require some downtime since RabbitMQ needs a restart.
129
+ * > * From RabbitMQ version 3.9, rolling upgrades between minor versions (e.g. 3.9 to 3.10), in a
130
+ * > multi-node cluster are possible without downtime. This means that one node is upgraded at a time
131
+ * > while the other nodes are still running. For versions older than 3.9, patch version upgrades
132
+ * > (e.g. 3.8.x to 3.8.y) are possible without downtime in a multi-node cluster, but minor version
133
+ * > upgrades will require downtime.
134
+ * > * Auto delete queues (queues that are marked AD) will be deleted during the update.
135
+ * > * Any custom plugins support has installed on your behalf will be disabled and you need to contact
136
+ * > support@cloudamqp.com and ask to have them re-installed.
137
+ * > * TLS 1.0 and 1.1 will not be supported after the update.
138
+ *
139
+ * ## Multiple runs
140
+ *
141
+ * Depending on initial versions of RabbitMQ and Erlang of the CloudAMQP instance, multiple runs may be
142
+ * needed to get to the latest or wanted version.
143
+ *
144
+ * Example steps needed when starting at RabbitMQ version 3.12.2
145
+ *
146
+ * | Version | Supported upgrading versions | Min version to upgrade Erlang |
147
+ * |------------------|-------------------------------------------|-------------------------------|
148
+ * | 3.12.2 | 3.12.4, 3.12.6, 3.12.10, 3.12.12, 3.12.13 | 3.12.13 |
149
+ * | 3.12.13 | 3.13.2 | 3.13.2 |
150
+ * | 3.13.2 | - | - |
151
+ *
152
+ * [CloudAMQP API available versions]: https://docs.cloudamqp.com/instance-api.html#tag/nodes/get/nodes/available-versions
153
+ * [v1.31.0]: https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.31.0
154
+ *
3
155
  * ## Import
4
156
  *
5
157
  * Not possible to import this resource.
@@ -6,6 +6,158 @@ exports.UpgradeRabbitmq = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("./utilities");
8
8
  /**
9
+ * This resource allows you to upgrade RabbitMQ version. Depending on initial versions of RabbitMQ and
10
+ * Erlang of the CloudAMQP instance, multiple runs may be needed to get to the latest or wanted version.
11
+ * Reason for this is certain supported RabbitMQ version will also automatically upgrade Erlang version.
12
+ *
13
+ * There is three different ways to trigger the version upgrade
14
+ *
15
+ * > * Specify RabbitMQ version to upgrade to
16
+ * > * Upgrade to latest RabbitMQ version
17
+ * > * Old behaviour to upgrade to latest RabbitMQ version
18
+ *
19
+ * See example below for usage.
20
+ *
21
+ * Only available for dedicated subscription plans running ***RabbitMQ***.
22
+ *
23
+ * ## Example Usage
24
+ *
25
+ * <details>
26
+ * <summary>
27
+ * <b>
28
+ * <i>Specify version upgrade, from [v1.31.0]</i>
29
+ * </b>
30
+ * </summary>
31
+ *
32
+ * Specify the version to upgrade to. List available upgradable versions, use
33
+ * [CloudAMQP API available versions].
34
+ *
35
+ * After the upgrade finished, there can still be newer versions available.
36
+ *
37
+ * ```typescript
38
+ * import * as pulumi from "@pulumi/pulumi";
39
+ * import * as cloudamqp from "@pulumi/cloudamqp";
40
+ *
41
+ * const instance = new cloudamqp.Instance("instance", {
42
+ * name: "rabbitmq-version-upgrade-test",
43
+ * plan: "bunny-1",
44
+ * region: "amazon-web-services::us-west-1",
45
+ * });
46
+ * const upgrade = new cloudamqp.UpgradeRabbitmq("upgrade", {
47
+ * instanceId: instance.id,
48
+ * newVersion: "3.13.2",
49
+ * });
50
+ * ```
51
+ *
52
+ * </details>
53
+ *
54
+ * <details>
55
+ * <summary>
56
+ * <b>
57
+ * <i>Upgrade to latest possible version, from [v1.31.0]</i>
58
+ * </b>
59
+ * </summary>
60
+ *
61
+ * This will upgrade RabbitMQ to the latest possible version detected by the data source
62
+ * `cloudamqp.getUpgradableVersions`. Multiple runs can be needed to upgrade the version even further.
63
+ *
64
+ * ```typescript
65
+ * import * as pulumi from "@pulumi/pulumi";
66
+ * import * as cloudamqp from "@pulumi/cloudamqp";
67
+ *
68
+ * const instance = new cloudamqp.Instance("instance", {
69
+ * name: "rabbitmq-version-upgrade-test",
70
+ * plan: "bunny-1",
71
+ * region: "amazon-web-services::us-west-1",
72
+ * });
73
+ * const upgradableVersions = instance.id.apply(id => cloudamqp.getUpgradableVersionsOutput({
74
+ * instanceId: id,
75
+ * }));
76
+ * const upgrade = new cloudamqp.UpgradeRabbitmq("upgrade", {
77
+ * instanceId: instance.id,
78
+ * currentVersion: instance.rmqVersion,
79
+ * newVersion: upgradableVersions.apply(upgradableVersions => upgradableVersions.newRabbitmqVersion),
80
+ * });
81
+ * ```
82
+ *
83
+ * </details>
84
+ *
85
+ * <details>
86
+ * <summary>
87
+ * <b>
88
+ * <i>Upgrade to latest possible version, before v1.31.0</i>
89
+ * </b>
90
+ * </summary>
91
+ *
92
+ * Old behaviour of the upgrading the RabbitMQ version. No longer recommended.
93
+ *
94
+ * ```typescript
95
+ * import * as pulumi from "@pulumi/pulumi";
96
+ * import * as cloudamqp from "@pulumi/cloudamqp";
97
+ *
98
+ * // Retrieve latest possible upgradable versions for RabbitMQ and Erlang
99
+ * const versions = cloudamqp.getUpgradableVersions({
100
+ * instanceId: instance.id,
101
+ * });
102
+ * // Invoke automatically upgrade to latest possible upgradable versions for RabbitMQ and Erlang
103
+ * const upgrade = new cloudamqp.UpgradeRabbitmq("upgrade", {instanceId: instance.id});
104
+ * ```
105
+ *
106
+ * ```typescript
107
+ * import * as pulumi from "@pulumi/pulumi";
108
+ * import * as cloudamqp from "@pulumi/cloudamqp";
109
+ *
110
+ * // Retrieve latest possible upgradable versions for RabbitMQ and Erlang
111
+ * const versions = cloudamqp.getUpgradableVersions({
112
+ * instanceId: instance.id,
113
+ * });
114
+ * ```
115
+ *
116
+ * If newer version is still available to be upgradable in the data source, re-run again.
117
+ *
118
+ * ```typescript
119
+ * import * as pulumi from "@pulumi/pulumi";
120
+ * import * as cloudamqp from "@pulumi/cloudamqp";
121
+ *
122
+ * // Retrieve latest possible upgradable versions for RabbitMQ and Erlang
123
+ * const versions = cloudamqp.getUpgradableVersions({
124
+ * instanceId: instance.id,
125
+ * });
126
+ * // Invoke automatically upgrade to latest possible upgradable versions for RabbitMQ and Erlang
127
+ * const upgrade = new cloudamqp.UpgradeRabbitmq("upgrade", {instanceId: instance.id});
128
+ * ```
129
+ *
130
+ * </details>
131
+ *
132
+ * ## Important upgrade information
133
+ *
134
+ * > * All single node upgrades will require some downtime since RabbitMQ needs a restart.
135
+ * > * From RabbitMQ version 3.9, rolling upgrades between minor versions (e.g. 3.9 to 3.10), in a
136
+ * > multi-node cluster are possible without downtime. This means that one node is upgraded at a time
137
+ * > while the other nodes are still running. For versions older than 3.9, patch version upgrades
138
+ * > (e.g. 3.8.x to 3.8.y) are possible without downtime in a multi-node cluster, but minor version
139
+ * > upgrades will require downtime.
140
+ * > * Auto delete queues (queues that are marked AD) will be deleted during the update.
141
+ * > * Any custom plugins support has installed on your behalf will be disabled and you need to contact
142
+ * > support@cloudamqp.com and ask to have them re-installed.
143
+ * > * TLS 1.0 and 1.1 will not be supported after the update.
144
+ *
145
+ * ## Multiple runs
146
+ *
147
+ * Depending on initial versions of RabbitMQ and Erlang of the CloudAMQP instance, multiple runs may be
148
+ * needed to get to the latest or wanted version.
149
+ *
150
+ * Example steps needed when starting at RabbitMQ version 3.12.2
151
+ *
152
+ * | Version | Supported upgrading versions | Min version to upgrade Erlang |
153
+ * |------------------|-------------------------------------------|-------------------------------|
154
+ * | 3.12.2 | 3.12.4, 3.12.6, 3.12.10, 3.12.12, 3.12.13 | 3.12.13 |
155
+ * | 3.12.13 | 3.13.2 | 3.13.2 |
156
+ * | 3.13.2 | - | - |
157
+ *
158
+ * [CloudAMQP API available versions]: https://docs.cloudamqp.com/instance-api.html#tag/nodes/get/nodes/available-versions
159
+ * [v1.31.0]: https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.31.0
160
+ *
9
161
  * ## Import
10
162
  *
11
163
  * Not possible to import this resource.
@@ -1 +1 @@
1
- {"version":3,"file":"upgradeRabbitmq.js","sourceRoot":"","sources":["../upgradeRabbitmq.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;GAIG;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;IAwBD,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,gBAAgB,CAAC,GAAG,KAAK,EAAE,cAAc,CAAC;YACzD,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;SACpD;aAAM;YACH,MAAM,IAAI,GAAG,WAA8C,CAAC;YAC5D,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC7D;YACD,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC;YACxD,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;SACnD;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;;AArEL,0CAsEC;AAxDG,gBAAgB;AACO,4BAAY,GAAG,iDAAiD,CAAC"}
1
+ {"version":3,"file":"upgradeRabbitmq.js","sourceRoot":"","sources":["../upgradeRabbitmq.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4JG;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;IAwBD,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,gBAAgB,CAAC,GAAG,KAAK,EAAE,cAAc,CAAC;YACzD,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;SACpD;aAAM;YACH,MAAM,IAAI,GAAG,WAA8C,CAAC;YAC5D,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC7D;YACD,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC;YACxD,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;SACnD;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;;AArEL,0CAsEC;AAxDG,gBAAgB;AACO,4BAAY,GAAG,iDAAiD,CAAC"}
package/vpc.d.ts CHANGED
@@ -37,34 +37,6 @@ import * as pulumi from "@pulumi/pulumi";
37
37
  * vpcId: vpc.id,
38
38
  * });
39
39
  * ```
40
- *
41
- * ## Import
42
- *
43
- * `cloudamqp_vpc` can be imported using the CloudAMQP VPC identifier. To retrieve the identifier of an
44
- *
45
- * instance, use [CloudAMQP API list vpcs].
46
- *
47
- * From Terraform v1.5.0, the `import` block can be used to import this resource:
48
- *
49
- * hcl
50
- *
51
- * import {
52
- *
53
- * to = cloudamqp_vpc.vpc
54
- *
55
- * id = <vpc_id>
56
- *
57
- * }
58
- *
59
- * Or with Terraform CLI:
60
- *
61
- * ```sh
62
- * $ pulumi import cloudamqp:index/vpc:Vpc vpc <vpc_id>`
63
- * ```
64
- *
65
- * [CloudAMQP API list vpcs]: https://docs.cloudamqp.com/index.html#tag/vpcs/get/vpcs
66
- *
67
- * [CloudAMQP plans]: https://docs.cloudamqp.com/index.html#tag/plans/get/plans
68
40
  */
69
41
  export declare class Vpc extends pulumi.CustomResource {
70
42
  /**
package/vpc.js CHANGED
@@ -43,34 +43,6 @@ const utilities = require("./utilities");
43
43
  * vpcId: vpc.id,
44
44
  * });
45
45
  * ```
46
- *
47
- * ## Import
48
- *
49
- * `cloudamqp_vpc` can be imported using the CloudAMQP VPC identifier. To retrieve the identifier of an
50
- *
51
- * instance, use [CloudAMQP API list vpcs].
52
- *
53
- * From Terraform v1.5.0, the `import` block can be used to import this resource:
54
- *
55
- * hcl
56
- *
57
- * import {
58
- *
59
- * to = cloudamqp_vpc.vpc
60
- *
61
- * id = <vpc_id>
62
- *
63
- * }
64
- *
65
- * Or with Terraform CLI:
66
- *
67
- * ```sh
68
- * $ pulumi import cloudamqp:index/vpc:Vpc vpc <vpc_id>`
69
- * ```
70
- *
71
- * [CloudAMQP API list vpcs]: https://docs.cloudamqp.com/index.html#tag/vpcs/get/vpcs
72
- *
73
- * [CloudAMQP plans]: https://docs.cloudamqp.com/index.html#tag/plans/get/plans
74
46
  */
75
47
  class Vpc extends pulumi.CustomResource {
76
48
  /**
package/vpc.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"vpc.js","sourceRoot":"","sources":["../vpc.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkEG;AACH,MAAa,GAAI,SAAQ,MAAM,CAAC,cAAc;IAC1C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAgB,EAAE,IAAmC;QAC9G,OAAO,IAAI,GAAG,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1D,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,GAAG,CAAC,YAAY,CAAC;IACpD,CAAC;IA+BD,YAAY,IAAY,EAAE,WAAgC,EAAE,IAAmC;QAC3F,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAmC,CAAC;YAClD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;SAC9C;aAAM;YACH,MAAM,IAAI,GAAG,WAAkC,CAAC;YAChD,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACzC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;aACzD;YACD,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACzC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;aACzD;YACD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,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,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;;AAnFL,kBAoFC;AAtEG,gBAAgB;AACO,gBAAY,GAAG,yBAAyB,CAAC"}
1
+ {"version":3,"file":"vpc.js","sourceRoot":"","sources":["../vpc.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsCG;AACH,MAAa,GAAI,SAAQ,MAAM,CAAC,cAAc;IAC1C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAgB,EAAE,IAAmC;QAC9G,OAAO,IAAI,GAAG,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC1D,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,GAAG,CAAC,YAAY,CAAC;IACpD,CAAC;IA+BD,YAAY,IAAY,EAAE,WAAgC,EAAE,IAAmC;QAC3F,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAmC,CAAC;YAClD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;SAC9C;aAAM;YACH,MAAM,IAAI,GAAG,WAAkC,CAAC;YAChD,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACzC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;aACzD;YACD,IAAI,IAAI,EAAE,MAAM,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACzC,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;aACzD;YACD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,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,GAAG,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;;AAnFL,kBAoFC;AAtEG,gBAAgB;AACO,gBAAY,GAAG,yBAAyB,CAAC"}
package/vpcConnect.d.ts CHANGED
@@ -1,28 +1,236 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  /**
3
- * ## Import
3
+ * This resource is a generic way to handle PrivateLink (AWS and Azure) and Private Service Connect
4
+ * (GCP). Communication between resources can be done just as they were living inside a VPC. CloudAMQP
5
+ * creates an Endpoint Service to connect the VPC and creating a new network interface to handle the
6
+ * communicate.
4
7
  *
5
- * `cloudamqp_vpc_connect` can be imported using CloudAMQP instance identifier. To
8
+ * If no existing VPC available when enable VPC connect, a new VPC will be created with subnet
9
+ * `10.52.72.0/24`.
6
10
  *
7
- * retrieve the identifier, use [CloudAMQP API list intances].
11
+ * More information can be found at: [CloudAMQP VPC Connect]
8
12
  *
9
- * From Terraform v1.5.0, the `import` block can be used to import this resource:
13
+ * > **Note:** Enabling VPC Connect will automatically add a firewall rule.
10
14
  *
11
- * hcl
15
+ * <details>
16
+ * <summary>
17
+ * <b>
18
+ * <i>Default PrivateLink firewall rule [AWS, Azure]</i>
19
+ * </b>
20
+ * </summary>
12
21
  *
13
- * import {
22
+ * For LavinMQ:
14
23
  *
15
- * to = cloudamqp_vpc_connect.this
24
+ * ## Example Usage
16
25
  *
17
- * id = cloudamqp_instance.instance.id
26
+ * <details>
27
+ * <summary>
28
+ * <b>
29
+ * <i>Enable VPC Connect (PrivateLink) in AWS</i>
30
+ * </b>
31
+ * </summary>
18
32
  *
19
- * }
33
+ * ```typescript
34
+ * import * as pulumi from "@pulumi/pulumi";
35
+ * import * as cloudamqp from "@pulumi/cloudamqp";
20
36
  *
21
- * Or use Terraform CLI:
37
+ * const vpc = new cloudamqp.Vpc("vpc", {
38
+ * name: "Standalone VPC",
39
+ * region: "amazon-web-services::us-west-1",
40
+ * subnet: "10.56.72.0/24",
41
+ * tags: [],
42
+ * });
43
+ * const instance = new cloudamqp.Instance("instance", {
44
+ * name: "Instance 01",
45
+ * plan: "penguin-1",
46
+ * region: "amazon-web-services::us-west-1",
47
+ * tags: [],
48
+ * vpcId: vpc.id,
49
+ * keepAssociatedVpc: true,
50
+ * });
51
+ * const vpcConnect = new cloudamqp.VpcConnect("vpc_connect", {
52
+ * instanceId: instance.id,
53
+ * region: instance.region,
54
+ * allowedPrincipals: ["arn:aws:iam::aws-account-id:user/user-name"],
55
+ * });
56
+ * ```
57
+ *
58
+ * </details>
59
+ *
60
+ * <details>
61
+ * <summary>
62
+ * <b>
63
+ * <i>Enable VPC Connect (PrivateLink) in Azure</i>
64
+ * </b>
65
+ * </summary>
66
+ *
67
+ * ```typescript
68
+ * import * as pulumi from "@pulumi/pulumi";
69
+ * import * as cloudamqp from "@pulumi/cloudamqp";
70
+ *
71
+ * const vpc = new cloudamqp.Vpc("vpc", {
72
+ * name: "Standalone VPC",
73
+ * region: "azure-arm::westus",
74
+ * subnet: "10.56.72.0/24",
75
+ * tags: [],
76
+ * });
77
+ * const instance = new cloudamqp.Instance("instance", {
78
+ * name: "Instance 01",
79
+ * plan: "penguin-1",
80
+ * region: "azure-arm::westus",
81
+ * tags: [],
82
+ * vpcId: vpc.id,
83
+ * keepAssociatedVpc: true,
84
+ * });
85
+ * const vpcConnect = new cloudamqp.VpcConnect("vpc_connect", {
86
+ * instanceId: instance.id,
87
+ * region: instance.region,
88
+ * approvedSubscriptions: ["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"],
89
+ * });
90
+ * ```
91
+ *
92
+ * The attribute `serviceName` found in resource `cloudamqp.VpcConnect` corresponds to the alias in
93
+ * the resource `azurermPrivateEndpoint` of the Azure provider. This can be used when creating the
94
+ * private endpoint.
95
+ *
96
+ * ```typescript
97
+ * import * as pulumi from "@pulumi/pulumi";
98
+ * import * as azurerm from "@pulumi/azurerm";
99
+ *
100
+ * const example = new azurerm.index.PrivateEndpoint("example", {
101
+ * name: "example-endpoint",
102
+ * location: exampleAzurermResourceGroup.location,
103
+ * resourceGroupName: exampleAzurermResourceGroup.name,
104
+ * subnetId: subnet.id,
105
+ * privateServiceConnection: [{
106
+ * name: "example-privateserviceconnection",
107
+ * privateConnectionResourceAlias: vpcConnect.serviceName,
108
+ * isManualConnection: true,
109
+ * requestMessage: "PL",
110
+ * }],
111
+ * });
112
+ * ```
113
+ *
114
+ * More information about the resource and argument can be found here:
115
+ * [privateConnectionResourceAlias]. Or check their example "Using a Private Link Service Alias with
116
+ * existing resources".
117
+ *
118
+ * </details>
119
+ *
120
+ * <details>
121
+ * <summary>
122
+ * <b>
123
+ * <i>Enable VPC Connect (Private Service Connect) in GCP</i>
124
+ * </b>
125
+ * </summary>
126
+ *
127
+ * ```typescript
128
+ * import * as pulumi from "@pulumi/pulumi";
129
+ * import * as cloudamqp from "@pulumi/cloudamqp";
22
130
  *
23
- * ```sh
24
- * $ pulumi import cloudamqp:index/vpcConnect:VpcConnect vpc_connect <id>`
131
+ * const vpc = new cloudamqp.Vpc("vpc", {
132
+ * name: "Standalone VPC",
133
+ * region: "google-compute-engine::us-west1",
134
+ * subnet: "10.56.72.0/24",
135
+ * tags: [],
136
+ * });
137
+ * const instance = new cloudamqp.Instance("instance", {
138
+ * name: "Instance 01",
139
+ * plan: "penguin-1",
140
+ * region: "google-compute-engine::us-west1",
141
+ * tags: [],
142
+ * vpcId: vpc.id,
143
+ * keepAssociatedVpc: true,
144
+ * });
145
+ * const vpcConnect = new cloudamqp.VpcConnect("vpc_connect", {
146
+ * instanceId: instance.id,
147
+ * region: instance.region,
148
+ * allowedProjects: ["some-project-123456"],
149
+ * });
25
150
  * ```
151
+ *
152
+ * </details>
153
+ *
154
+ * ### With Additional Firewall Rules
155
+ *
156
+ * <details>
157
+ * <summary>
158
+ * <b>
159
+ * <i>CloudAMQP instance in an existing VPC with managed firewall rules</i>
160
+ * </b>
161
+ * </summary>
162
+ *
163
+ * ```typescript
164
+ * import * as pulumi from "@pulumi/pulumi";
165
+ * import * as cloudamqp from "@pulumi/cloudamqp";
166
+ *
167
+ * const vpc = new cloudamqp.Vpc("vpc", {
168
+ * name: "Standalone VPC",
169
+ * region: "amazon-web-services::us-west-1",
170
+ * subnet: "10.56.72.0/24",
171
+ * tags: [],
172
+ * });
173
+ * const instance = new cloudamqp.Instance("instance", {
174
+ * name: "Instance 01",
175
+ * plan: "penguin-1",
176
+ * region: "amazon-web-services::us-west-1",
177
+ * tags: [],
178
+ * vpcId: vpc.id,
179
+ * keepAssociatedVpc: true,
180
+ * });
181
+ * const vpcConnect = new cloudamqp.VpcConnect("vpc_connect", {
182
+ * instanceId: instance.id,
183
+ * allowedPrincipals: ["arn:aws:iam::aws-account-id:user/user-name"],
184
+ * });
185
+ * const firewallSettings = new cloudamqp.SecurityFirewall("firewall_settings", {
186
+ * instanceId: instance.id,
187
+ * rules: [
188
+ * {
189
+ * description: "Custom PrivateLink setup",
190
+ * ip: vpc.subnet,
191
+ * ports: [],
192
+ * services: [
193
+ * "AMQP",
194
+ * "AMQPS",
195
+ * "HTTPS",
196
+ * ],
197
+ * },
198
+ * {
199
+ * description: "MGMT interface",
200
+ * ip: "0.0.0.0/0",
201
+ * ports: [],
202
+ * services: ["HTTPS"],
203
+ * },
204
+ * ],
205
+ * }, {
206
+ * dependsOn: [vpcConnect],
207
+ * });
208
+ * ```
209
+ *
210
+ * </details>
211
+ *
212
+ * [CloudAMQP API list intances]: https://docs.cloudamqp.com/index.html#tag/instances/get/instances
213
+ * [CloudAMQP VPC Connect]: https://www.cloudamqp.com/docs/cloudamqp-vpc-connect.html
214
+ * [cloudamqp.SecurityFirewall]: https://registry.terraform.io/providers/cloudamqp/cloudamqp/latest/docs/resources/security_firewall
215
+ * [Google docs]: https://cloud.google.com/resource-manager/reference/rest/v1/projects
216
+ * [privateConnectionResourceAlias]: ./private_endpoint#private_connection_resource_alias-1
217
+ *
218
+ * ## Dependency
219
+ *
220
+ * This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
221
+ *
222
+ * Since `region` also is required, suggest to reuse the argument from CloudAMQP instance,
223
+ * `cloudamqp_instance.instance.region`.
224
+ *
225
+ * ## Create VPC Connect with additional firewall rules
226
+ *
227
+ * To create a PrivateLink/Private Service Connect configuration with additional firewall rules, it's
228
+ * required to chain the [cloudamqp.SecurityFirewall] resource to avoid parallel conflicting resource
229
+ * calls. You can do this by making the firewall resource depend on the VPC Connect resource
230
+ * `cloudamqp_vpc_connect.vpc_connect`.
231
+ *
232
+ * Furthermore, since all firewall rules are overwritten, the otherwise automatically added rules for
233
+ * the VPC Connect also needs to be added.
26
234
  */
27
235
  export declare class VpcConnect extends pulumi.CustomResource {
28
236
  /**