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.

Files changed (54) hide show
  1. pulumi_cloudamqp/__init__.py +23 -5
  2. pulumi_cloudamqp/_inputs.py +633 -82
  3. pulumi_cloudamqp/_utilities.py +1 -1
  4. pulumi_cloudamqp/{account_action.py → account_actions.py} +60 -74
  5. pulumi_cloudamqp/alarm.py +189 -190
  6. pulumi_cloudamqp/config/__init__.py +2 -2
  7. pulumi_cloudamqp/config/__init__.pyi +2 -3
  8. pulumi_cloudamqp/config/vars.py +5 -6
  9. pulumi_cloudamqp/custom_domain.py +40 -41
  10. pulumi_cloudamqp/extra_disk_size.py +89 -90
  11. pulumi_cloudamqp/get_account.py +5 -6
  12. pulumi_cloudamqp/get_account_vpcs.py +5 -6
  13. pulumi_cloudamqp/get_alarm.py +44 -45
  14. pulumi_cloudamqp/get_alarms.py +17 -18
  15. pulumi_cloudamqp/get_credentials.py +14 -15
  16. pulumi_cloudamqp/get_instance.py +44 -45
  17. pulumi_cloudamqp/get_nodes.py +11 -12
  18. pulumi_cloudamqp/get_notification.py +32 -33
  19. pulumi_cloudamqp/get_notifications.py +11 -12
  20. pulumi_cloudamqp/get_plugins.py +23 -24
  21. pulumi_cloudamqp/get_plugins_community.py +23 -24
  22. pulumi_cloudamqp/get_upgradable_versions.py +14 -15
  23. pulumi_cloudamqp/get_vpc_gcp_info.py +34 -35
  24. pulumi_cloudamqp/get_vpc_info.py +24 -25
  25. pulumi_cloudamqp/instance.py +428 -280
  26. pulumi_cloudamqp/integration_aws_eventbridge.py +246 -116
  27. pulumi_cloudamqp/integration_log.py +982 -581
  28. pulumi_cloudamqp/integration_metric.py +615 -479
  29. pulumi_cloudamqp/integration_metric_prometheus.py +770 -0
  30. pulumi_cloudamqp/maintenance_window.py +76 -73
  31. pulumi_cloudamqp/node_actions.py +62 -63
  32. pulumi_cloudamqp/notification.py +92 -93
  33. pulumi_cloudamqp/oauth2_configuration.py +1042 -0
  34. pulumi_cloudamqp/outputs.py +680 -241
  35. pulumi_cloudamqp/plugin.py +105 -106
  36. pulumi_cloudamqp/plugin_community.py +105 -106
  37. pulumi_cloudamqp/privatelink_aws.py +97 -98
  38. pulumi_cloudamqp/privatelink_azure.py +97 -98
  39. pulumi_cloudamqp/provider.py +32 -34
  40. pulumi_cloudamqp/pulumi-plugin.json +1 -1
  41. pulumi_cloudamqp/rabbit_configuration.py +206 -221
  42. pulumi_cloudamqp/security_firewall.py +56 -57
  43. pulumi_cloudamqp/upgrade_lavinmq.py +36 -37
  44. pulumi_cloudamqp/upgrade_rabbitmq.py +53 -54
  45. pulumi_cloudamqp/vpc.py +83 -84
  46. pulumi_cloudamqp/vpc_connect.py +148 -149
  47. pulumi_cloudamqp/vpc_gcp_peering.py +131 -132
  48. pulumi_cloudamqp/vpc_peering.py +96 -97
  49. pulumi_cloudamqp/webhook.py +121 -122
  50. {pulumi_cloudamqp-3.23.0a1746768292.dist-info → pulumi_cloudamqp-3.24.2.dist-info}/METADATA +1 -1
  51. pulumi_cloudamqp-3.24.2.dist-info/RECORD +54 -0
  52. {pulumi_cloudamqp-3.23.0a1746768292.dist-info → pulumi_cloudamqp-3.24.2.dist-info}/WHEEL +1 -1
  53. pulumi_cloudamqp-3.23.0a1746768292.dist-info/RECORD +0 -52
  54. {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
+