@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/privatelinkAws.js CHANGED
@@ -6,29 +6,156 @@ exports.PrivatelinkAws = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("./utilities");
8
8
  /**
9
- * ## Import
9
+ * Enable PrivateLink for a CloudAMQP instance hosted in AWS. If no existing VPC available when enable
10
+ * PrivateLink, a new VPC will be created with subnet `10.52.72.0/24`.
10
11
  *
11
- * `cloudamqp_privatelink_aws` can be imported using CloudAMQP instance identifier. To retrieve the
12
+ * > **Note:** Enabling PrivateLink will automatically add firewall rules for the peered subnet.
12
13
  *
13
- * identifier, use [CloudAMQP API list intances].
14
+ * <details>
15
+ * <summary>
16
+ * <i>Default PrivateLink firewall rule</i>
17
+ * </summary>
14
18
  *
15
- * From Terraform v1.5.0, the `import` block can be used to import this resource:
19
+ * ## Example Usage
16
20
  *
17
- * hcl
21
+ * <details>
22
+ * <summary>
23
+ * <b>
24
+ * <i>CloudAMQP instance without existing VPC</i>
25
+ * </b>
26
+ * </summary>
18
27
  *
19
- * import {
28
+ * ```typescript
29
+ * import * as pulumi from "@pulumi/pulumi";
30
+ * import * as cloudamqp from "@pulumi/cloudamqp";
20
31
  *
21
- * to = cloudamqp_privatelink_aws.privatelink
32
+ * const instance = new cloudamqp.Instance("instance", {
33
+ * name: "Instance 01",
34
+ * plan: "bunny-1",
35
+ * region: "amazon-web-services::us-west-1",
36
+ * tags: [],
37
+ * });
38
+ * const privatelink = new cloudamqp.PrivatelinkAws("privatelink", {
39
+ * instanceId: instance.id,
40
+ * allowedPrincipals: ["arn:aws:iam::aws-account-id:user/user-name"],
41
+ * });
42
+ * ```
43
+ *
44
+ * </details>
45
+ *
46
+ * <details>
47
+ * <summary>
48
+ * <b>
49
+ * <i>CloudAMQP instance in an existing VPC</i>
50
+ * </b>
51
+ * </summary>
52
+ *
53
+ * ```typescript
54
+ * import * as pulumi from "@pulumi/pulumi";
55
+ * import * as cloudamqp from "@pulumi/cloudamqp";
56
+ *
57
+ * const vpc = new cloudamqp.Vpc("vpc", {
58
+ * name: "Standalone VPC",
59
+ * region: "amazon-web-services::us-west-1",
60
+ * subnet: "10.56.72.0/24",
61
+ * tags: [],
62
+ * });
63
+ * const instance = new cloudamqp.Instance("instance", {
64
+ * name: "Instance 01",
65
+ * plan: "bunny-1",
66
+ * region: "amazon-web-services::us-west-1",
67
+ * tags: [],
68
+ * vpcId: vpc.id,
69
+ * keepAssociatedVpc: true,
70
+ * });
71
+ * const privatelink = new cloudamqp.PrivatelinkAws("privatelink", {
72
+ * instanceId: instance.id,
73
+ * allowedPrincipals: ["arn:aws:iam::aws-account-id:user/user-name"],
74
+ * });
75
+ * ```
76
+ *
77
+ * </details>
22
78
  *
23
- * id = cloudamqp_instance.instance.id
79
+ * ### With Additional Firewall Rules
24
80
  *
25
- * }
81
+ * <details>
82
+ * <summary>
83
+ * <b>
84
+ * <i>CloudAMQP instance in an existing VPC with managed firewall rules</i>
85
+ * </b>
86
+ * </summary>
26
87
  *
27
- * Or use Terraform CLI:
88
+ * ```typescript
89
+ * import * as pulumi from "@pulumi/pulumi";
90
+ * import * as cloudamqp from "@pulumi/cloudamqp";
28
91
  *
29
- * ```sh
30
- * $ pulumi import cloudamqp:index/privatelinkAws:PrivatelinkAws privatelink <id>`
92
+ * const vpc = new cloudamqp.Vpc("vpc", {
93
+ * name: "Standalone VPC",
94
+ * region: "amazon-web-services::us-west-1",
95
+ * subnet: "10.56.72.0/24",
96
+ * tags: [],
97
+ * });
98
+ * const instance = new cloudamqp.Instance("instance", {
99
+ * name: "Instance 01",
100
+ * plan: "bunny-1",
101
+ * region: "amazon-web-services::us-west-1",
102
+ * tags: [],
103
+ * vpcId: vpc.id,
104
+ * keepAssociatedVpc: true,
105
+ * });
106
+ * const privatelink = new cloudamqp.PrivatelinkAws("privatelink", {
107
+ * instanceId: instance.id,
108
+ * allowedPrincipals: ["arn:aws:iam::aws-account-id:user/user-name"],
109
+ * });
110
+ * const firewallSettings = new cloudamqp.SecurityFirewall("firewall_settings", {
111
+ * instanceId: instance.id,
112
+ * rules: [
113
+ * {
114
+ * description: "Custom PrivateLink setup",
115
+ * ip: vpc.subnet,
116
+ * ports: [],
117
+ * services: [
118
+ * "AMQP",
119
+ * "AMQPS",
120
+ * "HTTPS",
121
+ * "STREAM",
122
+ * "STREAM_SSL",
123
+ * ],
124
+ * },
125
+ * {
126
+ * description: "MGMT interface",
127
+ * ip: "0.0.0.0/0",
128
+ * ports: [],
129
+ * services: ["HTTPS"],
130
+ * },
131
+ * ],
132
+ * }, {
133
+ * dependsOn: [privatelink],
134
+ * });
31
135
  * ```
136
+ *
137
+ * </details>
138
+ *
139
+ * [CloudAMQP API list intances]: https://docs.cloudamqp.com/index.html#tag/instances/get/instances
140
+ * [CloudAMQP plans]: https://www.cloudamqp.com/plans.html
141
+ * [CloudAMQP PrivateLink]: https://www.cloudamqp.com/docs/cloudamqp-privatelink.html#aws-privatelink
142
+ * [cloudamqp.SecurityFirewall]: ./security_firewall.md
143
+ * [cloudamqp.VpcConnect]: ./vpc_connect.md
144
+ * [v1.29.0]: https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.29.0
145
+ *
146
+ * ## Dependency
147
+ *
148
+ * This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
149
+ *
150
+ * ## Create PrivateLink with additional firewall rules
151
+ *
152
+ * To create a PrivateLink configuration with additional firewall rules, it's required to chain the
153
+ * [cloudamqp.SecurityFirewall] resource to avoid parallel conflicting resource calls. You can do this
154
+ * by making the firewall resource depend on the PrivateLink resource,
155
+ * `cloudamqp_privatelink_aws.privatelink`.
156
+ *
157
+ * Furthermore, since all firewall rules are overwritten, the otherwise automatically added rules for
158
+ * the PrivateLink also needs to be added.
32
159
  */
33
160
  class PrivatelinkAws extends pulumi.CustomResource {
34
161
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"privatelinkAws.js","sourceRoot":"","sources":["../privatelinkAws.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAa,cAAe,SAAQ,MAAM,CAAC,cAAc;IACrD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA2B,EAAE,IAAmC;QACzH,OAAO,IAAI,cAAc,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrE,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,cAAc,CAAC,YAAY,CAAC;IAC/D,CAAC;IAkDD,YAAY,IAAY,EAAE,WAAsD,EAAE,IAAmC;QACjH,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA8C,CAAC;YAC7D,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,mBAAmB,CAAC,GAAG,KAAK,EAAE,iBAAiB,CAAC;YAC/D,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC;YACvC,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;SAC9C;aAAM;YACH,MAAM,IAAI,GAAG,WAA6C,CAAC;YAC3D,IAAI,IAAI,EAAE,iBAAiB,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACpD,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;aACpE;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,mBAAmB,CAAC,GAAG,IAAI,EAAE,iBAAiB,CAAC;YAC9D,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,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,aAAa,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAClD,cAAc,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SAChD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;;AA1GL,wCA2GC;AA7FG,gBAAgB;AACO,2BAAY,GAAG,+CAA+C,CAAC"}
1
+ {"version":3,"file":"privatelinkAws.js","sourceRoot":"","sources":["../privatelinkAws.ts"],"names":[],"mappings":"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"}
@@ -1,30 +1,155 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  /**
3
- * ## Import
3
+ * Enable PrivateLink for a CloudAMQP instance hosted in Azure. If no existing VPC available when
4
+ * enable PrivateLink, a new VPC will be created with subnet `10.52.72.0/24`.
4
5
  *
5
- * `cloudamqp_privatelink_azure` 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_azure.privatelink
26
+ * const instance = new cloudamqp.Instance("instance", {
27
+ * name: "Instance 01",
28
+ * plan: "bunny-1",
29
+ * region: "azure-arm::westus",
30
+ * tags: [],
31
+ * });
32
+ * const privatelink = new cloudamqp.PrivatelinkAzure("privatelink", {
33
+ * instanceId: instance.id,
34
+ * approvedSubscriptions: ["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"],
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: "azure-arm::westus",
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: "azure-arm::westus",
61
+ * tags: [],
62
+ * vpcId: vpc.id,
63
+ * keepAssociatedVpc: true,
64
+ * });
65
+ * const privatelink = new cloudamqp.PrivatelinkAzure("privatelink", {
66
+ * instanceId: instance.id,
67
+ * approvedSubscriptions: ["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"],
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/privatelinkAzure:PrivatelinkAzure privatelink <id>`
86
+ * const vpc = new cloudamqp.Vpc("vpc", {
87
+ * name: "Standalone VPC",
88
+ * region: "azure-arm::westus",
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: "azure-arm::westus",
96
+ * tags: [],
97
+ * vpcId: vpc.id,
98
+ * keepAssociatedVpc: true,
99
+ * });
100
+ * const privatelink = new cloudamqp.PrivatelinkAzure("privatelink", {
101
+ * instanceId: instance.id,
102
+ * approvedSubscriptions: ["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"],
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
  * ```
26
130
  *
27
- * `cloudamqp_privatelink_aws` can be imported using CloudAMQP instance identifier.
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#azure-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_azure.privatelink`.
150
+ *
151
+ * Furthermore, since all firewall rules are overwritten, the otherwise automatically added rules for
152
+ * the PrivateLink also needs to be added.
28
153
  */
29
154
  export declare class PrivatelinkAzure extends pulumi.CustomResource {
30
155
  /**
@@ -6,31 +6,156 @@ exports.PrivatelinkAzure = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("./utilities");
8
8
  /**
9
- * ## Import
9
+ * Enable PrivateLink for a CloudAMQP instance hosted in Azure. If no existing VPC available when
10
+ * enable PrivateLink, a new VPC will be created with subnet `10.52.72.0/24`.
10
11
  *
11
- * `cloudamqp_privatelink_azure` can be imported using CloudAMQP instance identifier. To retrieve the
12
+ * > **Note:** Enabling PrivateLink will automatically add firewall rules for the peered subnet.
12
13
  *
13
- * identifier, use [CloudAMQP API list intances].
14
+ * <details>
15
+ * <summary>
16
+ * <i>Default PrivateLink firewall rule</i>
17
+ * </summary>
14
18
  *
15
- * From Terraform v1.5.0, the `import` block can be used to import this resource:
19
+ * ## Example Usage
16
20
  *
17
- * hcl
21
+ * <details>
22
+ * <summary>
23
+ * <b>
24
+ * <i>CloudAMQP instance without existing VPC</i>
25
+ * </b>
26
+ * </summary>
18
27
  *
19
- * import {
28
+ * ```typescript
29
+ * import * as pulumi from "@pulumi/pulumi";
30
+ * import * as cloudamqp from "@pulumi/cloudamqp";
20
31
  *
21
- * to = cloudamqp_privatelink_azure.privatelink
32
+ * const instance = new cloudamqp.Instance("instance", {
33
+ * name: "Instance 01",
34
+ * plan: "bunny-1",
35
+ * region: "azure-arm::westus",
36
+ * tags: [],
37
+ * });
38
+ * const privatelink = new cloudamqp.PrivatelinkAzure("privatelink", {
39
+ * instanceId: instance.id,
40
+ * approvedSubscriptions: ["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"],
41
+ * });
42
+ * ```
43
+ *
44
+ * </details>
45
+ *
46
+ * <details>
47
+ * <summary>
48
+ * <b>
49
+ * <i>CloudAMQP instance in an existing VPC</i>
50
+ * </b>
51
+ * </summary>
52
+ *
53
+ * ```typescript
54
+ * import * as pulumi from "@pulumi/pulumi";
55
+ * import * as cloudamqp from "@pulumi/cloudamqp";
56
+ *
57
+ * const vpc = new cloudamqp.Vpc("vpc", {
58
+ * name: "Standalone VPC",
59
+ * region: "azure-arm::westus",
60
+ * subnet: "10.56.72.0/24",
61
+ * tags: [],
62
+ * });
63
+ * const instance = new cloudamqp.Instance("instance", {
64
+ * name: "Instance 01",
65
+ * plan: "bunny-1",
66
+ * region: "azure-arm::westus",
67
+ * tags: [],
68
+ * vpcId: vpc.id,
69
+ * keepAssociatedVpc: true,
70
+ * });
71
+ * const privatelink = new cloudamqp.PrivatelinkAzure("privatelink", {
72
+ * instanceId: instance.id,
73
+ * approvedSubscriptions: ["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"],
74
+ * });
75
+ * ```
76
+ *
77
+ * </details>
22
78
  *
23
- * id = cloudamqp_instance.instance.id
79
+ * ### With Additional Firewall Rules
24
80
  *
25
- * }
81
+ * <details>
82
+ * <summary>
83
+ * <b>
84
+ * <i>CloudAMQP instance in an existing VPC with managed firewall rules</i>
85
+ * </b>
86
+ * </summary>
26
87
  *
27
- * Or use Terraform CLI:
88
+ * ```typescript
89
+ * import * as pulumi from "@pulumi/pulumi";
90
+ * import * as cloudamqp from "@pulumi/cloudamqp";
28
91
  *
29
- * ```sh
30
- * $ pulumi import cloudamqp:index/privatelinkAzure:PrivatelinkAzure privatelink <id>`
92
+ * const vpc = new cloudamqp.Vpc("vpc", {
93
+ * name: "Standalone VPC",
94
+ * region: "azure-arm::westus",
95
+ * subnet: "10.56.72.0/24",
96
+ * tags: [],
97
+ * });
98
+ * const instance = new cloudamqp.Instance("instance", {
99
+ * name: "Instance 01",
100
+ * plan: "bunny-1",
101
+ * region: "azure-arm::westus",
102
+ * tags: [],
103
+ * vpcId: vpc.id,
104
+ * keepAssociatedVpc: true,
105
+ * });
106
+ * const privatelink = new cloudamqp.PrivatelinkAzure("privatelink", {
107
+ * instanceId: instance.id,
108
+ * approvedSubscriptions: ["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"],
109
+ * });
110
+ * const firewallSettings = new cloudamqp.SecurityFirewall("firewall_settings", {
111
+ * instanceId: instance.id,
112
+ * rules: [
113
+ * {
114
+ * description: "Custom PrivateLink setup",
115
+ * ip: vpc.subnet,
116
+ * ports: [],
117
+ * services: [
118
+ * "AMQP",
119
+ * "AMQPS",
120
+ * "HTTPS",
121
+ * "STREAM",
122
+ * "STREAM_SSL",
123
+ * ],
124
+ * },
125
+ * {
126
+ * description: "MGMT interface",
127
+ * ip: "0.0.0.0/0",
128
+ * ports: [],
129
+ * services: ["HTTPS"],
130
+ * },
131
+ * ],
132
+ * }, {
133
+ * dependsOn: [privatelink],
134
+ * });
31
135
  * ```
32
136
  *
33
- * `cloudamqp_privatelink_aws` can be imported using CloudAMQP instance identifier.
137
+ * </details>
138
+ *
139
+ * [CloudAMQP API list intances]: https://docs.cloudamqp.com/index.html#tag/instances/get/instances
140
+ * [CloudAMQP plans]: https://www.cloudamqp.com/plans.html
141
+ * [CloudAMQP PrivateLink]: https://www.cloudamqp.com/docs/cloudamqp-privatelink.html#azure-privatelink
142
+ * [cloudamqp.SecurityFirewall]: ./security_firewall.md
143
+ * [cloudamqp.VpcConnect]: ./vpc_connect.md
144
+ * [v1.29.0]: https://github.com/cloudamqp/terraform-provider-cloudamqp/releases/tag/v1.29.0
145
+ *
146
+ * ## Dependency
147
+ *
148
+ * This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
149
+ *
150
+ * ## Create PrivateLink with additional firewall rules
151
+ *
152
+ * To create a PrivateLink configuration with additional firewall rules, it's required to chain the
153
+ * [cloudamqp.SecurityFirewall] resource to avoid parallel conflicting resource calls. You can do this
154
+ * by making the firewall resource depend on the PrivateLink resource
155
+ * `cloudamqp_privatelink_azure.privatelink`.
156
+ *
157
+ * Furthermore, since all firewall rules are overwritten, the otherwise automatically added rules for
158
+ * the PrivateLink also needs to be added.
34
159
  */
35
160
  class PrivatelinkAzure extends pulumi.CustomResource {
36
161
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"privatelinkAzure.js","sourceRoot":"","sources":["../privatelinkAzure.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAa,gBAAiB,SAAQ,MAAM,CAAC,cAAc;IACvD;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA6B,EAAE,IAAmC;QAC3H,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACvE,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,gBAAgB,CAAC,YAAY,CAAC;IACjE,CAAC;IAiDD,YAAY,IAAY,EAAE,WAA0D,EAAE,IAAmC;QACrH,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAgD,CAAC;YAC/D,cAAc,CAAC,uBAAuB,CAAC,GAAG,KAAK,EAAE,qBAAqB,CAAC;YACvE,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,EAAE,KAAK,CAAC;YACvC,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,SAAS,CAAC,GAAG,KAAK,EAAE,OAAO,CAAC;SAC9C;aAAM;YACH,MAAM,IAAI,GAAG,WAA+C,CAAC;YAC7D,IAAI,IAAI,EAAE,qBAAqB,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACxD,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;aACxE;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,uBAAuB,CAAC,GAAG,IAAI,EAAE,qBAAqB,CAAC;YACtE,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,EAAE,KAAK,CAAC;YACtC,cAAc,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC;YAC1C,cAAc,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YACjD,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAClD,cAAc,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SAChD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;;AAzGL,4CA0GC;AA5FG,gBAAgB;AACO,6BAAY,GAAG,mDAAmD,CAAC"}
1
+ {"version":3,"file":"privatelinkAzure.js","sourceRoot":"","sources":["../privatelinkAzure.ts"],"names":[],"mappings":"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"}
package/provider.d.ts CHANGED
@@ -44,6 +44,9 @@ export interface ProviderArgs {
44
44
  * Base URL to CloudAMQP Customer website
45
45
  */
46
46
  baseurl?: pulumi.Input<string>;
47
+ /**
48
+ * Skips destroying backend resources on 'terraform destroy'
49
+ */
47
50
  enableFasterInstanceDestroy?: pulumi.Input<boolean>;
48
51
  }
49
52
  export declare namespace Provider {