@pulumi/rabbitmq 1.4.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -3
- package/binding.d.ts +27 -15
- package/binding.js +37 -29
- package/binding.js.map +1 -1
- package/config/index.js +15 -4
- package/config/index.js.map +1 -1
- package/config/vars.d.ts +8 -5
- package/config/vars.js +51 -6
- package/config/vars.js.map +1 -1
- package/exchange.d.ts +18 -10
- package/exchange.js +24 -18
- package/exchange.js.map +1 -1
- package/federationUpstream.d.ts +141 -0
- package/federationUpstream.js +121 -0
- package/federationUpstream.js.map +1 -0
- package/getExchange.d.ts +27 -0
- package/getExchange.js +23 -0
- package/getExchange.js.map +1 -0
- package/getUser.d.ts +23 -0
- package/getUser.js +22 -0
- package/getUser.js.map +1 -0
- package/getVHost.d.ts +22 -0
- package/getVHost.js +22 -0
- package/getVHost.js.map +1 -0
- package/index.d.ts +10 -4
- package/index.js +98 -14
- package/index.js.map +1 -1
- package/operatorPolicy.d.ts +117 -0
- package/operatorPolicy.js +100 -0
- package/operatorPolicy.js.map +1 -0
- package/package.json +7 -5
- package/package.json.bak +7 -4
- package/package.json.dev +8 -5
- package/permissions.d.ts +18 -10
- package/permissions.js +25 -19
- package/permissions.js.map +1 -1
- package/policy.d.ts +16 -10
- package/policy.js +23 -19
- package/policy.js.map +1 -1
- package/provider.d.ts +16 -8
- package/provider.js +23 -15
- package/provider.js.map +1 -1
- package/queue.d.ts +26 -19
- package/queue.js +32 -27
- package/queue.js.map +1 -1
- package/shovel.d.ts +121 -0
- package/shovel.js +104 -0
- package/shovel.js.map +1 -0
- package/topicPermissions.d.ts +18 -10
- package/topicPermissions.js +25 -19
- package/topicPermissions.js.map +1 -1
- package/types/index.d.ts +1 -1
- package/types/index.js +1 -0
- package/types/index.js.map +1 -1
- package/types/input.d.ts +172 -0
- package/types/output.d.ts +180 -0
- package/user.d.ts +15 -8
- package/user.js +22 -18
- package/user.js.map +1 -1
- package/utilities.js +6 -0
- package/utilities.js.map +1 -1
- package/{vHost.d.ts → vhost.d.ts} +12 -5
- package/{vHost.js → vhost.js} +19 -15
- package/vhost.js.map +1 -0
- package/vHost.js.map +0 -1
package/topicPermissions.js
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
|
3
3
|
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.TopicPermissions = void 0;
|
|
5
6
|
const pulumi = require("@pulumi/pulumi");
|
|
6
7
|
const utilities = require("./utilities");
|
|
7
8
|
/**
|
|
8
|
-
* The ``rabbitmq
|
|
9
|
+
* The ``rabbitmq.TopicPermissions`` resource creates and manages a user's set of
|
|
9
10
|
* topic permissions.
|
|
10
11
|
*
|
|
11
12
|
* ## Example Usage
|
|
@@ -30,36 +31,40 @@ const utilities = require("./utilities");
|
|
|
30
31
|
* });
|
|
31
32
|
* ```
|
|
32
33
|
*
|
|
33
|
-
*
|
|
34
|
+
* ## Import
|
|
35
|
+
*
|
|
36
|
+
* Permissions can be imported using the `id` which is composed of
|
|
37
|
+
*
|
|
38
|
+
* `user@vhost`. E.g.
|
|
39
|
+
*
|
|
40
|
+
* ```sh
|
|
41
|
+
* $ pulumi import rabbitmq:index/topicPermissions:TopicPermissions test user@vhost
|
|
42
|
+
* ```
|
|
34
43
|
*/
|
|
35
44
|
class TopicPermissions extends pulumi.CustomResource {
|
|
36
45
|
constructor(name, argsOrState, opts) {
|
|
37
|
-
let
|
|
38
|
-
|
|
46
|
+
let resourceInputs = {};
|
|
47
|
+
opts = opts || {};
|
|
48
|
+
if (opts.id) {
|
|
39
49
|
const state = argsOrState;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
50
|
+
resourceInputs["permissions"] = state ? state.permissions : undefined;
|
|
51
|
+
resourceInputs["user"] = state ? state.user : undefined;
|
|
52
|
+
resourceInputs["vhost"] = state ? state.vhost : undefined;
|
|
43
53
|
}
|
|
44
54
|
else {
|
|
45
55
|
const args = argsOrState;
|
|
46
|
-
if (!args || args.permissions === undefined) {
|
|
56
|
+
if ((!args || args.permissions === undefined) && !opts.urn) {
|
|
47
57
|
throw new Error("Missing required property 'permissions'");
|
|
48
58
|
}
|
|
49
|
-
if (!args || args.user === undefined) {
|
|
59
|
+
if ((!args || args.user === undefined) && !opts.urn) {
|
|
50
60
|
throw new Error("Missing required property 'user'");
|
|
51
61
|
}
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
}
|
|
56
|
-
if (!opts) {
|
|
57
|
-
opts = {};
|
|
58
|
-
}
|
|
59
|
-
if (!opts.version) {
|
|
60
|
-
opts.version = utilities.getVersion();
|
|
62
|
+
resourceInputs["permissions"] = args ? args.permissions : undefined;
|
|
63
|
+
resourceInputs["user"] = args ? args.user : undefined;
|
|
64
|
+
resourceInputs["vhost"] = args ? args.vhost : undefined;
|
|
61
65
|
}
|
|
62
|
-
|
|
66
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
67
|
+
super(TopicPermissions.__pulumiType, name, resourceInputs, opts);
|
|
63
68
|
}
|
|
64
69
|
/**
|
|
65
70
|
* Get an existing TopicPermissions resource's state with the given name, ID, and optional extra
|
|
@@ -68,6 +73,7 @@ class TopicPermissions extends pulumi.CustomResource {
|
|
|
68
73
|
* @param name The _unique_ name of the resulting resource.
|
|
69
74
|
* @param id The _unique_ provider ID of the resource to lookup.
|
|
70
75
|
* @param state Any extra arguments used during the lookup.
|
|
76
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
71
77
|
*/
|
|
72
78
|
static get(name, id, state, opts) {
|
|
73
79
|
return new TopicPermissions(name, state, Object.assign(Object.assign({}, opts), { id: id }));
|
package/topicPermissions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"topicPermissions.js","sourceRoot":"","sources":["../topicPermissions.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF
|
|
1
|
+
{"version":3,"file":"topicPermissions.js","sourceRoot":"","sources":["../topicPermissions.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AAEzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,MAAa,gBAAiB,SAAQ,MAAM,CAAC,cAAc;IAkDvD,YAAY,IAAY,EAAE,WAA0D,EAAE,IAAmC;QACrH,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAgD,CAAC;YAC/D,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACtE,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,cAAc,CAAC,OAAO,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;SAC7D;aAAM;YACH,MAAM,IAAI,GAAG,WAA+C,CAAC;YAC7D,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACxD,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAC;aAC9D;YACD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACjD,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC;aACvD;YACD,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC;YACpE,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,cAAc,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3D;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAvED;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAA6B,EAAE,IAAmC;QAC3H,OAAO,IAAI,gBAAgB,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IACvE,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,gBAAgB,CAAC,YAAY,CAAC;IACjE,CAAC;;AA1BL,4CAyEC;AA3DG,gBAAgB;AACO,6BAAY,GAAG,kDAAkD,CAAC"}
|
package/types/index.d.ts
CHANGED
package/types/index.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
|
3
3
|
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.output = exports.input = void 0;
|
|
5
6
|
// Export sub-modules:
|
|
6
7
|
const input = require("./input");
|
|
7
8
|
exports.input = input;
|
package/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../types/index.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,sBAAsB;AACtB,iCAAiC;AAI7B,sBAAK;AAHT,mCAAmC;AAI/B,wBAAM"}
|
package/types/input.d.ts
CHANGED
|
@@ -21,6 +21,69 @@ export interface ExchangeSettings {
|
|
|
21
21
|
*/
|
|
22
22
|
type: pulumi.Input<string>;
|
|
23
23
|
}
|
|
24
|
+
export interface FederationUpstreamDefinition {
|
|
25
|
+
/**
|
|
26
|
+
* Determines how the link should acknowledge messages. Valid values are `on-confirm`, `on-publish`, and `no-ack`. Default is `on-confirm`.
|
|
27
|
+
*/
|
|
28
|
+
ackMode?: pulumi.Input<string>;
|
|
29
|
+
/**
|
|
30
|
+
* The name of the upstream exchange.
|
|
31
|
+
*/
|
|
32
|
+
exchange?: pulumi.Input<string>;
|
|
33
|
+
/**
|
|
34
|
+
* The expiry time (in milliseconds) after which an upstream queue for a federated exchange may be deleted if a connection to the upstream is lost.
|
|
35
|
+
*/
|
|
36
|
+
expires?: pulumi.Input<number>;
|
|
37
|
+
/**
|
|
38
|
+
* Maximum number of federation links that messages can traverse before being dropped. Default is `1`.
|
|
39
|
+
*/
|
|
40
|
+
maxHops?: pulumi.Input<number>;
|
|
41
|
+
/**
|
|
42
|
+
* The expiry time (in milliseconds) for messages in the upstream queue for a federated exchange (see expires).
|
|
43
|
+
*/
|
|
44
|
+
messageTtl?: pulumi.Input<number>;
|
|
45
|
+
/**
|
|
46
|
+
* Maximum number of unacknowledged messages that may be in flight over a federation link at one time. Default is `1000`.
|
|
47
|
+
*/
|
|
48
|
+
prefetchCount?: pulumi.Input<number>;
|
|
49
|
+
/**
|
|
50
|
+
* The name of the upstream queue.
|
|
51
|
+
*/
|
|
52
|
+
queue?: pulumi.Input<string>;
|
|
53
|
+
/**
|
|
54
|
+
* Time in seconds to wait after a network link goes down before attempting reconnection. Default is `5`.
|
|
55
|
+
*/
|
|
56
|
+
reconnectDelay?: pulumi.Input<number>;
|
|
57
|
+
/**
|
|
58
|
+
* Determines how federation should interact with the validated user-id feature. Default is `false`.
|
|
59
|
+
*/
|
|
60
|
+
trustUserId?: pulumi.Input<boolean>;
|
|
61
|
+
/**
|
|
62
|
+
* The AMQP URI(s) for the upstream. Note that the URI may contain sensitive information, such as a password.
|
|
63
|
+
*/
|
|
64
|
+
uri: pulumi.Input<string>;
|
|
65
|
+
}
|
|
66
|
+
export interface OperatorPolicyPolicy {
|
|
67
|
+
/**
|
|
68
|
+
* Can be "queues".
|
|
69
|
+
*/
|
|
70
|
+
applyTo: pulumi.Input<string>;
|
|
71
|
+
/**
|
|
72
|
+
* Key/value pairs of the operator policy definition. See the
|
|
73
|
+
* RabbitMQ documentation for definition references and examples.
|
|
74
|
+
*/
|
|
75
|
+
definition: pulumi.Input<{
|
|
76
|
+
[key: string]: any;
|
|
77
|
+
}>;
|
|
78
|
+
/**
|
|
79
|
+
* A pattern to match an exchange or queue name.
|
|
80
|
+
*/
|
|
81
|
+
pattern: pulumi.Input<string>;
|
|
82
|
+
/**
|
|
83
|
+
* The policy with the greater priority is applied first.
|
|
84
|
+
*/
|
|
85
|
+
priority: pulumi.Input<number>;
|
|
86
|
+
}
|
|
24
87
|
export interface PermissionsPermissions {
|
|
25
88
|
/**
|
|
26
89
|
* The "configure" ACL.
|
|
@@ -82,6 +145,115 @@ export interface QueueSettings {
|
|
|
82
145
|
*/
|
|
83
146
|
durable?: pulumi.Input<boolean>;
|
|
84
147
|
}
|
|
148
|
+
export interface ShovelInfo {
|
|
149
|
+
/**
|
|
150
|
+
* Determines how the shovel should acknowledge messages. Possible values are: `on-confirm`, `on-publish` and `no-ack`.
|
|
151
|
+
* Defaults to `on-confirm`.
|
|
152
|
+
*/
|
|
153
|
+
ackMode?: pulumi.Input<string>;
|
|
154
|
+
/**
|
|
155
|
+
* Whether to add `x-shovelled` headers to shovelled messages.
|
|
156
|
+
*
|
|
157
|
+
* @deprecated use destination_add_forward_headers instead
|
|
158
|
+
*/
|
|
159
|
+
addForwardHeaders?: pulumi.Input<boolean>;
|
|
160
|
+
/**
|
|
161
|
+
* Determines when (if ever) the shovel should delete itself. Possible values are: `never`, `queue-length` or an integer.
|
|
162
|
+
*
|
|
163
|
+
* @deprecated use source_delete_after instead
|
|
164
|
+
*/
|
|
165
|
+
deleteAfter?: pulumi.Input<string>;
|
|
166
|
+
/**
|
|
167
|
+
* Whether to add `x-shovelled` headers to shovelled messages.
|
|
168
|
+
*/
|
|
169
|
+
destinationAddForwardHeaders?: pulumi.Input<boolean>;
|
|
170
|
+
destinationAddTimestampHeader?: pulumi.Input<boolean>;
|
|
171
|
+
/**
|
|
172
|
+
* The AMQP 1.0 destination link address.
|
|
173
|
+
*/
|
|
174
|
+
destinationAddress?: pulumi.Input<string>;
|
|
175
|
+
/**
|
|
176
|
+
* Application properties to set when shovelling messages.
|
|
177
|
+
*/
|
|
178
|
+
destinationApplicationProperties?: pulumi.Input<string>;
|
|
179
|
+
/**
|
|
180
|
+
* The exchange to which messages should be published.
|
|
181
|
+
* Either this or `destinationQueue` must be specified but not both.
|
|
182
|
+
*/
|
|
183
|
+
destinationExchange?: pulumi.Input<string>;
|
|
184
|
+
/**
|
|
185
|
+
* The routing key when using `destinationExchange`.
|
|
186
|
+
*/
|
|
187
|
+
destinationExchangeKey?: pulumi.Input<string>;
|
|
188
|
+
/**
|
|
189
|
+
* Properties to overwrite when shovelling messages.
|
|
190
|
+
*/
|
|
191
|
+
destinationProperties?: pulumi.Input<string>;
|
|
192
|
+
/**
|
|
193
|
+
* The protocol (`amqp091` or `amqp10`) to use when connecting to the destination.
|
|
194
|
+
* Defaults to `amqp091`.
|
|
195
|
+
*/
|
|
196
|
+
destinationProtocol?: pulumi.Input<string>;
|
|
197
|
+
/**
|
|
198
|
+
* A map of properties to overwrite when shovelling messages.
|
|
199
|
+
*/
|
|
200
|
+
destinationPublishProperties?: pulumi.Input<string>;
|
|
201
|
+
/**
|
|
202
|
+
* The queue to which messages should be published.
|
|
203
|
+
* Either this or `destinationExchange` must be specified but not both.
|
|
204
|
+
*/
|
|
205
|
+
destinationQueue?: pulumi.Input<string>;
|
|
206
|
+
/**
|
|
207
|
+
* The amqp uri for the destination .
|
|
208
|
+
*/
|
|
209
|
+
destinationUri: pulumi.Input<string>;
|
|
210
|
+
/**
|
|
211
|
+
* The maximum number of unacknowledged messages copied over a shovel at any one time.
|
|
212
|
+
*
|
|
213
|
+
* @deprecated use source_prefetch_count instead
|
|
214
|
+
*/
|
|
215
|
+
prefetchCount?: pulumi.Input<number>;
|
|
216
|
+
/**
|
|
217
|
+
* The duration in seconds to reconnect to a broker after disconnected.
|
|
218
|
+
* Defaults to `1`.
|
|
219
|
+
*/
|
|
220
|
+
reconnectDelay?: pulumi.Input<number>;
|
|
221
|
+
/**
|
|
222
|
+
* The AMQP 1.0 source link address.
|
|
223
|
+
*/
|
|
224
|
+
sourceAddress?: pulumi.Input<string>;
|
|
225
|
+
/**
|
|
226
|
+
* Determines when (if ever) the shovel should delete itself. Possible values are: `never`, `queue-length` or an integer.
|
|
227
|
+
*/
|
|
228
|
+
sourceDeleteAfter?: pulumi.Input<string>;
|
|
229
|
+
/**
|
|
230
|
+
* The exchange from which to consume.
|
|
231
|
+
* Either this or `sourceQueue` must be specified but not both.
|
|
232
|
+
*/
|
|
233
|
+
sourceExchange?: pulumi.Input<string>;
|
|
234
|
+
/**
|
|
235
|
+
* The routing key when using `sourceExchange`.
|
|
236
|
+
*/
|
|
237
|
+
sourceExchangeKey?: pulumi.Input<string>;
|
|
238
|
+
/**
|
|
239
|
+
* The maximum number of unacknowledged messages copied over a shovel at any one time.
|
|
240
|
+
*/
|
|
241
|
+
sourcePrefetchCount?: pulumi.Input<number>;
|
|
242
|
+
/**
|
|
243
|
+
* The protocol (`amqp091` or `amqp10`) to use when connecting to the source.
|
|
244
|
+
* Defaults to `amqp091`.
|
|
245
|
+
*/
|
|
246
|
+
sourceProtocol?: pulumi.Input<string>;
|
|
247
|
+
/**
|
|
248
|
+
* The queue from which to consume.
|
|
249
|
+
* Either this or `sourceExchange` must be specified but not both.
|
|
250
|
+
*/
|
|
251
|
+
sourceQueue?: pulumi.Input<string>;
|
|
252
|
+
/**
|
|
253
|
+
* The amqp uri for the source.
|
|
254
|
+
*/
|
|
255
|
+
sourceUri: pulumi.Input<string>;
|
|
256
|
+
}
|
|
85
257
|
export interface TopicPermissionsPermission {
|
|
86
258
|
/**
|
|
87
259
|
* The exchange to set the permissions for.
|
package/types/output.d.ts
CHANGED
|
@@ -20,6 +20,77 @@ export interface ExchangeSettings {
|
|
|
20
20
|
*/
|
|
21
21
|
type: string;
|
|
22
22
|
}
|
|
23
|
+
export interface FederationUpstreamDefinition {
|
|
24
|
+
/**
|
|
25
|
+
* Determines how the link should acknowledge messages. Valid values are `on-confirm`, `on-publish`, and `no-ack`. Default is `on-confirm`.
|
|
26
|
+
*/
|
|
27
|
+
ackMode?: string;
|
|
28
|
+
/**
|
|
29
|
+
* The name of the upstream exchange.
|
|
30
|
+
*/
|
|
31
|
+
exchange?: string;
|
|
32
|
+
/**
|
|
33
|
+
* The expiry time (in milliseconds) after which an upstream queue for a federated exchange may be deleted if a connection to the upstream is lost.
|
|
34
|
+
*/
|
|
35
|
+
expires?: number;
|
|
36
|
+
/**
|
|
37
|
+
* Maximum number of federation links that messages can traverse before being dropped. Default is `1`.
|
|
38
|
+
*/
|
|
39
|
+
maxHops?: number;
|
|
40
|
+
/**
|
|
41
|
+
* The expiry time (in milliseconds) for messages in the upstream queue for a federated exchange (see expires).
|
|
42
|
+
*/
|
|
43
|
+
messageTtl?: number;
|
|
44
|
+
/**
|
|
45
|
+
* Maximum number of unacknowledged messages that may be in flight over a federation link at one time. Default is `1000`.
|
|
46
|
+
*/
|
|
47
|
+
prefetchCount?: number;
|
|
48
|
+
/**
|
|
49
|
+
* The name of the upstream queue.
|
|
50
|
+
*/
|
|
51
|
+
queue?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Time in seconds to wait after a network link goes down before attempting reconnection. Default is `5`.
|
|
54
|
+
*/
|
|
55
|
+
reconnectDelay?: number;
|
|
56
|
+
/**
|
|
57
|
+
* Determines how federation should interact with the validated user-id feature. Default is `false`.
|
|
58
|
+
*/
|
|
59
|
+
trustUserId?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* The AMQP URI(s) for the upstream. Note that the URI may contain sensitive information, such as a password.
|
|
62
|
+
*/
|
|
63
|
+
uri: string;
|
|
64
|
+
}
|
|
65
|
+
export interface GetExchangeSetting {
|
|
66
|
+
arguments?: {
|
|
67
|
+
[key: string]: any;
|
|
68
|
+
};
|
|
69
|
+
autoDelete?: boolean;
|
|
70
|
+
durable?: boolean;
|
|
71
|
+
type: string;
|
|
72
|
+
}
|
|
73
|
+
export interface OperatorPolicyPolicy {
|
|
74
|
+
/**
|
|
75
|
+
* Can be "queues".
|
|
76
|
+
*/
|
|
77
|
+
applyTo: string;
|
|
78
|
+
/**
|
|
79
|
+
* Key/value pairs of the operator policy definition. See the
|
|
80
|
+
* RabbitMQ documentation for definition references and examples.
|
|
81
|
+
*/
|
|
82
|
+
definition: {
|
|
83
|
+
[key: string]: any;
|
|
84
|
+
};
|
|
85
|
+
/**
|
|
86
|
+
* A pattern to match an exchange or queue name.
|
|
87
|
+
*/
|
|
88
|
+
pattern: string;
|
|
89
|
+
/**
|
|
90
|
+
* The policy with the greater priority is applied first.
|
|
91
|
+
*/
|
|
92
|
+
priority: number;
|
|
93
|
+
}
|
|
23
94
|
export interface PermissionsPermissions {
|
|
24
95
|
/**
|
|
25
96
|
* The "configure" ACL.
|
|
@@ -81,6 +152,115 @@ export interface QueueSettings {
|
|
|
81
152
|
*/
|
|
82
153
|
durable?: boolean;
|
|
83
154
|
}
|
|
155
|
+
export interface ShovelInfo {
|
|
156
|
+
/**
|
|
157
|
+
* Determines how the shovel should acknowledge messages. Possible values are: `on-confirm`, `on-publish` and `no-ack`.
|
|
158
|
+
* Defaults to `on-confirm`.
|
|
159
|
+
*/
|
|
160
|
+
ackMode?: string;
|
|
161
|
+
/**
|
|
162
|
+
* Whether to add `x-shovelled` headers to shovelled messages.
|
|
163
|
+
*
|
|
164
|
+
* @deprecated use destination_add_forward_headers instead
|
|
165
|
+
*/
|
|
166
|
+
addForwardHeaders?: boolean;
|
|
167
|
+
/**
|
|
168
|
+
* Determines when (if ever) the shovel should delete itself. Possible values are: `never`, `queue-length` or an integer.
|
|
169
|
+
*
|
|
170
|
+
* @deprecated use source_delete_after instead
|
|
171
|
+
*/
|
|
172
|
+
deleteAfter?: string;
|
|
173
|
+
/**
|
|
174
|
+
* Whether to add `x-shovelled` headers to shovelled messages.
|
|
175
|
+
*/
|
|
176
|
+
destinationAddForwardHeaders?: boolean;
|
|
177
|
+
destinationAddTimestampHeader?: boolean;
|
|
178
|
+
/**
|
|
179
|
+
* The AMQP 1.0 destination link address.
|
|
180
|
+
*/
|
|
181
|
+
destinationAddress?: string;
|
|
182
|
+
/**
|
|
183
|
+
* Application properties to set when shovelling messages.
|
|
184
|
+
*/
|
|
185
|
+
destinationApplicationProperties?: string;
|
|
186
|
+
/**
|
|
187
|
+
* The exchange to which messages should be published.
|
|
188
|
+
* Either this or `destinationQueue` must be specified but not both.
|
|
189
|
+
*/
|
|
190
|
+
destinationExchange?: string;
|
|
191
|
+
/**
|
|
192
|
+
* The routing key when using `destinationExchange`.
|
|
193
|
+
*/
|
|
194
|
+
destinationExchangeKey?: string;
|
|
195
|
+
/**
|
|
196
|
+
* Properties to overwrite when shovelling messages.
|
|
197
|
+
*/
|
|
198
|
+
destinationProperties?: string;
|
|
199
|
+
/**
|
|
200
|
+
* The protocol (`amqp091` or `amqp10`) to use when connecting to the destination.
|
|
201
|
+
* Defaults to `amqp091`.
|
|
202
|
+
*/
|
|
203
|
+
destinationProtocol?: string;
|
|
204
|
+
/**
|
|
205
|
+
* A map of properties to overwrite when shovelling messages.
|
|
206
|
+
*/
|
|
207
|
+
destinationPublishProperties?: string;
|
|
208
|
+
/**
|
|
209
|
+
* The queue to which messages should be published.
|
|
210
|
+
* Either this or `destinationExchange` must be specified but not both.
|
|
211
|
+
*/
|
|
212
|
+
destinationQueue?: string;
|
|
213
|
+
/**
|
|
214
|
+
* The amqp uri for the destination .
|
|
215
|
+
*/
|
|
216
|
+
destinationUri: string;
|
|
217
|
+
/**
|
|
218
|
+
* The maximum number of unacknowledged messages copied over a shovel at any one time.
|
|
219
|
+
*
|
|
220
|
+
* @deprecated use source_prefetch_count instead
|
|
221
|
+
*/
|
|
222
|
+
prefetchCount?: number;
|
|
223
|
+
/**
|
|
224
|
+
* The duration in seconds to reconnect to a broker after disconnected.
|
|
225
|
+
* Defaults to `1`.
|
|
226
|
+
*/
|
|
227
|
+
reconnectDelay?: number;
|
|
228
|
+
/**
|
|
229
|
+
* The AMQP 1.0 source link address.
|
|
230
|
+
*/
|
|
231
|
+
sourceAddress?: string;
|
|
232
|
+
/**
|
|
233
|
+
* Determines when (if ever) the shovel should delete itself. Possible values are: `never`, `queue-length` or an integer.
|
|
234
|
+
*/
|
|
235
|
+
sourceDeleteAfter?: string;
|
|
236
|
+
/**
|
|
237
|
+
* The exchange from which to consume.
|
|
238
|
+
* Either this or `sourceQueue` must be specified but not both.
|
|
239
|
+
*/
|
|
240
|
+
sourceExchange?: string;
|
|
241
|
+
/**
|
|
242
|
+
* The routing key when using `sourceExchange`.
|
|
243
|
+
*/
|
|
244
|
+
sourceExchangeKey?: string;
|
|
245
|
+
/**
|
|
246
|
+
* The maximum number of unacknowledged messages copied over a shovel at any one time.
|
|
247
|
+
*/
|
|
248
|
+
sourcePrefetchCount?: number;
|
|
249
|
+
/**
|
|
250
|
+
* The protocol (`amqp091` or `amqp10`) to use when connecting to the source.
|
|
251
|
+
* Defaults to `amqp091`.
|
|
252
|
+
*/
|
|
253
|
+
sourceProtocol?: string;
|
|
254
|
+
/**
|
|
255
|
+
* The queue from which to consume.
|
|
256
|
+
* Either this or `sourceExchange` must be specified but not both.
|
|
257
|
+
*/
|
|
258
|
+
sourceQueue?: string;
|
|
259
|
+
/**
|
|
260
|
+
* The amqp uri for the source.
|
|
261
|
+
*/
|
|
262
|
+
sourceUri: string;
|
|
263
|
+
}
|
|
84
264
|
export interface TopicPermissionsPermission {
|
|
85
265
|
/**
|
|
86
266
|
* The exchange to set the permissions for.
|
package/user.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as pulumi from "@pulumi/pulumi";
|
|
2
2
|
/**
|
|
3
|
-
* The ``rabbitmq
|
|
3
|
+
* The ``rabbitmq.User`` resource creates and manages a user.
|
|
4
4
|
*
|
|
5
5
|
* > **Note:** All arguments including username and password will be stored in the raw state as plain-text.
|
|
6
6
|
* [Read more about sensitive data in state](https://www.terraform.io/docs/state/sensitive-data.html).
|
|
@@ -20,7 +20,13 @@ import * as pulumi from "@pulumi/pulumi";
|
|
|
20
20
|
* });
|
|
21
21
|
* ```
|
|
22
22
|
*
|
|
23
|
-
*
|
|
23
|
+
* ## Import
|
|
24
|
+
*
|
|
25
|
+
* Users can be imported using the `name`, e.g.
|
|
26
|
+
*
|
|
27
|
+
* ```sh
|
|
28
|
+
* $ pulumi import rabbitmq:index/user:User test mctest
|
|
29
|
+
* ```
|
|
24
30
|
*/
|
|
25
31
|
export declare class User extends pulumi.CustomResource {
|
|
26
32
|
/**
|
|
@@ -30,6 +36,7 @@ export declare class User extends pulumi.CustomResource {
|
|
|
30
36
|
* @param name The _unique_ name of the resulting resource.
|
|
31
37
|
* @param id The _unique_ provider ID of the resource to lookup.
|
|
32
38
|
* @param state Any extra arguments used during the lookup.
|
|
39
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
33
40
|
*/
|
|
34
41
|
static get(name: string, id: pulumi.Input<pulumi.ID>, state?: UserState, opts?: pulumi.CustomResourceOptions): User;
|
|
35
42
|
/**
|
|
@@ -67,17 +74,17 @@ export interface UserState {
|
|
|
67
74
|
/**
|
|
68
75
|
* The name of the user.
|
|
69
76
|
*/
|
|
70
|
-
|
|
77
|
+
name?: pulumi.Input<string>;
|
|
71
78
|
/**
|
|
72
79
|
* The password of the user. The value of this argument
|
|
73
80
|
* is plain-text so make sure to secure where this is defined.
|
|
74
81
|
*/
|
|
75
|
-
|
|
82
|
+
password?: pulumi.Input<string>;
|
|
76
83
|
/**
|
|
77
84
|
* Which permission model to apply to the user. Valid
|
|
78
85
|
* options are: management, policymaker, monitoring, and administrator.
|
|
79
86
|
*/
|
|
80
|
-
|
|
87
|
+
tags?: pulumi.Input<pulumi.Input<string>[]>;
|
|
81
88
|
}
|
|
82
89
|
/**
|
|
83
90
|
* The set of arguments for constructing a User resource.
|
|
@@ -86,15 +93,15 @@ export interface UserArgs {
|
|
|
86
93
|
/**
|
|
87
94
|
* The name of the user.
|
|
88
95
|
*/
|
|
89
|
-
|
|
96
|
+
name?: pulumi.Input<string>;
|
|
90
97
|
/**
|
|
91
98
|
* The password of the user. The value of this argument
|
|
92
99
|
* is plain-text so make sure to secure where this is defined.
|
|
93
100
|
*/
|
|
94
|
-
|
|
101
|
+
password: pulumi.Input<string>;
|
|
95
102
|
/**
|
|
96
103
|
* Which permission model to apply to the user. Valid
|
|
97
104
|
* options are: management, policymaker, monitoring, and administrator.
|
|
98
105
|
*/
|
|
99
|
-
|
|
106
|
+
tags?: pulumi.Input<pulumi.Input<string>[]>;
|
|
100
107
|
}
|
package/user.js
CHANGED
|
@@ -2,10 +2,11 @@
|
|
|
2
2
|
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
|
3
3
|
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.User = void 0;
|
|
5
6
|
const pulumi = require("@pulumi/pulumi");
|
|
6
7
|
const utilities = require("./utilities");
|
|
7
8
|
/**
|
|
8
|
-
* The ``rabbitmq
|
|
9
|
+
* The ``rabbitmq.User`` resource creates and manages a user.
|
|
9
10
|
*
|
|
10
11
|
* > **Note:** All arguments including username and password will be stored in the raw state as plain-text.
|
|
11
12
|
* [Read more about sensitive data in state](https://www.terraform.io/docs/state/sensitive-data.html).
|
|
@@ -25,33 +26,35 @@ const utilities = require("./utilities");
|
|
|
25
26
|
* });
|
|
26
27
|
* ```
|
|
27
28
|
*
|
|
28
|
-
*
|
|
29
|
+
* ## Import
|
|
30
|
+
*
|
|
31
|
+
* Users can be imported using the `name`, e.g.
|
|
32
|
+
*
|
|
33
|
+
* ```sh
|
|
34
|
+
* $ pulumi import rabbitmq:index/user:User test mctest
|
|
35
|
+
* ```
|
|
29
36
|
*/
|
|
30
37
|
class User extends pulumi.CustomResource {
|
|
31
38
|
constructor(name, argsOrState, opts) {
|
|
32
|
-
let
|
|
33
|
-
|
|
39
|
+
let resourceInputs = {};
|
|
40
|
+
opts = opts || {};
|
|
41
|
+
if (opts.id) {
|
|
34
42
|
const state = argsOrState;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
43
|
+
resourceInputs["name"] = state ? state.name : undefined;
|
|
44
|
+
resourceInputs["password"] = state ? state.password : undefined;
|
|
45
|
+
resourceInputs["tags"] = state ? state.tags : undefined;
|
|
38
46
|
}
|
|
39
47
|
else {
|
|
40
48
|
const args = argsOrState;
|
|
41
|
-
if (!args || args.password === undefined) {
|
|
49
|
+
if ((!args || args.password === undefined) && !opts.urn) {
|
|
42
50
|
throw new Error("Missing required property 'password'");
|
|
43
51
|
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
}
|
|
48
|
-
if (!opts) {
|
|
49
|
-
opts = {};
|
|
50
|
-
}
|
|
51
|
-
if (!opts.version) {
|
|
52
|
-
opts.version = utilities.getVersion();
|
|
52
|
+
resourceInputs["name"] = args ? args.name : undefined;
|
|
53
|
+
resourceInputs["password"] = args ? args.password : undefined;
|
|
54
|
+
resourceInputs["tags"] = args ? args.tags : undefined;
|
|
53
55
|
}
|
|
54
|
-
|
|
56
|
+
opts = pulumi.mergeOptions(utilities.resourceOptsDefaults(), opts);
|
|
57
|
+
super(User.__pulumiType, name, resourceInputs, opts);
|
|
55
58
|
}
|
|
56
59
|
/**
|
|
57
60
|
* Get an existing User resource's state with the given name, ID, and optional extra
|
|
@@ -60,6 +63,7 @@ class User extends pulumi.CustomResource {
|
|
|
60
63
|
* @param name The _unique_ name of the resulting resource.
|
|
61
64
|
* @param id The _unique_ provider ID of the resource to lookup.
|
|
62
65
|
* @param state Any extra arguments used during the lookup.
|
|
66
|
+
* @param opts Optional settings to control the behavior of the CustomResource.
|
|
63
67
|
*/
|
|
64
68
|
static get(name, id, state, opts) {
|
|
65
69
|
return new User(name, state, Object.assign(Object.assign({}, opts), { id: id }));
|
package/user.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../user.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../user.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAEjF,yCAAyC;AACzC,yCAAyC;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAa,IAAK,SAAQ,MAAM,CAAC,cAAc;IAmD3C,YAAY,IAAY,EAAE,WAAkC,EAAE,IAAmC;QAC7F,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAoC,CAAC;YACnD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACxD,cAAc,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAChE,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SAC3D;aAAM;YACH,MAAM,IAAI,GAAG,WAAmC,CAAC;YACjD,IAAI,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE;gBACrD,MAAM,IAAI,KAAK,CAAC,sCAAsC,CAAC,CAAC;aAC3D;YACD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;YACtD,cAAc,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;YAC9D,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;SACzD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IACzD,CAAC;IArED;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAiB,EAAE,IAAmC;QAC/G,OAAO,IAAI,IAAI,CAAC,IAAI,EAAO,KAAK,kCAAO,IAAI,KAAE,EAAE,EAAE,EAAE,IAAG,CAAC;IAC3D,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,IAAI,CAAC,YAAY,CAAC;IACrD,CAAC;;AA1BL,oBAuEC;AAzDG,gBAAgB;AACO,iBAAY,GAAG,0BAA0B,CAAC"}
|
package/utilities.js
CHANGED
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
// *** WARNING: this file was generated by the Pulumi Terraform Bridge (tfgen) Tool. ***
|
|
3
3
|
// *** Do not edit by hand unless you're certain you know what you are doing! ***
|
|
4
4
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.resourceOptsDefaults = exports.getVersion = exports.getEnvNumber = exports.getEnvBoolean = exports.getEnv = void 0;
|
|
5
6
|
function getEnv(...vars) {
|
|
6
7
|
for (const v of vars) {
|
|
7
8
|
const value = process.env[v];
|
|
@@ -48,4 +49,9 @@ function getVersion() {
|
|
|
48
49
|
return version;
|
|
49
50
|
}
|
|
50
51
|
exports.getVersion = getVersion;
|
|
52
|
+
/** @internal */
|
|
53
|
+
function resourceOptsDefaults() {
|
|
54
|
+
return { version: getVersion() };
|
|
55
|
+
}
|
|
56
|
+
exports.resourceOptsDefaults = resourceOptsDefaults;
|
|
51
57
|
//# sourceMappingURL=utilities.js.map
|
package/utilities.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../utilities.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF
|
|
1
|
+
{"version":3,"file":"utilities.js","sourceRoot":"","sources":["../utilities.ts"],"names":[],"mappings":";AAAA,wFAAwF;AACxF,iFAAiF;;;AAGjF,SAAgB,MAAM,CAAC,GAAG,IAAc;IACpC,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;QAClB,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,KAAK,EAAE;YACP,OAAO,KAAK,CAAC;SAChB;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AARD,wBAQC;AAED,SAAgB,aAAa,CAAC,GAAG,IAAc;IAC3C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,SAAS,EAAE;QACjB,uGAAuG;QACvG,yDAAyD;QACzD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE;YAC1E,OAAO,IAAI,CAAC;SACf;QACD,IAAI,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,SAAS,EAAE;YAC7E,OAAO,KAAK,CAAC;SAChB;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AAbD,sCAaC;AAED,SAAgB,YAAY,CAAC,GAAG,IAAc;IAC1C,MAAM,CAAC,GAAG,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,SAAS,EAAE;QACjB,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE;YACX,OAAO,CAAC,CAAC;SACZ;KACJ;IACD,OAAO,SAAS,CAAC;AACrB,CAAC;AATD,oCASC;AAED,SAAgB,UAAU;IACtB,IAAI,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC;IAChD,6EAA6E;IAC7E,iCAAiC;IACjC,IAAI,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;QAC5B,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAC9B;IACD,OAAO,OAAO,CAAC;AACnB,CAAC;AARD,gCAQC;AAED,gBAAgB;AAChB,SAAgB,oBAAoB;IAChC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,EAAE,CAAC;AACrC,CAAC;AAFD,oDAEC"}
|