pulumi-cloudamqp 3.17.0a1702588087__py3-none-any.whl → 3.17.1__py3-none-any.whl
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.
Potentially problematic release.
This version of pulumi-cloudamqp might be problematic. Click here for more details.
- pulumi_cloudamqp/__init__.py +18 -0
- pulumi_cloudamqp/account_action.py +198 -0
- pulumi_cloudamqp/get_plugins.py +12 -0
- pulumi_cloudamqp/get_plugins_community.py +12 -0
- pulumi_cloudamqp/get_vpc_gcp_info.py +35 -1
- pulumi_cloudamqp/instance.py +2 -2
- pulumi_cloudamqp/outputs.py +34 -2
- pulumi_cloudamqp/plugin.py +109 -1
- pulumi_cloudamqp/plugin_community.py +111 -3
- pulumi_cloudamqp/privatelink_aws.py +66 -22
- pulumi_cloudamqp/privatelink_azure.py +87 -36
- pulumi_cloudamqp/vpc_connect.py +1015 -0
- pulumi_cloudamqp/vpc_gcp_peering.py +139 -56
- {pulumi_cloudamqp-3.17.0a1702588087.dist-info → pulumi_cloudamqp-3.17.1.dist-info}/METADATA +1 -1
- {pulumi_cloudamqp-3.17.0a1702588087.dist-info → pulumi_cloudamqp-3.17.1.dist-info}/RECORD +17 -15
- {pulumi_cloudamqp-3.17.0a1702588087.dist-info → pulumi_cloudamqp-3.17.1.dist-info}/WHEEL +0 -0
- {pulumi_cloudamqp-3.17.0a1702588087.dist-info → pulumi_cloudamqp-3.17.1.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,1015 @@
|
|
|
1
|
+
# coding=utf-8
|
|
2
|
+
# *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
|
|
5
|
+
import copy
|
|
6
|
+
import warnings
|
|
7
|
+
import pulumi
|
|
8
|
+
import pulumi.runtime
|
|
9
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
10
|
+
from . import _utilities
|
|
11
|
+
|
|
12
|
+
__all__ = ['VpcConnectArgs', 'VpcConnect']
|
|
13
|
+
|
|
14
|
+
@pulumi.input_type
|
|
15
|
+
class VpcConnectArgs:
|
|
16
|
+
def __init__(__self__, *,
|
|
17
|
+
instance_id: pulumi.Input[int],
|
|
18
|
+
region: pulumi.Input[str],
|
|
19
|
+
allowed_principals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
20
|
+
allowed_projects: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
21
|
+
approved_subscriptions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
22
|
+
sleep: Optional[pulumi.Input[int]] = None,
|
|
23
|
+
timeout: Optional[pulumi.Input[int]] = None):
|
|
24
|
+
"""
|
|
25
|
+
The set of arguments for constructing a VpcConnect resource.
|
|
26
|
+
:param pulumi.Input[int] instance_id: The CloudAMQP instance identifier.
|
|
27
|
+
:param pulumi.Input[str] region: The region where the CloudAMQP instance is hosted.
|
|
28
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_principals: List of allowed prinicpals used by AWS, see below table.
|
|
29
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_projects: List of allowed projects used by GCP, see below table.
|
|
30
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] approved_subscriptions: List of approved subscriptions used by Azure, see below table.
|
|
31
|
+
:param pulumi.Input[int] sleep: Configurable sleep time (seconds) when enable Private Service Connect.
|
|
32
|
+
Default set to 10 seconds.
|
|
33
|
+
:param pulumi.Input[int] timeout: Configurable timeout time (seconds) when enable Private Service Connect.
|
|
34
|
+
Default set to 1800 seconds.
|
|
35
|
+
|
|
36
|
+
___
|
|
37
|
+
|
|
38
|
+
The `allowed_principals`, `approved_subscriptions` or `allowed_projects` data depends on the provider platform:
|
|
39
|
+
|
|
40
|
+
| Platform | Description | Format |
|
|
41
|
+
|----------|---------------------|------------------------------------------------------------------------------------------------------------------------------------|
|
|
42
|
+
| AWS | IAM ARN principals | arn:aws:iam::aws-account-id:root<br /> arn:aws:iam::aws-account-id:user/user-name<br /> arn:aws:iam::aws-account-id:role/role-name |
|
|
43
|
+
| Azure | Subscription (GUID) | XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX |
|
|
44
|
+
| GCP | Project IDs* | 6 to 30 lowercase letters, digits, or hyphens |
|
|
45
|
+
|
|
46
|
+
*https://cloud.google.com/resource-manager/reference/rest/v1/projects
|
|
47
|
+
"""
|
|
48
|
+
pulumi.set(__self__, "instance_id", instance_id)
|
|
49
|
+
pulumi.set(__self__, "region", region)
|
|
50
|
+
if allowed_principals is not None:
|
|
51
|
+
pulumi.set(__self__, "allowed_principals", allowed_principals)
|
|
52
|
+
if allowed_projects is not None:
|
|
53
|
+
pulumi.set(__self__, "allowed_projects", allowed_projects)
|
|
54
|
+
if approved_subscriptions is not None:
|
|
55
|
+
pulumi.set(__self__, "approved_subscriptions", approved_subscriptions)
|
|
56
|
+
if sleep is not None:
|
|
57
|
+
pulumi.set(__self__, "sleep", sleep)
|
|
58
|
+
if timeout is not None:
|
|
59
|
+
pulumi.set(__self__, "timeout", timeout)
|
|
60
|
+
|
|
61
|
+
@property
|
|
62
|
+
@pulumi.getter(name="instanceId")
|
|
63
|
+
def instance_id(self) -> pulumi.Input[int]:
|
|
64
|
+
"""
|
|
65
|
+
The CloudAMQP instance identifier.
|
|
66
|
+
"""
|
|
67
|
+
return pulumi.get(self, "instance_id")
|
|
68
|
+
|
|
69
|
+
@instance_id.setter
|
|
70
|
+
def instance_id(self, value: pulumi.Input[int]):
|
|
71
|
+
pulumi.set(self, "instance_id", value)
|
|
72
|
+
|
|
73
|
+
@property
|
|
74
|
+
@pulumi.getter
|
|
75
|
+
def region(self) -> pulumi.Input[str]:
|
|
76
|
+
"""
|
|
77
|
+
The region where the CloudAMQP instance is hosted.
|
|
78
|
+
"""
|
|
79
|
+
return pulumi.get(self, "region")
|
|
80
|
+
|
|
81
|
+
@region.setter
|
|
82
|
+
def region(self, value: pulumi.Input[str]):
|
|
83
|
+
pulumi.set(self, "region", value)
|
|
84
|
+
|
|
85
|
+
@property
|
|
86
|
+
@pulumi.getter(name="allowedPrincipals")
|
|
87
|
+
def allowed_principals(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
|
88
|
+
"""
|
|
89
|
+
List of allowed prinicpals used by AWS, see below table.
|
|
90
|
+
"""
|
|
91
|
+
return pulumi.get(self, "allowed_principals")
|
|
92
|
+
|
|
93
|
+
@allowed_principals.setter
|
|
94
|
+
def allowed_principals(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
|
95
|
+
pulumi.set(self, "allowed_principals", value)
|
|
96
|
+
|
|
97
|
+
@property
|
|
98
|
+
@pulumi.getter(name="allowedProjects")
|
|
99
|
+
def allowed_projects(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
|
100
|
+
"""
|
|
101
|
+
List of allowed projects used by GCP, see below table.
|
|
102
|
+
"""
|
|
103
|
+
return pulumi.get(self, "allowed_projects")
|
|
104
|
+
|
|
105
|
+
@allowed_projects.setter
|
|
106
|
+
def allowed_projects(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
|
107
|
+
pulumi.set(self, "allowed_projects", value)
|
|
108
|
+
|
|
109
|
+
@property
|
|
110
|
+
@pulumi.getter(name="approvedSubscriptions")
|
|
111
|
+
def approved_subscriptions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
|
112
|
+
"""
|
|
113
|
+
List of approved subscriptions used by Azure, see below table.
|
|
114
|
+
"""
|
|
115
|
+
return pulumi.get(self, "approved_subscriptions")
|
|
116
|
+
|
|
117
|
+
@approved_subscriptions.setter
|
|
118
|
+
def approved_subscriptions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
|
119
|
+
pulumi.set(self, "approved_subscriptions", value)
|
|
120
|
+
|
|
121
|
+
@property
|
|
122
|
+
@pulumi.getter
|
|
123
|
+
def sleep(self) -> Optional[pulumi.Input[int]]:
|
|
124
|
+
"""
|
|
125
|
+
Configurable sleep time (seconds) when enable Private Service Connect.
|
|
126
|
+
Default set to 10 seconds.
|
|
127
|
+
"""
|
|
128
|
+
return pulumi.get(self, "sleep")
|
|
129
|
+
|
|
130
|
+
@sleep.setter
|
|
131
|
+
def sleep(self, value: Optional[pulumi.Input[int]]):
|
|
132
|
+
pulumi.set(self, "sleep", value)
|
|
133
|
+
|
|
134
|
+
@property
|
|
135
|
+
@pulumi.getter
|
|
136
|
+
def timeout(self) -> Optional[pulumi.Input[int]]:
|
|
137
|
+
"""
|
|
138
|
+
Configurable timeout time (seconds) when enable Private Service Connect.
|
|
139
|
+
Default set to 1800 seconds.
|
|
140
|
+
|
|
141
|
+
___
|
|
142
|
+
|
|
143
|
+
The `allowed_principals`, `approved_subscriptions` or `allowed_projects` data depends on the provider platform:
|
|
144
|
+
|
|
145
|
+
| Platform | Description | Format |
|
|
146
|
+
|----------|---------------------|------------------------------------------------------------------------------------------------------------------------------------|
|
|
147
|
+
| AWS | IAM ARN principals | arn:aws:iam::aws-account-id:root<br /> arn:aws:iam::aws-account-id:user/user-name<br /> arn:aws:iam::aws-account-id:role/role-name |
|
|
148
|
+
| Azure | Subscription (GUID) | XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX |
|
|
149
|
+
| GCP | Project IDs* | 6 to 30 lowercase letters, digits, or hyphens |
|
|
150
|
+
|
|
151
|
+
*https://cloud.google.com/resource-manager/reference/rest/v1/projects
|
|
152
|
+
"""
|
|
153
|
+
return pulumi.get(self, "timeout")
|
|
154
|
+
|
|
155
|
+
@timeout.setter
|
|
156
|
+
def timeout(self, value: Optional[pulumi.Input[int]]):
|
|
157
|
+
pulumi.set(self, "timeout", value)
|
|
158
|
+
|
|
159
|
+
|
|
160
|
+
@pulumi.input_type
|
|
161
|
+
class _VpcConnectState:
|
|
162
|
+
def __init__(__self__, *,
|
|
163
|
+
active_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
164
|
+
allowed_principals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
165
|
+
allowed_projects: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
166
|
+
approved_subscriptions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
167
|
+
instance_id: Optional[pulumi.Input[int]] = None,
|
|
168
|
+
region: Optional[pulumi.Input[str]] = None,
|
|
169
|
+
service_name: Optional[pulumi.Input[str]] = None,
|
|
170
|
+
sleep: Optional[pulumi.Input[int]] = None,
|
|
171
|
+
status: Optional[pulumi.Input[str]] = None,
|
|
172
|
+
timeout: Optional[pulumi.Input[int]] = None):
|
|
173
|
+
"""
|
|
174
|
+
Input properties used for looking up and filtering VpcConnect resources.
|
|
175
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] active_zones: Covering availability zones used when creating an endpoint from other VPC. (AWS)
|
|
176
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_principals: List of allowed prinicpals used by AWS, see below table.
|
|
177
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_projects: List of allowed projects used by GCP, see below table.
|
|
178
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] approved_subscriptions: List of approved subscriptions used by Azure, see below table.
|
|
179
|
+
:param pulumi.Input[int] instance_id: The CloudAMQP instance identifier.
|
|
180
|
+
:param pulumi.Input[str] region: The region where the CloudAMQP instance is hosted.
|
|
181
|
+
:param pulumi.Input[str] service_name: Service name (alias for Azure) of the PrivateLink.
|
|
182
|
+
:param pulumi.Input[int] sleep: Configurable sleep time (seconds) when enable Private Service Connect.
|
|
183
|
+
Default set to 10 seconds.
|
|
184
|
+
:param pulumi.Input[str] status: Private Service Connect status [enable, pending, disable]
|
|
185
|
+
:param pulumi.Input[int] timeout: Configurable timeout time (seconds) when enable Private Service Connect.
|
|
186
|
+
Default set to 1800 seconds.
|
|
187
|
+
|
|
188
|
+
___
|
|
189
|
+
|
|
190
|
+
The `allowed_principals`, `approved_subscriptions` or `allowed_projects` data depends on the provider platform:
|
|
191
|
+
|
|
192
|
+
| Platform | Description | Format |
|
|
193
|
+
|----------|---------------------|------------------------------------------------------------------------------------------------------------------------------------|
|
|
194
|
+
| AWS | IAM ARN principals | arn:aws:iam::aws-account-id:root<br /> arn:aws:iam::aws-account-id:user/user-name<br /> arn:aws:iam::aws-account-id:role/role-name |
|
|
195
|
+
| Azure | Subscription (GUID) | XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX |
|
|
196
|
+
| GCP | Project IDs* | 6 to 30 lowercase letters, digits, or hyphens |
|
|
197
|
+
|
|
198
|
+
*https://cloud.google.com/resource-manager/reference/rest/v1/projects
|
|
199
|
+
"""
|
|
200
|
+
if active_zones is not None:
|
|
201
|
+
pulumi.set(__self__, "active_zones", active_zones)
|
|
202
|
+
if allowed_principals is not None:
|
|
203
|
+
pulumi.set(__self__, "allowed_principals", allowed_principals)
|
|
204
|
+
if allowed_projects is not None:
|
|
205
|
+
pulumi.set(__self__, "allowed_projects", allowed_projects)
|
|
206
|
+
if approved_subscriptions is not None:
|
|
207
|
+
pulumi.set(__self__, "approved_subscriptions", approved_subscriptions)
|
|
208
|
+
if instance_id is not None:
|
|
209
|
+
pulumi.set(__self__, "instance_id", instance_id)
|
|
210
|
+
if region is not None:
|
|
211
|
+
pulumi.set(__self__, "region", region)
|
|
212
|
+
if service_name is not None:
|
|
213
|
+
pulumi.set(__self__, "service_name", service_name)
|
|
214
|
+
if sleep is not None:
|
|
215
|
+
pulumi.set(__self__, "sleep", sleep)
|
|
216
|
+
if status is not None:
|
|
217
|
+
pulumi.set(__self__, "status", status)
|
|
218
|
+
if timeout is not None:
|
|
219
|
+
pulumi.set(__self__, "timeout", timeout)
|
|
220
|
+
|
|
221
|
+
@property
|
|
222
|
+
@pulumi.getter(name="activeZones")
|
|
223
|
+
def active_zones(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
|
224
|
+
"""
|
|
225
|
+
Covering availability zones used when creating an endpoint from other VPC. (AWS)
|
|
226
|
+
"""
|
|
227
|
+
return pulumi.get(self, "active_zones")
|
|
228
|
+
|
|
229
|
+
@active_zones.setter
|
|
230
|
+
def active_zones(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
|
231
|
+
pulumi.set(self, "active_zones", value)
|
|
232
|
+
|
|
233
|
+
@property
|
|
234
|
+
@pulumi.getter(name="allowedPrincipals")
|
|
235
|
+
def allowed_principals(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
|
236
|
+
"""
|
|
237
|
+
List of allowed prinicpals used by AWS, see below table.
|
|
238
|
+
"""
|
|
239
|
+
return pulumi.get(self, "allowed_principals")
|
|
240
|
+
|
|
241
|
+
@allowed_principals.setter
|
|
242
|
+
def allowed_principals(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
|
243
|
+
pulumi.set(self, "allowed_principals", value)
|
|
244
|
+
|
|
245
|
+
@property
|
|
246
|
+
@pulumi.getter(name="allowedProjects")
|
|
247
|
+
def allowed_projects(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
|
248
|
+
"""
|
|
249
|
+
List of allowed projects used by GCP, see below table.
|
|
250
|
+
"""
|
|
251
|
+
return pulumi.get(self, "allowed_projects")
|
|
252
|
+
|
|
253
|
+
@allowed_projects.setter
|
|
254
|
+
def allowed_projects(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
|
255
|
+
pulumi.set(self, "allowed_projects", value)
|
|
256
|
+
|
|
257
|
+
@property
|
|
258
|
+
@pulumi.getter(name="approvedSubscriptions")
|
|
259
|
+
def approved_subscriptions(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]:
|
|
260
|
+
"""
|
|
261
|
+
List of approved subscriptions used by Azure, see below table.
|
|
262
|
+
"""
|
|
263
|
+
return pulumi.get(self, "approved_subscriptions")
|
|
264
|
+
|
|
265
|
+
@approved_subscriptions.setter
|
|
266
|
+
def approved_subscriptions(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]):
|
|
267
|
+
pulumi.set(self, "approved_subscriptions", value)
|
|
268
|
+
|
|
269
|
+
@property
|
|
270
|
+
@pulumi.getter(name="instanceId")
|
|
271
|
+
def instance_id(self) -> Optional[pulumi.Input[int]]:
|
|
272
|
+
"""
|
|
273
|
+
The CloudAMQP instance identifier.
|
|
274
|
+
"""
|
|
275
|
+
return pulumi.get(self, "instance_id")
|
|
276
|
+
|
|
277
|
+
@instance_id.setter
|
|
278
|
+
def instance_id(self, value: Optional[pulumi.Input[int]]):
|
|
279
|
+
pulumi.set(self, "instance_id", value)
|
|
280
|
+
|
|
281
|
+
@property
|
|
282
|
+
@pulumi.getter
|
|
283
|
+
def region(self) -> Optional[pulumi.Input[str]]:
|
|
284
|
+
"""
|
|
285
|
+
The region where the CloudAMQP instance is hosted.
|
|
286
|
+
"""
|
|
287
|
+
return pulumi.get(self, "region")
|
|
288
|
+
|
|
289
|
+
@region.setter
|
|
290
|
+
def region(self, value: Optional[pulumi.Input[str]]):
|
|
291
|
+
pulumi.set(self, "region", value)
|
|
292
|
+
|
|
293
|
+
@property
|
|
294
|
+
@pulumi.getter(name="serviceName")
|
|
295
|
+
def service_name(self) -> Optional[pulumi.Input[str]]:
|
|
296
|
+
"""
|
|
297
|
+
Service name (alias for Azure) of the PrivateLink.
|
|
298
|
+
"""
|
|
299
|
+
return pulumi.get(self, "service_name")
|
|
300
|
+
|
|
301
|
+
@service_name.setter
|
|
302
|
+
def service_name(self, value: Optional[pulumi.Input[str]]):
|
|
303
|
+
pulumi.set(self, "service_name", value)
|
|
304
|
+
|
|
305
|
+
@property
|
|
306
|
+
@pulumi.getter
|
|
307
|
+
def sleep(self) -> Optional[pulumi.Input[int]]:
|
|
308
|
+
"""
|
|
309
|
+
Configurable sleep time (seconds) when enable Private Service Connect.
|
|
310
|
+
Default set to 10 seconds.
|
|
311
|
+
"""
|
|
312
|
+
return pulumi.get(self, "sleep")
|
|
313
|
+
|
|
314
|
+
@sleep.setter
|
|
315
|
+
def sleep(self, value: Optional[pulumi.Input[int]]):
|
|
316
|
+
pulumi.set(self, "sleep", value)
|
|
317
|
+
|
|
318
|
+
@property
|
|
319
|
+
@pulumi.getter
|
|
320
|
+
def status(self) -> Optional[pulumi.Input[str]]:
|
|
321
|
+
"""
|
|
322
|
+
Private Service Connect status [enable, pending, disable]
|
|
323
|
+
"""
|
|
324
|
+
return pulumi.get(self, "status")
|
|
325
|
+
|
|
326
|
+
@status.setter
|
|
327
|
+
def status(self, value: Optional[pulumi.Input[str]]):
|
|
328
|
+
pulumi.set(self, "status", value)
|
|
329
|
+
|
|
330
|
+
@property
|
|
331
|
+
@pulumi.getter
|
|
332
|
+
def timeout(self) -> Optional[pulumi.Input[int]]:
|
|
333
|
+
"""
|
|
334
|
+
Configurable timeout time (seconds) when enable Private Service Connect.
|
|
335
|
+
Default set to 1800 seconds.
|
|
336
|
+
|
|
337
|
+
___
|
|
338
|
+
|
|
339
|
+
The `allowed_principals`, `approved_subscriptions` or `allowed_projects` data depends on the provider platform:
|
|
340
|
+
|
|
341
|
+
| Platform | Description | Format |
|
|
342
|
+
|----------|---------------------|------------------------------------------------------------------------------------------------------------------------------------|
|
|
343
|
+
| AWS | IAM ARN principals | arn:aws:iam::aws-account-id:root<br /> arn:aws:iam::aws-account-id:user/user-name<br /> arn:aws:iam::aws-account-id:role/role-name |
|
|
344
|
+
| Azure | Subscription (GUID) | XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX |
|
|
345
|
+
| GCP | Project IDs* | 6 to 30 lowercase letters, digits, or hyphens |
|
|
346
|
+
|
|
347
|
+
*https://cloud.google.com/resource-manager/reference/rest/v1/projects
|
|
348
|
+
"""
|
|
349
|
+
return pulumi.get(self, "timeout")
|
|
350
|
+
|
|
351
|
+
@timeout.setter
|
|
352
|
+
def timeout(self, value: Optional[pulumi.Input[int]]):
|
|
353
|
+
pulumi.set(self, "timeout", value)
|
|
354
|
+
|
|
355
|
+
|
|
356
|
+
class VpcConnect(pulumi.CustomResource):
|
|
357
|
+
@overload
|
|
358
|
+
def __init__(__self__,
|
|
359
|
+
resource_name: str,
|
|
360
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
361
|
+
allowed_principals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
362
|
+
allowed_projects: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
363
|
+
approved_subscriptions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
364
|
+
instance_id: Optional[pulumi.Input[int]] = None,
|
|
365
|
+
region: Optional[pulumi.Input[str]] = None,
|
|
366
|
+
sleep: Optional[pulumi.Input[int]] = None,
|
|
367
|
+
timeout: Optional[pulumi.Input[int]] = None,
|
|
368
|
+
__props__=None):
|
|
369
|
+
"""
|
|
370
|
+
This resource is a generic way to handle PrivateLink (AWS and Azure) and Private Service Connect (GCP).
|
|
371
|
+
Communication between resources can be done just as they were living inside a VPC. CloudAMQP creates an Endpoint
|
|
372
|
+
Service to connect the VPC and creating a new network interface to handle the communicate.
|
|
373
|
+
|
|
374
|
+
If no existing VPC available when enable VPC connect, a new VPC will be created with subnet `10.52.72.0/24`.
|
|
375
|
+
|
|
376
|
+
More information can be found at: [CloudAMQP VPC Connect](https://www.cloudamqp.com/docs/cloudamqp-vpc-connect.html)
|
|
377
|
+
|
|
378
|
+
> **Note:** Enabling VPC Connect will automatically add a firewall rule.
|
|
379
|
+
|
|
380
|
+
<details>
|
|
381
|
+
<summary>
|
|
382
|
+
<b>
|
|
383
|
+
<i>Default PrivateLink firewall rule [AWS, Azure]</i>
|
|
384
|
+
</b>
|
|
385
|
+
</summary>
|
|
386
|
+
|
|
387
|
+
```python
|
|
388
|
+
import pulumi
|
|
389
|
+
```
|
|
390
|
+
|
|
391
|
+
</details>
|
|
392
|
+
|
|
393
|
+
<details>
|
|
394
|
+
<summary>
|
|
395
|
+
<b>
|
|
396
|
+
<i>Default Private Service Connect firewall rule [GCP]</i>
|
|
397
|
+
</b>
|
|
398
|
+
</summary>
|
|
399
|
+
|
|
400
|
+
```python
|
|
401
|
+
import pulumi
|
|
402
|
+
```
|
|
403
|
+
|
|
404
|
+
</details>
|
|
405
|
+
|
|
406
|
+
Only available for dedicated subscription plans.
|
|
407
|
+
|
|
408
|
+
## Example Usage
|
|
409
|
+
|
|
410
|
+
<details>
|
|
411
|
+
<summary>
|
|
412
|
+
<b>
|
|
413
|
+
<i>Enable VPC Connect (PrivateLink) in AWS</i>
|
|
414
|
+
</b>
|
|
415
|
+
</summary>
|
|
416
|
+
|
|
417
|
+
```python
|
|
418
|
+
import pulumi
|
|
419
|
+
import pulumi_cloudamqp as cloudamqp
|
|
420
|
+
|
|
421
|
+
vpc = cloudamqp.Vpc("vpc",
|
|
422
|
+
region="amazon-web-services::us-west-1",
|
|
423
|
+
subnet="10.56.72.0/24",
|
|
424
|
+
tags=[])
|
|
425
|
+
instance = cloudamqp.Instance("instance",
|
|
426
|
+
plan="bunny-1",
|
|
427
|
+
region="amazon-web-services::us-west-1",
|
|
428
|
+
tags=[],
|
|
429
|
+
vpc_id=vpc.id,
|
|
430
|
+
keep_associated_vpc=True)
|
|
431
|
+
vpc_connect = cloudamqp.VpcConnect("vpcConnect",
|
|
432
|
+
instance_id=instance.id,
|
|
433
|
+
region=instance.region,
|
|
434
|
+
allowed_principals=["arn:aws:iam::aws-account-id:user/user-name"])
|
|
435
|
+
```
|
|
436
|
+
|
|
437
|
+
</details>
|
|
438
|
+
|
|
439
|
+
<details>
|
|
440
|
+
<summary>
|
|
441
|
+
<b>
|
|
442
|
+
<i>Enable VPC Connect (PrivateLink) in Azure</i>
|
|
443
|
+
</b>
|
|
444
|
+
</summary>
|
|
445
|
+
|
|
446
|
+
```python
|
|
447
|
+
import pulumi
|
|
448
|
+
import pulumi_cloudamqp as cloudamqp
|
|
449
|
+
|
|
450
|
+
vpc = cloudamqp.Vpc("vpc",
|
|
451
|
+
region="azure-arm::westus",
|
|
452
|
+
subnet="10.56.72.0/24",
|
|
453
|
+
tags=[])
|
|
454
|
+
instance = cloudamqp.Instance("instance",
|
|
455
|
+
plan="bunny-1",
|
|
456
|
+
region="azure-arm::westus",
|
|
457
|
+
tags=[],
|
|
458
|
+
vpc_id=vpc.id,
|
|
459
|
+
keep_associated_vpc=True)
|
|
460
|
+
vpc_connect = cloudamqp.VpcConnect("vpcConnect",
|
|
461
|
+
instance_id=instance.id,
|
|
462
|
+
region=instance.region,
|
|
463
|
+
approved_subscriptions=["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"])
|
|
464
|
+
```
|
|
465
|
+
|
|
466
|
+
</details>
|
|
467
|
+
|
|
468
|
+
<details>
|
|
469
|
+
<summary>
|
|
470
|
+
<b>
|
|
471
|
+
<i>Enable VPC Connect (Private Service Connect) in GCP</i>
|
|
472
|
+
</b>
|
|
473
|
+
</summary>
|
|
474
|
+
|
|
475
|
+
```python
|
|
476
|
+
import pulumi
|
|
477
|
+
import pulumi_cloudamqp as cloudamqp
|
|
478
|
+
|
|
479
|
+
vpc = cloudamqp.Vpc("vpc",
|
|
480
|
+
region="google-compute-engine::us-west1",
|
|
481
|
+
subnet="10.56.72.0/24",
|
|
482
|
+
tags=[])
|
|
483
|
+
instance = cloudamqp.Instance("instance",
|
|
484
|
+
plan="bunny-1",
|
|
485
|
+
region="google-compute-engine::us-west1",
|
|
486
|
+
tags=[],
|
|
487
|
+
vpc_id=vpc.id,
|
|
488
|
+
keep_associated_vpc=True)
|
|
489
|
+
vpc_connect = cloudamqp.VpcConnect("vpcConnect",
|
|
490
|
+
instance_id=instance.id,
|
|
491
|
+
region=instance.region,
|
|
492
|
+
allowed_projects=["some-project-123456"])
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
</details>
|
|
496
|
+
### With Additional Firewall Rules
|
|
497
|
+
|
|
498
|
+
<details>
|
|
499
|
+
<summary>
|
|
500
|
+
<b>
|
|
501
|
+
<i>CloudAMQP instance in an existing VPC with managed firewall rules</i>
|
|
502
|
+
</b>
|
|
503
|
+
</summary>
|
|
504
|
+
|
|
505
|
+
```python
|
|
506
|
+
import pulumi
|
|
507
|
+
import pulumi_cloudamqp as cloudamqp
|
|
508
|
+
|
|
509
|
+
vpc = cloudamqp.Vpc("vpc",
|
|
510
|
+
region="amazon-web-services::us-west-1",
|
|
511
|
+
subnet="10.56.72.0/24",
|
|
512
|
+
tags=[])
|
|
513
|
+
instance = cloudamqp.Instance("instance",
|
|
514
|
+
plan="bunny-1",
|
|
515
|
+
region="amazon-web-services::us-west-1",
|
|
516
|
+
tags=[],
|
|
517
|
+
vpc_id=vpc.id,
|
|
518
|
+
keep_associated_vpc=True)
|
|
519
|
+
vpc_connect = cloudamqp.VpcConnect("vpcConnect",
|
|
520
|
+
instance_id=instance.id,
|
|
521
|
+
allowed_principals=["arn:aws:iam::aws-account-id:user/user-name"])
|
|
522
|
+
firewall_settings = cloudamqp.SecurityFirewall("firewallSettings",
|
|
523
|
+
instance_id=instance.id,
|
|
524
|
+
rules=[
|
|
525
|
+
cloudamqp.SecurityFirewallRuleArgs(
|
|
526
|
+
description="Custom PrivateLink setup",
|
|
527
|
+
ip=vpc.subnet,
|
|
528
|
+
ports=[],
|
|
529
|
+
services=[
|
|
530
|
+
"AMQP",
|
|
531
|
+
"AMQPS",
|
|
532
|
+
"HTTPS",
|
|
533
|
+
"STREAM",
|
|
534
|
+
"STREAM_SSL",
|
|
535
|
+
],
|
|
536
|
+
),
|
|
537
|
+
cloudamqp.SecurityFirewallRuleArgs(
|
|
538
|
+
description="MGMT interface",
|
|
539
|
+
ip="0.0.0.0/0",
|
|
540
|
+
ports=[],
|
|
541
|
+
services=["HTTPS"],
|
|
542
|
+
),
|
|
543
|
+
],
|
|
544
|
+
opts=pulumi.ResourceOptions(depends_on=[vpc_connect]))
|
|
545
|
+
```
|
|
546
|
+
|
|
547
|
+
</details>
|
|
548
|
+
## Depedency
|
|
549
|
+
|
|
550
|
+
This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
|
|
551
|
+
|
|
552
|
+
Since `region` also is required, suggest to reuse the argument from CloudAMQP instance,
|
|
553
|
+
`cloudamqp_instance.instance.region`.
|
|
554
|
+
|
|
555
|
+
## Create VPC Connect with additional firewall rules
|
|
556
|
+
|
|
557
|
+
To create a PrivateLink/Private Service Connect configuration with additional firewall rules, it's required to chain the SecurityFirewall
|
|
558
|
+
resource to avoid parallel conflicting resource calls. You can do this by making the firewall
|
|
559
|
+
resource depend on the VPC Connect resource, `cloudamqp_vpc_connect.vpc_connect`.
|
|
560
|
+
|
|
561
|
+
Furthermore, since all firewall rules are overwritten, the otherwise automatically added rules for
|
|
562
|
+
the VPC Connect also needs to be added.
|
|
563
|
+
|
|
564
|
+
## Import
|
|
565
|
+
|
|
566
|
+
`cloudamqp_vpc_connect` can be imported using CloudAMQP internal identifier.
|
|
567
|
+
|
|
568
|
+
```sh
|
|
569
|
+
$ pulumi import cloudamqp:index/vpcConnect:VpcConnect vpc_connect <id>`
|
|
570
|
+
```
|
|
571
|
+
|
|
572
|
+
The resource uses the same identifier as the CloudAMQP instance. To retrieve the identifier for an instance, either use [CloudAMQP customer API](https://docs.cloudamqp.com/#list-instances) or use the data source [`cloudamqp_account`](./data-sources/account.md).
|
|
573
|
+
|
|
574
|
+
:param str resource_name: The name of the resource.
|
|
575
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
576
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_principals: List of allowed prinicpals used by AWS, see below table.
|
|
577
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_projects: List of allowed projects used by GCP, see below table.
|
|
578
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] approved_subscriptions: List of approved subscriptions used by Azure, see below table.
|
|
579
|
+
:param pulumi.Input[int] instance_id: The CloudAMQP instance identifier.
|
|
580
|
+
:param pulumi.Input[str] region: The region where the CloudAMQP instance is hosted.
|
|
581
|
+
:param pulumi.Input[int] sleep: Configurable sleep time (seconds) when enable Private Service Connect.
|
|
582
|
+
Default set to 10 seconds.
|
|
583
|
+
:param pulumi.Input[int] timeout: Configurable timeout time (seconds) when enable Private Service Connect.
|
|
584
|
+
Default set to 1800 seconds.
|
|
585
|
+
|
|
586
|
+
___
|
|
587
|
+
|
|
588
|
+
The `allowed_principals`, `approved_subscriptions` or `allowed_projects` data depends on the provider platform:
|
|
589
|
+
|
|
590
|
+
| Platform | Description | Format |
|
|
591
|
+
|----------|---------------------|------------------------------------------------------------------------------------------------------------------------------------|
|
|
592
|
+
| AWS | IAM ARN principals | arn:aws:iam::aws-account-id:root<br /> arn:aws:iam::aws-account-id:user/user-name<br /> arn:aws:iam::aws-account-id:role/role-name |
|
|
593
|
+
| Azure | Subscription (GUID) | XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX |
|
|
594
|
+
| GCP | Project IDs* | 6 to 30 lowercase letters, digits, or hyphens |
|
|
595
|
+
|
|
596
|
+
*https://cloud.google.com/resource-manager/reference/rest/v1/projects
|
|
597
|
+
"""
|
|
598
|
+
...
|
|
599
|
+
@overload
|
|
600
|
+
def __init__(__self__,
|
|
601
|
+
resource_name: str,
|
|
602
|
+
args: VpcConnectArgs,
|
|
603
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
|
604
|
+
"""
|
|
605
|
+
This resource is a generic way to handle PrivateLink (AWS and Azure) and Private Service Connect (GCP).
|
|
606
|
+
Communication between resources can be done just as they were living inside a VPC. CloudAMQP creates an Endpoint
|
|
607
|
+
Service to connect the VPC and creating a new network interface to handle the communicate.
|
|
608
|
+
|
|
609
|
+
If no existing VPC available when enable VPC connect, a new VPC will be created with subnet `10.52.72.0/24`.
|
|
610
|
+
|
|
611
|
+
More information can be found at: [CloudAMQP VPC Connect](https://www.cloudamqp.com/docs/cloudamqp-vpc-connect.html)
|
|
612
|
+
|
|
613
|
+
> **Note:** Enabling VPC Connect will automatically add a firewall rule.
|
|
614
|
+
|
|
615
|
+
<details>
|
|
616
|
+
<summary>
|
|
617
|
+
<b>
|
|
618
|
+
<i>Default PrivateLink firewall rule [AWS, Azure]</i>
|
|
619
|
+
</b>
|
|
620
|
+
</summary>
|
|
621
|
+
|
|
622
|
+
```python
|
|
623
|
+
import pulumi
|
|
624
|
+
```
|
|
625
|
+
|
|
626
|
+
</details>
|
|
627
|
+
|
|
628
|
+
<details>
|
|
629
|
+
<summary>
|
|
630
|
+
<b>
|
|
631
|
+
<i>Default Private Service Connect firewall rule [GCP]</i>
|
|
632
|
+
</b>
|
|
633
|
+
</summary>
|
|
634
|
+
|
|
635
|
+
```python
|
|
636
|
+
import pulumi
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
</details>
|
|
640
|
+
|
|
641
|
+
Only available for dedicated subscription plans.
|
|
642
|
+
|
|
643
|
+
## Example Usage
|
|
644
|
+
|
|
645
|
+
<details>
|
|
646
|
+
<summary>
|
|
647
|
+
<b>
|
|
648
|
+
<i>Enable VPC Connect (PrivateLink) in AWS</i>
|
|
649
|
+
</b>
|
|
650
|
+
</summary>
|
|
651
|
+
|
|
652
|
+
```python
|
|
653
|
+
import pulumi
|
|
654
|
+
import pulumi_cloudamqp as cloudamqp
|
|
655
|
+
|
|
656
|
+
vpc = cloudamqp.Vpc("vpc",
|
|
657
|
+
region="amazon-web-services::us-west-1",
|
|
658
|
+
subnet="10.56.72.0/24",
|
|
659
|
+
tags=[])
|
|
660
|
+
instance = cloudamqp.Instance("instance",
|
|
661
|
+
plan="bunny-1",
|
|
662
|
+
region="amazon-web-services::us-west-1",
|
|
663
|
+
tags=[],
|
|
664
|
+
vpc_id=vpc.id,
|
|
665
|
+
keep_associated_vpc=True)
|
|
666
|
+
vpc_connect = cloudamqp.VpcConnect("vpcConnect",
|
|
667
|
+
instance_id=instance.id,
|
|
668
|
+
region=instance.region,
|
|
669
|
+
allowed_principals=["arn:aws:iam::aws-account-id:user/user-name"])
|
|
670
|
+
```
|
|
671
|
+
|
|
672
|
+
</details>
|
|
673
|
+
|
|
674
|
+
<details>
|
|
675
|
+
<summary>
|
|
676
|
+
<b>
|
|
677
|
+
<i>Enable VPC Connect (PrivateLink) in Azure</i>
|
|
678
|
+
</b>
|
|
679
|
+
</summary>
|
|
680
|
+
|
|
681
|
+
```python
|
|
682
|
+
import pulumi
|
|
683
|
+
import pulumi_cloudamqp as cloudamqp
|
|
684
|
+
|
|
685
|
+
vpc = cloudamqp.Vpc("vpc",
|
|
686
|
+
region="azure-arm::westus",
|
|
687
|
+
subnet="10.56.72.0/24",
|
|
688
|
+
tags=[])
|
|
689
|
+
instance = cloudamqp.Instance("instance",
|
|
690
|
+
plan="bunny-1",
|
|
691
|
+
region="azure-arm::westus",
|
|
692
|
+
tags=[],
|
|
693
|
+
vpc_id=vpc.id,
|
|
694
|
+
keep_associated_vpc=True)
|
|
695
|
+
vpc_connect = cloudamqp.VpcConnect("vpcConnect",
|
|
696
|
+
instance_id=instance.id,
|
|
697
|
+
region=instance.region,
|
|
698
|
+
approved_subscriptions=["XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"])
|
|
699
|
+
```
|
|
700
|
+
|
|
701
|
+
</details>
|
|
702
|
+
|
|
703
|
+
<details>
|
|
704
|
+
<summary>
|
|
705
|
+
<b>
|
|
706
|
+
<i>Enable VPC Connect (Private Service Connect) in GCP</i>
|
|
707
|
+
</b>
|
|
708
|
+
</summary>
|
|
709
|
+
|
|
710
|
+
```python
|
|
711
|
+
import pulumi
|
|
712
|
+
import pulumi_cloudamqp as cloudamqp
|
|
713
|
+
|
|
714
|
+
vpc = cloudamqp.Vpc("vpc",
|
|
715
|
+
region="google-compute-engine::us-west1",
|
|
716
|
+
subnet="10.56.72.0/24",
|
|
717
|
+
tags=[])
|
|
718
|
+
instance = cloudamqp.Instance("instance",
|
|
719
|
+
plan="bunny-1",
|
|
720
|
+
region="google-compute-engine::us-west1",
|
|
721
|
+
tags=[],
|
|
722
|
+
vpc_id=vpc.id,
|
|
723
|
+
keep_associated_vpc=True)
|
|
724
|
+
vpc_connect = cloudamqp.VpcConnect("vpcConnect",
|
|
725
|
+
instance_id=instance.id,
|
|
726
|
+
region=instance.region,
|
|
727
|
+
allowed_projects=["some-project-123456"])
|
|
728
|
+
```
|
|
729
|
+
|
|
730
|
+
</details>
|
|
731
|
+
### With Additional Firewall Rules
|
|
732
|
+
|
|
733
|
+
<details>
|
|
734
|
+
<summary>
|
|
735
|
+
<b>
|
|
736
|
+
<i>CloudAMQP instance in an existing VPC with managed firewall rules</i>
|
|
737
|
+
</b>
|
|
738
|
+
</summary>
|
|
739
|
+
|
|
740
|
+
```python
|
|
741
|
+
import pulumi
|
|
742
|
+
import pulumi_cloudamqp as cloudamqp
|
|
743
|
+
|
|
744
|
+
vpc = cloudamqp.Vpc("vpc",
|
|
745
|
+
region="amazon-web-services::us-west-1",
|
|
746
|
+
subnet="10.56.72.0/24",
|
|
747
|
+
tags=[])
|
|
748
|
+
instance = cloudamqp.Instance("instance",
|
|
749
|
+
plan="bunny-1",
|
|
750
|
+
region="amazon-web-services::us-west-1",
|
|
751
|
+
tags=[],
|
|
752
|
+
vpc_id=vpc.id,
|
|
753
|
+
keep_associated_vpc=True)
|
|
754
|
+
vpc_connect = cloudamqp.VpcConnect("vpcConnect",
|
|
755
|
+
instance_id=instance.id,
|
|
756
|
+
allowed_principals=["arn:aws:iam::aws-account-id:user/user-name"])
|
|
757
|
+
firewall_settings = cloudamqp.SecurityFirewall("firewallSettings",
|
|
758
|
+
instance_id=instance.id,
|
|
759
|
+
rules=[
|
|
760
|
+
cloudamqp.SecurityFirewallRuleArgs(
|
|
761
|
+
description="Custom PrivateLink setup",
|
|
762
|
+
ip=vpc.subnet,
|
|
763
|
+
ports=[],
|
|
764
|
+
services=[
|
|
765
|
+
"AMQP",
|
|
766
|
+
"AMQPS",
|
|
767
|
+
"HTTPS",
|
|
768
|
+
"STREAM",
|
|
769
|
+
"STREAM_SSL",
|
|
770
|
+
],
|
|
771
|
+
),
|
|
772
|
+
cloudamqp.SecurityFirewallRuleArgs(
|
|
773
|
+
description="MGMT interface",
|
|
774
|
+
ip="0.0.0.0/0",
|
|
775
|
+
ports=[],
|
|
776
|
+
services=["HTTPS"],
|
|
777
|
+
),
|
|
778
|
+
],
|
|
779
|
+
opts=pulumi.ResourceOptions(depends_on=[vpc_connect]))
|
|
780
|
+
```
|
|
781
|
+
|
|
782
|
+
</details>
|
|
783
|
+
## Depedency
|
|
784
|
+
|
|
785
|
+
This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
|
|
786
|
+
|
|
787
|
+
Since `region` also is required, suggest to reuse the argument from CloudAMQP instance,
|
|
788
|
+
`cloudamqp_instance.instance.region`.
|
|
789
|
+
|
|
790
|
+
## Create VPC Connect with additional firewall rules
|
|
791
|
+
|
|
792
|
+
To create a PrivateLink/Private Service Connect configuration with additional firewall rules, it's required to chain the SecurityFirewall
|
|
793
|
+
resource to avoid parallel conflicting resource calls. You can do this by making the firewall
|
|
794
|
+
resource depend on the VPC Connect resource, `cloudamqp_vpc_connect.vpc_connect`.
|
|
795
|
+
|
|
796
|
+
Furthermore, since all firewall rules are overwritten, the otherwise automatically added rules for
|
|
797
|
+
the VPC Connect also needs to be added.
|
|
798
|
+
|
|
799
|
+
## Import
|
|
800
|
+
|
|
801
|
+
`cloudamqp_vpc_connect` can be imported using CloudAMQP internal identifier.
|
|
802
|
+
|
|
803
|
+
```sh
|
|
804
|
+
$ pulumi import cloudamqp:index/vpcConnect:VpcConnect vpc_connect <id>`
|
|
805
|
+
```
|
|
806
|
+
|
|
807
|
+
The resource uses the same identifier as the CloudAMQP instance. To retrieve the identifier for an instance, either use [CloudAMQP customer API](https://docs.cloudamqp.com/#list-instances) or use the data source [`cloudamqp_account`](./data-sources/account.md).
|
|
808
|
+
|
|
809
|
+
:param str resource_name: The name of the resource.
|
|
810
|
+
:param VpcConnectArgs args: The arguments to use to populate this resource's properties.
|
|
811
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
812
|
+
"""
|
|
813
|
+
...
|
|
814
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
|
815
|
+
resource_args, opts = _utilities.get_resource_args_opts(VpcConnectArgs, pulumi.ResourceOptions, *args, **kwargs)
|
|
816
|
+
if resource_args is not None:
|
|
817
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
|
818
|
+
else:
|
|
819
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
|
820
|
+
|
|
821
|
+
def _internal_init(__self__,
|
|
822
|
+
resource_name: str,
|
|
823
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
824
|
+
allowed_principals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
825
|
+
allowed_projects: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
826
|
+
approved_subscriptions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
827
|
+
instance_id: Optional[pulumi.Input[int]] = None,
|
|
828
|
+
region: Optional[pulumi.Input[str]] = None,
|
|
829
|
+
sleep: Optional[pulumi.Input[int]] = None,
|
|
830
|
+
timeout: Optional[pulumi.Input[int]] = None,
|
|
831
|
+
__props__=None):
|
|
832
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
833
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
|
834
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
|
835
|
+
if opts.id is None:
|
|
836
|
+
if __props__ is not None:
|
|
837
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
|
838
|
+
__props__ = VpcConnectArgs.__new__(VpcConnectArgs)
|
|
839
|
+
|
|
840
|
+
__props__.__dict__["allowed_principals"] = allowed_principals
|
|
841
|
+
__props__.__dict__["allowed_projects"] = allowed_projects
|
|
842
|
+
__props__.__dict__["approved_subscriptions"] = approved_subscriptions
|
|
843
|
+
if instance_id is None and not opts.urn:
|
|
844
|
+
raise TypeError("Missing required property 'instance_id'")
|
|
845
|
+
__props__.__dict__["instance_id"] = instance_id
|
|
846
|
+
if region is None and not opts.urn:
|
|
847
|
+
raise TypeError("Missing required property 'region'")
|
|
848
|
+
__props__.__dict__["region"] = region
|
|
849
|
+
__props__.__dict__["sleep"] = sleep
|
|
850
|
+
__props__.__dict__["timeout"] = timeout
|
|
851
|
+
__props__.__dict__["active_zones"] = None
|
|
852
|
+
__props__.__dict__["service_name"] = None
|
|
853
|
+
__props__.__dict__["status"] = None
|
|
854
|
+
super(VpcConnect, __self__).__init__(
|
|
855
|
+
'cloudamqp:index/vpcConnect:VpcConnect',
|
|
856
|
+
resource_name,
|
|
857
|
+
__props__,
|
|
858
|
+
opts)
|
|
859
|
+
|
|
860
|
+
@staticmethod
|
|
861
|
+
def get(resource_name: str,
|
|
862
|
+
id: pulumi.Input[str],
|
|
863
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
864
|
+
active_zones: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
865
|
+
allowed_principals: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
866
|
+
allowed_projects: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
867
|
+
approved_subscriptions: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None,
|
|
868
|
+
instance_id: Optional[pulumi.Input[int]] = None,
|
|
869
|
+
region: Optional[pulumi.Input[str]] = None,
|
|
870
|
+
service_name: Optional[pulumi.Input[str]] = None,
|
|
871
|
+
sleep: Optional[pulumi.Input[int]] = None,
|
|
872
|
+
status: Optional[pulumi.Input[str]] = None,
|
|
873
|
+
timeout: Optional[pulumi.Input[int]] = None) -> 'VpcConnect':
|
|
874
|
+
"""
|
|
875
|
+
Get an existing VpcConnect resource's state with the given name, id, and optional extra
|
|
876
|
+
properties used to qualify the lookup.
|
|
877
|
+
|
|
878
|
+
:param str resource_name: The unique name of the resulting resource.
|
|
879
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
880
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
881
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] active_zones: Covering availability zones used when creating an endpoint from other VPC. (AWS)
|
|
882
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_principals: List of allowed prinicpals used by AWS, see below table.
|
|
883
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] allowed_projects: List of allowed projects used by GCP, see below table.
|
|
884
|
+
:param pulumi.Input[Sequence[pulumi.Input[str]]] approved_subscriptions: List of approved subscriptions used by Azure, see below table.
|
|
885
|
+
:param pulumi.Input[int] instance_id: The CloudAMQP instance identifier.
|
|
886
|
+
:param pulumi.Input[str] region: The region where the CloudAMQP instance is hosted.
|
|
887
|
+
:param pulumi.Input[str] service_name: Service name (alias for Azure) of the PrivateLink.
|
|
888
|
+
:param pulumi.Input[int] sleep: Configurable sleep time (seconds) when enable Private Service Connect.
|
|
889
|
+
Default set to 10 seconds.
|
|
890
|
+
:param pulumi.Input[str] status: Private Service Connect status [enable, pending, disable]
|
|
891
|
+
:param pulumi.Input[int] timeout: Configurable timeout time (seconds) when enable Private Service Connect.
|
|
892
|
+
Default set to 1800 seconds.
|
|
893
|
+
|
|
894
|
+
___
|
|
895
|
+
|
|
896
|
+
The `allowed_principals`, `approved_subscriptions` or `allowed_projects` data depends on the provider platform:
|
|
897
|
+
|
|
898
|
+
| Platform | Description | Format |
|
|
899
|
+
|----------|---------------------|------------------------------------------------------------------------------------------------------------------------------------|
|
|
900
|
+
| AWS | IAM ARN principals | arn:aws:iam::aws-account-id:root<br /> arn:aws:iam::aws-account-id:user/user-name<br /> arn:aws:iam::aws-account-id:role/role-name |
|
|
901
|
+
| Azure | Subscription (GUID) | XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX |
|
|
902
|
+
| GCP | Project IDs* | 6 to 30 lowercase letters, digits, or hyphens |
|
|
903
|
+
|
|
904
|
+
*https://cloud.google.com/resource-manager/reference/rest/v1/projects
|
|
905
|
+
"""
|
|
906
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
907
|
+
|
|
908
|
+
__props__ = _VpcConnectState.__new__(_VpcConnectState)
|
|
909
|
+
|
|
910
|
+
__props__.__dict__["active_zones"] = active_zones
|
|
911
|
+
__props__.__dict__["allowed_principals"] = allowed_principals
|
|
912
|
+
__props__.__dict__["allowed_projects"] = allowed_projects
|
|
913
|
+
__props__.__dict__["approved_subscriptions"] = approved_subscriptions
|
|
914
|
+
__props__.__dict__["instance_id"] = instance_id
|
|
915
|
+
__props__.__dict__["region"] = region
|
|
916
|
+
__props__.__dict__["service_name"] = service_name
|
|
917
|
+
__props__.__dict__["sleep"] = sleep
|
|
918
|
+
__props__.__dict__["status"] = status
|
|
919
|
+
__props__.__dict__["timeout"] = timeout
|
|
920
|
+
return VpcConnect(resource_name, opts=opts, __props__=__props__)
|
|
921
|
+
|
|
922
|
+
@property
|
|
923
|
+
@pulumi.getter(name="activeZones")
|
|
924
|
+
def active_zones(self) -> pulumi.Output[Sequence[str]]:
|
|
925
|
+
"""
|
|
926
|
+
Covering availability zones used when creating an endpoint from other VPC. (AWS)
|
|
927
|
+
"""
|
|
928
|
+
return pulumi.get(self, "active_zones")
|
|
929
|
+
|
|
930
|
+
@property
|
|
931
|
+
@pulumi.getter(name="allowedPrincipals")
|
|
932
|
+
def allowed_principals(self) -> pulumi.Output[Optional[Sequence[str]]]:
|
|
933
|
+
"""
|
|
934
|
+
List of allowed prinicpals used by AWS, see below table.
|
|
935
|
+
"""
|
|
936
|
+
return pulumi.get(self, "allowed_principals")
|
|
937
|
+
|
|
938
|
+
@property
|
|
939
|
+
@pulumi.getter(name="allowedProjects")
|
|
940
|
+
def allowed_projects(self) -> pulumi.Output[Optional[Sequence[str]]]:
|
|
941
|
+
"""
|
|
942
|
+
List of allowed projects used by GCP, see below table.
|
|
943
|
+
"""
|
|
944
|
+
return pulumi.get(self, "allowed_projects")
|
|
945
|
+
|
|
946
|
+
@property
|
|
947
|
+
@pulumi.getter(name="approvedSubscriptions")
|
|
948
|
+
def approved_subscriptions(self) -> pulumi.Output[Optional[Sequence[str]]]:
|
|
949
|
+
"""
|
|
950
|
+
List of approved subscriptions used by Azure, see below table.
|
|
951
|
+
"""
|
|
952
|
+
return pulumi.get(self, "approved_subscriptions")
|
|
953
|
+
|
|
954
|
+
@property
|
|
955
|
+
@pulumi.getter(name="instanceId")
|
|
956
|
+
def instance_id(self) -> pulumi.Output[int]:
|
|
957
|
+
"""
|
|
958
|
+
The CloudAMQP instance identifier.
|
|
959
|
+
"""
|
|
960
|
+
return pulumi.get(self, "instance_id")
|
|
961
|
+
|
|
962
|
+
@property
|
|
963
|
+
@pulumi.getter
|
|
964
|
+
def region(self) -> pulumi.Output[str]:
|
|
965
|
+
"""
|
|
966
|
+
The region where the CloudAMQP instance is hosted.
|
|
967
|
+
"""
|
|
968
|
+
return pulumi.get(self, "region")
|
|
969
|
+
|
|
970
|
+
@property
|
|
971
|
+
@pulumi.getter(name="serviceName")
|
|
972
|
+
def service_name(self) -> pulumi.Output[str]:
|
|
973
|
+
"""
|
|
974
|
+
Service name (alias for Azure) of the PrivateLink.
|
|
975
|
+
"""
|
|
976
|
+
return pulumi.get(self, "service_name")
|
|
977
|
+
|
|
978
|
+
@property
|
|
979
|
+
@pulumi.getter
|
|
980
|
+
def sleep(self) -> pulumi.Output[Optional[int]]:
|
|
981
|
+
"""
|
|
982
|
+
Configurable sleep time (seconds) when enable Private Service Connect.
|
|
983
|
+
Default set to 10 seconds.
|
|
984
|
+
"""
|
|
985
|
+
return pulumi.get(self, "sleep")
|
|
986
|
+
|
|
987
|
+
@property
|
|
988
|
+
@pulumi.getter
|
|
989
|
+
def status(self) -> pulumi.Output[str]:
|
|
990
|
+
"""
|
|
991
|
+
Private Service Connect status [enable, pending, disable]
|
|
992
|
+
"""
|
|
993
|
+
return pulumi.get(self, "status")
|
|
994
|
+
|
|
995
|
+
@property
|
|
996
|
+
@pulumi.getter
|
|
997
|
+
def timeout(self) -> pulumi.Output[Optional[int]]:
|
|
998
|
+
"""
|
|
999
|
+
Configurable timeout time (seconds) when enable Private Service Connect.
|
|
1000
|
+
Default set to 1800 seconds.
|
|
1001
|
+
|
|
1002
|
+
___
|
|
1003
|
+
|
|
1004
|
+
The `allowed_principals`, `approved_subscriptions` or `allowed_projects` data depends on the provider platform:
|
|
1005
|
+
|
|
1006
|
+
| Platform | Description | Format |
|
|
1007
|
+
|----------|---------------------|------------------------------------------------------------------------------------------------------------------------------------|
|
|
1008
|
+
| AWS | IAM ARN principals | arn:aws:iam::aws-account-id:root<br /> arn:aws:iam::aws-account-id:user/user-name<br /> arn:aws:iam::aws-account-id:role/role-name |
|
|
1009
|
+
| Azure | Subscription (GUID) | XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX |
|
|
1010
|
+
| GCP | Project IDs* | 6 to 30 lowercase letters, digits, or hyphens |
|
|
1011
|
+
|
|
1012
|
+
*https://cloud.google.com/resource-manager/reference/rest/v1/projects
|
|
1013
|
+
"""
|
|
1014
|
+
return pulumi.get(self, "timeout")
|
|
1015
|
+
|