pulumi-cloudamqp 3.23.0a1746768292__py3-none-any.whl → 3.24.2__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 +23 -5
- pulumi_cloudamqp/_inputs.py +633 -82
- pulumi_cloudamqp/_utilities.py +1 -1
- pulumi_cloudamqp/{account_action.py → account_actions.py} +60 -74
- pulumi_cloudamqp/alarm.py +189 -190
- pulumi_cloudamqp/config/__init__.py +2 -2
- pulumi_cloudamqp/config/__init__.pyi +2 -3
- pulumi_cloudamqp/config/vars.py +5 -6
- pulumi_cloudamqp/custom_domain.py +40 -41
- pulumi_cloudamqp/extra_disk_size.py +89 -90
- pulumi_cloudamqp/get_account.py +5 -6
- pulumi_cloudamqp/get_account_vpcs.py +5 -6
- pulumi_cloudamqp/get_alarm.py +44 -45
- pulumi_cloudamqp/get_alarms.py +17 -18
- pulumi_cloudamqp/get_credentials.py +14 -15
- pulumi_cloudamqp/get_instance.py +44 -45
- pulumi_cloudamqp/get_nodes.py +11 -12
- pulumi_cloudamqp/get_notification.py +32 -33
- pulumi_cloudamqp/get_notifications.py +11 -12
- pulumi_cloudamqp/get_plugins.py +23 -24
- pulumi_cloudamqp/get_plugins_community.py +23 -24
- pulumi_cloudamqp/get_upgradable_versions.py +14 -15
- pulumi_cloudamqp/get_vpc_gcp_info.py +34 -35
- pulumi_cloudamqp/get_vpc_info.py +24 -25
- pulumi_cloudamqp/instance.py +428 -280
- pulumi_cloudamqp/integration_aws_eventbridge.py +246 -116
- pulumi_cloudamqp/integration_log.py +982 -581
- pulumi_cloudamqp/integration_metric.py +615 -479
- pulumi_cloudamqp/integration_metric_prometheus.py +770 -0
- pulumi_cloudamqp/maintenance_window.py +76 -73
- pulumi_cloudamqp/node_actions.py +62 -63
- pulumi_cloudamqp/notification.py +92 -93
- pulumi_cloudamqp/oauth2_configuration.py +1042 -0
- pulumi_cloudamqp/outputs.py +680 -241
- pulumi_cloudamqp/plugin.py +105 -106
- pulumi_cloudamqp/plugin_community.py +105 -106
- pulumi_cloudamqp/privatelink_aws.py +97 -98
- pulumi_cloudamqp/privatelink_azure.py +97 -98
- pulumi_cloudamqp/provider.py +32 -34
- pulumi_cloudamqp/pulumi-plugin.json +1 -1
- pulumi_cloudamqp/rabbit_configuration.py +206 -221
- pulumi_cloudamqp/security_firewall.py +56 -57
- pulumi_cloudamqp/upgrade_lavinmq.py +36 -37
- pulumi_cloudamqp/upgrade_rabbitmq.py +53 -54
- pulumi_cloudamqp/vpc.py +83 -84
- pulumi_cloudamqp/vpc_connect.py +148 -149
- pulumi_cloudamqp/vpc_gcp_peering.py +131 -132
- pulumi_cloudamqp/vpc_peering.py +96 -97
- pulumi_cloudamqp/webhook.py +121 -122
- {pulumi_cloudamqp-3.23.0a1746768292.dist-info → pulumi_cloudamqp-3.24.2.dist-info}/METADATA +1 -1
- pulumi_cloudamqp-3.24.2.dist-info/RECORD +54 -0
- {pulumi_cloudamqp-3.23.0a1746768292.dist-info → pulumi_cloudamqp-3.24.2.dist-info}/WHEEL +1 -1
- pulumi_cloudamqp-3.23.0a1746768292.dist-info/RECORD +0 -52
- {pulumi_cloudamqp-3.23.0a1746768292.dist-info → pulumi_cloudamqp-3.24.2.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,1042 @@
|
|
|
1
|
+
# coding=utf-8
|
|
2
|
+
# *** WARNING: this file was generated by pulumi-language-python. ***
|
|
3
|
+
# *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
|
+
|
|
5
|
+
import builtins as _builtins
|
|
6
|
+
import warnings
|
|
7
|
+
import sys
|
|
8
|
+
import pulumi
|
|
9
|
+
import pulumi.runtime
|
|
10
|
+
from typing import Any, Mapping, Optional, Sequence, Union, overload
|
|
11
|
+
if sys.version_info >= (3, 11):
|
|
12
|
+
from typing import NotRequired, TypedDict, TypeAlias
|
|
13
|
+
else:
|
|
14
|
+
from typing_extensions import NotRequired, TypedDict, TypeAlias
|
|
15
|
+
from . import _utilities
|
|
16
|
+
|
|
17
|
+
__all__ = ['Oauth2ConfigurationArgs', 'Oauth2Configuration']
|
|
18
|
+
|
|
19
|
+
@pulumi.input_type
|
|
20
|
+
class Oauth2ConfigurationArgs:
|
|
21
|
+
def __init__(__self__, *,
|
|
22
|
+
instance_id: pulumi.Input[_builtins.int],
|
|
23
|
+
issuer: pulumi.Input[_builtins.str],
|
|
24
|
+
resource_server_id: pulumi.Input[_builtins.str],
|
|
25
|
+
additional_scopes_keys: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
26
|
+
audience: Optional[pulumi.Input[_builtins.str]] = None,
|
|
27
|
+
oauth_client_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
28
|
+
oauth_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
29
|
+
preferred_username_claims: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
30
|
+
scope_aliases: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
31
|
+
scope_prefix: Optional[pulumi.Input[_builtins.str]] = None,
|
|
32
|
+
sleep: Optional[pulumi.Input[_builtins.int]] = None,
|
|
33
|
+
timeout: Optional[pulumi.Input[_builtins.int]] = None,
|
|
34
|
+
verify_aud: Optional[pulumi.Input[_builtins.bool]] = None):
|
|
35
|
+
"""
|
|
36
|
+
The set of arguments for constructing a Oauth2Configuration resource.
|
|
37
|
+
:param pulumi.Input[_builtins.int] instance_id: The CloudAMQP instance ID.
|
|
38
|
+
:param pulumi.Input[_builtins.str] issuer: The issuer URL of the OAuth2 provider. This is typically
|
|
39
|
+
the base URL of your OAuth2 provider (e.g., Auth0, Keycloak, etc.).
|
|
40
|
+
:param pulumi.Input[_builtins.str] resource_server_id: Resource server identifier used to identify the resource
|
|
41
|
+
server in OAuth2 tokens.
|
|
42
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] additional_scopes_keys: List of additional JWT claim keys to extract OAuth2
|
|
43
|
+
scopes from.
|
|
44
|
+
:param pulumi.Input[_builtins.str] audience: The audience to be passed along to the Oauth2 provider when
|
|
45
|
+
logging in to the management interface. Must be configured for Auth0,
|
|
46
|
+
cannot be configured for Entra ID v2.
|
|
47
|
+
:param pulumi.Input[_builtins.str] oauth_client_id: OAuth2 client ID used for token validation.
|
|
48
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] oauth_scopes: List of OAuth2 scopes to request. These scopes will be
|
|
49
|
+
used when obtaining access tokens.
|
|
50
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] preferred_username_claims: List of JWT claims to use as the preferred username.
|
|
51
|
+
The first claim found in the token will be used as the username.
|
|
52
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] scope_aliases: Map of scope aliases to translate scope names. This allows
|
|
53
|
+
mapping OAuth2 scopes to RabbitMQ permission tags.
|
|
54
|
+
:param pulumi.Input[_builtins.str] scope_prefix: Prefix to add to scopes. This is useful when scopes in
|
|
55
|
+
the JWT token need to be prefixed for RabbitMQ permissions.
|
|
56
|
+
:param pulumi.Input[_builtins.int] sleep: Configurable sleep time in seconds between retries for
|
|
57
|
+
OAuth2 configuration. Default set to 60 seconds.
|
|
58
|
+
:param pulumi.Input[_builtins.int] timeout: Configurable timeout time in seconds for OAuth2
|
|
59
|
+
configuration. Default set to 3600 seconds.
|
|
60
|
+
:param pulumi.Input[_builtins.bool] verify_aud: Whether to verify the audience claim in the JWT
|
|
61
|
+
token. Defaults to true.
|
|
62
|
+
"""
|
|
63
|
+
pulumi.set(__self__, "instance_id", instance_id)
|
|
64
|
+
pulumi.set(__self__, "issuer", issuer)
|
|
65
|
+
pulumi.set(__self__, "resource_server_id", resource_server_id)
|
|
66
|
+
if additional_scopes_keys is not None:
|
|
67
|
+
pulumi.set(__self__, "additional_scopes_keys", additional_scopes_keys)
|
|
68
|
+
if audience is not None:
|
|
69
|
+
pulumi.set(__self__, "audience", audience)
|
|
70
|
+
if oauth_client_id is not None:
|
|
71
|
+
pulumi.set(__self__, "oauth_client_id", oauth_client_id)
|
|
72
|
+
if oauth_scopes is not None:
|
|
73
|
+
pulumi.set(__self__, "oauth_scopes", oauth_scopes)
|
|
74
|
+
if preferred_username_claims is not None:
|
|
75
|
+
pulumi.set(__self__, "preferred_username_claims", preferred_username_claims)
|
|
76
|
+
if scope_aliases is not None:
|
|
77
|
+
pulumi.set(__self__, "scope_aliases", scope_aliases)
|
|
78
|
+
if scope_prefix is not None:
|
|
79
|
+
pulumi.set(__self__, "scope_prefix", scope_prefix)
|
|
80
|
+
if sleep is not None:
|
|
81
|
+
pulumi.set(__self__, "sleep", sleep)
|
|
82
|
+
if timeout is not None:
|
|
83
|
+
pulumi.set(__self__, "timeout", timeout)
|
|
84
|
+
if verify_aud is not None:
|
|
85
|
+
pulumi.set(__self__, "verify_aud", verify_aud)
|
|
86
|
+
|
|
87
|
+
@_builtins.property
|
|
88
|
+
@pulumi.getter(name="instanceId")
|
|
89
|
+
def instance_id(self) -> pulumi.Input[_builtins.int]:
|
|
90
|
+
"""
|
|
91
|
+
The CloudAMQP instance ID.
|
|
92
|
+
"""
|
|
93
|
+
return pulumi.get(self, "instance_id")
|
|
94
|
+
|
|
95
|
+
@instance_id.setter
|
|
96
|
+
def instance_id(self, value: pulumi.Input[_builtins.int]):
|
|
97
|
+
pulumi.set(self, "instance_id", value)
|
|
98
|
+
|
|
99
|
+
@_builtins.property
|
|
100
|
+
@pulumi.getter
|
|
101
|
+
def issuer(self) -> pulumi.Input[_builtins.str]:
|
|
102
|
+
"""
|
|
103
|
+
The issuer URL of the OAuth2 provider. This is typically
|
|
104
|
+
the base URL of your OAuth2 provider (e.g., Auth0, Keycloak, etc.).
|
|
105
|
+
"""
|
|
106
|
+
return pulumi.get(self, "issuer")
|
|
107
|
+
|
|
108
|
+
@issuer.setter
|
|
109
|
+
def issuer(self, value: pulumi.Input[_builtins.str]):
|
|
110
|
+
pulumi.set(self, "issuer", value)
|
|
111
|
+
|
|
112
|
+
@_builtins.property
|
|
113
|
+
@pulumi.getter(name="resourceServerId")
|
|
114
|
+
def resource_server_id(self) -> pulumi.Input[_builtins.str]:
|
|
115
|
+
"""
|
|
116
|
+
Resource server identifier used to identify the resource
|
|
117
|
+
server in OAuth2 tokens.
|
|
118
|
+
"""
|
|
119
|
+
return pulumi.get(self, "resource_server_id")
|
|
120
|
+
|
|
121
|
+
@resource_server_id.setter
|
|
122
|
+
def resource_server_id(self, value: pulumi.Input[_builtins.str]):
|
|
123
|
+
pulumi.set(self, "resource_server_id", value)
|
|
124
|
+
|
|
125
|
+
@_builtins.property
|
|
126
|
+
@pulumi.getter(name="additionalScopesKeys")
|
|
127
|
+
def additional_scopes_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
128
|
+
"""
|
|
129
|
+
List of additional JWT claim keys to extract OAuth2
|
|
130
|
+
scopes from.
|
|
131
|
+
"""
|
|
132
|
+
return pulumi.get(self, "additional_scopes_keys")
|
|
133
|
+
|
|
134
|
+
@additional_scopes_keys.setter
|
|
135
|
+
def additional_scopes_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
136
|
+
pulumi.set(self, "additional_scopes_keys", value)
|
|
137
|
+
|
|
138
|
+
@_builtins.property
|
|
139
|
+
@pulumi.getter
|
|
140
|
+
def audience(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
141
|
+
"""
|
|
142
|
+
The audience to be passed along to the Oauth2 provider when
|
|
143
|
+
logging in to the management interface. Must be configured for Auth0,
|
|
144
|
+
cannot be configured for Entra ID v2.
|
|
145
|
+
"""
|
|
146
|
+
return pulumi.get(self, "audience")
|
|
147
|
+
|
|
148
|
+
@audience.setter
|
|
149
|
+
def audience(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
150
|
+
pulumi.set(self, "audience", value)
|
|
151
|
+
|
|
152
|
+
@_builtins.property
|
|
153
|
+
@pulumi.getter(name="oauthClientId")
|
|
154
|
+
def oauth_client_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
155
|
+
"""
|
|
156
|
+
OAuth2 client ID used for token validation.
|
|
157
|
+
"""
|
|
158
|
+
return pulumi.get(self, "oauth_client_id")
|
|
159
|
+
|
|
160
|
+
@oauth_client_id.setter
|
|
161
|
+
def oauth_client_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
162
|
+
pulumi.set(self, "oauth_client_id", value)
|
|
163
|
+
|
|
164
|
+
@_builtins.property
|
|
165
|
+
@pulumi.getter(name="oauthScopes")
|
|
166
|
+
def oauth_scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
167
|
+
"""
|
|
168
|
+
List of OAuth2 scopes to request. These scopes will be
|
|
169
|
+
used when obtaining access tokens.
|
|
170
|
+
"""
|
|
171
|
+
return pulumi.get(self, "oauth_scopes")
|
|
172
|
+
|
|
173
|
+
@oauth_scopes.setter
|
|
174
|
+
def oauth_scopes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
175
|
+
pulumi.set(self, "oauth_scopes", value)
|
|
176
|
+
|
|
177
|
+
@_builtins.property
|
|
178
|
+
@pulumi.getter(name="preferredUsernameClaims")
|
|
179
|
+
def preferred_username_claims(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
180
|
+
"""
|
|
181
|
+
List of JWT claims to use as the preferred username.
|
|
182
|
+
The first claim found in the token will be used as the username.
|
|
183
|
+
"""
|
|
184
|
+
return pulumi.get(self, "preferred_username_claims")
|
|
185
|
+
|
|
186
|
+
@preferred_username_claims.setter
|
|
187
|
+
def preferred_username_claims(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
188
|
+
pulumi.set(self, "preferred_username_claims", value)
|
|
189
|
+
|
|
190
|
+
@_builtins.property
|
|
191
|
+
@pulumi.getter(name="scopeAliases")
|
|
192
|
+
def scope_aliases(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
|
|
193
|
+
"""
|
|
194
|
+
Map of scope aliases to translate scope names. This allows
|
|
195
|
+
mapping OAuth2 scopes to RabbitMQ permission tags.
|
|
196
|
+
"""
|
|
197
|
+
return pulumi.get(self, "scope_aliases")
|
|
198
|
+
|
|
199
|
+
@scope_aliases.setter
|
|
200
|
+
def scope_aliases(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
|
|
201
|
+
pulumi.set(self, "scope_aliases", value)
|
|
202
|
+
|
|
203
|
+
@_builtins.property
|
|
204
|
+
@pulumi.getter(name="scopePrefix")
|
|
205
|
+
def scope_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
206
|
+
"""
|
|
207
|
+
Prefix to add to scopes. This is useful when scopes in
|
|
208
|
+
the JWT token need to be prefixed for RabbitMQ permissions.
|
|
209
|
+
"""
|
|
210
|
+
return pulumi.get(self, "scope_prefix")
|
|
211
|
+
|
|
212
|
+
@scope_prefix.setter
|
|
213
|
+
def scope_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
214
|
+
pulumi.set(self, "scope_prefix", value)
|
|
215
|
+
|
|
216
|
+
@_builtins.property
|
|
217
|
+
@pulumi.getter
|
|
218
|
+
def sleep(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
219
|
+
"""
|
|
220
|
+
Configurable sleep time in seconds between retries for
|
|
221
|
+
OAuth2 configuration. Default set to 60 seconds.
|
|
222
|
+
"""
|
|
223
|
+
return pulumi.get(self, "sleep")
|
|
224
|
+
|
|
225
|
+
@sleep.setter
|
|
226
|
+
def sleep(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
227
|
+
pulumi.set(self, "sleep", value)
|
|
228
|
+
|
|
229
|
+
@_builtins.property
|
|
230
|
+
@pulumi.getter
|
|
231
|
+
def timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
232
|
+
"""
|
|
233
|
+
Configurable timeout time in seconds for OAuth2
|
|
234
|
+
configuration. Default set to 3600 seconds.
|
|
235
|
+
"""
|
|
236
|
+
return pulumi.get(self, "timeout")
|
|
237
|
+
|
|
238
|
+
@timeout.setter
|
|
239
|
+
def timeout(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
240
|
+
pulumi.set(self, "timeout", value)
|
|
241
|
+
|
|
242
|
+
@_builtins.property
|
|
243
|
+
@pulumi.getter(name="verifyAud")
|
|
244
|
+
def verify_aud(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
245
|
+
"""
|
|
246
|
+
Whether to verify the audience claim in the JWT
|
|
247
|
+
token. Defaults to true.
|
|
248
|
+
"""
|
|
249
|
+
return pulumi.get(self, "verify_aud")
|
|
250
|
+
|
|
251
|
+
@verify_aud.setter
|
|
252
|
+
def verify_aud(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
253
|
+
pulumi.set(self, "verify_aud", value)
|
|
254
|
+
|
|
255
|
+
|
|
256
|
+
@pulumi.input_type
|
|
257
|
+
class _Oauth2ConfigurationState:
|
|
258
|
+
def __init__(__self__, *,
|
|
259
|
+
additional_scopes_keys: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
260
|
+
audience: Optional[pulumi.Input[_builtins.str]] = None,
|
|
261
|
+
instance_id: Optional[pulumi.Input[_builtins.int]] = None,
|
|
262
|
+
issuer: Optional[pulumi.Input[_builtins.str]] = None,
|
|
263
|
+
oauth_client_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
264
|
+
oauth_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
265
|
+
preferred_username_claims: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
266
|
+
resource_server_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
267
|
+
scope_aliases: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
268
|
+
scope_prefix: Optional[pulumi.Input[_builtins.str]] = None,
|
|
269
|
+
sleep: Optional[pulumi.Input[_builtins.int]] = None,
|
|
270
|
+
timeout: Optional[pulumi.Input[_builtins.int]] = None,
|
|
271
|
+
verify_aud: Optional[pulumi.Input[_builtins.bool]] = None):
|
|
272
|
+
"""
|
|
273
|
+
Input properties used for looking up and filtering Oauth2Configuration resources.
|
|
274
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] additional_scopes_keys: List of additional JWT claim keys to extract OAuth2
|
|
275
|
+
scopes from.
|
|
276
|
+
:param pulumi.Input[_builtins.str] audience: The audience to be passed along to the Oauth2 provider when
|
|
277
|
+
logging in to the management interface. Must be configured for Auth0,
|
|
278
|
+
cannot be configured for Entra ID v2.
|
|
279
|
+
:param pulumi.Input[_builtins.int] instance_id: The CloudAMQP instance ID.
|
|
280
|
+
:param pulumi.Input[_builtins.str] issuer: The issuer URL of the OAuth2 provider. This is typically
|
|
281
|
+
the base URL of your OAuth2 provider (e.g., Auth0, Keycloak, etc.).
|
|
282
|
+
:param pulumi.Input[_builtins.str] oauth_client_id: OAuth2 client ID used for token validation.
|
|
283
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] oauth_scopes: List of OAuth2 scopes to request. These scopes will be
|
|
284
|
+
used when obtaining access tokens.
|
|
285
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] preferred_username_claims: List of JWT claims to use as the preferred username.
|
|
286
|
+
The first claim found in the token will be used as the username.
|
|
287
|
+
:param pulumi.Input[_builtins.str] resource_server_id: Resource server identifier used to identify the resource
|
|
288
|
+
server in OAuth2 tokens.
|
|
289
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] scope_aliases: Map of scope aliases to translate scope names. This allows
|
|
290
|
+
mapping OAuth2 scopes to RabbitMQ permission tags.
|
|
291
|
+
:param pulumi.Input[_builtins.str] scope_prefix: Prefix to add to scopes. This is useful when scopes in
|
|
292
|
+
the JWT token need to be prefixed for RabbitMQ permissions.
|
|
293
|
+
:param pulumi.Input[_builtins.int] sleep: Configurable sleep time in seconds between retries for
|
|
294
|
+
OAuth2 configuration. Default set to 60 seconds.
|
|
295
|
+
:param pulumi.Input[_builtins.int] timeout: Configurable timeout time in seconds for OAuth2
|
|
296
|
+
configuration. Default set to 3600 seconds.
|
|
297
|
+
:param pulumi.Input[_builtins.bool] verify_aud: Whether to verify the audience claim in the JWT
|
|
298
|
+
token. Defaults to true.
|
|
299
|
+
"""
|
|
300
|
+
if additional_scopes_keys is not None:
|
|
301
|
+
pulumi.set(__self__, "additional_scopes_keys", additional_scopes_keys)
|
|
302
|
+
if audience is not None:
|
|
303
|
+
pulumi.set(__self__, "audience", audience)
|
|
304
|
+
if instance_id is not None:
|
|
305
|
+
pulumi.set(__self__, "instance_id", instance_id)
|
|
306
|
+
if issuer is not None:
|
|
307
|
+
pulumi.set(__self__, "issuer", issuer)
|
|
308
|
+
if oauth_client_id is not None:
|
|
309
|
+
pulumi.set(__self__, "oauth_client_id", oauth_client_id)
|
|
310
|
+
if oauth_scopes is not None:
|
|
311
|
+
pulumi.set(__self__, "oauth_scopes", oauth_scopes)
|
|
312
|
+
if preferred_username_claims is not None:
|
|
313
|
+
pulumi.set(__self__, "preferred_username_claims", preferred_username_claims)
|
|
314
|
+
if resource_server_id is not None:
|
|
315
|
+
pulumi.set(__self__, "resource_server_id", resource_server_id)
|
|
316
|
+
if scope_aliases is not None:
|
|
317
|
+
pulumi.set(__self__, "scope_aliases", scope_aliases)
|
|
318
|
+
if scope_prefix is not None:
|
|
319
|
+
pulumi.set(__self__, "scope_prefix", scope_prefix)
|
|
320
|
+
if sleep is not None:
|
|
321
|
+
pulumi.set(__self__, "sleep", sleep)
|
|
322
|
+
if timeout is not None:
|
|
323
|
+
pulumi.set(__self__, "timeout", timeout)
|
|
324
|
+
if verify_aud is not None:
|
|
325
|
+
pulumi.set(__self__, "verify_aud", verify_aud)
|
|
326
|
+
|
|
327
|
+
@_builtins.property
|
|
328
|
+
@pulumi.getter(name="additionalScopesKeys")
|
|
329
|
+
def additional_scopes_keys(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
330
|
+
"""
|
|
331
|
+
List of additional JWT claim keys to extract OAuth2
|
|
332
|
+
scopes from.
|
|
333
|
+
"""
|
|
334
|
+
return pulumi.get(self, "additional_scopes_keys")
|
|
335
|
+
|
|
336
|
+
@additional_scopes_keys.setter
|
|
337
|
+
def additional_scopes_keys(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
338
|
+
pulumi.set(self, "additional_scopes_keys", value)
|
|
339
|
+
|
|
340
|
+
@_builtins.property
|
|
341
|
+
@pulumi.getter
|
|
342
|
+
def audience(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
343
|
+
"""
|
|
344
|
+
The audience to be passed along to the Oauth2 provider when
|
|
345
|
+
logging in to the management interface. Must be configured for Auth0,
|
|
346
|
+
cannot be configured for Entra ID v2.
|
|
347
|
+
"""
|
|
348
|
+
return pulumi.get(self, "audience")
|
|
349
|
+
|
|
350
|
+
@audience.setter
|
|
351
|
+
def audience(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
352
|
+
pulumi.set(self, "audience", value)
|
|
353
|
+
|
|
354
|
+
@_builtins.property
|
|
355
|
+
@pulumi.getter(name="instanceId")
|
|
356
|
+
def instance_id(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
357
|
+
"""
|
|
358
|
+
The CloudAMQP instance ID.
|
|
359
|
+
"""
|
|
360
|
+
return pulumi.get(self, "instance_id")
|
|
361
|
+
|
|
362
|
+
@instance_id.setter
|
|
363
|
+
def instance_id(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
364
|
+
pulumi.set(self, "instance_id", value)
|
|
365
|
+
|
|
366
|
+
@_builtins.property
|
|
367
|
+
@pulumi.getter
|
|
368
|
+
def issuer(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
369
|
+
"""
|
|
370
|
+
The issuer URL of the OAuth2 provider. This is typically
|
|
371
|
+
the base URL of your OAuth2 provider (e.g., Auth0, Keycloak, etc.).
|
|
372
|
+
"""
|
|
373
|
+
return pulumi.get(self, "issuer")
|
|
374
|
+
|
|
375
|
+
@issuer.setter
|
|
376
|
+
def issuer(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
377
|
+
pulumi.set(self, "issuer", value)
|
|
378
|
+
|
|
379
|
+
@_builtins.property
|
|
380
|
+
@pulumi.getter(name="oauthClientId")
|
|
381
|
+
def oauth_client_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
382
|
+
"""
|
|
383
|
+
OAuth2 client ID used for token validation.
|
|
384
|
+
"""
|
|
385
|
+
return pulumi.get(self, "oauth_client_id")
|
|
386
|
+
|
|
387
|
+
@oauth_client_id.setter
|
|
388
|
+
def oauth_client_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
389
|
+
pulumi.set(self, "oauth_client_id", value)
|
|
390
|
+
|
|
391
|
+
@_builtins.property
|
|
392
|
+
@pulumi.getter(name="oauthScopes")
|
|
393
|
+
def oauth_scopes(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
394
|
+
"""
|
|
395
|
+
List of OAuth2 scopes to request. These scopes will be
|
|
396
|
+
used when obtaining access tokens.
|
|
397
|
+
"""
|
|
398
|
+
return pulumi.get(self, "oauth_scopes")
|
|
399
|
+
|
|
400
|
+
@oauth_scopes.setter
|
|
401
|
+
def oauth_scopes(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
402
|
+
pulumi.set(self, "oauth_scopes", value)
|
|
403
|
+
|
|
404
|
+
@_builtins.property
|
|
405
|
+
@pulumi.getter(name="preferredUsernameClaims")
|
|
406
|
+
def preferred_username_claims(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]:
|
|
407
|
+
"""
|
|
408
|
+
List of JWT claims to use as the preferred username.
|
|
409
|
+
The first claim found in the token will be used as the username.
|
|
410
|
+
"""
|
|
411
|
+
return pulumi.get(self, "preferred_username_claims")
|
|
412
|
+
|
|
413
|
+
@preferred_username_claims.setter
|
|
414
|
+
def preferred_username_claims(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]]):
|
|
415
|
+
pulumi.set(self, "preferred_username_claims", value)
|
|
416
|
+
|
|
417
|
+
@_builtins.property
|
|
418
|
+
@pulumi.getter(name="resourceServerId")
|
|
419
|
+
def resource_server_id(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
420
|
+
"""
|
|
421
|
+
Resource server identifier used to identify the resource
|
|
422
|
+
server in OAuth2 tokens.
|
|
423
|
+
"""
|
|
424
|
+
return pulumi.get(self, "resource_server_id")
|
|
425
|
+
|
|
426
|
+
@resource_server_id.setter
|
|
427
|
+
def resource_server_id(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
428
|
+
pulumi.set(self, "resource_server_id", value)
|
|
429
|
+
|
|
430
|
+
@_builtins.property
|
|
431
|
+
@pulumi.getter(name="scopeAliases")
|
|
432
|
+
def scope_aliases(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]:
|
|
433
|
+
"""
|
|
434
|
+
Map of scope aliases to translate scope names. This allows
|
|
435
|
+
mapping OAuth2 scopes to RabbitMQ permission tags.
|
|
436
|
+
"""
|
|
437
|
+
return pulumi.get(self, "scope_aliases")
|
|
438
|
+
|
|
439
|
+
@scope_aliases.setter
|
|
440
|
+
def scope_aliases(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]]):
|
|
441
|
+
pulumi.set(self, "scope_aliases", value)
|
|
442
|
+
|
|
443
|
+
@_builtins.property
|
|
444
|
+
@pulumi.getter(name="scopePrefix")
|
|
445
|
+
def scope_prefix(self) -> Optional[pulumi.Input[_builtins.str]]:
|
|
446
|
+
"""
|
|
447
|
+
Prefix to add to scopes. This is useful when scopes in
|
|
448
|
+
the JWT token need to be prefixed for RabbitMQ permissions.
|
|
449
|
+
"""
|
|
450
|
+
return pulumi.get(self, "scope_prefix")
|
|
451
|
+
|
|
452
|
+
@scope_prefix.setter
|
|
453
|
+
def scope_prefix(self, value: Optional[pulumi.Input[_builtins.str]]):
|
|
454
|
+
pulumi.set(self, "scope_prefix", value)
|
|
455
|
+
|
|
456
|
+
@_builtins.property
|
|
457
|
+
@pulumi.getter
|
|
458
|
+
def sleep(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
459
|
+
"""
|
|
460
|
+
Configurable sleep time in seconds between retries for
|
|
461
|
+
OAuth2 configuration. Default set to 60 seconds.
|
|
462
|
+
"""
|
|
463
|
+
return pulumi.get(self, "sleep")
|
|
464
|
+
|
|
465
|
+
@sleep.setter
|
|
466
|
+
def sleep(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
467
|
+
pulumi.set(self, "sleep", value)
|
|
468
|
+
|
|
469
|
+
@_builtins.property
|
|
470
|
+
@pulumi.getter
|
|
471
|
+
def timeout(self) -> Optional[pulumi.Input[_builtins.int]]:
|
|
472
|
+
"""
|
|
473
|
+
Configurable timeout time in seconds for OAuth2
|
|
474
|
+
configuration. Default set to 3600 seconds.
|
|
475
|
+
"""
|
|
476
|
+
return pulumi.get(self, "timeout")
|
|
477
|
+
|
|
478
|
+
@timeout.setter
|
|
479
|
+
def timeout(self, value: Optional[pulumi.Input[_builtins.int]]):
|
|
480
|
+
pulumi.set(self, "timeout", value)
|
|
481
|
+
|
|
482
|
+
@_builtins.property
|
|
483
|
+
@pulumi.getter(name="verifyAud")
|
|
484
|
+
def verify_aud(self) -> Optional[pulumi.Input[_builtins.bool]]:
|
|
485
|
+
"""
|
|
486
|
+
Whether to verify the audience claim in the JWT
|
|
487
|
+
token. Defaults to true.
|
|
488
|
+
"""
|
|
489
|
+
return pulumi.get(self, "verify_aud")
|
|
490
|
+
|
|
491
|
+
@verify_aud.setter
|
|
492
|
+
def verify_aud(self, value: Optional[pulumi.Input[_builtins.bool]]):
|
|
493
|
+
pulumi.set(self, "verify_aud", value)
|
|
494
|
+
|
|
495
|
+
|
|
496
|
+
@pulumi.type_token("cloudamqp:index/oauth2Configuration:Oauth2Configuration")
|
|
497
|
+
class Oauth2Configuration(pulumi.CustomResource):
|
|
498
|
+
@overload
|
|
499
|
+
def __init__(__self__,
|
|
500
|
+
resource_name: str,
|
|
501
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
502
|
+
additional_scopes_keys: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
503
|
+
audience: Optional[pulumi.Input[_builtins.str]] = None,
|
|
504
|
+
instance_id: Optional[pulumi.Input[_builtins.int]] = None,
|
|
505
|
+
issuer: Optional[pulumi.Input[_builtins.str]] = None,
|
|
506
|
+
oauth_client_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
507
|
+
oauth_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
508
|
+
preferred_username_claims: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
509
|
+
resource_server_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
510
|
+
scope_aliases: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
511
|
+
scope_prefix: Optional[pulumi.Input[_builtins.str]] = None,
|
|
512
|
+
sleep: Optional[pulumi.Input[_builtins.int]] = None,
|
|
513
|
+
timeout: Optional[pulumi.Input[_builtins.int]] = None,
|
|
514
|
+
verify_aud: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
515
|
+
__props__=None):
|
|
516
|
+
"""
|
|
517
|
+
This resource allows you to configure OAuth2 authentication for your RabbitMQ instance.
|
|
518
|
+
|
|
519
|
+
Only available for dedicated subscription plans running ***RabbitMQ***.
|
|
520
|
+
|
|
521
|
+
## Example Usage
|
|
522
|
+
|
|
523
|
+
<details>
|
|
524
|
+
<summary>
|
|
525
|
+
<b>
|
|
526
|
+
<i>Basic OAuth2 configuration</i>
|
|
527
|
+
</b>
|
|
528
|
+
</summary>
|
|
529
|
+
|
|
530
|
+
```python
|
|
531
|
+
import pulumi
|
|
532
|
+
import pulumi_cloudamqp as cloudamqp
|
|
533
|
+
|
|
534
|
+
oauth2_config = cloudamqp.Oauth2Configuration("oauth2_config",
|
|
535
|
+
instance_id=instance["id"],
|
|
536
|
+
resource_server_id="test-resource-server",
|
|
537
|
+
issuer="https://test-issuer.example.com",
|
|
538
|
+
verify_aud=True,
|
|
539
|
+
oauth_client_id="test-client-id",
|
|
540
|
+
oauth_scopes=[
|
|
541
|
+
"read",
|
|
542
|
+
"write",
|
|
543
|
+
])
|
|
544
|
+
```
|
|
545
|
+
|
|
546
|
+
</details>
|
|
547
|
+
|
|
548
|
+
<details>
|
|
549
|
+
<summary>
|
|
550
|
+
<b>
|
|
551
|
+
<i>OAuth2 configuration with all optional fields</i>
|
|
552
|
+
</b>
|
|
553
|
+
</summary>
|
|
554
|
+
|
|
555
|
+
```python
|
|
556
|
+
import pulumi
|
|
557
|
+
import pulumi_cloudamqp as cloudamqp
|
|
558
|
+
|
|
559
|
+
oauth2_config = cloudamqp.Oauth2Configuration("oauth2_config",
|
|
560
|
+
instance_id=instance["id"],
|
|
561
|
+
resource_server_id="test-resource-server",
|
|
562
|
+
issuer="https://test-issuer.example.com",
|
|
563
|
+
preferred_username_claims=[
|
|
564
|
+
"preferred_username",
|
|
565
|
+
"username",
|
|
566
|
+
],
|
|
567
|
+
additional_scopes_keys=["admin"],
|
|
568
|
+
scope_prefix="cloudamqp",
|
|
569
|
+
scope_aliases={
|
|
570
|
+
"read": "read:all",
|
|
571
|
+
"write": "write:all",
|
|
572
|
+
},
|
|
573
|
+
verify_aud=True,
|
|
574
|
+
oauth_client_id="test-client-id",
|
|
575
|
+
oauth_scopes=[
|
|
576
|
+
"read",
|
|
577
|
+
"write",
|
|
578
|
+
"admin",
|
|
579
|
+
],
|
|
580
|
+
audience="https://test-audience.example.com")
|
|
581
|
+
```
|
|
582
|
+
|
|
583
|
+
</details>
|
|
584
|
+
|
|
585
|
+
<details>
|
|
586
|
+
<summary>
|
|
587
|
+
<b>
|
|
588
|
+
<i>Minimal OAuth2 configuration</i>
|
|
589
|
+
</b>
|
|
590
|
+
</summary>
|
|
591
|
+
|
|
592
|
+
```python
|
|
593
|
+
import pulumi
|
|
594
|
+
import pulumi_cloudamqp as cloudamqp
|
|
595
|
+
|
|
596
|
+
oauth2_config = cloudamqp.Oauth2Configuration("oauth2_config",
|
|
597
|
+
instance_id=instance["id"],
|
|
598
|
+
resource_server_id="test-resource-server",
|
|
599
|
+
issuer="https://test-issuer.example.com")
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
</details>
|
|
603
|
+
|
|
604
|
+
## Dependency
|
|
605
|
+
|
|
606
|
+
This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
|
|
607
|
+
|
|
608
|
+
## Notes
|
|
609
|
+
|
|
610
|
+
* Changes to `instance_id` will force recreation of the resource.
|
|
611
|
+
* OAuth2 configuration changes are applied asynchronously and may take some time to complete. The
|
|
612
|
+
resource will poll for job completion using the configured `sleep` and `timeout` values.
|
|
613
|
+
* Only one OAuth2 configuration can exist per instance. Creating a new configuration will replace
|
|
614
|
+
any existing configuration.
|
|
615
|
+
* After a configuration has been applied, a restart of RabbitMQ is required for the changes to take effect.
|
|
616
|
+
|
|
617
|
+
## Import
|
|
618
|
+
|
|
619
|
+
`cloudamqp_oauth2_configuration` can be imported using the CloudAMQP instance identifier.
|
|
620
|
+
|
|
621
|
+
From Terraform v1.5.0, the `import` block can be used to import this resource:
|
|
622
|
+
|
|
623
|
+
hcl
|
|
624
|
+
|
|
625
|
+
import {
|
|
626
|
+
|
|
627
|
+
to = cloudamqp_oauth2_configuration.oauth2_config
|
|
628
|
+
|
|
629
|
+
id = cloudamqp_instance.instance.id
|
|
630
|
+
|
|
631
|
+
}
|
|
632
|
+
|
|
633
|
+
Or use Terraform CLI:
|
|
634
|
+
|
|
635
|
+
```sh
|
|
636
|
+
$ pulumi import cloudamqp:index/oauth2Configuration:Oauth2Configuration oauth2_config <instance_id>`
|
|
637
|
+
```
|
|
638
|
+
|
|
639
|
+
:param str resource_name: The name of the resource.
|
|
640
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
641
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] additional_scopes_keys: List of additional JWT claim keys to extract OAuth2
|
|
642
|
+
scopes from.
|
|
643
|
+
:param pulumi.Input[_builtins.str] audience: The audience to be passed along to the Oauth2 provider when
|
|
644
|
+
logging in to the management interface. Must be configured for Auth0,
|
|
645
|
+
cannot be configured for Entra ID v2.
|
|
646
|
+
:param pulumi.Input[_builtins.int] instance_id: The CloudAMQP instance ID.
|
|
647
|
+
:param pulumi.Input[_builtins.str] issuer: The issuer URL of the OAuth2 provider. This is typically
|
|
648
|
+
the base URL of your OAuth2 provider (e.g., Auth0, Keycloak, etc.).
|
|
649
|
+
:param pulumi.Input[_builtins.str] oauth_client_id: OAuth2 client ID used for token validation.
|
|
650
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] oauth_scopes: List of OAuth2 scopes to request. These scopes will be
|
|
651
|
+
used when obtaining access tokens.
|
|
652
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] preferred_username_claims: List of JWT claims to use as the preferred username.
|
|
653
|
+
The first claim found in the token will be used as the username.
|
|
654
|
+
:param pulumi.Input[_builtins.str] resource_server_id: Resource server identifier used to identify the resource
|
|
655
|
+
server in OAuth2 tokens.
|
|
656
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] scope_aliases: Map of scope aliases to translate scope names. This allows
|
|
657
|
+
mapping OAuth2 scopes to RabbitMQ permission tags.
|
|
658
|
+
:param pulumi.Input[_builtins.str] scope_prefix: Prefix to add to scopes. This is useful when scopes in
|
|
659
|
+
the JWT token need to be prefixed for RabbitMQ permissions.
|
|
660
|
+
:param pulumi.Input[_builtins.int] sleep: Configurable sleep time in seconds between retries for
|
|
661
|
+
OAuth2 configuration. Default set to 60 seconds.
|
|
662
|
+
:param pulumi.Input[_builtins.int] timeout: Configurable timeout time in seconds for OAuth2
|
|
663
|
+
configuration. Default set to 3600 seconds.
|
|
664
|
+
:param pulumi.Input[_builtins.bool] verify_aud: Whether to verify the audience claim in the JWT
|
|
665
|
+
token. Defaults to true.
|
|
666
|
+
"""
|
|
667
|
+
...
|
|
668
|
+
@overload
|
|
669
|
+
def __init__(__self__,
|
|
670
|
+
resource_name: str,
|
|
671
|
+
args: Oauth2ConfigurationArgs,
|
|
672
|
+
opts: Optional[pulumi.ResourceOptions] = None):
|
|
673
|
+
"""
|
|
674
|
+
This resource allows you to configure OAuth2 authentication for your RabbitMQ instance.
|
|
675
|
+
|
|
676
|
+
Only available for dedicated subscription plans running ***RabbitMQ***.
|
|
677
|
+
|
|
678
|
+
## Example Usage
|
|
679
|
+
|
|
680
|
+
<details>
|
|
681
|
+
<summary>
|
|
682
|
+
<b>
|
|
683
|
+
<i>Basic OAuth2 configuration</i>
|
|
684
|
+
</b>
|
|
685
|
+
</summary>
|
|
686
|
+
|
|
687
|
+
```python
|
|
688
|
+
import pulumi
|
|
689
|
+
import pulumi_cloudamqp as cloudamqp
|
|
690
|
+
|
|
691
|
+
oauth2_config = cloudamqp.Oauth2Configuration("oauth2_config",
|
|
692
|
+
instance_id=instance["id"],
|
|
693
|
+
resource_server_id="test-resource-server",
|
|
694
|
+
issuer="https://test-issuer.example.com",
|
|
695
|
+
verify_aud=True,
|
|
696
|
+
oauth_client_id="test-client-id",
|
|
697
|
+
oauth_scopes=[
|
|
698
|
+
"read",
|
|
699
|
+
"write",
|
|
700
|
+
])
|
|
701
|
+
```
|
|
702
|
+
|
|
703
|
+
</details>
|
|
704
|
+
|
|
705
|
+
<details>
|
|
706
|
+
<summary>
|
|
707
|
+
<b>
|
|
708
|
+
<i>OAuth2 configuration with all optional fields</i>
|
|
709
|
+
</b>
|
|
710
|
+
</summary>
|
|
711
|
+
|
|
712
|
+
```python
|
|
713
|
+
import pulumi
|
|
714
|
+
import pulumi_cloudamqp as cloudamqp
|
|
715
|
+
|
|
716
|
+
oauth2_config = cloudamqp.Oauth2Configuration("oauth2_config",
|
|
717
|
+
instance_id=instance["id"],
|
|
718
|
+
resource_server_id="test-resource-server",
|
|
719
|
+
issuer="https://test-issuer.example.com",
|
|
720
|
+
preferred_username_claims=[
|
|
721
|
+
"preferred_username",
|
|
722
|
+
"username",
|
|
723
|
+
],
|
|
724
|
+
additional_scopes_keys=["admin"],
|
|
725
|
+
scope_prefix="cloudamqp",
|
|
726
|
+
scope_aliases={
|
|
727
|
+
"read": "read:all",
|
|
728
|
+
"write": "write:all",
|
|
729
|
+
},
|
|
730
|
+
verify_aud=True,
|
|
731
|
+
oauth_client_id="test-client-id",
|
|
732
|
+
oauth_scopes=[
|
|
733
|
+
"read",
|
|
734
|
+
"write",
|
|
735
|
+
"admin",
|
|
736
|
+
],
|
|
737
|
+
audience="https://test-audience.example.com")
|
|
738
|
+
```
|
|
739
|
+
|
|
740
|
+
</details>
|
|
741
|
+
|
|
742
|
+
<details>
|
|
743
|
+
<summary>
|
|
744
|
+
<b>
|
|
745
|
+
<i>Minimal OAuth2 configuration</i>
|
|
746
|
+
</b>
|
|
747
|
+
</summary>
|
|
748
|
+
|
|
749
|
+
```python
|
|
750
|
+
import pulumi
|
|
751
|
+
import pulumi_cloudamqp as cloudamqp
|
|
752
|
+
|
|
753
|
+
oauth2_config = cloudamqp.Oauth2Configuration("oauth2_config",
|
|
754
|
+
instance_id=instance["id"],
|
|
755
|
+
resource_server_id="test-resource-server",
|
|
756
|
+
issuer="https://test-issuer.example.com")
|
|
757
|
+
```
|
|
758
|
+
|
|
759
|
+
</details>
|
|
760
|
+
|
|
761
|
+
## Dependency
|
|
762
|
+
|
|
763
|
+
This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
|
|
764
|
+
|
|
765
|
+
## Notes
|
|
766
|
+
|
|
767
|
+
* Changes to `instance_id` will force recreation of the resource.
|
|
768
|
+
* OAuth2 configuration changes are applied asynchronously and may take some time to complete. The
|
|
769
|
+
resource will poll for job completion using the configured `sleep` and `timeout` values.
|
|
770
|
+
* Only one OAuth2 configuration can exist per instance. Creating a new configuration will replace
|
|
771
|
+
any existing configuration.
|
|
772
|
+
* After a configuration has been applied, a restart of RabbitMQ is required for the changes to take effect.
|
|
773
|
+
|
|
774
|
+
## Import
|
|
775
|
+
|
|
776
|
+
`cloudamqp_oauth2_configuration` can be imported using the CloudAMQP instance identifier.
|
|
777
|
+
|
|
778
|
+
From Terraform v1.5.0, the `import` block can be used to import this resource:
|
|
779
|
+
|
|
780
|
+
hcl
|
|
781
|
+
|
|
782
|
+
import {
|
|
783
|
+
|
|
784
|
+
to = cloudamqp_oauth2_configuration.oauth2_config
|
|
785
|
+
|
|
786
|
+
id = cloudamqp_instance.instance.id
|
|
787
|
+
|
|
788
|
+
}
|
|
789
|
+
|
|
790
|
+
Or use Terraform CLI:
|
|
791
|
+
|
|
792
|
+
```sh
|
|
793
|
+
$ pulumi import cloudamqp:index/oauth2Configuration:Oauth2Configuration oauth2_config <instance_id>`
|
|
794
|
+
```
|
|
795
|
+
|
|
796
|
+
:param str resource_name: The name of the resource.
|
|
797
|
+
:param Oauth2ConfigurationArgs args: The arguments to use to populate this resource's properties.
|
|
798
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
799
|
+
"""
|
|
800
|
+
...
|
|
801
|
+
def __init__(__self__, resource_name: str, *args, **kwargs):
|
|
802
|
+
resource_args, opts = _utilities.get_resource_args_opts(Oauth2ConfigurationArgs, pulumi.ResourceOptions, *args, **kwargs)
|
|
803
|
+
if resource_args is not None:
|
|
804
|
+
__self__._internal_init(resource_name, opts, **resource_args.__dict__)
|
|
805
|
+
else:
|
|
806
|
+
__self__._internal_init(resource_name, *args, **kwargs)
|
|
807
|
+
|
|
808
|
+
def _internal_init(__self__,
|
|
809
|
+
resource_name: str,
|
|
810
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
811
|
+
additional_scopes_keys: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
812
|
+
audience: Optional[pulumi.Input[_builtins.str]] = None,
|
|
813
|
+
instance_id: Optional[pulumi.Input[_builtins.int]] = None,
|
|
814
|
+
issuer: Optional[pulumi.Input[_builtins.str]] = None,
|
|
815
|
+
oauth_client_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
816
|
+
oauth_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
817
|
+
preferred_username_claims: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
818
|
+
resource_server_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
819
|
+
scope_aliases: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
820
|
+
scope_prefix: Optional[pulumi.Input[_builtins.str]] = None,
|
|
821
|
+
sleep: Optional[pulumi.Input[_builtins.int]] = None,
|
|
822
|
+
timeout: Optional[pulumi.Input[_builtins.int]] = None,
|
|
823
|
+
verify_aud: Optional[pulumi.Input[_builtins.bool]] = None,
|
|
824
|
+
__props__=None):
|
|
825
|
+
opts = pulumi.ResourceOptions.merge(_utilities.get_resource_opts_defaults(), opts)
|
|
826
|
+
if not isinstance(opts, pulumi.ResourceOptions):
|
|
827
|
+
raise TypeError('Expected resource options to be a ResourceOptions instance')
|
|
828
|
+
if opts.id is None:
|
|
829
|
+
if __props__ is not None:
|
|
830
|
+
raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
|
|
831
|
+
__props__ = Oauth2ConfigurationArgs.__new__(Oauth2ConfigurationArgs)
|
|
832
|
+
|
|
833
|
+
__props__.__dict__["additional_scopes_keys"] = additional_scopes_keys
|
|
834
|
+
__props__.__dict__["audience"] = audience
|
|
835
|
+
if instance_id is None and not opts.urn:
|
|
836
|
+
raise TypeError("Missing required property 'instance_id'")
|
|
837
|
+
__props__.__dict__["instance_id"] = instance_id
|
|
838
|
+
if issuer is None and not opts.urn:
|
|
839
|
+
raise TypeError("Missing required property 'issuer'")
|
|
840
|
+
__props__.__dict__["issuer"] = issuer
|
|
841
|
+
__props__.__dict__["oauth_client_id"] = oauth_client_id
|
|
842
|
+
__props__.__dict__["oauth_scopes"] = oauth_scopes
|
|
843
|
+
__props__.__dict__["preferred_username_claims"] = preferred_username_claims
|
|
844
|
+
if resource_server_id is None and not opts.urn:
|
|
845
|
+
raise TypeError("Missing required property 'resource_server_id'")
|
|
846
|
+
__props__.__dict__["resource_server_id"] = resource_server_id
|
|
847
|
+
__props__.__dict__["scope_aliases"] = scope_aliases
|
|
848
|
+
__props__.__dict__["scope_prefix"] = scope_prefix
|
|
849
|
+
__props__.__dict__["sleep"] = sleep
|
|
850
|
+
__props__.__dict__["timeout"] = timeout
|
|
851
|
+
__props__.__dict__["verify_aud"] = verify_aud
|
|
852
|
+
super(Oauth2Configuration, __self__).__init__(
|
|
853
|
+
'cloudamqp:index/oauth2Configuration:Oauth2Configuration',
|
|
854
|
+
resource_name,
|
|
855
|
+
__props__,
|
|
856
|
+
opts)
|
|
857
|
+
|
|
858
|
+
@staticmethod
|
|
859
|
+
def get(resource_name: str,
|
|
860
|
+
id: pulumi.Input[str],
|
|
861
|
+
opts: Optional[pulumi.ResourceOptions] = None,
|
|
862
|
+
additional_scopes_keys: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
863
|
+
audience: Optional[pulumi.Input[_builtins.str]] = None,
|
|
864
|
+
instance_id: Optional[pulumi.Input[_builtins.int]] = None,
|
|
865
|
+
issuer: Optional[pulumi.Input[_builtins.str]] = None,
|
|
866
|
+
oauth_client_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
867
|
+
oauth_scopes: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
868
|
+
preferred_username_claims: Optional[pulumi.Input[Sequence[pulumi.Input[_builtins.str]]]] = None,
|
|
869
|
+
resource_server_id: Optional[pulumi.Input[_builtins.str]] = None,
|
|
870
|
+
scope_aliases: Optional[pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]]] = None,
|
|
871
|
+
scope_prefix: Optional[pulumi.Input[_builtins.str]] = None,
|
|
872
|
+
sleep: Optional[pulumi.Input[_builtins.int]] = None,
|
|
873
|
+
timeout: Optional[pulumi.Input[_builtins.int]] = None,
|
|
874
|
+
verify_aud: Optional[pulumi.Input[_builtins.bool]] = None) -> 'Oauth2Configuration':
|
|
875
|
+
"""
|
|
876
|
+
Get an existing Oauth2Configuration resource's state with the given name, id, and optional extra
|
|
877
|
+
properties used to qualify the lookup.
|
|
878
|
+
|
|
879
|
+
:param str resource_name: The unique name of the resulting resource.
|
|
880
|
+
:param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
|
|
881
|
+
:param pulumi.ResourceOptions opts: Options for the resource.
|
|
882
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] additional_scopes_keys: List of additional JWT claim keys to extract OAuth2
|
|
883
|
+
scopes from.
|
|
884
|
+
:param pulumi.Input[_builtins.str] audience: The audience to be passed along to the Oauth2 provider when
|
|
885
|
+
logging in to the management interface. Must be configured for Auth0,
|
|
886
|
+
cannot be configured for Entra ID v2.
|
|
887
|
+
:param pulumi.Input[_builtins.int] instance_id: The CloudAMQP instance ID.
|
|
888
|
+
:param pulumi.Input[_builtins.str] issuer: The issuer URL of the OAuth2 provider. This is typically
|
|
889
|
+
the base URL of your OAuth2 provider (e.g., Auth0, Keycloak, etc.).
|
|
890
|
+
:param pulumi.Input[_builtins.str] oauth_client_id: OAuth2 client ID used for token validation.
|
|
891
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] oauth_scopes: List of OAuth2 scopes to request. These scopes will be
|
|
892
|
+
used when obtaining access tokens.
|
|
893
|
+
:param pulumi.Input[Sequence[pulumi.Input[_builtins.str]]] preferred_username_claims: List of JWT claims to use as the preferred username.
|
|
894
|
+
The first claim found in the token will be used as the username.
|
|
895
|
+
:param pulumi.Input[_builtins.str] resource_server_id: Resource server identifier used to identify the resource
|
|
896
|
+
server in OAuth2 tokens.
|
|
897
|
+
:param pulumi.Input[Mapping[str, pulumi.Input[_builtins.str]]] scope_aliases: Map of scope aliases to translate scope names. This allows
|
|
898
|
+
mapping OAuth2 scopes to RabbitMQ permission tags.
|
|
899
|
+
:param pulumi.Input[_builtins.str] scope_prefix: Prefix to add to scopes. This is useful when scopes in
|
|
900
|
+
the JWT token need to be prefixed for RabbitMQ permissions.
|
|
901
|
+
:param pulumi.Input[_builtins.int] sleep: Configurable sleep time in seconds between retries for
|
|
902
|
+
OAuth2 configuration. Default set to 60 seconds.
|
|
903
|
+
:param pulumi.Input[_builtins.int] timeout: Configurable timeout time in seconds for OAuth2
|
|
904
|
+
configuration. Default set to 3600 seconds.
|
|
905
|
+
:param pulumi.Input[_builtins.bool] verify_aud: Whether to verify the audience claim in the JWT
|
|
906
|
+
token. Defaults to true.
|
|
907
|
+
"""
|
|
908
|
+
opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))
|
|
909
|
+
|
|
910
|
+
__props__ = _Oauth2ConfigurationState.__new__(_Oauth2ConfigurationState)
|
|
911
|
+
|
|
912
|
+
__props__.__dict__["additional_scopes_keys"] = additional_scopes_keys
|
|
913
|
+
__props__.__dict__["audience"] = audience
|
|
914
|
+
__props__.__dict__["instance_id"] = instance_id
|
|
915
|
+
__props__.__dict__["issuer"] = issuer
|
|
916
|
+
__props__.__dict__["oauth_client_id"] = oauth_client_id
|
|
917
|
+
__props__.__dict__["oauth_scopes"] = oauth_scopes
|
|
918
|
+
__props__.__dict__["preferred_username_claims"] = preferred_username_claims
|
|
919
|
+
__props__.__dict__["resource_server_id"] = resource_server_id
|
|
920
|
+
__props__.__dict__["scope_aliases"] = scope_aliases
|
|
921
|
+
__props__.__dict__["scope_prefix"] = scope_prefix
|
|
922
|
+
__props__.__dict__["sleep"] = sleep
|
|
923
|
+
__props__.__dict__["timeout"] = timeout
|
|
924
|
+
__props__.__dict__["verify_aud"] = verify_aud
|
|
925
|
+
return Oauth2Configuration(resource_name, opts=opts, __props__=__props__)
|
|
926
|
+
|
|
927
|
+
@_builtins.property
|
|
928
|
+
@pulumi.getter(name="additionalScopesKeys")
|
|
929
|
+
def additional_scopes_keys(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
|
|
930
|
+
"""
|
|
931
|
+
List of additional JWT claim keys to extract OAuth2
|
|
932
|
+
scopes from.
|
|
933
|
+
"""
|
|
934
|
+
return pulumi.get(self, "additional_scopes_keys")
|
|
935
|
+
|
|
936
|
+
@_builtins.property
|
|
937
|
+
@pulumi.getter
|
|
938
|
+
def audience(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
939
|
+
"""
|
|
940
|
+
The audience to be passed along to the Oauth2 provider when
|
|
941
|
+
logging in to the management interface. Must be configured for Auth0,
|
|
942
|
+
cannot be configured for Entra ID v2.
|
|
943
|
+
"""
|
|
944
|
+
return pulumi.get(self, "audience")
|
|
945
|
+
|
|
946
|
+
@_builtins.property
|
|
947
|
+
@pulumi.getter(name="instanceId")
|
|
948
|
+
def instance_id(self) -> pulumi.Output[_builtins.int]:
|
|
949
|
+
"""
|
|
950
|
+
The CloudAMQP instance ID.
|
|
951
|
+
"""
|
|
952
|
+
return pulumi.get(self, "instance_id")
|
|
953
|
+
|
|
954
|
+
@_builtins.property
|
|
955
|
+
@pulumi.getter
|
|
956
|
+
def issuer(self) -> pulumi.Output[_builtins.str]:
|
|
957
|
+
"""
|
|
958
|
+
The issuer URL of the OAuth2 provider. This is typically
|
|
959
|
+
the base URL of your OAuth2 provider (e.g., Auth0, Keycloak, etc.).
|
|
960
|
+
"""
|
|
961
|
+
return pulumi.get(self, "issuer")
|
|
962
|
+
|
|
963
|
+
@_builtins.property
|
|
964
|
+
@pulumi.getter(name="oauthClientId")
|
|
965
|
+
def oauth_client_id(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
966
|
+
"""
|
|
967
|
+
OAuth2 client ID used for token validation.
|
|
968
|
+
"""
|
|
969
|
+
return pulumi.get(self, "oauth_client_id")
|
|
970
|
+
|
|
971
|
+
@_builtins.property
|
|
972
|
+
@pulumi.getter(name="oauthScopes")
|
|
973
|
+
def oauth_scopes(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
|
|
974
|
+
"""
|
|
975
|
+
List of OAuth2 scopes to request. These scopes will be
|
|
976
|
+
used when obtaining access tokens.
|
|
977
|
+
"""
|
|
978
|
+
return pulumi.get(self, "oauth_scopes")
|
|
979
|
+
|
|
980
|
+
@_builtins.property
|
|
981
|
+
@pulumi.getter(name="preferredUsernameClaims")
|
|
982
|
+
def preferred_username_claims(self) -> pulumi.Output[Optional[Sequence[_builtins.str]]]:
|
|
983
|
+
"""
|
|
984
|
+
List of JWT claims to use as the preferred username.
|
|
985
|
+
The first claim found in the token will be used as the username.
|
|
986
|
+
"""
|
|
987
|
+
return pulumi.get(self, "preferred_username_claims")
|
|
988
|
+
|
|
989
|
+
@_builtins.property
|
|
990
|
+
@pulumi.getter(name="resourceServerId")
|
|
991
|
+
def resource_server_id(self) -> pulumi.Output[_builtins.str]:
|
|
992
|
+
"""
|
|
993
|
+
Resource server identifier used to identify the resource
|
|
994
|
+
server in OAuth2 tokens.
|
|
995
|
+
"""
|
|
996
|
+
return pulumi.get(self, "resource_server_id")
|
|
997
|
+
|
|
998
|
+
@_builtins.property
|
|
999
|
+
@pulumi.getter(name="scopeAliases")
|
|
1000
|
+
def scope_aliases(self) -> pulumi.Output[Optional[Mapping[str, _builtins.str]]]:
|
|
1001
|
+
"""
|
|
1002
|
+
Map of scope aliases to translate scope names. This allows
|
|
1003
|
+
mapping OAuth2 scopes to RabbitMQ permission tags.
|
|
1004
|
+
"""
|
|
1005
|
+
return pulumi.get(self, "scope_aliases")
|
|
1006
|
+
|
|
1007
|
+
@_builtins.property
|
|
1008
|
+
@pulumi.getter(name="scopePrefix")
|
|
1009
|
+
def scope_prefix(self) -> pulumi.Output[Optional[_builtins.str]]:
|
|
1010
|
+
"""
|
|
1011
|
+
Prefix to add to scopes. This is useful when scopes in
|
|
1012
|
+
the JWT token need to be prefixed for RabbitMQ permissions.
|
|
1013
|
+
"""
|
|
1014
|
+
return pulumi.get(self, "scope_prefix")
|
|
1015
|
+
|
|
1016
|
+
@_builtins.property
|
|
1017
|
+
@pulumi.getter
|
|
1018
|
+
def sleep(self) -> pulumi.Output[_builtins.int]:
|
|
1019
|
+
"""
|
|
1020
|
+
Configurable sleep time in seconds between retries for
|
|
1021
|
+
OAuth2 configuration. Default set to 60 seconds.
|
|
1022
|
+
"""
|
|
1023
|
+
return pulumi.get(self, "sleep")
|
|
1024
|
+
|
|
1025
|
+
@_builtins.property
|
|
1026
|
+
@pulumi.getter
|
|
1027
|
+
def timeout(self) -> pulumi.Output[_builtins.int]:
|
|
1028
|
+
"""
|
|
1029
|
+
Configurable timeout time in seconds for OAuth2
|
|
1030
|
+
configuration. Default set to 3600 seconds.
|
|
1031
|
+
"""
|
|
1032
|
+
return pulumi.get(self, "timeout")
|
|
1033
|
+
|
|
1034
|
+
@_builtins.property
|
|
1035
|
+
@pulumi.getter(name="verifyAud")
|
|
1036
|
+
def verify_aud(self) -> pulumi.Output[_builtins.bool]:
|
|
1037
|
+
"""
|
|
1038
|
+
Whether to verify the audience claim in the JWT
|
|
1039
|
+
token. Defaults to true.
|
|
1040
|
+
"""
|
|
1041
|
+
return pulumi.get(self, "verify_aud")
|
|
1042
|
+
|