@pulumi/cloudamqp 3.24.1 → 3.24.2

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.
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+ // *** WARNING: this file was generated by pulumi-language-nodejs. ***
3
+ // *** Do not edit by hand unless you're certain you know what you are doing! ***
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.IntegrationMetricPrometheus = void 0;
6
+ const pulumi = require("@pulumi/pulumi");
7
+ const utilities = require("./utilities");
8
+ /**
9
+ * This resource allows you to create and manage Prometheus-compatible metric integrations for CloudAMQP instances. Currently supported integrations include New Relic v3, Datadog v3, Azure Monitor, Splunk v2, Dynatrace, CloudWatch v3, and Stackdriver v2.
10
+ *
11
+ * ## Example Usage
12
+ *
13
+ * ### New Relic v3
14
+ *
15
+ * ```typescript
16
+ * import * as pulumi from "@pulumi/pulumi";
17
+ * import * as cloudamqp from "@pulumi/cloudamqp";
18
+ *
19
+ * const newrelicV3 = new cloudamqp.IntegrationMetricPrometheus("newrelic_v3", {
20
+ * instanceId: instance.id,
21
+ * newrelicV3: {
22
+ * apiKey: newrelicApiKey,
23
+ * tags: "key=value,key2=value2",
24
+ * },
25
+ * });
26
+ * ```
27
+ *
28
+ * ### Datadog v3
29
+ *
30
+ * ```typescript
31
+ * import * as pulumi from "@pulumi/pulumi";
32
+ * import * as cloudamqp from "@pulumi/cloudamqp";
33
+ *
34
+ * const datadogV3 = new cloudamqp.IntegrationMetricPrometheus("datadog_v3", {
35
+ * instanceId: instance.id,
36
+ * datadogV3: {
37
+ * apiKey: datadogApiKey,
38
+ * region: "us1",
39
+ * tags: "key=value,key2=value2",
40
+ * rabbitmqDashboardMetricsFormat: true,
41
+ * },
42
+ * });
43
+ * ```
44
+ *
45
+ * ### Azure Monitor
46
+ *
47
+ * ```typescript
48
+ * import * as pulumi from "@pulumi/pulumi";
49
+ * import * as cloudamqp from "@pulumi/cloudamqp";
50
+ *
51
+ * const azureMonitor = new cloudamqp.IntegrationMetricPrometheus("azure_monitor", {
52
+ * instanceId: instance.id,
53
+ * azureMonitor: {
54
+ * connectionString: azureMonitorConnectionString,
55
+ * },
56
+ * });
57
+ * ```
58
+ *
59
+ * ### Splunk v2
60
+ *
61
+ * ```typescript
62
+ * import * as pulumi from "@pulumi/pulumi";
63
+ * import * as cloudamqp from "@pulumi/cloudamqp";
64
+ *
65
+ * const splunkV2 = new cloudamqp.IntegrationMetricPrometheus("splunk_v2", {
66
+ * instanceId: instance.id,
67
+ * splunkV2: {
68
+ * token: splunkToken,
69
+ * endpoint: splunkEndpoint,
70
+ * tags: "key=value,key2=value2",
71
+ * },
72
+ * });
73
+ * ```
74
+ *
75
+ * ### Dynatrace
76
+ *
77
+ * ```typescript
78
+ * import * as pulumi from "@pulumi/pulumi";
79
+ * import * as cloudamqp from "@pulumi/cloudamqp";
80
+ *
81
+ * const dynatrace = new cloudamqp.IntegrationMetricPrometheus("dynatrace", {
82
+ * instanceId: instance.id,
83
+ * dynatrace: {
84
+ * environmentId: dynatraceEnvironmentId,
85
+ * accessToken: dynatraceAccessToken,
86
+ * tags: "key=value,key2=value2",
87
+ * },
88
+ * });
89
+ * ```
90
+ *
91
+ * ### CloudWatch v3
92
+ *
93
+ * ```typescript
94
+ * import * as pulumi from "@pulumi/pulumi";
95
+ * import * as cloudamqp from "@pulumi/cloudamqp";
96
+ *
97
+ * const cloudwatchV3 = new cloudamqp.IntegrationMetricPrometheus("cloudwatch_v3", {
98
+ * instanceId: instance.id,
99
+ * cloudwatchV3: {
100
+ * iamRole: cloudwatchIamRole,
101
+ * iamExternalId: cloudwatchIamExternalId,
102
+ * region: cloudwatchRegion,
103
+ * tags: "key=value,key2=value2",
104
+ * },
105
+ * });
106
+ * ```
107
+ *
108
+ * ### Stackdriver v2
109
+ *
110
+ * ```typescript
111
+ * import * as pulumi from "@pulumi/pulumi";
112
+ * import * as cloudamqp from "@pulumi/cloudamqp";
113
+ *
114
+ * const stackdriverV2 = new cloudamqp.IntegrationMetricPrometheus("stackdriver_v2", {
115
+ * instanceId: instance.id,
116
+ * stackdriverV2: {
117
+ * credentialsFile: googleServiceAccountKey,
118
+ * tags: "key=value,key2=value2",
119
+ * },
120
+ * });
121
+ * ```
122
+ *
123
+ * **Note:** The `credentialsFile` should contain a Base64-encoded Google service account key JSON file. You can create a service account in Google Cloud Console with the "Monitoring Metric Writer" role and download the key file. Then encode it with:
124
+ *
125
+ * ## Dependency
126
+ *
127
+ * This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
128
+ *
129
+ * ## Import
130
+ *
131
+ * ### Stackdriver v2
132
+ *
133
+ * hcl
134
+ *
135
+ * import {
136
+ *
137
+ * to = cloudamqp_integration_metric_prometheus.stackdriver_v2
138
+ *
139
+ * id = format("<integration_id>,%s", cloudamqp_instance.instance.id)
140
+ *
141
+ * }
142
+ *
143
+ * Or use Terraform CLI:
144
+ *
145
+ * ```sh
146
+ * $ pulumi import cloudamqp:index/integrationMetricPrometheus:IntegrationMetricPrometheus newrelic_v3 <integration_id>,<instance_id>
147
+ * ```
148
+ *
149
+ * ```sh
150
+ * $ pulumi import cloudamqp:index/integrationMetricPrometheus:IntegrationMetricPrometheus datadog_v3 <integration_id>,<instance_id>
151
+ * ```
152
+ *
153
+ * ```sh
154
+ * $ pulumi import cloudamqp:index/integrationMetricPrometheus:IntegrationMetricPrometheus azure_monitor <integration_id>,<instance_id>
155
+ * ```
156
+ *
157
+ * ```sh
158
+ * $ pulumi import cloudamqp:index/integrationMetricPrometheus:IntegrationMetricPrometheus splunk_v2 <integration_id>,<instance_id>
159
+ * ```
160
+ *
161
+ * ```sh
162
+ * $ pulumi import cloudamqp:index/integrationMetricPrometheus:IntegrationMetricPrometheus dynatrace <integration_id>,<instance_id>
163
+ * ```
164
+ *
165
+ * ```sh
166
+ * $ pulumi import cloudamqp:index/integrationMetricPrometheus:IntegrationMetricPrometheus cloudwatch_v3 <integration_id>,<instance_id>
167
+ * ```
168
+ *
169
+ * ```sh
170
+ * $ pulumi import cloudamqp:index/integrationMetricPrometheus:IntegrationMetricPrometheus stackdriver_v2 <integration_id>,<instance_id>
171
+ * ```
172
+ */
173
+ class IntegrationMetricPrometheus extends pulumi.CustomResource {
174
+ /**
175
+ * Get an existing IntegrationMetricPrometheus resource's state with the given name, ID, and optional extra
176
+ * properties used to qualify the lookup.
177
+ *
178
+ * @param name The _unique_ name of the resulting resource.
179
+ * @param id The _unique_ provider ID of the resource to lookup.
180
+ * @param state Any extra arguments used during the lookup.
181
+ * @param opts Optional settings to control the behavior of the CustomResource.
182
+ */
183
+ static get(name, id, state, opts) {
184
+ return new IntegrationMetricPrometheus(name, state, { ...opts, id: id });
185
+ }
186
+ /**
187
+ * Returns true if the given object is an instance of IntegrationMetricPrometheus. This is designed to work even
188
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
189
+ */
190
+ static isInstance(obj) {
191
+ if (obj === undefined || obj === null) {
192
+ return false;
193
+ }
194
+ return obj['__pulumiType'] === IntegrationMetricPrometheus.__pulumiType;
195
+ }
196
+ constructor(name, argsOrState, opts) {
197
+ let resourceInputs = {};
198
+ opts = opts || {};
199
+ if (opts.id) {
200
+ const state = argsOrState;
201
+ resourceInputs["azureMonitor"] = state?.azureMonitor;
202
+ resourceInputs["cloudwatchV3"] = state?.cloudwatchV3;
203
+ resourceInputs["datadogV3"] = state?.datadogV3;
204
+ resourceInputs["dynatrace"] = state?.dynatrace;
205
+ resourceInputs["instanceId"] = state?.instanceId;
206
+ resourceInputs["metricsFilters"] = state?.metricsFilters;
207
+ resourceInputs["newrelicV3"] = state?.newrelicV3;
208
+ resourceInputs["splunkV2"] = state?.splunkV2;
209
+ resourceInputs["stackdriverV2"] = state?.stackdriverV2;
210
+ }
211
+ else {
212
+ const args = argsOrState;
213
+ if (args?.instanceId === undefined && !opts.urn) {
214
+ throw new Error("Missing required property 'instanceId'");
215
+ }
216
+ resourceInputs["azureMonitor"] = args?.azureMonitor;
217
+ resourceInputs["cloudwatchV3"] = args?.cloudwatchV3;
218
+ resourceInputs["datadogV3"] = args?.datadogV3;
219
+ resourceInputs["dynatrace"] = args?.dynatrace;
220
+ resourceInputs["instanceId"] = args?.instanceId;
221
+ resourceInputs["metricsFilters"] = args?.metricsFilters;
222
+ resourceInputs["newrelicV3"] = args?.newrelicV3;
223
+ resourceInputs["splunkV2"] = args?.splunkV2;
224
+ resourceInputs["stackdriverV2"] = args?.stackdriverV2;
225
+ }
226
+ opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
227
+ super(IntegrationMetricPrometheus.__pulumiType, name, resourceInputs, opts);
228
+ }
229
+ }
230
+ exports.IntegrationMetricPrometheus = IntegrationMetricPrometheus;
231
+ /** @internal */
232
+ IntegrationMetricPrometheus.__pulumiType = 'cloudamqp:index/integrationMetricPrometheus:IntegrationMetricPrometheus';
233
+ //# sourceMappingURL=integrationMetricPrometheus.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrationMetricPrometheus.js","sourceRoot":"","sources":["../integrationMetricPrometheus.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AAGzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoKG;AACH,MAAa,2BAA4B,SAAQ,MAAM,CAAC,cAAc;IAClE;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAwC,EAAE,IAAmC;QACtI,OAAO,IAAI,2BAA2B,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAClF,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,2BAA2B,CAAC,YAAY,CAAC;IAC5E,CAAC;IA6BD,YAAY,IAAY,EAAE,WAAgF,EAAE,IAAmC;QAC3I,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAA2D,CAAC;YAC1E,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,YAAY,CAAC;YACrD,cAAc,CAAC,cAAc,CAAC,GAAG,KAAK,EAAE,YAAY,CAAC;YACrD,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;YAC/C,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;YAC/C,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,gBAAgB,CAAC,GAAG,KAAK,EAAE,cAAc,CAAC;YACzD,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,EAAE,QAAQ,CAAC;YAC7C,cAAc,CAAC,eAAe,CAAC,GAAG,KAAK,EAAE,aAAa,CAAC;SAC1D;aAAM;YACH,MAAM,IAAI,GAAG,WAA0D,CAAC;YACxE,IAAI,IAAI,EAAE,UAAU,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC7C,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;aAC7D;YACD,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC;YACpD,cAAc,CAAC,cAAc,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC;YACpD,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;YAC9C,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;YAC9C,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,gBAAgB,CAAC,GAAG,IAAI,EAAE,cAAc,CAAC;YACxD,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC;YAC5C,cAAc,CAAC,eAAe,CAAC,GAAG,IAAI,EAAE,aAAa,CAAC;SACzD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,2BAA2B,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAChF,CAAC;;AAtFL,kEAuFC;AAzEG,gBAAgB;AACO,wCAAY,GAAG,yEAAyE,CAAC"}
@@ -112,7 +112,7 @@ import * as pulumi from "@pulumi/pulumi";
112
112
  * $ pulumi import cloudamqp:index/maintenanceWindow:MaintenanceWindow this <id>`
113
113
  * ```
114
114
  *
115
- * [CloudAMQP API list instances]: https://docs.cloudamqp.com/#list-instances
115
+ * [CloudAMQP API list instances]: https://docs.cloudamqp.com/index.html#tag/instances/get/instances
116
116
  *
117
117
  * [format]: https://developer.hashicorp.com/terraform/language/functions/formatdate#specification-syntax
118
118
  */
@@ -118,7 +118,7 @@ const utilities = require("./utilities");
118
118
  * $ pulumi import cloudamqp:index/maintenanceWindow:MaintenanceWindow this <id>`
119
119
  * ```
120
120
  *
121
- * [CloudAMQP API list instances]: https://docs.cloudamqp.com/#list-instances
121
+ * [CloudAMQP API list instances]: https://docs.cloudamqp.com/index.html#tag/instances/get/instances
122
122
  *
123
123
  * [format]: https://developer.hashicorp.com/terraform/language/functions/formatdate#specification-syntax
124
124
  */
package/notification.d.ts CHANGED
@@ -222,7 +222,7 @@ import * as outputs from "./types/output";
222
222
  * $ pulumi import cloudamqp:index/notification:Notification recipient <id>,<instance_id>`
223
223
  * ```
224
224
  *
225
- * [CloudAMQP API list recipients]: https://docs.cloudamqp.com/cloudamqp_api.html#list-recipients
225
+ * [CloudAMQP API list recipients]: https://docs.cloudamqp.com/instance-api.html#tag/alarms/get/alarms/recipients
226
226
  */
227
227
  export declare class Notification extends pulumi.CustomResource {
228
228
  /**
package/notification.js CHANGED
@@ -226,7 +226,7 @@ const utilities = require("./utilities");
226
226
  * $ pulumi import cloudamqp:index/notification:Notification recipient <id>,<instance_id>`
227
227
  * ```
228
228
  *
229
- * [CloudAMQP API list recipients]: https://docs.cloudamqp.com/cloudamqp_api.html#list-recipients
229
+ * [CloudAMQP API list recipients]: https://docs.cloudamqp.com/instance-api.html#tag/alarms/get/alarms/recipients
230
230
  */
231
231
  class Notification extends pulumi.CustomResource {
232
232
  /**
@@ -0,0 +1,360 @@
1
+ import * as pulumi from "@pulumi/pulumi";
2
+ /**
3
+ * This resource allows you to configure OAuth2 authentication for your RabbitMQ instance.
4
+ *
5
+ * Only available for dedicated subscription plans running ***RabbitMQ***.
6
+ *
7
+ * ## Example Usage
8
+ *
9
+ * <details>
10
+ * <summary>
11
+ * <b>
12
+ * <i>Basic OAuth2 configuration</i>
13
+ * </b>
14
+ * </summary>
15
+ *
16
+ * ```typescript
17
+ * import * as pulumi from "@pulumi/pulumi";
18
+ * import * as cloudamqp from "@pulumi/cloudamqp";
19
+ *
20
+ * const oauth2Config = new cloudamqp.Oauth2Configuration("oauth2_config", {
21
+ * instanceId: instance.id,
22
+ * resourceServerId: "test-resource-server",
23
+ * issuer: "https://test-issuer.example.com",
24
+ * verifyAud: true,
25
+ * oauthClientId: "test-client-id",
26
+ * oauthScopes: [
27
+ * "read",
28
+ * "write",
29
+ * ],
30
+ * });
31
+ * ```
32
+ *
33
+ * </details>
34
+ *
35
+ * <details>
36
+ * <summary>
37
+ * <b>
38
+ * <i>OAuth2 configuration with all optional fields</i>
39
+ * </b>
40
+ * </summary>
41
+ *
42
+ * ```typescript
43
+ * import * as pulumi from "@pulumi/pulumi";
44
+ * import * as cloudamqp from "@pulumi/cloudamqp";
45
+ *
46
+ * const oauth2Config = new cloudamqp.Oauth2Configuration("oauth2_config", {
47
+ * instanceId: instance.id,
48
+ * resourceServerId: "test-resource-server",
49
+ * issuer: "https://test-issuer.example.com",
50
+ * preferredUsernameClaims: [
51
+ * "preferred_username",
52
+ * "username",
53
+ * ],
54
+ * additionalScopesKeys: ["admin"],
55
+ * scopePrefix: "cloudamqp",
56
+ * scopeAliases: {
57
+ * read: "read:all",
58
+ * write: "write:all",
59
+ * },
60
+ * verifyAud: true,
61
+ * oauthClientId: "test-client-id",
62
+ * oauthScopes: [
63
+ * "read",
64
+ * "write",
65
+ * "admin",
66
+ * ],
67
+ * audience: "https://test-audience.example.com",
68
+ * });
69
+ * ```
70
+ *
71
+ * </details>
72
+ *
73
+ * <details>
74
+ * <summary>
75
+ * <b>
76
+ * <i>Minimal OAuth2 configuration</i>
77
+ * </b>
78
+ * </summary>
79
+ *
80
+ * ```typescript
81
+ * import * as pulumi from "@pulumi/pulumi";
82
+ * import * as cloudamqp from "@pulumi/cloudamqp";
83
+ *
84
+ * const oauth2Config = new cloudamqp.Oauth2Configuration("oauth2_config", {
85
+ * instanceId: instance.id,
86
+ * resourceServerId: "test-resource-server",
87
+ * issuer: "https://test-issuer.example.com",
88
+ * });
89
+ * ```
90
+ *
91
+ * </details>
92
+ *
93
+ * ## Dependency
94
+ *
95
+ * This resource depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`.
96
+ *
97
+ * ## Notes
98
+ *
99
+ * * Changes to `instanceId` will force recreation of the resource.
100
+ * * OAuth2 configuration changes are applied asynchronously and may take some time to complete. The
101
+ * resource will poll for job completion using the configured `sleep` and `timeout` values.
102
+ * * Only one OAuth2 configuration can exist per instance. Creating a new configuration will replace
103
+ * any existing configuration.
104
+ * * After a configuration has been applied, a restart of RabbitMQ is required for the changes to take effect.
105
+ *
106
+ * ## Import
107
+ *
108
+ * `cloudamqp_oauth2_configuration` can be imported using the CloudAMQP instance identifier.
109
+ *
110
+ * From Terraform v1.5.0, the `import` block can be used to import this resource:
111
+ *
112
+ * hcl
113
+ *
114
+ * import {
115
+ *
116
+ * to = cloudamqp_oauth2_configuration.oauth2_config
117
+ *
118
+ * id = cloudamqp_instance.instance.id
119
+ *
120
+ * }
121
+ *
122
+ * Or use Terraform CLI:
123
+ *
124
+ * ```sh
125
+ * $ pulumi import cloudamqp:index/oauth2Configuration:Oauth2Configuration oauth2_config <instance_id>`
126
+ * ```
127
+ */
128
+ export declare class Oauth2Configuration extends pulumi.CustomResource {
129
+ /**
130
+ * Get an existing Oauth2Configuration resource's state with the given name, ID, and optional extra
131
+ * properties used to qualify the lookup.
132
+ *
133
+ * @param name The _unique_ name of the resulting resource.
134
+ * @param id The _unique_ provider ID of the resource to lookup.
135
+ * @param state Any extra arguments used during the lookup.
136
+ * @param opts Optional settings to control the behavior of the CustomResource.
137
+ */
138
+ static get(name: string, id: pulumi.Input<pulumi.ID>, state?: Oauth2ConfigurationState, opts?: pulumi.CustomResourceOptions): Oauth2Configuration;
139
+ /**
140
+ * Returns true if the given object is an instance of Oauth2Configuration. This is designed to work even
141
+ * when multiple copies of the Pulumi SDK have been loaded into the same process.
142
+ */
143
+ static isInstance(obj: any): obj is Oauth2Configuration;
144
+ /**
145
+ * List of additional JWT claim keys to extract OAuth2
146
+ * scopes from.
147
+ */
148
+ readonly additionalScopesKeys: pulumi.Output<string[] | undefined>;
149
+ /**
150
+ * The audience to be passed along to the Oauth2 provider when
151
+ * logging in to the management interface. Must be configured for Auth0,
152
+ * cannot be configured for Entra ID v2.
153
+ */
154
+ readonly audience: pulumi.Output<string | undefined>;
155
+ /**
156
+ * The CloudAMQP instance ID.
157
+ */
158
+ readonly instanceId: pulumi.Output<number>;
159
+ /**
160
+ * The issuer URL of the OAuth2 provider. This is typically
161
+ * the base URL of your OAuth2 provider (e.g., Auth0, Keycloak, etc.).
162
+ */
163
+ readonly issuer: pulumi.Output<string>;
164
+ /**
165
+ * OAuth2 client ID used for token validation.
166
+ */
167
+ readonly oauthClientId: pulumi.Output<string | undefined>;
168
+ /**
169
+ * List of OAuth2 scopes to request. These scopes will be
170
+ * used when obtaining access tokens.
171
+ */
172
+ readonly oauthScopes: pulumi.Output<string[] | undefined>;
173
+ /**
174
+ * List of JWT claims to use as the preferred username.
175
+ * The first claim found in the token will be used as the username.
176
+ */
177
+ readonly preferredUsernameClaims: pulumi.Output<string[] | undefined>;
178
+ /**
179
+ * Resource server identifier used to identify the resource
180
+ * server in OAuth2 tokens.
181
+ */
182
+ readonly resourceServerId: pulumi.Output<string>;
183
+ /**
184
+ * Map of scope aliases to translate scope names. This allows
185
+ * mapping OAuth2 scopes to RabbitMQ permission tags.
186
+ */
187
+ readonly scopeAliases: pulumi.Output<{
188
+ [key: string]: string;
189
+ } | undefined>;
190
+ /**
191
+ * Prefix to add to scopes. This is useful when scopes in
192
+ * the JWT token need to be prefixed for RabbitMQ permissions.
193
+ */
194
+ readonly scopePrefix: pulumi.Output<string | undefined>;
195
+ /**
196
+ * Configurable sleep time in seconds between retries for
197
+ * OAuth2 configuration. Default set to 60 seconds.
198
+ */
199
+ readonly sleep: pulumi.Output<number>;
200
+ /**
201
+ * Configurable timeout time in seconds for OAuth2
202
+ * configuration. Default set to 3600 seconds.
203
+ */
204
+ readonly timeout: pulumi.Output<number>;
205
+ /**
206
+ * Whether to verify the audience claim in the JWT
207
+ * token. Defaults to true.
208
+ */
209
+ readonly verifyAud: pulumi.Output<boolean>;
210
+ /**
211
+ * Create a Oauth2Configuration resource with the given unique name, arguments, and options.
212
+ *
213
+ * @param name The _unique_ name of the resource.
214
+ * @param args The arguments to use to populate this resource's properties.
215
+ * @param opts A bag of options that control this resource's behavior.
216
+ */
217
+ constructor(name: string, args: Oauth2ConfigurationArgs, opts?: pulumi.CustomResourceOptions);
218
+ }
219
+ /**
220
+ * Input properties used for looking up and filtering Oauth2Configuration resources.
221
+ */
222
+ export interface Oauth2ConfigurationState {
223
+ /**
224
+ * List of additional JWT claim keys to extract OAuth2
225
+ * scopes from.
226
+ */
227
+ additionalScopesKeys?: pulumi.Input<pulumi.Input<string>[]>;
228
+ /**
229
+ * The audience to be passed along to the Oauth2 provider when
230
+ * logging in to the management interface. Must be configured for Auth0,
231
+ * cannot be configured for Entra ID v2.
232
+ */
233
+ audience?: pulumi.Input<string>;
234
+ /**
235
+ * The CloudAMQP instance ID.
236
+ */
237
+ instanceId?: pulumi.Input<number>;
238
+ /**
239
+ * The issuer URL of the OAuth2 provider. This is typically
240
+ * the base URL of your OAuth2 provider (e.g., Auth0, Keycloak, etc.).
241
+ */
242
+ issuer?: pulumi.Input<string>;
243
+ /**
244
+ * OAuth2 client ID used for token validation.
245
+ */
246
+ oauthClientId?: pulumi.Input<string>;
247
+ /**
248
+ * List of OAuth2 scopes to request. These scopes will be
249
+ * used when obtaining access tokens.
250
+ */
251
+ oauthScopes?: pulumi.Input<pulumi.Input<string>[]>;
252
+ /**
253
+ * List of JWT claims to use as the preferred username.
254
+ * The first claim found in the token will be used as the username.
255
+ */
256
+ preferredUsernameClaims?: pulumi.Input<pulumi.Input<string>[]>;
257
+ /**
258
+ * Resource server identifier used to identify the resource
259
+ * server in OAuth2 tokens.
260
+ */
261
+ resourceServerId?: pulumi.Input<string>;
262
+ /**
263
+ * Map of scope aliases to translate scope names. This allows
264
+ * mapping OAuth2 scopes to RabbitMQ permission tags.
265
+ */
266
+ scopeAliases?: pulumi.Input<{
267
+ [key: string]: pulumi.Input<string>;
268
+ }>;
269
+ /**
270
+ * Prefix to add to scopes. This is useful when scopes in
271
+ * the JWT token need to be prefixed for RabbitMQ permissions.
272
+ */
273
+ scopePrefix?: pulumi.Input<string>;
274
+ /**
275
+ * Configurable sleep time in seconds between retries for
276
+ * OAuth2 configuration. Default set to 60 seconds.
277
+ */
278
+ sleep?: pulumi.Input<number>;
279
+ /**
280
+ * Configurable timeout time in seconds for OAuth2
281
+ * configuration. Default set to 3600 seconds.
282
+ */
283
+ timeout?: pulumi.Input<number>;
284
+ /**
285
+ * Whether to verify the audience claim in the JWT
286
+ * token. Defaults to true.
287
+ */
288
+ verifyAud?: pulumi.Input<boolean>;
289
+ }
290
+ /**
291
+ * The set of arguments for constructing a Oauth2Configuration resource.
292
+ */
293
+ export interface Oauth2ConfigurationArgs {
294
+ /**
295
+ * List of additional JWT claim keys to extract OAuth2
296
+ * scopes from.
297
+ */
298
+ additionalScopesKeys?: pulumi.Input<pulumi.Input<string>[]>;
299
+ /**
300
+ * The audience to be passed along to the Oauth2 provider when
301
+ * logging in to the management interface. Must be configured for Auth0,
302
+ * cannot be configured for Entra ID v2.
303
+ */
304
+ audience?: pulumi.Input<string>;
305
+ /**
306
+ * The CloudAMQP instance ID.
307
+ */
308
+ instanceId: pulumi.Input<number>;
309
+ /**
310
+ * The issuer URL of the OAuth2 provider. This is typically
311
+ * the base URL of your OAuth2 provider (e.g., Auth0, Keycloak, etc.).
312
+ */
313
+ issuer: pulumi.Input<string>;
314
+ /**
315
+ * OAuth2 client ID used for token validation.
316
+ */
317
+ oauthClientId?: pulumi.Input<string>;
318
+ /**
319
+ * List of OAuth2 scopes to request. These scopes will be
320
+ * used when obtaining access tokens.
321
+ */
322
+ oauthScopes?: pulumi.Input<pulumi.Input<string>[]>;
323
+ /**
324
+ * List of JWT claims to use as the preferred username.
325
+ * The first claim found in the token will be used as the username.
326
+ */
327
+ preferredUsernameClaims?: pulumi.Input<pulumi.Input<string>[]>;
328
+ /**
329
+ * Resource server identifier used to identify the resource
330
+ * server in OAuth2 tokens.
331
+ */
332
+ resourceServerId: pulumi.Input<string>;
333
+ /**
334
+ * Map of scope aliases to translate scope names. This allows
335
+ * mapping OAuth2 scopes to RabbitMQ permission tags.
336
+ */
337
+ scopeAliases?: pulumi.Input<{
338
+ [key: string]: pulumi.Input<string>;
339
+ }>;
340
+ /**
341
+ * Prefix to add to scopes. This is useful when scopes in
342
+ * the JWT token need to be prefixed for RabbitMQ permissions.
343
+ */
344
+ scopePrefix?: pulumi.Input<string>;
345
+ /**
346
+ * Configurable sleep time in seconds between retries for
347
+ * OAuth2 configuration. Default set to 60 seconds.
348
+ */
349
+ sleep?: pulumi.Input<number>;
350
+ /**
351
+ * Configurable timeout time in seconds for OAuth2
352
+ * configuration. Default set to 3600 seconds.
353
+ */
354
+ timeout?: pulumi.Input<number>;
355
+ /**
356
+ * Whether to verify the audience claim in the JWT
357
+ * token. Defaults to true.
358
+ */
359
+ verifyAud?: pulumi.Input<boolean>;
360
+ }