@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.
- package/alarm.d.ts +120 -12
- package/alarm.js +120 -12
- package/alarm.js.map +1 -1
- package/config/vars.d.ts +3 -0
- package/config/vars.js.map +1 -1
- package/customDomain.d.ts +0 -26
- package/customDomain.js +0 -26
- package/customDomain.js.map +1 -1
- package/extraDiskSize.d.ts +0 -1
- package/extraDiskSize.js +0 -1
- package/extraDiskSize.js.map +1 -1
- package/getVpcGcpInfo.d.ts +108 -0
- package/getVpcGcpInfo.js +108 -0
- package/getVpcGcpInfo.js.map +1 -1
- package/getVpcInfo.d.ts +108 -0
- package/getVpcInfo.js +108 -0
- package/getVpcInfo.js.map +1 -1
- package/instance.d.ts +0 -24
- package/instance.js +0 -24
- package/instance.js.map +1 -1
- package/integrationAwsEventbridge.d.ts +0 -34
- package/integrationAwsEventbridge.js +0 -34
- package/integrationAwsEventbridge.js.map +1 -1
- package/integrationLog.d.ts +0 -44
- package/integrationLog.js +0 -44
- package/integrationLog.js.map +1 -1
- package/integrationMetric.d.ts +0 -34
- package/integrationMetric.js +0 -34
- package/integrationMetric.js.map +1 -1
- package/integrationMetricPrometheus.d.ts +2 -40
- package/integrationMetricPrometheus.js +2 -40
- package/integrationMetricPrometheus.js.map +1 -1
- package/maintenanceWindow.d.ts +0 -28
- package/maintenanceWindow.js +0 -28
- package/maintenanceWindow.js.map +1 -1
- package/notification.d.ts +0 -28
- package/notification.js +0 -28
- package/notification.js.map +1 -1
- package/oauth2Configuration.d.ts +0 -22
- package/oauth2Configuration.js +0 -22
- package/oauth2Configuration.js.map +1 -1
- package/package.json +2 -2
- package/plugin.d.ts +128 -13
- package/plugin.js +128 -13
- package/plugin.js.map +1 -1
- package/pluginCommunity.d.ts +50 -14
- package/pluginCommunity.js +50 -14
- package/pluginCommunity.js.map +1 -1
- package/privatelinkAws.d.ts +139 -12
- package/privatelinkAws.js +139 -12
- package/privatelinkAws.js.map +1 -1
- package/privatelinkAzure.d.ts +138 -13
- package/privatelinkAzure.js +138 -13
- package/privatelinkAzure.js.map +1 -1
- package/provider.d.ts +3 -0
- package/rabbitConfiguration.d.ts +293 -12
- package/rabbitConfiguration.js +293 -12
- package/rabbitConfiguration.js.map +1 -1
- package/securityFirewall.d.ts +157 -12
- package/securityFirewall.js +157 -12
- package/securityFirewall.js.map +1 -1
- package/trustStore.d.ts +0 -24
- package/trustStore.js +0 -24
- package/trustStore.js.map +1 -1
- package/upgradeLavinmq.d.ts +41 -0
- package/upgradeLavinmq.js +41 -0
- package/upgradeLavinmq.js.map +1 -1
- package/upgradeRabbitmq.d.ts +152 -0
- package/upgradeRabbitmq.js +152 -0
- package/upgradeRabbitmq.js.map +1 -1
- package/vpc.d.ts +0 -28
- package/vpc.js +0 -28
- package/vpc.js.map +1 -1
- package/vpcConnect.d.ts +220 -12
- package/vpcConnect.js +220 -12
- package/vpcConnect.js.map +1 -1
- package/vpcGcpPeering.d.ts +252 -6
- package/vpcGcpPeering.js +252 -6
- package/vpcGcpPeering.js.map +1 -1
- package/vpcPeering.d.ts +305 -5
- package/vpcPeering.js +305 -5
- package/vpcPeering.js.map +1 -1
- package/webhook.d.ts +94 -12
- package/webhook.js +94 -12
- 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
|
-
*
|
|
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
|
-
*
|
|
12
|
+
* > **Note:** Enabling PrivateLink will automatically add firewall rules for the peered subnet.
|
|
12
13
|
*
|
|
13
|
-
*
|
|
14
|
+
* <details>
|
|
15
|
+
* <summary>
|
|
16
|
+
* <i>Default PrivateLink firewall rule</i>
|
|
17
|
+
* </summary>
|
|
14
18
|
*
|
|
15
|
-
*
|
|
19
|
+
* ## Example Usage
|
|
16
20
|
*
|
|
17
|
-
*
|
|
21
|
+
* <details>
|
|
22
|
+
* <summary>
|
|
23
|
+
* <b>
|
|
24
|
+
* <i>CloudAMQP instance without existing VPC</i>
|
|
25
|
+
* </b>
|
|
26
|
+
* </summary>
|
|
18
27
|
*
|
|
19
|
-
*
|
|
28
|
+
* ```typescript
|
|
29
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
30
|
+
* import * as cloudamqp from "@pulumi/cloudamqp";
|
|
20
31
|
*
|
|
21
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
88
|
+
* ```typescript
|
|
89
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
90
|
+
* import * as cloudamqp from "@pulumi/cloudamqp";
|
|
28
91
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
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
|
/**
|
package/privatelinkAws.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privatelinkAws.js","sourceRoot":"","sources":["../privatelinkAws.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC
|
|
1
|
+
{"version":3,"file":"privatelinkAws.js","sourceRoot":"","sources":["../privatelinkAws.ts"],"names":[],"mappings":"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"}
|
package/privatelinkAzure.d.ts
CHANGED
|
@@ -1,30 +1,155 @@
|
|
|
1
1
|
import * as pulumi from "@pulumi/pulumi";
|
|
2
2
|
/**
|
|
3
|
-
*
|
|
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
|
-
*
|
|
6
|
+
* > **Note:** Enabling PrivateLink will automatically add firewall rules for the peered subnet.
|
|
6
7
|
*
|
|
7
|
-
*
|
|
8
|
+
* <details>
|
|
9
|
+
* <summary>
|
|
10
|
+
* <i>Default PrivateLink firewall rule</i>
|
|
11
|
+
* </summary>
|
|
8
12
|
*
|
|
9
|
-
*
|
|
13
|
+
* ## Example Usage
|
|
10
14
|
*
|
|
11
|
-
*
|
|
15
|
+
* <details>
|
|
16
|
+
* <summary>
|
|
17
|
+
* <b>
|
|
18
|
+
* <i>CloudAMQP instance without existing VPC</i>
|
|
19
|
+
* </b>
|
|
20
|
+
* </summary>
|
|
12
21
|
*
|
|
13
|
-
*
|
|
22
|
+
* ```typescript
|
|
23
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
24
|
+
* import * as cloudamqp from "@pulumi/cloudamqp";
|
|
14
25
|
*
|
|
15
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
82
|
+
* ```typescript
|
|
83
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
84
|
+
* import * as cloudamqp from "@pulumi/cloudamqp";
|
|
22
85
|
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
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
|
-
*
|
|
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
|
/**
|
package/privatelinkAzure.js
CHANGED
|
@@ -6,31 +6,156 @@ exports.PrivatelinkAzure = void 0;
|
|
|
6
6
|
const pulumi = require("@pulumi/pulumi");
|
|
7
7
|
const utilities = require("./utilities");
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
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
|
-
*
|
|
12
|
+
* > **Note:** Enabling PrivateLink will automatically add firewall rules for the peered subnet.
|
|
12
13
|
*
|
|
13
|
-
*
|
|
14
|
+
* <details>
|
|
15
|
+
* <summary>
|
|
16
|
+
* <i>Default PrivateLink firewall rule</i>
|
|
17
|
+
* </summary>
|
|
14
18
|
*
|
|
15
|
-
*
|
|
19
|
+
* ## Example Usage
|
|
16
20
|
*
|
|
17
|
-
*
|
|
21
|
+
* <details>
|
|
22
|
+
* <summary>
|
|
23
|
+
* <b>
|
|
24
|
+
* <i>CloudAMQP instance without existing VPC</i>
|
|
25
|
+
* </b>
|
|
26
|
+
* </summary>
|
|
18
27
|
*
|
|
19
|
-
*
|
|
28
|
+
* ```typescript
|
|
29
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
30
|
+
* import * as cloudamqp from "@pulumi/cloudamqp";
|
|
20
31
|
*
|
|
21
|
-
*
|
|
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
|
-
*
|
|
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
|
-
*
|
|
88
|
+
* ```typescript
|
|
89
|
+
* import * as pulumi from "@pulumi/pulumi";
|
|
90
|
+
* import * as cloudamqp from "@pulumi/cloudamqp";
|
|
28
91
|
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
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
|
-
*
|
|
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
|
/**
|
package/privatelinkAzure.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"privatelinkAzure.js","sourceRoot":"","sources":["../privatelinkAzure.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC
|
|
1
|
+
{"version":3,"file":"privatelinkAzure.js","sourceRoot":"","sources":["../privatelinkAzure.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuJG;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"}
|
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 {
|