@rlvt/entity-manager-openapi-client 0.0.0-34c4c07 → 0.0.0-365a49c

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/build/api.js CHANGED
@@ -1,1204 +1,191 @@
1
1
  "use strict";
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
- /**
5
- * entity-manager
6
- * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
- *
8
- * The version of the OpenAPI document: 34c4c07f8caf7fc5e963d47f04744f115a4b9e1f
9
- *
10
- *
11
- * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
12
- * https://openapi-generator.tech
13
- * Do not edit the class manually.
14
- */
15
4
  var __importDefault = (this && this.__importDefault) || function (mod) {
16
5
  return (mod && mod.__esModule) ? mod : { "default": mod };
17
6
  };
18
7
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.DefaultApi = exports.DefaultApiFactory = exports.DefaultApiFp = exports.DefaultApiAxiosParamCreator = exports.SuccessResponseUserStatusEnum = exports.SuccessResponseRolesOmitAliasRoleCompanyIdArrayStatusEnum = exports.SuccessResponseRoleIdStringResourceGroupIdsStringArrayStatusEnum = exports.SuccessResponseRoleArrayStatusEnum = exports.SuccessResponseRoleStatusEnum = exports.SuccessResponseResourceGroupArrayStatusEnum = exports.SuccessResponseResourceGroupStatusEnum = exports.SuccessResponseCompanyStatusEnum = exports.SuccessResponseStatusEnum = void 0;
20
8
  const axios_1 = __importDefault(require("axios"));
21
- // Some imports not used depending on template conditions
22
- // @ts-ignore
23
- const base_1 = require("./base");
24
- /**
25
- * @export
26
- * @enum {string}
27
- */
28
- var SuccessResponseStatusEnum;
29
- (function (SuccessResponseStatusEnum) {
30
- SuccessResponseStatusEnum["SUCCESS"] = "success";
31
- })(SuccessResponseStatusEnum = exports.SuccessResponseStatusEnum || (exports.SuccessResponseStatusEnum = {}));
32
- /**
33
- * @export
34
- * @enum {string}
35
- */
36
- var SuccessResponseCompanyStatusEnum;
37
- (function (SuccessResponseCompanyStatusEnum) {
38
- SuccessResponseCompanyStatusEnum["SUCCESS"] = "success";
39
- })(SuccessResponseCompanyStatusEnum = exports.SuccessResponseCompanyStatusEnum || (exports.SuccessResponseCompanyStatusEnum = {}));
40
- /**
41
- * @export
42
- * @enum {string}
43
- */
44
- var SuccessResponseResourceGroupStatusEnum;
45
- (function (SuccessResponseResourceGroupStatusEnum) {
46
- SuccessResponseResourceGroupStatusEnum["SUCCESS"] = "success";
47
- })(SuccessResponseResourceGroupStatusEnum = exports.SuccessResponseResourceGroupStatusEnum || (exports.SuccessResponseResourceGroupStatusEnum = {}));
48
- /**
49
- * @export
50
- * @enum {string}
51
- */
52
- var SuccessResponseResourceGroupArrayStatusEnum;
53
- (function (SuccessResponseResourceGroupArrayStatusEnum) {
54
- SuccessResponseResourceGroupArrayStatusEnum["SUCCESS"] = "success";
55
- })(SuccessResponseResourceGroupArrayStatusEnum = exports.SuccessResponseResourceGroupArrayStatusEnum || (exports.SuccessResponseResourceGroupArrayStatusEnum = {}));
56
- /**
57
- * @export
58
- * @enum {string}
59
- */
60
- var SuccessResponseRoleStatusEnum;
61
- (function (SuccessResponseRoleStatusEnum) {
62
- SuccessResponseRoleStatusEnum["SUCCESS"] = "success";
63
- })(SuccessResponseRoleStatusEnum = exports.SuccessResponseRoleStatusEnum || (exports.SuccessResponseRoleStatusEnum = {}));
64
- /**
65
- * @export
66
- * @enum {string}
67
- */
68
- var SuccessResponseRoleArrayStatusEnum;
69
- (function (SuccessResponseRoleArrayStatusEnum) {
70
- SuccessResponseRoleArrayStatusEnum["SUCCESS"] = "success";
71
- })(SuccessResponseRoleArrayStatusEnum = exports.SuccessResponseRoleArrayStatusEnum || (exports.SuccessResponseRoleArrayStatusEnum = {}));
72
- /**
73
- * @export
74
- * @enum {string}
75
- */
76
- var SuccessResponseRoleIdStringResourceGroupIdsStringArrayStatusEnum;
77
- (function (SuccessResponseRoleIdStringResourceGroupIdsStringArrayStatusEnum) {
78
- SuccessResponseRoleIdStringResourceGroupIdsStringArrayStatusEnum["SUCCESS"] = "success";
79
- })(SuccessResponseRoleIdStringResourceGroupIdsStringArrayStatusEnum = exports.SuccessResponseRoleIdStringResourceGroupIdsStringArrayStatusEnum || (exports.SuccessResponseRoleIdStringResourceGroupIdsStringArrayStatusEnum = {}));
80
- /**
81
- * @export
82
- * @enum {string}
83
- */
84
- var SuccessResponseRolesOmitAliasRoleCompanyIdArrayStatusEnum;
85
- (function (SuccessResponseRolesOmitAliasRoleCompanyIdArrayStatusEnum) {
86
- SuccessResponseRolesOmitAliasRoleCompanyIdArrayStatusEnum["SUCCESS"] = "success";
87
- })(SuccessResponseRolesOmitAliasRoleCompanyIdArrayStatusEnum = exports.SuccessResponseRolesOmitAliasRoleCompanyIdArrayStatusEnum || (exports.SuccessResponseRolesOmitAliasRoleCompanyIdArrayStatusEnum = {}));
88
- /**
89
- * @export
90
- * @enum {string}
91
- */
92
- var SuccessResponseUserStatusEnum;
93
- (function (SuccessResponseUserStatusEnum) {
94
- SuccessResponseUserStatusEnum["SUCCESS"] = "success";
95
- })(SuccessResponseUserStatusEnum = exports.SuccessResponseUserStatusEnum || (exports.SuccessResponseUserStatusEnum = {}));
96
- /**
97
- * DefaultApi - axios parameter creator
98
- * @export
99
- */
100
- exports.DefaultApiAxiosParamCreator = function (configuration) {
101
- return {
102
- /**
103
- *
104
- * @param {string} companyId
105
- * @param {*} [options] Override http request option.
106
- * @throws {RequiredError}
107
- */
108
- companyDefaults: async (companyId, options = {}) => {
109
- // verify required parameter 'companyId' is not null or undefined
110
- if (companyId === null || companyId === undefined) {
111
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling companyDefaults.');
112
- }
113
- const localVarPath = `/companies/{companyId}/defaults`
114
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)));
115
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
116
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
117
- let baseOptions;
118
- if (configuration) {
119
- baseOptions = configuration.baseOptions;
120
- }
121
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
122
- const localVarHeaderParameter = {};
123
- const localVarQueryParameter = {};
124
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
125
- for (const key in localVarQueryParameter) {
126
- queryParameters.set(key, localVarQueryParameter[key]);
127
- }
128
- for (const key in options.query) {
129
- queryParameters.set(key, options.query[key]);
130
- }
131
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
132
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
133
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
134
- return {
135
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
136
- options: localVarRequestOptions,
137
- };
138
- },
139
- /**
140
- *
141
- * @param {string} companyId
142
- * @param {PickResourceGroupName} pickResourceGroupName
143
- * @param {*} [options] Override http request option.
144
- * @throws {RequiredError}
145
- */
146
- createResourceGroup: async (companyId, pickResourceGroupName, options = {}) => {
147
- // verify required parameter 'companyId' is not null or undefined
148
- if (companyId === null || companyId === undefined) {
149
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling createResourceGroup.');
150
- }
151
- // verify required parameter 'pickResourceGroupName' is not null or undefined
152
- if (pickResourceGroupName === null || pickResourceGroupName === undefined) {
153
- throw new base_1.RequiredError('pickResourceGroupName', 'Required parameter pickResourceGroupName was null or undefined when calling createResourceGroup.');
154
- }
155
- const localVarPath = `/companies/{companyId}/resource-groups`
156
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)));
157
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
158
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
159
- let baseOptions;
160
- if (configuration) {
161
- baseOptions = configuration.baseOptions;
162
- }
163
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
164
- const localVarHeaderParameter = {};
165
- const localVarQueryParameter = {};
166
- localVarHeaderParameter['Content-Type'] = 'application/json';
167
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
168
- for (const key in localVarQueryParameter) {
169
- queryParameters.set(key, localVarQueryParameter[key]);
170
- }
171
- for (const key in options.query) {
172
- queryParameters.set(key, options.query[key]);
173
- }
174
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
175
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
176
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
177
- const needsSerialization = (typeof pickResourceGroupName !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
178
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(pickResourceGroupName !== undefined ? pickResourceGroupName : {}) : (pickResourceGroupName || "");
179
- return {
180
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
181
- options: localVarRequestOptions,
182
- };
183
- },
184
- /**
185
- *
186
- * @param {string} companyId
187
- * @param {PickRoleNameOrRules} pickRoleNameOrRules
188
- * @param {*} [options] Override http request option.
189
- * @throws {RequiredError}
190
- */
191
- createRole: async (companyId, pickRoleNameOrRules, options = {}) => {
192
- // verify required parameter 'companyId' is not null or undefined
193
- if (companyId === null || companyId === undefined) {
194
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling createRole.');
195
- }
196
- // verify required parameter 'pickRoleNameOrRules' is not null or undefined
197
- if (pickRoleNameOrRules === null || pickRoleNameOrRules === undefined) {
198
- throw new base_1.RequiredError('pickRoleNameOrRules', 'Required parameter pickRoleNameOrRules was null or undefined when calling createRole.');
199
- }
200
- const localVarPath = `/companies/{companyId}/roles`
201
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)));
202
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
203
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
204
- let baseOptions;
205
- if (configuration) {
206
- baseOptions = configuration.baseOptions;
207
- }
208
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
209
- const localVarHeaderParameter = {};
210
- const localVarQueryParameter = {};
211
- localVarHeaderParameter['Content-Type'] = 'application/json';
212
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
213
- for (const key in localVarQueryParameter) {
214
- queryParameters.set(key, localVarQueryParameter[key]);
215
- }
216
- for (const key in options.query) {
217
- queryParameters.set(key, options.query[key]);
218
- }
219
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
220
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
221
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
222
- const needsSerialization = (typeof pickRoleNameOrRules !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
223
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(pickRoleNameOrRules !== undefined ? pickRoleNameOrRules : {}) : (pickRoleNameOrRules || "");
224
- return {
225
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
226
- options: localVarRequestOptions,
227
- };
228
- },
229
- /**
230
- *
231
- * @param {*} [options] Override http request option.
232
- * @throws {RequiredError}
233
- */
234
- defaults: async (options = {}) => {
235
- const localVarPath = `/internal/companies/defaults`;
236
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
237
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
238
- let baseOptions;
239
- if (configuration) {
240
- baseOptions = configuration.baseOptions;
241
- }
242
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
243
- const localVarHeaderParameter = {};
244
- const localVarQueryParameter = {};
245
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
246
- for (const key in localVarQueryParameter) {
247
- queryParameters.set(key, localVarQueryParameter[key]);
248
- }
249
- for (const key in options.query) {
250
- queryParameters.set(key, options.query[key]);
251
- }
252
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
253
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
254
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
255
- return {
256
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
257
- options: localVarRequestOptions,
258
- };
259
- },
260
- /**
261
- *
262
- * @param {string} companyId
263
- * @param {string} id
264
- * @param {*} [options] Override http request option.
265
- * @throws {RequiredError}
266
- */
267
- deleteResourceGroup: async (companyId, id, options = {}) => {
268
- // verify required parameter 'companyId' is not null or undefined
269
- if (companyId === null || companyId === undefined) {
270
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling deleteResourceGroup.');
271
- }
272
- // verify required parameter 'id' is not null or undefined
273
- if (id === null || id === undefined) {
274
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling deleteResourceGroup.');
275
- }
276
- const localVarPath = `/companies/{companyId}/resource-groups/{id}`
277
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)))
278
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
279
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
280
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
281
- let baseOptions;
282
- if (configuration) {
283
- baseOptions = configuration.baseOptions;
284
- }
285
- const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options };
286
- const localVarHeaderParameter = {};
287
- const localVarQueryParameter = {};
288
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
289
- for (const key in localVarQueryParameter) {
290
- queryParameters.set(key, localVarQueryParameter[key]);
291
- }
292
- for (const key in options.query) {
293
- queryParameters.set(key, options.query[key]);
294
- }
295
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
296
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
297
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
298
- return {
299
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
300
- options: localVarRequestOptions,
301
- };
302
- },
303
- /**
304
- *
305
- * @param {string} companyId
306
- * @param {string} id
307
- * @param {*} [options] Override http request option.
308
- * @throws {RequiredError}
309
- */
310
- deleteRole: async (companyId, id, options = {}) => {
311
- // verify required parameter 'companyId' is not null or undefined
312
- if (companyId === null || companyId === undefined) {
313
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling deleteRole.');
314
- }
315
- // verify required parameter 'id' is not null or undefined
316
- if (id === null || id === undefined) {
317
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling deleteRole.');
318
- }
319
- const localVarPath = `/companies/{companyId}/roles/{id}`
320
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)))
321
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
322
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
323
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
324
- let baseOptions;
325
- if (configuration) {
326
- baseOptions = configuration.baseOptions;
327
- }
328
- const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options };
329
- const localVarHeaderParameter = {};
330
- const localVarQueryParameter = {};
331
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
332
- for (const key in localVarQueryParameter) {
333
- queryParameters.set(key, localVarQueryParameter[key]);
334
- }
335
- for (const key in options.query) {
336
- queryParameters.set(key, options.query[key]);
337
- }
338
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
339
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
340
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
341
- return {
342
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
343
- options: localVarRequestOptions,
344
- };
345
- },
346
- /**
347
- *
348
- * @param {string} companyId
349
- * @param {*} [options] Override http request option.
350
- * @throws {RequiredError}
351
- */
352
- getInternalRoles: async (companyId, options = {}) => {
353
- // verify required parameter 'companyId' is not null or undefined
354
- if (companyId === null || companyId === undefined) {
355
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling getInternalRoles.');
356
- }
357
- const localVarPath = `/internal/companies/{companyId}/roles`
358
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)));
359
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
360
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
361
- let baseOptions;
362
- if (configuration) {
363
- baseOptions = configuration.baseOptions;
364
- }
365
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
366
- const localVarHeaderParameter = {};
367
- const localVarQueryParameter = {};
368
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
369
- for (const key in localVarQueryParameter) {
370
- queryParameters.set(key, localVarQueryParameter[key]);
371
- }
372
- for (const key in options.query) {
373
- queryParameters.set(key, options.query[key]);
374
- }
375
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
376
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
377
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
378
- return {
379
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
380
- options: localVarRequestOptions,
381
- };
382
- },
383
- /**
384
- *
385
- * @param {string} companyId
386
- * @param {*} [options] Override http request option.
387
- * @throws {RequiredError}
388
- */
389
- getResourceGroups: async (companyId, options = {}) => {
390
- // verify required parameter 'companyId' is not null or undefined
391
- if (companyId === null || companyId === undefined) {
392
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling getResourceGroups.');
393
- }
394
- const localVarPath = `/companies/{companyId}/resource-groups`
395
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)));
396
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
397
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
398
- let baseOptions;
399
- if (configuration) {
400
- baseOptions = configuration.baseOptions;
401
- }
402
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
403
- const localVarHeaderParameter = {};
404
- const localVarQueryParameter = {};
405
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
406
- for (const key in localVarQueryParameter) {
407
- queryParameters.set(key, localVarQueryParameter[key]);
408
- }
409
- for (const key in options.query) {
410
- queryParameters.set(key, options.query[key]);
411
- }
412
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
413
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
414
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
415
- return {
416
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
417
- options: localVarRequestOptions,
418
- };
419
- },
420
- /**
421
- *
422
- * @param {string} companyId
423
- * @param {*} [options] Override http request option.
424
- * @throws {RequiredError}
425
- */
426
- getRoles: async (companyId, options = {}) => {
427
- // verify required parameter 'companyId' is not null or undefined
428
- if (companyId === null || companyId === undefined) {
429
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling getRoles.');
430
- }
431
- const localVarPath = `/companies/{companyId}/roles`
432
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)));
433
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
434
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
435
- let baseOptions;
436
- if (configuration) {
437
- baseOptions = configuration.baseOptions;
438
- }
439
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
440
- const localVarHeaderParameter = {};
441
- const localVarQueryParameter = {};
442
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
443
- for (const key in localVarQueryParameter) {
444
- queryParameters.set(key, localVarQueryParameter[key]);
445
- }
446
- for (const key in options.query) {
447
- queryParameters.set(key, options.query[key]);
448
- }
449
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
450
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
451
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
452
- return {
453
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
454
- options: localVarRequestOptions,
455
- };
456
- },
457
- /**
458
- *
459
- * @param {string} companyId
460
- * @param {PartialRoleIdStringResourceGroupIdsStringArray} partialRoleIdStringResourceGroupIdsStringArray
461
- * @param {*} [options] Override http request option.
462
- * @throws {RequiredError}
463
- */
464
- setCompanyDefaults: async (companyId, partialRoleIdStringResourceGroupIdsStringArray, options = {}) => {
465
- // verify required parameter 'companyId' is not null or undefined
466
- if (companyId === null || companyId === undefined) {
467
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling setCompanyDefaults.');
468
- }
469
- // verify required parameter 'partialRoleIdStringResourceGroupIdsStringArray' is not null or undefined
470
- if (partialRoleIdStringResourceGroupIdsStringArray === null || partialRoleIdStringResourceGroupIdsStringArray === undefined) {
471
- throw new base_1.RequiredError('partialRoleIdStringResourceGroupIdsStringArray', 'Required parameter partialRoleIdStringResourceGroupIdsStringArray was null or undefined when calling setCompanyDefaults.');
472
- }
473
- const localVarPath = `/companies/{companyId}/defaults`
474
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)));
475
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
476
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
477
- let baseOptions;
478
- if (configuration) {
479
- baseOptions = configuration.baseOptions;
480
- }
481
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
482
- const localVarHeaderParameter = {};
483
- const localVarQueryParameter = {};
484
- localVarHeaderParameter['Content-Type'] = 'application/json';
485
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
486
- for (const key in localVarQueryParameter) {
487
- queryParameters.set(key, localVarQueryParameter[key]);
488
- }
489
- for (const key in options.query) {
490
- queryParameters.set(key, options.query[key]);
491
- }
492
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
493
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
494
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
495
- const needsSerialization = (typeof partialRoleIdStringResourceGroupIdsStringArray !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
496
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(partialRoleIdStringResourceGroupIdsStringArray !== undefined ? partialRoleIdStringResourceGroupIdsStringArray : {}) : (partialRoleIdStringResourceGroupIdsStringArray || "");
497
- return {
498
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
499
- options: localVarRequestOptions,
500
- };
501
- },
502
- /**
503
- *
504
- * @param {string} companyId
505
- * @param {string} id
506
- * @param {InlineObject1} inlineObject1
507
- * @param {*} [options] Override http request option.
508
- * @throws {RequiredError}
509
- */
510
- setResourceGroups: async (companyId, id, inlineObject1, options = {}) => {
511
- // verify required parameter 'companyId' is not null or undefined
512
- if (companyId === null || companyId === undefined) {
513
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling setResourceGroups.');
514
- }
515
- // verify required parameter 'id' is not null or undefined
516
- if (id === null || id === undefined) {
517
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling setResourceGroups.');
518
- }
519
- // verify required parameter 'inlineObject1' is not null or undefined
520
- if (inlineObject1 === null || inlineObject1 === undefined) {
521
- throw new base_1.RequiredError('inlineObject1', 'Required parameter inlineObject1 was null or undefined when calling setResourceGroups.');
522
- }
523
- const localVarPath = `/companies/{companyId}/users/{id}/resource-groups`
524
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)))
525
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
526
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
527
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
528
- let baseOptions;
529
- if (configuration) {
530
- baseOptions = configuration.baseOptions;
531
- }
532
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
533
- const localVarHeaderParameter = {};
534
- const localVarQueryParameter = {};
535
- localVarHeaderParameter['Content-Type'] = 'application/json';
536
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
537
- for (const key in localVarQueryParameter) {
538
- queryParameters.set(key, localVarQueryParameter[key]);
539
- }
540
- for (const key in options.query) {
541
- queryParameters.set(key, options.query[key]);
542
- }
543
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
544
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
545
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
546
- const needsSerialization = (typeof inlineObject1 !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
547
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(inlineObject1 !== undefined ? inlineObject1 : {}) : (inlineObject1 || "");
548
- return {
549
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
550
- options: localVarRequestOptions,
551
- };
552
- },
553
- /**
554
- *
555
- * @param {string} companyId
556
- * @param {string} id
557
- * @param {InlineObject} inlineObject
558
- * @param {*} [options] Override http request option.
559
- * @throws {RequiredError}
560
- */
561
- setRole: async (companyId, id, inlineObject, options = {}) => {
562
- // verify required parameter 'companyId' is not null or undefined
563
- if (companyId === null || companyId === undefined) {
564
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling setRole.');
565
- }
566
- // verify required parameter 'id' is not null or undefined
567
- if (id === null || id === undefined) {
568
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling setRole.');
569
- }
570
- // verify required parameter 'inlineObject' is not null or undefined
571
- if (inlineObject === null || inlineObject === undefined) {
572
- throw new base_1.RequiredError('inlineObject', 'Required parameter inlineObject was null or undefined when calling setRole.');
573
- }
574
- const localVarPath = `/companies/{companyId}/users/{id}/role`
575
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)))
576
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
577
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
578
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
579
- let baseOptions;
580
- if (configuration) {
581
- baseOptions = configuration.baseOptions;
582
- }
583
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
584
- const localVarHeaderParameter = {};
585
- const localVarQueryParameter = {};
586
- localVarHeaderParameter['Content-Type'] = 'application/json';
587
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
588
- for (const key in localVarQueryParameter) {
589
- queryParameters.set(key, localVarQueryParameter[key]);
590
- }
591
- for (const key in options.query) {
592
- queryParameters.set(key, options.query[key]);
593
- }
594
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
595
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
596
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
597
- const needsSerialization = (typeof inlineObject !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
598
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(inlineObject !== undefined ? inlineObject : {}) : (inlineObject || "");
599
- return {
600
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
601
- options: localVarRequestOptions,
602
- };
603
- },
604
- /**
605
- *
606
- * @param {string} companyId
607
- * @param {string} id
608
- * @param {PartialPickResourceGroupName} partialPickResourceGroupName
609
- * @param {*} [options] Override http request option.
610
- * @throws {RequiredError}
611
- */
612
- updateResourceGroup: async (companyId, id, partialPickResourceGroupName, options = {}) => {
613
- // verify required parameter 'companyId' is not null or undefined
614
- if (companyId === null || companyId === undefined) {
615
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling updateResourceGroup.');
616
- }
617
- // verify required parameter 'id' is not null or undefined
618
- if (id === null || id === undefined) {
619
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling updateResourceGroup.');
620
- }
621
- // verify required parameter 'partialPickResourceGroupName' is not null or undefined
622
- if (partialPickResourceGroupName === null || partialPickResourceGroupName === undefined) {
623
- throw new base_1.RequiredError('partialPickResourceGroupName', 'Required parameter partialPickResourceGroupName was null or undefined when calling updateResourceGroup.');
624
- }
625
- const localVarPath = `/companies/{companyId}/resource-groups/{id}`
626
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)))
627
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
628
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
629
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
630
- let baseOptions;
631
- if (configuration) {
632
- baseOptions = configuration.baseOptions;
633
- }
634
- const localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options };
635
- const localVarHeaderParameter = {};
636
- const localVarQueryParameter = {};
637
- localVarHeaderParameter['Content-Type'] = 'application/json';
638
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
639
- for (const key in localVarQueryParameter) {
640
- queryParameters.set(key, localVarQueryParameter[key]);
641
- }
642
- for (const key in options.query) {
643
- queryParameters.set(key, options.query[key]);
644
- }
645
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
646
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
647
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
648
- const needsSerialization = (typeof partialPickResourceGroupName !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
649
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(partialPickResourceGroupName !== undefined ? partialPickResourceGroupName : {}) : (partialPickResourceGroupName || "");
650
- return {
651
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
652
- options: localVarRequestOptions,
653
- };
654
- },
655
- /**
656
- *
657
- * @param {string} companyId
658
- * @param {string} id
659
- * @param {PartialPickRoleNameOrRules} partialPickRoleNameOrRules
660
- * @param {*} [options] Override http request option.
661
- * @throws {RequiredError}
662
- */
663
- updateRole: async (companyId, id, partialPickRoleNameOrRules, options = {}) => {
664
- // verify required parameter 'companyId' is not null or undefined
665
- if (companyId === null || companyId === undefined) {
666
- throw new base_1.RequiredError('companyId', 'Required parameter companyId was null or undefined when calling updateRole.');
667
- }
668
- // verify required parameter 'id' is not null or undefined
669
- if (id === null || id === undefined) {
670
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling updateRole.');
671
- }
672
- // verify required parameter 'partialPickRoleNameOrRules' is not null or undefined
673
- if (partialPickRoleNameOrRules === null || partialPickRoleNameOrRules === undefined) {
674
- throw new base_1.RequiredError('partialPickRoleNameOrRules', 'Required parameter partialPickRoleNameOrRules was null or undefined when calling updateRole.');
675
- }
676
- const localVarPath = `/companies/{companyId}/roles/{id}`
677
- .replace(`{${"companyId"}}`, encodeURIComponent(String(companyId)))
678
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
679
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
680
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
681
- let baseOptions;
682
- if (configuration) {
683
- baseOptions = configuration.baseOptions;
684
- }
685
- const localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options };
686
- const localVarHeaderParameter = {};
687
- const localVarQueryParameter = {};
688
- localVarHeaderParameter['Content-Type'] = 'application/json';
689
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
690
- for (const key in localVarQueryParameter) {
691
- queryParameters.set(key, localVarQueryParameter[key]);
692
- }
693
- for (const key in options.query) {
694
- queryParameters.set(key, options.query[key]);
695
- }
696
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
697
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
698
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
699
- const needsSerialization = (typeof partialPickRoleNameOrRules !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
700
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(partialPickRoleNameOrRules !== undefined ? partialPickRoleNameOrRules : {}) : (partialPickRoleNameOrRules || "");
701
- return {
702
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
703
- options: localVarRequestOptions,
704
- };
705
- },
706
- };
707
- };
708
- /**
709
- * DefaultApi - functional programming interface
710
- * @export
711
- */
712
- exports.DefaultApiFp = function (configuration) {
713
- return {
714
- /**
715
- *
716
- * @param {string} companyId
717
- * @param {*} [options] Override http request option.
718
- * @throws {RequiredError}
719
- */
720
- async companyDefaults(companyId, options) {
721
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).companyDefaults(companyId, options);
722
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
723
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
724
- return axios.request(axiosRequestArgs);
725
- };
726
- },
727
- /**
728
- *
729
- * @param {string} companyId
730
- * @param {PickResourceGroupName} pickResourceGroupName
731
- * @param {*} [options] Override http request option.
732
- * @throws {RequiredError}
733
- */
734
- async createResourceGroup(companyId, pickResourceGroupName, options) {
735
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).createResourceGroup(companyId, pickResourceGroupName, options);
736
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
737
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
738
- return axios.request(axiosRequestArgs);
739
- };
740
- },
741
- /**
742
- *
743
- * @param {string} companyId
744
- * @param {PickRoleNameOrRules} pickRoleNameOrRules
745
- * @param {*} [options] Override http request option.
746
- * @throws {RequiredError}
747
- */
748
- async createRole(companyId, pickRoleNameOrRules, options) {
749
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).createRole(companyId, pickRoleNameOrRules, options);
750
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
751
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
752
- return axios.request(axiosRequestArgs);
753
- };
754
- },
755
- /**
756
- *
757
- * @param {*} [options] Override http request option.
758
- * @throws {RequiredError}
759
- */
760
- async defaults(options) {
761
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).defaults(options);
762
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
763
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
764
- return axios.request(axiosRequestArgs);
765
- };
766
- },
767
- /**
768
- *
769
- * @param {string} companyId
770
- * @param {string} id
771
- * @param {*} [options] Override http request option.
772
- * @throws {RequiredError}
773
- */
774
- async deleteResourceGroup(companyId, id, options) {
775
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).deleteResourceGroup(companyId, id, options);
776
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
777
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
778
- return axios.request(axiosRequestArgs);
779
- };
780
- },
781
- /**
782
- *
783
- * @param {string} companyId
784
- * @param {string} id
785
- * @param {*} [options] Override http request option.
786
- * @throws {RequiredError}
787
- */
788
- async deleteRole(companyId, id, options) {
789
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).deleteRole(companyId, id, options);
790
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
791
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
792
- return axios.request(axiosRequestArgs);
793
- };
794
- },
795
- /**
796
- *
797
- * @param {string} companyId
798
- * @param {*} [options] Override http request option.
799
- * @throws {RequiredError}
800
- */
801
- async getInternalRoles(companyId, options) {
802
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).getInternalRoles(companyId, options);
803
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
804
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
805
- return axios.request(axiosRequestArgs);
806
- };
807
- },
808
- /**
809
- *
810
- * @param {string} companyId
811
- * @param {*} [options] Override http request option.
812
- * @throws {RequiredError}
813
- */
814
- async getResourceGroups(companyId, options) {
815
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).getResourceGroups(companyId, options);
816
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
817
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
818
- return axios.request(axiosRequestArgs);
819
- };
820
- },
821
- /**
822
- *
823
- * @param {string} companyId
824
- * @param {*} [options] Override http request option.
825
- * @throws {RequiredError}
826
- */
827
- async getRoles(companyId, options) {
828
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).getRoles(companyId, options);
829
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
830
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
831
- return axios.request(axiosRequestArgs);
832
- };
833
- },
834
- /**
835
- *
836
- * @param {string} companyId
837
- * @param {PartialRoleIdStringResourceGroupIdsStringArray} partialRoleIdStringResourceGroupIdsStringArray
838
- * @param {*} [options] Override http request option.
839
- * @throws {RequiredError}
840
- */
841
- async setCompanyDefaults(companyId, partialRoleIdStringResourceGroupIdsStringArray, options) {
842
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).setCompanyDefaults(companyId, partialRoleIdStringResourceGroupIdsStringArray, options);
843
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
844
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
845
- return axios.request(axiosRequestArgs);
846
- };
847
- },
848
- /**
849
- *
850
- * @param {string} companyId
851
- * @param {string} id
852
- * @param {InlineObject1} inlineObject1
853
- * @param {*} [options] Override http request option.
854
- * @throws {RequiredError}
855
- */
856
- async setResourceGroups(companyId, id, inlineObject1, options) {
857
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).setResourceGroups(companyId, id, inlineObject1, options);
858
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
859
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
860
- return axios.request(axiosRequestArgs);
861
- };
862
- },
863
- /**
864
- *
865
- * @param {string} companyId
866
- * @param {string} id
867
- * @param {InlineObject} inlineObject
868
- * @param {*} [options] Override http request option.
869
- * @throws {RequiredError}
870
- */
871
- async setRole(companyId, id, inlineObject, options) {
872
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).setRole(companyId, id, inlineObject, options);
873
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
874
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
875
- return axios.request(axiosRequestArgs);
876
- };
877
- },
878
- /**
879
- *
880
- * @param {string} companyId
881
- * @param {string} id
882
- * @param {PartialPickResourceGroupName} partialPickResourceGroupName
883
- * @param {*} [options] Override http request option.
884
- * @throws {RequiredError}
885
- */
886
- async updateResourceGroup(companyId, id, partialPickResourceGroupName, options) {
887
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).updateResourceGroup(companyId, id, partialPickResourceGroupName, options);
888
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
889
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
890
- return axios.request(axiosRequestArgs);
891
- };
892
- },
893
- /**
894
- *
895
- * @param {string} companyId
896
- * @param {string} id
897
- * @param {PartialPickRoleNameOrRules} partialPickRoleNameOrRules
898
- * @param {*} [options] Override http request option.
899
- * @throws {RequiredError}
900
- */
901
- async updateRole(companyId, id, partialPickRoleNameOrRules, options) {
902
- const localVarAxiosArgs = await exports.DefaultApiAxiosParamCreator(configuration).updateRole(companyId, id, partialPickRoleNameOrRules, options);
903
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
904
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
905
- return axios.request(axiosRequestArgs);
906
- };
907
- },
908
- };
909
- };
910
- /**
911
- * DefaultApi - factory interface
912
- * @export
913
- */
914
- exports.DefaultApiFactory = function (configuration, basePath, axios) {
915
- return {
916
- /**
917
- *
918
- * @param {string} companyId
919
- * @param {*} [options] Override http request option.
920
- * @throws {RequiredError}
921
- */
922
- companyDefaults(companyId, options) {
923
- return exports.DefaultApiFp(configuration).companyDefaults(companyId, options).then((request) => request(axios, basePath));
924
- },
925
- /**
926
- *
927
- * @param {string} companyId
928
- * @param {PickResourceGroupName} pickResourceGroupName
929
- * @param {*} [options] Override http request option.
930
- * @throws {RequiredError}
931
- */
932
- createResourceGroup(companyId, pickResourceGroupName, options) {
933
- return exports.DefaultApiFp(configuration).createResourceGroup(companyId, pickResourceGroupName, options).then((request) => request(axios, basePath));
934
- },
935
- /**
936
- *
937
- * @param {string} companyId
938
- * @param {PickRoleNameOrRules} pickRoleNameOrRules
939
- * @param {*} [options] Override http request option.
940
- * @throws {RequiredError}
941
- */
942
- createRole(companyId, pickRoleNameOrRules, options) {
943
- return exports.DefaultApiFp(configuration).createRole(companyId, pickRoleNameOrRules, options).then((request) => request(axios, basePath));
944
- },
945
- /**
946
- *
947
- * @param {*} [options] Override http request option.
948
- * @throws {RequiredError}
949
- */
950
- defaults(options) {
951
- return exports.DefaultApiFp(configuration).defaults(options).then((request) => request(axios, basePath));
952
- },
953
- /**
954
- *
955
- * @param {string} companyId
956
- * @param {string} id
957
- * @param {*} [options] Override http request option.
958
- * @throws {RequiredError}
959
- */
960
- deleteResourceGroup(companyId, id, options) {
961
- return exports.DefaultApiFp(configuration).deleteResourceGroup(companyId, id, options).then((request) => request(axios, basePath));
962
- },
963
- /**
964
- *
965
- * @param {string} companyId
966
- * @param {string} id
967
- * @param {*} [options] Override http request option.
968
- * @throws {RequiredError}
969
- */
970
- deleteRole(companyId, id, options) {
971
- return exports.DefaultApiFp(configuration).deleteRole(companyId, id, options).then((request) => request(axios, basePath));
972
- },
973
- /**
974
- *
975
- * @param {string} companyId
976
- * @param {*} [options] Override http request option.
977
- * @throws {RequiredError}
978
- */
979
- getInternalRoles(companyId, options) {
980
- return exports.DefaultApiFp(configuration).getInternalRoles(companyId, options).then((request) => request(axios, basePath));
981
- },
982
- /**
983
- *
984
- * @param {string} companyId
985
- * @param {*} [options] Override http request option.
986
- * @throws {RequiredError}
987
- */
988
- getResourceGroups(companyId, options) {
989
- return exports.DefaultApiFp(configuration).getResourceGroups(companyId, options).then((request) => request(axios, basePath));
990
- },
991
- /**
992
- *
993
- * @param {string} companyId
994
- * @param {*} [options] Override http request option.
995
- * @throws {RequiredError}
996
- */
997
- getRoles(companyId, options) {
998
- return exports.DefaultApiFp(configuration).getRoles(companyId, options).then((request) => request(axios, basePath));
999
- },
1000
- /**
1001
- *
1002
- * @param {string} companyId
1003
- * @param {PartialRoleIdStringResourceGroupIdsStringArray} partialRoleIdStringResourceGroupIdsStringArray
1004
- * @param {*} [options] Override http request option.
1005
- * @throws {RequiredError}
1006
- */
1007
- setCompanyDefaults(companyId, partialRoleIdStringResourceGroupIdsStringArray, options) {
1008
- return exports.DefaultApiFp(configuration).setCompanyDefaults(companyId, partialRoleIdStringResourceGroupIdsStringArray, options).then((request) => request(axios, basePath));
1009
- },
1010
- /**
1011
- *
1012
- * @param {string} companyId
1013
- * @param {string} id
1014
- * @param {InlineObject1} inlineObject1
1015
- * @param {*} [options] Override http request option.
1016
- * @throws {RequiredError}
1017
- */
1018
- setResourceGroups(companyId, id, inlineObject1, options) {
1019
- return exports.DefaultApiFp(configuration).setResourceGroups(companyId, id, inlineObject1, options).then((request) => request(axios, basePath));
1020
- },
1021
- /**
1022
- *
1023
- * @param {string} companyId
1024
- * @param {string} id
1025
- * @param {InlineObject} inlineObject
1026
- * @param {*} [options] Override http request option.
1027
- * @throws {RequiredError}
1028
- */
1029
- setRole(companyId, id, inlineObject, options) {
1030
- return exports.DefaultApiFp(configuration).setRole(companyId, id, inlineObject, options).then((request) => request(axios, basePath));
1031
- },
1032
- /**
1033
- *
1034
- * @param {string} companyId
1035
- * @param {string} id
1036
- * @param {PartialPickResourceGroupName} partialPickResourceGroupName
1037
- * @param {*} [options] Override http request option.
1038
- * @throws {RequiredError}
1039
- */
1040
- updateResourceGroup(companyId, id, partialPickResourceGroupName, options) {
1041
- return exports.DefaultApiFp(configuration).updateResourceGroup(companyId, id, partialPickResourceGroupName, options).then((request) => request(axios, basePath));
1042
- },
1043
- /**
1044
- *
1045
- * @param {string} companyId
1046
- * @param {string} id
1047
- * @param {PartialPickRoleNameOrRules} partialPickRoleNameOrRules
1048
- * @param {*} [options] Override http request option.
1049
- * @throws {RequiredError}
1050
- */
1051
- updateRole(companyId, id, partialPickRoleNameOrRules, options) {
1052
- return exports.DefaultApiFp(configuration).updateRole(companyId, id, partialPickRoleNameOrRules, options).then((request) => request(axios, basePath));
1053
- },
1054
- };
1055
- };
1056
- /**
1057
- * DefaultApi - object-oriented interface
1058
- * @export
1059
- * @class DefaultApi
1060
- * @extends {BaseAPI}
1061
- */
1062
- class DefaultApi extends base_1.BaseAPI {
1063
- /**
1064
- *
1065
- * @param {DefaultApiCompanyDefaultsRequest} requestParameters Request parameters.
1066
- * @param {*} [options] Override http request option.
1067
- * @throws {RequiredError}
1068
- * @memberof DefaultApi
1069
- */
1070
- companyDefaults(requestParameters, options) {
1071
- return exports.DefaultApiFp(this.configuration).companyDefaults(requestParameters.companyId, options).then((request) => request(this.axios, this.basePath));
9
+ class default_1 {
10
+ constructor(configOrInstance) {
11
+ this.axios = 'interceptors' in configOrInstance
12
+ ? configOrInstance
13
+ : axios_1.default.create(configOrInstance);
14
+ }
15
+ oauthShopifyRedirect(params, options) {
16
+ return this.axios.get("/auth/oauth/shopify/redirect", Object.assign({}, {
17
+ params: pick(params, "shop"),
18
+ }, options));
19
+ }
20
+ oauthRedirect(params, options) {
21
+ return this.axios.get("/auth/oauth/:provider/redirect".replace(/{provider}/, String(params["provider"])), Object.assign({}, {
22
+ params: pick(params, "plan", "companyName"),
23
+ }, options));
24
+ }
25
+ oauthCallback(params, options) {
26
+ return this.axios.get("/auth/oauth/:provider/callback".replace(/{provider}/, String(params["provider"])), Object.assign({}, {
27
+ params: pick(params, "code", "state"),
28
+ }, options));
29
+ }
30
+ ssoRedirect(params, options) {
31
+ return this.axios.get("/auth/sso/redirect/{domain}".replace(/{domain}/, String(params["domain"])), options);
32
+ }
33
+ ssoCallback(params, options) {
34
+ return this.axios.post("/auth/sso/callback/{company}".replace(/{company}/, String(params["company"])), {}, options);
35
+ }
36
+ ssoMetadata(params, options) {
37
+ return this.axios.get("/auth/sso/metadata/{company}".replace(/{company}/, String(params["company"])), options);
38
+ }
39
+ getToken(data, options) {
40
+ return this.axios.post("/auth/token", data, options);
41
+ }
42
+ describeToken(params, options) {
43
+ return this.axios.get("/auth/token/{token}".replace(/{token}/, String(params["token"])), options);
44
+ }
45
+ revokeToken(params, options) {
46
+ return this.axios.delete("/auth/token/{token}".replace(/{token}/, String(params["token"])), options);
47
+ }
48
+ getDefaultsCompany(options) {
49
+ return this.axios.get("/companies/defaults", options);
50
+ }
51
+ setDefaultsCompany(data, options) {
52
+ return this.axios.post("/companies/defaults", data, options);
53
+ }
54
+ getCompany(params, options) {
55
+ return this.axios.get("/companies/{id}".replace(/{id}/, String(params["id"])), options);
1072
56
  }
1073
- /**
1074
- *
1075
- * @param {DefaultApiCreateResourceGroupRequest} requestParameters Request parameters.
1076
- * @param {*} [options] Override http request option.
1077
- * @throws {RequiredError}
1078
- * @memberof DefaultApi
1079
- */
1080
- createResourceGroup(requestParameters, options) {
1081
- return exports.DefaultApiFp(this.configuration).createResourceGroup(requestParameters.companyId, requestParameters.pickResourceGroupName, options).then((request) => request(this.axios, this.basePath));
57
+ listInvitation(params, options) {
58
+ return this.axios.get("/invitations", Object.assign({}, {
59
+ params: pick(params, "page", "perPage", "state"),
60
+ }, options));
1082
61
  }
1083
- /**
1084
- *
1085
- * @param {DefaultApiCreateRoleRequest} requestParameters Request parameters.
1086
- * @param {*} [options] Override http request option.
1087
- * @throws {RequiredError}
1088
- * @memberof DefaultApi
1089
- */
1090
- createRole(requestParameters, options) {
1091
- return exports.DefaultApiFp(this.configuration).createRole(requestParameters.companyId, requestParameters.pickRoleNameOrRules, options).then((request) => request(this.axios, this.basePath));
62
+ createInvitation(data, options) {
63
+ return this.axios.post("/invitations", data, options);
1092
64
  }
1093
- /**
1094
- *
1095
- * @param {*} [options] Override http request option.
1096
- * @throws {RequiredError}
1097
- * @memberof DefaultApi
1098
- */
1099
- defaults(options) {
1100
- return exports.DefaultApiFp(this.configuration).defaults(options).then((request) => request(this.axios, this.basePath));
65
+ useInvitation(params, options) {
66
+ return this.axios.get("/invitations/{id}".replace(/{id}/, String(params["id"])), options);
1101
67
  }
1102
- /**
1103
- *
1104
- * @param {DefaultApiDeleteResourceGroupRequest} requestParameters Request parameters.
1105
- * @param {*} [options] Override http request option.
1106
- * @throws {RequiredError}
1107
- * @memberof DefaultApi
1108
- */
1109
- deleteResourceGroup(requestParameters, options) {
1110
- return exports.DefaultApiFp(this.configuration).deleteResourceGroup(requestParameters.companyId, requestParameters.id, options).then((request) => request(this.axios, this.basePath));
68
+ deleteInvitation(params, options) {
69
+ return this.axios.delete("/invitations/{id}".replace(/{id}/, String(params["id"])), options);
1111
70
  }
1112
- /**
1113
- *
1114
- * @param {DefaultApiDeleteRoleRequest} requestParameters Request parameters.
1115
- * @param {*} [options] Override http request option.
1116
- * @throws {RequiredError}
1117
- * @memberof DefaultApi
1118
- */
1119
- deleteRole(requestParameters, options) {
1120
- return exports.DefaultApiFp(this.configuration).deleteRole(requestParameters.companyId, requestParameters.id, options).then((request) => request(this.axios, this.basePath));
71
+ listResourceGroup(options) {
72
+ return this.axios.get("/resource-groups", options);
1121
73
  }
1122
- /**
1123
- *
1124
- * @param {DefaultApiGetInternalRolesRequest} requestParameters Request parameters.
1125
- * @param {*} [options] Override http request option.
1126
- * @throws {RequiredError}
1127
- * @memberof DefaultApi
1128
- */
1129
- getInternalRoles(requestParameters, options) {
1130
- return exports.DefaultApiFp(this.configuration).getInternalRoles(requestParameters.companyId, options).then((request) => request(this.axios, this.basePath));
74
+ createResourceGroup(data, options) {
75
+ return this.axios.post("/resource-groups", data, options);
1131
76
  }
1132
- /**
1133
- *
1134
- * @param {DefaultApiGetResourceGroupsRequest} requestParameters Request parameters.
1135
- * @param {*} [options] Override http request option.
1136
- * @throws {RequiredError}
1137
- * @memberof DefaultApi
1138
- */
1139
- getResourceGroups(requestParameters, options) {
1140
- return exports.DefaultApiFp(this.configuration).getResourceGroups(requestParameters.companyId, options).then((request) => request(this.axios, this.basePath));
77
+ updateResourceGroup(params, data, options) {
78
+ return this.axios.patch("/resource-groups/{id}".replace(/{id}/, String(params["id"])), data, options);
1141
79
  }
1142
- /**
1143
- *
1144
- * @param {DefaultApiGetRolesRequest} requestParameters Request parameters.
1145
- * @param {*} [options] Override http request option.
1146
- * @throws {RequiredError}
1147
- * @memberof DefaultApi
1148
- */
1149
- getRoles(requestParameters, options) {
1150
- return exports.DefaultApiFp(this.configuration).getRoles(requestParameters.companyId, options).then((request) => request(this.axios, this.basePath));
80
+ deleteResourceGroup(params, options) {
81
+ return this.axios.delete("/resource-groups/{id}".replace(/{id}/, String(params["id"])), options);
1151
82
  }
1152
- /**
1153
- *
1154
- * @param {DefaultApiSetCompanyDefaultsRequest} requestParameters Request parameters.
1155
- * @param {*} [options] Override http request option.
1156
- * @throws {RequiredError}
1157
- * @memberof DefaultApi
1158
- */
1159
- setCompanyDefaults(requestParameters, options) {
1160
- return exports.DefaultApiFp(this.configuration).setCompanyDefaults(requestParameters.companyId, requestParameters.partialRoleIdStringResourceGroupIdsStringArray, options).then((request) => request(this.axios, this.basePath));
83
+ listRole(options) {
84
+ return this.axios.get("/roles", options);
1161
85
  }
1162
- /**
1163
- *
1164
- * @param {DefaultApiSetResourceGroupsRequest} requestParameters Request parameters.
1165
- * @param {*} [options] Override http request option.
1166
- * @throws {RequiredError}
1167
- * @memberof DefaultApi
1168
- */
1169
- setResourceGroups(requestParameters, options) {
1170
- return exports.DefaultApiFp(this.configuration).setResourceGroups(requestParameters.companyId, requestParameters.id, requestParameters.inlineObject1, options).then((request) => request(this.axios, this.basePath));
86
+ createRole(data, options) {
87
+ return this.axios.post("/roles", data, options);
1171
88
  }
1172
- /**
1173
- *
1174
- * @param {DefaultApiSetRoleRequest} requestParameters Request parameters.
1175
- * @param {*} [options] Override http request option.
1176
- * @throws {RequiredError}
1177
- * @memberof DefaultApi
1178
- */
1179
- setRole(requestParameters, options) {
1180
- return exports.DefaultApiFp(this.configuration).setRole(requestParameters.companyId, requestParameters.id, requestParameters.inlineObject, options).then((request) => request(this.axios, this.basePath));
89
+ updateRole(params, data, options) {
90
+ return this.axios.patch("/roles/{id}".replace(/{id}/, String(params["id"])), data, options);
1181
91
  }
1182
- /**
1183
- *
1184
- * @param {DefaultApiUpdateResourceGroupRequest} requestParameters Request parameters.
1185
- * @param {*} [options] Override http request option.
1186
- * @throws {RequiredError}
1187
- * @memberof DefaultApi
1188
- */
1189
- updateResourceGroup(requestParameters, options) {
1190
- return exports.DefaultApiFp(this.configuration).updateResourceGroup(requestParameters.companyId, requestParameters.id, requestParameters.partialPickResourceGroupName, options).then((request) => request(this.axios, this.basePath));
92
+ deleteRole(params, options) {
93
+ return this.axios.delete("/roles/{id}".replace(/{id}/, String(params["id"])), options);
1191
94
  }
1192
- /**
1193
- *
1194
- * @param {DefaultApiUpdateRoleRequest} requestParameters Request parameters.
1195
- * @param {*} [options] Override http request option.
1196
- * @throws {RequiredError}
1197
- * @memberof DefaultApi
1198
- */
1199
- updateRole(requestParameters, options) {
1200
- return exports.DefaultApiFp(this.configuration).updateRole(requestParameters.companyId, requestParameters.id, requestParameters.partialPickRoleNameOrRules, options).then((request) => request(this.axios, this.basePath));
95
+ listUser(params, options) {
96
+ return this.axios.get("/users", Object.assign({}, {
97
+ params: pick(params, "page", "perPage"),
98
+ }, options));
1201
99
  }
100
+ createUser(data, options) {
101
+ return this.axios.post("/users", data, options);
102
+ }
103
+ updatePasswordUser(data, options) {
104
+ return this.axios.patch("/users/password", data, options);
105
+ }
106
+ resetPasswordUser(data, options) {
107
+ return this.axios.post("/users/password-reset", data, options);
108
+ }
109
+ updateUser(params, data, options) {
110
+ return this.axios.patch("/users/{id}".replace(/{id}/, String(params["id"])), data, options);
111
+ }
112
+ deleteUser(params, options) {
113
+ return this.axios.delete("/users/{id}".replace(/{id}/, String(params["id"])), options);
114
+ }
115
+ setRoleUser(params, data, options) {
116
+ return this.axios.post("/users/{id}/role".replace(/{id}/, String(params["id"])), data, options);
117
+ }
118
+ setResourceGroupsUser(params, data, options) {
119
+ return this.axios.post("/users/{id}/resource-groups".replace(/{id}/, String(params["id"])), data, options);
120
+ }
121
+ setOtpUser(params, data, options) {
122
+ return this.axios.post("/users/{id}/otp".replace(/{id}/, String(params["id"])), data, options);
123
+ }
124
+ get Authentification() {
125
+ return {
126
+ oauthShopifyRedirect: this.oauthShopifyRedirect.bind(this),
127
+ oauthRedirect: this.oauthRedirect.bind(this),
128
+ oauthCallback: this.oauthCallback.bind(this),
129
+ ssoRedirect: this.ssoRedirect.bind(this),
130
+ ssoCallback: this.ssoCallback.bind(this),
131
+ ssoMetadata: this.ssoMetadata.bind(this),
132
+ getToken: this.getToken.bind(this),
133
+ describeToken: this.describeToken.bind(this),
134
+ revokeToken: this.revokeToken.bind(this)
135
+ };
136
+ }
137
+ get Company() {
138
+ return {
139
+ getDefaults: this.getDefaultsCompany.bind(this),
140
+ setDefaults: this.setDefaultsCompany.bind(this),
141
+ get: this.getCompany.bind(this)
142
+ };
143
+ }
144
+ get Invitation() {
145
+ return {
146
+ list: this.listInvitation.bind(this),
147
+ create: this.createInvitation.bind(this),
148
+ use: this.useInvitation.bind(this),
149
+ delete: this.deleteInvitation.bind(this)
150
+ };
151
+ }
152
+ get ResourceGroup() {
153
+ return {
154
+ list: this.listResourceGroup.bind(this),
155
+ create: this.createResourceGroup.bind(this),
156
+ update: this.updateResourceGroup.bind(this),
157
+ delete: this.deleteResourceGroup.bind(this)
158
+ };
159
+ }
160
+ get Role() {
161
+ return {
162
+ list: this.listRole.bind(this),
163
+ create: this.createRole.bind(this),
164
+ update: this.updateRole.bind(this),
165
+ delete: this.deleteRole.bind(this)
166
+ };
167
+ }
168
+ get User() {
169
+ return {
170
+ list: this.listUser.bind(this),
171
+ create: this.createUser.bind(this),
172
+ updatePassword: this.updatePasswordUser.bind(this),
173
+ resetPassword: this.resetPasswordUser.bind(this),
174
+ update: this.updateUser.bind(this),
175
+ delete: this.deleteUser.bind(this),
176
+ setRole: this.setRoleUser.bind(this),
177
+ setResourceGroups: this.setResourceGroupsUser.bind(this),
178
+ setOtp: this.setOtpUser.bind(this)
179
+ };
180
+ }
181
+ }
182
+ exports.default = default_1;
183
+ function pick(obj, ...keys) {
184
+ const ret = {};
185
+ keys.forEach(key => {
186
+ if (obj && Object.keys(obj).includes(key))
187
+ ret[key] = obj[key];
188
+ });
189
+ return ret;
1202
190
  }
1203
- exports.DefaultApi = DefaultApi;
1204
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCOzs7Ozs7Ozs7O0dBVUc7Ozs7OztBQUlILGtEQUFpRTtBQUNqRSx5REFBeUQ7QUFDekQsYUFBYTtBQUNiLGlDQUE0RjtBQTJ6QjVGOzs7TUFHTTtBQUNOLElBQVkseUJBRVg7QUFGRCxXQUFZLHlCQUF5QjtJQUNqQyxnREFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBRlcseUJBQXlCLEdBQXpCLGlDQUF5QixLQUF6QixpQ0FBeUIsUUFFcEM7QUFvREQ7OztNQUdNO0FBQ04sSUFBWSxnQ0FFWDtBQUZELFdBQVksZ0NBQWdDO0lBQ3hDLHVEQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFGVyxnQ0FBZ0MsR0FBaEMsd0NBQWdDLEtBQWhDLHdDQUFnQyxRQUUzQztBQW9ERDs7O01BR007QUFDTixJQUFZLHNDQUVYO0FBRkQsV0FBWSxzQ0FBc0M7SUFDOUMsNkRBQW1CLENBQUE7QUFDdkIsQ0FBQyxFQUZXLHNDQUFzQyxHQUF0Qyw4Q0FBc0MsS0FBdEMsOENBQXNDLFFBRWpEO0FBb0REOzs7TUFHTTtBQUNOLElBQVksMkNBRVg7QUFGRCxXQUFZLDJDQUEyQztJQUNuRCxrRUFBbUIsQ0FBQTtBQUN2QixDQUFDLEVBRlcsMkNBQTJDLEdBQTNDLG1EQUEyQyxLQUEzQyxtREFBMkMsUUFFdEQ7QUFvREQ7OztNQUdNO0FBQ04sSUFBWSw2QkFFWDtBQUZELFdBQVksNkJBQTZCO0lBQ3JDLG9EQUFtQixDQUFBO0FBQ3ZCLENBQUMsRUFGVyw2QkFBNkIsR0FBN0IscUNBQTZCLEtBQTdCLHFDQUE2QixRQUV4QztBQW9ERDs7O01BR007QUFDTixJQUFZLGtDQUVYO0FBRkQsV0FBWSxrQ0FBa0M7SUFDMUMseURBQW1CLENBQUE7QUFDdkIsQ0FBQyxFQUZXLGtDQUFrQyxHQUFsQywwQ0FBa0MsS0FBbEMsMENBQWtD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
191
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsb0JBQW9COzs7OztBQUVwQixrREFBaUU7QUFvQmpFO0lBR0ksWUFBWSxnQkFBb0Q7UUFDNUQsSUFBSSxDQUFDLEtBQUssR0FBRyxjQUFjLElBQUksZ0JBQWdCO1lBQzNDLENBQUMsQ0FBQyxnQkFBZ0I7WUFDbEIsQ0FBQyxDQUFDLGVBQUssQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUN4QyxDQUFDO0lBRU8sb0JBQW9CLENBQUMsTUFFNUIsRUFBRSxPQUE0QjtRQUMzQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQVNqQiw4QkFBOEIsRUFDOUIsTUFBTSxDQUFDLE1BQU0sQ0FDVCxFQUFFLEVBQ0Y7WUFDSSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUM7U0FDL0IsRUFDRCxPQUFPLENBQ1YsQ0FDSixDQUFDO0lBQ04sQ0FBQztJQUVPLGFBQWEsQ0FBQyxNQUlyQixFQUFFLE9BQTRCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBU2pCLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQ2xGLE1BQU0sQ0FBQyxNQUFNLENBQ1QsRUFBRSxFQUNGO1lBQ0ksTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGFBQWEsQ0FBQztTQUM5QyxFQUNELE9BQU8sQ0FDVixDQUNKLENBQUM7SUFDTixDQUFDO0lBRU8sYUFBYSxDQUFDLE1BSXJCLEVBQUUsT0FBNEI7UUFDM0IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FTakIsZ0NBQWdDLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLFVB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