@rlvt/datasources-openapi-client 0.0.0-cc8d24f → 0.0.0-ce515f8

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,2701 +1,160 @@
1
1
  "use strict";
2
2
  /* tslint:disable */
3
3
  /* eslint-disable */
4
- /**
5
- * frontend
6
- * No description provided (generated by Openapi Generator https://github.com/openapitools/openapi-generator)
7
- *
8
- * The version of the OpenAPI document: cc8d24fc19b3c987ee663cb4712afd411cd96c8d
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.OAuthClientApi = exports.OAuthClientApiFactory = exports.OAuthClientApiFp = exports.OAuthClientApiAxiosParamCreator = exports.DatasourcesApi = exports.DatasourcesApiFactory = exports.DatasourcesApiFp = exports.DatasourcesApiAxiosParamCreator = exports.ThresholdTypeTOOMANYINVALIDENTRIES = exports.ThresholdTypeENTRIESDROPRATETOOHIGH = exports.ThresholdAnyOfTriggerTypeEnum = exports.SuccessResponseUrlStringStatusEnum = exports.SuccessResponseSerializedOAuthClientStatusEnum = exports.SuccessResponseSerializedDatasourceWithVersionsOrSerializedDatasourceWithVersionStatusEnum = exports.SuccessResponseSerializedDatasourceWithVersionStatusEnum = exports.SuccessResponseReadyBooleanStatusEnum = exports.SuccessResponseIndexesCreatedNumberStatusEnum = exports.SuccessResponseCountNumberStatusEnum = exports.SuccessResponseStatusEnum = exports.SortOrder = exports.SortBy = exports.PartialResponseUnknownArrayStatusEnum = exports.PartialResponseSerializedOAuthClientArrayStatusEnum = exports.PartialResponseSerializedDatasourceWithVersionsArrayOrSerializedDatasourceWithVersionArrayStatusEnum = exports.PartialResponseDatasourceLogArrayStatusEnum = exports.LogWarningType = exports.LogUniqueWarningTypeENTRIESDROPRATETOOHIGH = exports.LogUniqueWarningType = exports.LogLevel = exports.LogInfoType = exports.LogErrorTypeTOOMANYINVALIDENTRIES = exports.LogErrorTypeENTRIESDROPRATETOOHIGH = exports.LogErrorType = exports.FieldMapType = exports.FieldMapRuleNameSTATIC = exports.FieldMapRuleNamePATH = exports.FieldMapRuleNameFALLBACK = exports.FieldMapRuleNameARRAYFIND = exports.FieldMapRuleAnyOfParamsOperatorEnum = exports.DatasourceVersionState = exports.DatasourceType = exports.DatasourceFormat = exports.AggregationStepTypeUNWIND = void 0;
8
+ exports.FieldMapType = exports.DatasourceFormat = exports.DatasourceStatus = exports.DatasourceType = exports.DatasourceMode = void 0;
20
9
  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
- *
26
- * @export
27
- * @enum {string}
28
- */
29
- var AggregationStepTypeUNWIND;
30
- (function (AggregationStepTypeUNWIND) {
31
- AggregationStepTypeUNWIND["UNWIND"] = "unwind";
32
- })(AggregationStepTypeUNWIND = exports.AggregationStepTypeUNWIND || (exports.AggregationStepTypeUNWIND = {}));
33
- /**
34
- *
35
- * @export
36
- * @enum {string}
37
- */
38
- var DatasourceFormat;
39
- (function (DatasourceFormat) {
40
- DatasourceFormat["CSV"] = "csv";
41
- DatasourceFormat["NDJSON"] = "ndjson";
42
- DatasourceFormat["JSON"] = "json";
43
- DatasourceFormat["XML"] = "xml";
44
- DatasourceFormat["XLSX"] = "xlsx";
45
- })(DatasourceFormat = exports.DatasourceFormat || (exports.DatasourceFormat = {}));
46
- /**
47
- *
48
- * @export
49
- * @enum {string}
50
- */
51
- var DatasourceType;
52
- (function (DatasourceType) {
53
- DatasourceType["GENERIC"] = "generic";
54
- DatasourceType["LOCATION"] = "location";
55
- DatasourceType["PRODUCT"] = "product";
56
- DatasourceType["PROXY"] = "proxy";
57
- })(DatasourceType = exports.DatasourceType || (exports.DatasourceType = {}));
58
- /**
59
- *
60
- * @export
61
- * @enum {string}
62
- */
63
- var DatasourceVersionState;
64
- (function (DatasourceVersionState) {
65
- DatasourceVersionState["LIVE"] = "LIVE";
66
- DatasourceVersionState["DRAFT"] = "DRAFT";
67
- DatasourceVersionState["SCHEDULED"] = "SCHEDULED";
68
- DatasourceVersionState["INACTIVE"] = "INACTIVE";
69
- })(DatasourceVersionState = exports.DatasourceVersionState || (exports.DatasourceVersionState = {}));
70
- /**
71
- * @export
72
- * @enum {string}
73
- */
74
- var FieldMapRuleAnyOfParamsOperatorEnum;
75
- (function (FieldMapRuleAnyOfParamsOperatorEnum) {
76
- FieldMapRuleAnyOfParamsOperatorEnum["EQUAL"] = "=";
77
- })(FieldMapRuleAnyOfParamsOperatorEnum = exports.FieldMapRuleAnyOfParamsOperatorEnum || (exports.FieldMapRuleAnyOfParamsOperatorEnum = {}));
78
- /**
79
- *
80
- * @export
81
- * @enum {string}
82
- */
83
- var FieldMapRuleNameARRAYFIND;
84
- (function (FieldMapRuleNameARRAYFIND) {
85
- FieldMapRuleNameARRAYFIND["ARRAY_FIND"] = "array_find";
86
- })(FieldMapRuleNameARRAYFIND = exports.FieldMapRuleNameARRAYFIND || (exports.FieldMapRuleNameARRAYFIND = {}));
87
- /**
88
- *
89
- * @export
90
- * @enum {string}
91
- */
92
- var FieldMapRuleNameFALLBACK;
93
- (function (FieldMapRuleNameFALLBACK) {
94
- FieldMapRuleNameFALLBACK["FALLBACK"] = "fallback";
95
- })(FieldMapRuleNameFALLBACK = exports.FieldMapRuleNameFALLBACK || (exports.FieldMapRuleNameFALLBACK = {}));
96
- /**
97
- *
98
- * @export
99
- * @enum {string}
100
- */
101
- var FieldMapRuleNamePATH;
102
- (function (FieldMapRuleNamePATH) {
103
- FieldMapRuleNamePATH["PATH"] = "path";
104
- })(FieldMapRuleNamePATH = exports.FieldMapRuleNamePATH || (exports.FieldMapRuleNamePATH = {}));
105
- /**
106
- *
107
- * @export
108
- * @enum {string}
109
- */
110
- var FieldMapRuleNameSTATIC;
111
- (function (FieldMapRuleNameSTATIC) {
112
- FieldMapRuleNameSTATIC["STATIC"] = "static";
113
- })(FieldMapRuleNameSTATIC = exports.FieldMapRuleNameSTATIC || (exports.FieldMapRuleNameSTATIC = {}));
114
- /**
115
- *
116
- * @export
117
- * @enum {string}
118
- */
119
- var FieldMapType;
120
- (function (FieldMapType) {
121
- FieldMapType["STRING"] = "string";
122
- FieldMapType["NUMBER"] = "number";
123
- FieldMapType["ADDRESS_1"] = "address_1";
124
- FieldMapType["ADDRESS_2"] = "address_2";
125
- FieldMapType["ADDRESS_3"] = "address_3";
126
- FieldMapType["ADDRESS_4"] = "address_4";
127
- FieldMapType["CITY"] = "city";
128
- FieldMapType["ZIPCODE"] = "zipcode";
129
- FieldMapType["COUNTRY"] = "country";
130
- FieldMapType["LATITUDE"] = "latitude";
131
- FieldMapType["LONGITUDE"] = "longitude";
132
- FieldMapType["REFERENCE_ID"] = "reference_id";
133
- FieldMapType["PRODUCT_ID"] = "product_id";
134
- FieldMapType["PRICE"] = "price";
135
- FieldMapType["URL"] = "url";
136
- FieldMapType["IMAGE_URL"] = "image_url";
137
- FieldMapType["NAME"] = "name";
138
- FieldMapType["DESCRIPTION"] = "description";
139
- })(FieldMapType = exports.FieldMapType || (exports.FieldMapType = {}));
140
- /**
141
- *
142
- * @export
143
- * @enum {string}
144
- */
145
- var LogErrorType;
146
- (function (LogErrorType) {
147
- LogErrorType["TOO_MANY_INVALID_ENTRIES"] = "too_many_invalid_entries";
148
- LogErrorType["ENTRIES_DROP_RATE_TOO_HIGH"] = "entries_drop_rate_too_high";
149
- LogErrorType["FATAL"] = "fatal";
150
- })(LogErrorType = exports.LogErrorType || (exports.LogErrorType = {}));
151
- /**
152
- *
153
- * @export
154
- * @enum {string}
155
- */
156
- var LogErrorTypeENTRIESDROPRATETOOHIGH;
157
- (function (LogErrorTypeENTRIESDROPRATETOOHIGH) {
158
- LogErrorTypeENTRIESDROPRATETOOHIGH["ENTRIES_DROP_RATE_TOO_HIGH"] = "entries_drop_rate_too_high";
159
- })(LogErrorTypeENTRIESDROPRATETOOHIGH = exports.LogErrorTypeENTRIESDROPRATETOOHIGH || (exports.LogErrorTypeENTRIESDROPRATETOOHIGH = {}));
160
- /**
161
- *
162
- * @export
163
- * @enum {string}
164
- */
165
- var LogErrorTypeTOOMANYINVALIDENTRIES;
166
- (function (LogErrorTypeTOOMANYINVALIDENTRIES) {
167
- LogErrorTypeTOOMANYINVALIDENTRIES["TOO_MANY_INVALID_ENTRIES"] = "too_many_invalid_entries";
168
- })(LogErrorTypeTOOMANYINVALIDENTRIES = exports.LogErrorTypeTOOMANYINVALIDENTRIES || (exports.LogErrorTypeTOOMANYINVALIDENTRIES = {}));
169
- /**
170
- *
171
- * @export
172
- * @enum {string}
173
- */
174
- var LogInfoType;
175
- (function (LogInfoType) {
176
- LogInfoType["START"] = "start";
177
- LogInfoType["END"] = "end";
178
- LogInfoType["CONTENT_UPDATE"] = "content_update";
179
- })(LogInfoType = exports.LogInfoType || (exports.LogInfoType = {}));
180
- /**
181
- *
182
- * @export
183
- * @enum {string}
184
- */
185
- var LogLevel;
186
- (function (LogLevel) {
187
- LogLevel[LogLevel["NUMBER_0"] = 0] = "NUMBER_0";
188
- LogLevel[LogLevel["NUMBER_1"] = 1] = "NUMBER_1";
189
- LogLevel[LogLevel["NUMBER_2"] = 2] = "NUMBER_2";
190
- })(LogLevel = exports.LogLevel || (exports.LogLevel = {}));
191
- /**
192
- *
193
- * @export
194
- * @enum {string}
195
- */
196
- var LogUniqueWarningType;
197
- (function (LogUniqueWarningType) {
198
- LogUniqueWarningType["ENTRIES_DROP_RATE_TOO_HIGH"] = "entries_drop_rate_too_high";
199
- LogUniqueWarningType["REFRESH_TIME_TOO_SMALL"] = "refresh_time_too_small";
200
- LogUniqueWarningType["MISSING_FIELDS"] = "missing_fields";
201
- })(LogUniqueWarningType = exports.LogUniqueWarningType || (exports.LogUniqueWarningType = {}));
202
- /**
203
- *
204
- * @export
205
- * @enum {string}
206
- */
207
- var LogUniqueWarningTypeENTRIESDROPRATETOOHIGH;
208
- (function (LogUniqueWarningTypeENTRIESDROPRATETOOHIGH) {
209
- LogUniqueWarningTypeENTRIESDROPRATETOOHIGH["ENTRIES_DROP_RATE_TOO_HIGH"] = "entries_drop_rate_too_high";
210
- })(LogUniqueWarningTypeENTRIESDROPRATETOOHIGH = exports.LogUniqueWarningTypeENTRIESDROPRATETOOHIGH || (exports.LogUniqueWarningTypeENTRIESDROPRATETOOHIGH = {}));
211
- /**
212
- *
213
- * @export
214
- * @enum {string}
215
- */
216
- var LogWarningType;
217
- (function (LogWarningType) {
218
- LogWarningType["GEOCODING_ADDRESS"] = "geocoding_address";
219
- LogWarningType["GEOCODING_COUNTRY"] = "geocoding_country";
220
- LogWarningType["INVALID_TYPE"] = "invalid_type";
221
- LogWarningType["INVALID_UNWIND_SOURCE"] = "invalid_unwind_source";
222
- LogWarningType["REQUIRED_VALUES_EMPTY"] = "required_values_empty";
223
- })(LogWarningType = exports.LogWarningType || (exports.LogWarningType = {}));
224
- /**
225
- * @export
226
- * @enum {string}
227
- */
228
- var PartialResponseDatasourceLogArrayStatusEnum;
229
- (function (PartialResponseDatasourceLogArrayStatusEnum) {
230
- PartialResponseDatasourceLogArrayStatusEnum["SUCCESS"] = "success";
231
- })(PartialResponseDatasourceLogArrayStatusEnum = exports.PartialResponseDatasourceLogArrayStatusEnum || (exports.PartialResponseDatasourceLogArrayStatusEnum = {}));
232
- /**
233
- * @export
234
- * @enum {string}
235
- */
236
- var PartialResponseSerializedDatasourceWithVersionsArrayOrSerializedDatasourceWithVersionArrayStatusEnum;
237
- (function (PartialResponseSerializedDatasourceWithVersionsArrayOrSerializedDatasourceWithVersionArrayStatusEnum) {
238
- PartialResponseSerializedDatasourceWithVersionsArrayOrSerializedDatasourceWithVersionArrayStatusEnum["SUCCESS"] = "success";
239
- })(PartialResponseSerializedDatasourceWithVersionsArrayOrSerializedDatasourceWithVersionArrayStatusEnum = exports.PartialResponseSerializedDatasourceWithVersionsArrayOrSerializedDatasourceWithVersionArrayStatusEnum || (exports.PartialResponseSerializedDatasourceWithVersionsArrayOrSerializedDatasourceWithVersionArrayStatusEnum = {}));
240
- /**
241
- * @export
242
- * @enum {string}
243
- */
244
- var PartialResponseSerializedOAuthClientArrayStatusEnum;
245
- (function (PartialResponseSerializedOAuthClientArrayStatusEnum) {
246
- PartialResponseSerializedOAuthClientArrayStatusEnum["SUCCESS"] = "success";
247
- })(PartialResponseSerializedOAuthClientArrayStatusEnum = exports.PartialResponseSerializedOAuthClientArrayStatusEnum || (exports.PartialResponseSerializedOAuthClientArrayStatusEnum = {}));
248
- /**
249
- * @export
250
- * @enum {string}
251
- */
252
- var PartialResponseUnknownArrayStatusEnum;
253
- (function (PartialResponseUnknownArrayStatusEnum) {
254
- PartialResponseUnknownArrayStatusEnum["SUCCESS"] = "success";
255
- })(PartialResponseUnknownArrayStatusEnum = exports.PartialResponseUnknownArrayStatusEnum || (exports.PartialResponseUnknownArrayStatusEnum = {}));
256
- /**
257
- *
258
- * @export
259
- * @enum {string}
260
- */
261
- var SortBy;
262
- (function (SortBy) {
263
- SortBy["CREATED_AT"] = "createdAt";
264
- SortBy["NAME"] = "name";
265
- SortBy["LAST_RUN_AT"] = "lastRunAt";
266
- SortBy["CONFIGURATION_UPDATED_AT"] = "configurationUpdatedAt";
267
- })(SortBy = exports.SortBy || (exports.SortBy = {}));
268
- /**
269
- *
270
- * @export
271
- * @enum {string}
272
- */
273
- var SortOrder;
274
- (function (SortOrder) {
275
- SortOrder["DESCEND"] = "descend";
276
- SortOrder["ASCEND"] = "ascend";
277
- })(SortOrder = exports.SortOrder || (exports.SortOrder = {}));
278
- /**
279
- * @export
280
- * @enum {string}
281
- */
282
- var SuccessResponseStatusEnum;
283
- (function (SuccessResponseStatusEnum) {
284
- SuccessResponseStatusEnum["SUCCESS"] = "success";
285
- })(SuccessResponseStatusEnum = exports.SuccessResponseStatusEnum || (exports.SuccessResponseStatusEnum = {}));
286
- /**
287
- * @export
288
- * @enum {string}
289
- */
290
- var SuccessResponseCountNumberStatusEnum;
291
- (function (SuccessResponseCountNumberStatusEnum) {
292
- SuccessResponseCountNumberStatusEnum["SUCCESS"] = "success";
293
- })(SuccessResponseCountNumberStatusEnum = exports.SuccessResponseCountNumberStatusEnum || (exports.SuccessResponseCountNumberStatusEnum = {}));
294
- /**
295
- * @export
296
- * @enum {string}
297
- */
298
- var SuccessResponseIndexesCreatedNumberStatusEnum;
299
- (function (SuccessResponseIndexesCreatedNumberStatusEnum) {
300
- SuccessResponseIndexesCreatedNumberStatusEnum["SUCCESS"] = "success";
301
- })(SuccessResponseIndexesCreatedNumberStatusEnum = exports.SuccessResponseIndexesCreatedNumberStatusEnum || (exports.SuccessResponseIndexesCreatedNumberStatusEnum = {}));
302
- /**
303
- * @export
304
- * @enum {string}
305
- */
306
- var SuccessResponseReadyBooleanStatusEnum;
307
- (function (SuccessResponseReadyBooleanStatusEnum) {
308
- SuccessResponseReadyBooleanStatusEnum["SUCCESS"] = "success";
309
- })(SuccessResponseReadyBooleanStatusEnum = exports.SuccessResponseReadyBooleanStatusEnum || (exports.SuccessResponseReadyBooleanStatusEnum = {}));
310
- /**
311
- * @export
312
- * @enum {string}
313
- */
314
- var SuccessResponseSerializedDatasourceWithVersionStatusEnum;
315
- (function (SuccessResponseSerializedDatasourceWithVersionStatusEnum) {
316
- SuccessResponseSerializedDatasourceWithVersionStatusEnum["SUCCESS"] = "success";
317
- })(SuccessResponseSerializedDatasourceWithVersionStatusEnum = exports.SuccessResponseSerializedDatasourceWithVersionStatusEnum || (exports.SuccessResponseSerializedDatasourceWithVersionStatusEnum = {}));
318
- /**
319
- * @export
320
- * @enum {string}
321
- */
322
- var SuccessResponseSerializedDatasourceWithVersionsOrSerializedDatasourceWithVersionStatusEnum;
323
- (function (SuccessResponseSerializedDatasourceWithVersionsOrSerializedDatasourceWithVersionStatusEnum) {
324
- SuccessResponseSerializedDatasourceWithVersionsOrSerializedDatasourceWithVersionStatusEnum["SUCCESS"] = "success";
325
- })(SuccessResponseSerializedDatasourceWithVersionsOrSerializedDatasourceWithVersionStatusEnum = exports.SuccessResponseSerializedDatasourceWithVersionsOrSerializedDatasourceWithVersionStatusEnum || (exports.SuccessResponseSerializedDatasourceWithVersionsOrSerializedDatasourceWithVersionStatusEnum = {}));
326
- /**
327
- * @export
328
- * @enum {string}
329
- */
330
- var SuccessResponseSerializedOAuthClientStatusEnum;
331
- (function (SuccessResponseSerializedOAuthClientStatusEnum) {
332
- SuccessResponseSerializedOAuthClientStatusEnum["SUCCESS"] = "success";
333
- })(SuccessResponseSerializedOAuthClientStatusEnum = exports.SuccessResponseSerializedOAuthClientStatusEnum || (exports.SuccessResponseSerializedOAuthClientStatusEnum = {}));
334
- /**
335
- * @export
336
- * @enum {string}
337
- */
338
- var SuccessResponseUrlStringStatusEnum;
339
- (function (SuccessResponseUrlStringStatusEnum) {
340
- SuccessResponseUrlStringStatusEnum["SUCCESS"] = "success";
341
- })(SuccessResponseUrlStringStatusEnum = exports.SuccessResponseUrlStringStatusEnum || (exports.SuccessResponseUrlStringStatusEnum = {}));
342
- /**
343
- * @export
344
- * @enum {string}
345
- */
346
- var ThresholdAnyOfTriggerTypeEnum;
347
- (function (ThresholdAnyOfTriggerTypeEnum) {
348
- ThresholdAnyOfTriggerTypeEnum["ERROR"] = "error";
349
- })(ThresholdAnyOfTriggerTypeEnum = exports.ThresholdAnyOfTriggerTypeEnum || (exports.ThresholdAnyOfTriggerTypeEnum = {}));
350
- /**
351
- *
352
- * @export
353
- * @enum {string}
354
- */
355
- var ThresholdTypeENTRIESDROPRATETOOHIGH;
356
- (function (ThresholdTypeENTRIESDROPRATETOOHIGH) {
357
- ThresholdTypeENTRIESDROPRATETOOHIGH["ENTRIES_DROP_RATE_TOO_HIGH"] = "entries_drop_rate_too_high";
358
- })(ThresholdTypeENTRIESDROPRATETOOHIGH = exports.ThresholdTypeENTRIESDROPRATETOOHIGH || (exports.ThresholdTypeENTRIESDROPRATETOOHIGH = {}));
359
- /**
360
- *
361
- * @export
362
- * @enum {string}
363
- */
364
- var ThresholdTypeTOOMANYINVALIDENTRIES;
365
- (function (ThresholdTypeTOOMANYINVALIDENTRIES) {
366
- ThresholdTypeTOOMANYINVALIDENTRIES["TOO_MANY_INVALID_ENTRIES"] = "too_many_invalid_entries";
367
- })(ThresholdTypeTOOMANYINVALIDENTRIES = exports.ThresholdTypeTOOMANYINVALIDENTRIES || (exports.ThresholdTypeTOOMANYINVALIDENTRIES = {}));
368
- /**
369
- * DatasourcesApi - axios parameter creator
370
- * @export
371
- */
372
- exports.DatasourcesApiAxiosParamCreator = function (configuration) {
373
- return {
374
- /**
375
- *
376
- * @param {string} id
377
- * @param {string} [archive]
378
- * @param {string} [dryRun]
379
- * @param {*} [options] Override http request option.
380
- * @throws {RequiredError}
381
- */
382
- _delete: async (id, archive, dryRun, options = {}) => {
383
- // verify required parameter 'id' is not null or undefined
384
- if (id === null || id === undefined) {
385
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling _delete.');
386
- }
387
- const localVarPath = `/{id}`
388
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
389
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
390
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
391
- let baseOptions;
392
- if (configuration) {
393
- baseOptions = configuration.baseOptions;
394
- }
395
- const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options };
396
- const localVarHeaderParameter = {};
397
- const localVarQueryParameter = {};
398
- // authentication company required
399
- if (configuration && configuration.apiKey) {
400
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
401
- ? await configuration.apiKey("x-companyid")
402
- : await configuration.apiKey;
403
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
404
- }
405
- // authentication groups required
406
- if (configuration && configuration.apiKey) {
407
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
408
- ? await configuration.apiKey("x-user-resource-groupid")
409
- : await configuration.apiKey;
410
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
411
- }
412
- // authentication role required
413
- if (configuration && configuration.apiKey) {
414
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
415
- ? await configuration.apiKey("x-user-roleid")
416
- : await configuration.apiKey;
417
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
418
- }
419
- // authentication user required
420
- if (configuration && configuration.apiKey) {
421
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
422
- ? await configuration.apiKey("x-userid")
423
- : await configuration.apiKey;
424
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
425
- }
426
- if (archive !== undefined) {
427
- localVarQueryParameter['archive'] = archive;
428
- }
429
- if (dryRun !== undefined) {
430
- localVarQueryParameter['dry-run'] = dryRun;
431
- }
432
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
433
- for (const key in localVarQueryParameter) {
434
- queryParameters.set(key, localVarQueryParameter[key]);
435
- }
436
- for (const key in options.query) {
437
- queryParameters.set(key, options.query[key]);
438
- }
439
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
440
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
441
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
442
- return {
443
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
444
- options: localVarRequestOptions,
445
- };
446
- },
447
- /**
448
- *
449
- * @param {string} id
450
- * @param {*} [options] Override http request option.
451
- * @throws {RequiredError}
452
- */
453
- analyze: async (id, options = {}) => {
454
- // verify required parameter 'id' is not null or undefined
455
- if (id === null || id === undefined) {
456
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling analyze.');
457
- }
458
- const localVarPath = `/{id}/analyzer`
459
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
460
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
461
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
462
- let baseOptions;
463
- if (configuration) {
464
- baseOptions = configuration.baseOptions;
465
- }
466
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
467
- const localVarHeaderParameter = {};
468
- const localVarQueryParameter = {};
469
- // authentication company required
470
- if (configuration && configuration.apiKey) {
471
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
472
- ? await configuration.apiKey("x-companyid")
473
- : await configuration.apiKey;
474
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
475
- }
476
- // authentication groups required
477
- if (configuration && configuration.apiKey) {
478
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
479
- ? await configuration.apiKey("x-user-resource-groupid")
480
- : await configuration.apiKey;
481
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
482
- }
483
- // authentication role required
484
- if (configuration && configuration.apiKey) {
485
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
486
- ? await configuration.apiKey("x-user-roleid")
487
- : await configuration.apiKey;
488
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
489
- }
490
- // authentication user required
491
- if (configuration && configuration.apiKey) {
492
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
493
- ? await configuration.apiKey("x-userid")
494
- : await configuration.apiKey;
495
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
496
- }
497
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
498
- for (const key in localVarQueryParameter) {
499
- queryParameters.set(key, localVarQueryParameter[key]);
500
- }
501
- for (const key in options.query) {
502
- queryParameters.set(key, options.query[key]);
503
- }
504
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
505
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
506
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
507
- return {
508
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
509
- options: localVarRequestOptions,
510
- };
511
- },
512
- /**
513
- *
514
- * @param {string} id
515
- * @param {*} [options] Override http request option.
516
- * @throws {RequiredError}
517
- */
518
- areIndexesReady: async (id, options = {}) => {
519
- // verify required parameter 'id' is not null or undefined
520
- if (id === null || id === undefined) {
521
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling areIndexesReady.');
522
- }
523
- const localVarPath = `/{id}/indexes`
524
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
525
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
526
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
527
- let baseOptions;
528
- if (configuration) {
529
- baseOptions = configuration.baseOptions;
530
- }
531
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
532
- const localVarHeaderParameter = {};
533
- const localVarQueryParameter = {};
534
- // authentication company required
535
- if (configuration && configuration.apiKey) {
536
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
537
- ? await configuration.apiKey("x-companyid")
538
- : await configuration.apiKey;
539
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
540
- }
541
- // authentication groups required
542
- if (configuration && configuration.apiKey) {
543
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
544
- ? await configuration.apiKey("x-user-resource-groupid")
545
- : await configuration.apiKey;
546
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
547
- }
548
- // authentication role required
549
- if (configuration && configuration.apiKey) {
550
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
551
- ? await configuration.apiKey("x-user-roleid")
552
- : await configuration.apiKey;
553
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
554
- }
555
- // authentication user required
556
- if (configuration && configuration.apiKey) {
557
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
558
- ? await configuration.apiKey("x-userid")
559
- : await configuration.apiKey;
560
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
561
- }
562
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
563
- for (const key in localVarQueryParameter) {
564
- queryParameters.set(key, localVarQueryParameter[key]);
565
- }
566
- for (const key in options.query) {
567
- queryParameters.set(key, options.query[key]);
568
- }
569
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
570
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
571
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
572
- return {
573
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
574
- options: localVarRequestOptions,
575
- };
576
- },
577
- /**
578
- *
579
- * @param {string} id
580
- * @param {any} [file]
581
- * @param {*} [options] Override http request option.
582
- * @throws {RequiredError}
583
- */
584
- attach: async (id, file, options = {}) => {
585
- // verify required parameter 'id' is not null or undefined
586
- if (id === null || id === undefined) {
587
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling attach.');
588
- }
589
- const localVarPath = `/{id}/file`
590
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
591
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
592
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
593
- let baseOptions;
594
- if (configuration) {
595
- baseOptions = configuration.baseOptions;
596
- }
597
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
598
- const localVarHeaderParameter = {};
599
- const localVarQueryParameter = {};
600
- const localVarFormParams = new ((configuration && configuration.formDataCtor) || FormData)();
601
- // authentication company required
602
- if (configuration && configuration.apiKey) {
603
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
604
- ? await configuration.apiKey("x-companyid")
605
- : await configuration.apiKey;
606
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
607
- }
608
- // authentication groups required
609
- if (configuration && configuration.apiKey) {
610
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
611
- ? await configuration.apiKey("x-user-resource-groupid")
612
- : await configuration.apiKey;
613
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
614
- }
615
- // authentication role required
616
- if (configuration && configuration.apiKey) {
617
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
618
- ? await configuration.apiKey("x-user-roleid")
619
- : await configuration.apiKey;
620
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
621
- }
622
- // authentication user required
623
- if (configuration && configuration.apiKey) {
624
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
625
- ? await configuration.apiKey("x-userid")
626
- : await configuration.apiKey;
627
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
628
- }
629
- if (file !== undefined) {
630
- localVarFormParams.append('file', file);
631
- }
632
- localVarHeaderParameter['Content-Type'] = 'multipart/form-data';
633
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
634
- for (const key in localVarQueryParameter) {
635
- queryParameters.set(key, localVarQueryParameter[key]);
636
- }
637
- for (const key in options.query) {
638
- queryParameters.set(key, options.query[key]);
639
- }
640
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
641
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
642
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
643
- localVarRequestOptions.data = localVarFormParams;
644
- return {
645
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
646
- options: localVarRequestOptions,
647
- };
648
- },
649
- /**
650
- *
651
- * @param {PartialOmitAliasPatchBodyUrlOrUrlsOrApiOptions} partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions
652
- * @param {*} [options] Override http request option.
653
- * @throws {RequiredError}
654
- */
655
- create: async (partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions, options = {}) => {
656
- // verify required parameter 'partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions' is not null or undefined
657
- if (partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions === null || partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions === undefined) {
658
- throw new base_1.RequiredError('partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions', 'Required parameter partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions was null or undefined when calling create.');
659
- }
660
- const localVarPath = `/`;
661
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
662
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
663
- let baseOptions;
664
- if (configuration) {
665
- baseOptions = configuration.baseOptions;
666
- }
667
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
668
- const localVarHeaderParameter = {};
669
- const localVarQueryParameter = {};
670
- // authentication company required
671
- if (configuration && configuration.apiKey) {
672
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
673
- ? await configuration.apiKey("x-companyid")
674
- : await configuration.apiKey;
675
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
676
- }
677
- // authentication groups required
678
- if (configuration && configuration.apiKey) {
679
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
680
- ? await configuration.apiKey("x-user-resource-groupid")
681
- : await configuration.apiKey;
682
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
683
- }
684
- // authentication role required
685
- if (configuration && configuration.apiKey) {
686
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
687
- ? await configuration.apiKey("x-user-roleid")
688
- : await configuration.apiKey;
689
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
690
- }
691
- // authentication user required
692
- if (configuration && configuration.apiKey) {
693
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
694
- ? await configuration.apiKey("x-userid")
695
- : await configuration.apiKey;
696
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
697
- }
698
- localVarHeaderParameter['Content-Type'] = 'application/json';
699
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
700
- for (const key in localVarQueryParameter) {
701
- queryParameters.set(key, localVarQueryParameter[key]);
702
- }
703
- for (const key in options.query) {
704
- queryParameters.set(key, options.query[key]);
705
- }
706
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
707
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
708
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
709
- const needsSerialization = (typeof partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
710
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions !== undefined ? partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions : {}) : (partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions || "");
711
- return {
712
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
713
- options: localVarRequestOptions,
714
- };
715
- },
716
- /**
717
- *
718
- * @param {string} id
719
- * @param {InlineObject1} inlineObject1
720
- * @param {*} [options] Override http request option.
721
- * @throws {RequiredError}
722
- */
723
- createIndexes: async (id, inlineObject1, options = {}) => {
724
- // verify required parameter 'id' is not null or undefined
725
- if (id === null || id === undefined) {
726
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling createIndexes.');
727
- }
728
- // verify required parameter 'inlineObject1' is not null or undefined
729
- if (inlineObject1 === null || inlineObject1 === undefined) {
730
- throw new base_1.RequiredError('inlineObject1', 'Required parameter inlineObject1 was null or undefined when calling createIndexes.');
731
- }
732
- const localVarPath = `/{id}/indexes`
733
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
734
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
735
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
736
- let baseOptions;
737
- if (configuration) {
738
- baseOptions = configuration.baseOptions;
739
- }
740
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
741
- const localVarHeaderParameter = {};
742
- const localVarQueryParameter = {};
743
- // authentication company required
744
- if (configuration && configuration.apiKey) {
745
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
746
- ? await configuration.apiKey("x-companyid")
747
- : await configuration.apiKey;
748
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
749
- }
750
- // authentication groups required
751
- if (configuration && configuration.apiKey) {
752
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
753
- ? await configuration.apiKey("x-user-resource-groupid")
754
- : await configuration.apiKey;
755
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
756
- }
757
- // authentication role required
758
- if (configuration && configuration.apiKey) {
759
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
760
- ? await configuration.apiKey("x-user-roleid")
761
- : await configuration.apiKey;
762
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
763
- }
764
- // authentication user required
765
- if (configuration && configuration.apiKey) {
766
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
767
- ? await configuration.apiKey("x-userid")
768
- : await configuration.apiKey;
769
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
770
- }
771
- localVarHeaderParameter['Content-Type'] = 'application/json';
772
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
773
- for (const key in localVarQueryParameter) {
774
- queryParameters.set(key, localVarQueryParameter[key]);
775
- }
776
- for (const key in options.query) {
777
- queryParameters.set(key, options.query[key]);
778
- }
779
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
780
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
781
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
782
- const needsSerialization = (typeof inlineObject1 !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
783
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(inlineObject1 !== undefined ? inlineObject1 : {}) : (inlineObject1 || "");
784
- return {
785
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
786
- options: localVarRequestOptions,
787
- };
788
- },
789
- /**
790
- *
791
- * @param {string} id
792
- * @param {string} [versions]
793
- * @param {string} [example]
794
- * @param {*} [options] Override http request option.
795
- * @throws {RequiredError}
796
- */
797
- get: async (id, versions, example, options = {}) => {
798
- // verify required parameter 'id' is not null or undefined
799
- if (id === null || id === undefined) {
800
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling get.');
801
- }
802
- const localVarPath = `/{id}`
803
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
804
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
805
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
806
- let baseOptions;
807
- if (configuration) {
808
- baseOptions = configuration.baseOptions;
809
- }
810
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
811
- const localVarHeaderParameter = {};
812
- const localVarQueryParameter = {};
813
- // authentication company required
814
- if (configuration && configuration.apiKey) {
815
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
816
- ? await configuration.apiKey("x-companyid")
817
- : await configuration.apiKey;
818
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
819
- }
820
- // authentication groups required
821
- if (configuration && configuration.apiKey) {
822
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
823
- ? await configuration.apiKey("x-user-resource-groupid")
824
- : await configuration.apiKey;
825
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
826
- }
827
- // authentication role required
828
- if (configuration && configuration.apiKey) {
829
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
830
- ? await configuration.apiKey("x-user-roleid")
831
- : await configuration.apiKey;
832
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
833
- }
834
- // authentication user required
835
- if (configuration && configuration.apiKey) {
836
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
837
- ? await configuration.apiKey("x-userid")
838
- : await configuration.apiKey;
839
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
840
- }
841
- if (versions !== undefined) {
842
- localVarQueryParameter['versions'] = versions;
843
- }
844
- if (example !== undefined) {
845
- localVarQueryParameter['example'] = example;
846
- }
847
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
848
- for (const key in localVarQueryParameter) {
849
- queryParameters.set(key, localVarQueryParameter[key]);
850
- }
851
- for (const key in options.query) {
852
- queryParameters.set(key, options.query[key]);
853
- }
854
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
855
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
856
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
857
- return {
858
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
859
- options: localVarRequestOptions,
860
- };
861
- },
862
- /**
863
- *
864
- * @param {string} [name]
865
- * @param {DatasourceFormat} [format]
866
- * @param {string} [type]
867
- * @param {string} [versions]
868
- * @param {string} [strictVersions]
869
- * @param {string} [health]
870
- * @param {string} [showReady]
871
- * @param {string} [showArchived]
872
- * @param {SortOrder} [sortOrder]
873
- * @param {SortBy} [sortBy]
874
- * @param {number} [page]
875
- * @param {number} [perPage]
876
- * @param {*} [options] Override http request option.
877
- * @throws {RequiredError}
878
- */
879
- list: async (name, format, type, versions, strictVersions, health, showReady, showArchived, sortOrder, sortBy, page, perPage, options = {}) => {
880
- const localVarPath = `/`;
881
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
882
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
883
- let baseOptions;
884
- if (configuration) {
885
- baseOptions = configuration.baseOptions;
886
- }
887
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
888
- const localVarHeaderParameter = {};
889
- const localVarQueryParameter = {};
890
- // authentication company required
891
- if (configuration && configuration.apiKey) {
892
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
893
- ? await configuration.apiKey("x-companyid")
894
- : await configuration.apiKey;
895
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
896
- }
897
- // authentication groups required
898
- if (configuration && configuration.apiKey) {
899
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
900
- ? await configuration.apiKey("x-user-resource-groupid")
901
- : await configuration.apiKey;
902
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
903
- }
904
- // authentication role required
905
- if (configuration && configuration.apiKey) {
906
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
907
- ? await configuration.apiKey("x-user-roleid")
908
- : await configuration.apiKey;
909
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
910
- }
911
- // authentication user required
912
- if (configuration && configuration.apiKey) {
913
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
914
- ? await configuration.apiKey("x-userid")
915
- : await configuration.apiKey;
916
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
917
- }
918
- if (name !== undefined) {
919
- localVarQueryParameter['name'] = name;
920
- }
921
- if (format !== undefined) {
922
- localVarQueryParameter['format'] = format;
923
- }
924
- if (type !== undefined) {
925
- localVarQueryParameter['type'] = type;
926
- }
927
- if (versions !== undefined) {
928
- localVarQueryParameter['versions'] = versions;
929
- }
930
- if (strictVersions !== undefined) {
931
- localVarQueryParameter['strict-versions'] = strictVersions;
932
- }
933
- if (health !== undefined) {
934
- localVarQueryParameter['health'] = health;
935
- }
936
- if (showReady !== undefined) {
937
- localVarQueryParameter['showReady'] = showReady;
938
- }
939
- if (showArchived !== undefined) {
940
- localVarQueryParameter['showArchived'] = showArchived;
941
- }
942
- if (sortOrder !== undefined) {
943
- localVarQueryParameter['sortOrder'] = sortOrder;
944
- }
945
- if (sortBy !== undefined) {
946
- localVarQueryParameter['sortBy'] = sortBy;
947
- }
948
- if (page !== undefined) {
949
- localVarQueryParameter['page'] = page;
950
- }
951
- if (perPage !== undefined) {
952
- localVarQueryParameter['perPage'] = perPage;
953
- }
954
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
955
- for (const key in localVarQueryParameter) {
956
- queryParameters.set(key, localVarQueryParameter[key]);
957
- }
958
- for (const key in options.query) {
959
- queryParameters.set(key, options.query[key]);
960
- }
961
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
962
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
963
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
964
- return {
965
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
966
- options: localVarRequestOptions,
967
- };
968
- },
969
- /**
970
- *
971
- * @param {string} id
972
- * @param {number} [contentVersion]
973
- * @param {string} [version]
974
- * @param {LogTypes} [type]
975
- * @param {Order} [order]
976
- * @param {string} [showLastVersion]
977
- * @param {string} [level]
978
- * @param {number} [page]
979
- * @param {number} [perPage]
980
- * @param {*} [options] Override http request option.
981
- * @throws {RequiredError}
982
- */
983
- listLogs: async (id, contentVersion, version, type, order, showLastVersion, level, page, perPage, options = {}) => {
984
- // verify required parameter 'id' is not null or undefined
985
- if (id === null || id === undefined) {
986
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling listLogs.');
987
- }
988
- const localVarPath = `/{id}/logs`
989
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
990
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
991
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
992
- let baseOptions;
993
- if (configuration) {
994
- baseOptions = configuration.baseOptions;
995
- }
996
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
997
- const localVarHeaderParameter = {};
998
- const localVarQueryParameter = {};
999
- // authentication company required
1000
- if (configuration && configuration.apiKey) {
1001
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1002
- ? await configuration.apiKey("x-companyid")
1003
- : await configuration.apiKey;
1004
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
1005
- }
1006
- // authentication groups required
1007
- if (configuration && configuration.apiKey) {
1008
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1009
- ? await configuration.apiKey("x-user-resource-groupid")
1010
- : await configuration.apiKey;
1011
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
1012
- }
1013
- // authentication role required
1014
- if (configuration && configuration.apiKey) {
1015
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1016
- ? await configuration.apiKey("x-user-roleid")
1017
- : await configuration.apiKey;
1018
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
1019
- }
1020
- // authentication user required
1021
- if (configuration && configuration.apiKey) {
1022
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1023
- ? await configuration.apiKey("x-userid")
1024
- : await configuration.apiKey;
1025
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
1026
- }
1027
- if (contentVersion !== undefined) {
1028
- localVarQueryParameter['contentVersion'] = contentVersion;
1029
- }
1030
- if (version !== undefined) {
1031
- localVarQueryParameter['version'] = version;
1032
- }
1033
- if (type !== undefined) {
1034
- localVarQueryParameter['type'] = type;
1035
- }
1036
- if (order !== undefined) {
1037
- localVarQueryParameter['order'] = order;
1038
- }
1039
- if (showLastVersion !== undefined) {
1040
- localVarQueryParameter['showLastVersion'] = showLastVersion;
1041
- }
1042
- if (level !== undefined) {
1043
- localVarQueryParameter['level'] = level;
1044
- }
1045
- if (page !== undefined) {
1046
- localVarQueryParameter['page'] = page;
1047
- }
1048
- if (perPage !== undefined) {
1049
- localVarQueryParameter['perPage'] = perPage;
1050
- }
1051
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
1052
- for (const key in localVarQueryParameter) {
1053
- queryParameters.set(key, localVarQueryParameter[key]);
1054
- }
1055
- for (const key in options.query) {
1056
- queryParameters.set(key, options.query[key]);
1057
- }
1058
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
1059
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1060
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
1061
- return {
1062
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
1063
- options: localVarRequestOptions,
1064
- };
1065
- },
1066
- /**
1067
- *
1068
- * @param {*} [options] Override http request option.
1069
- * @throws {RequiredError}
1070
- */
1071
- listen: async (options = {}) => {
1072
- const localVarPath = `/listen`;
1073
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
1074
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
1075
- let baseOptions;
1076
- if (configuration) {
1077
- baseOptions = configuration.baseOptions;
1078
- }
1079
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
1080
- const localVarHeaderParameter = {};
1081
- const localVarQueryParameter = {};
1082
- // authentication company required
1083
- if (configuration && configuration.apiKey) {
1084
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1085
- ? await configuration.apiKey("x-companyid")
1086
- : await configuration.apiKey;
1087
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
1088
- }
1089
- // authentication groups required
1090
- if (configuration && configuration.apiKey) {
1091
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1092
- ? await configuration.apiKey("x-user-resource-groupid")
1093
- : await configuration.apiKey;
1094
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
1095
- }
1096
- // authentication role required
1097
- if (configuration && configuration.apiKey) {
1098
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1099
- ? await configuration.apiKey("x-user-roleid")
1100
- : await configuration.apiKey;
1101
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
1102
- }
1103
- // authentication user required
1104
- if (configuration && configuration.apiKey) {
1105
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1106
- ? await configuration.apiKey("x-userid")
1107
- : await configuration.apiKey;
1108
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
1109
- }
1110
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
1111
- for (const key in localVarQueryParameter) {
1112
- queryParameters.set(key, localVarQueryParameter[key]);
1113
- }
1114
- for (const key in options.query) {
1115
- queryParameters.set(key, options.query[key]);
1116
- }
1117
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
1118
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1119
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
1120
- return {
1121
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
1122
- options: localVarRequestOptions,
1123
- };
1124
- },
1125
- /**
1126
- *
1127
- * @param {string} id
1128
- * @param {string} q
1129
- * @param {number} [latitude]
1130
- * @param {number} [longitude]
1131
- * @param {number} [radius]
1132
- * @param {string} [sortBy]
1133
- * @param {any} [sortOrder]
1134
- * @param {any} [mode]
1135
- * @param {number} [page]
1136
- * @param {number} [perPage]
1137
- * @param {*} [options] Override http request option.
1138
- * @throws {RequiredError}
1139
- */
1140
- query: async (id, q, latitude, longitude, radius, sortBy, sortOrder, mode, page, perPage, options = {}) => {
1141
- // verify required parameter 'id' is not null or undefined
1142
- if (id === null || id === undefined) {
1143
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling query.');
1144
- }
1145
- // verify required parameter 'q' is not null or undefined
1146
- if (q === null || q === undefined) {
1147
- throw new base_1.RequiredError('q', 'Required parameter q was null or undefined when calling query.');
1148
- }
1149
- const localVarPath = `/{id}/query`
1150
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
1151
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
1152
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
1153
- let baseOptions;
1154
- if (configuration) {
1155
- baseOptions = configuration.baseOptions;
1156
- }
1157
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
1158
- const localVarHeaderParameter = {};
1159
- const localVarQueryParameter = {};
1160
- // authentication company required
1161
- if (configuration && configuration.apiKey) {
1162
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1163
- ? await configuration.apiKey("x-companyid")
1164
- : await configuration.apiKey;
1165
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
1166
- }
1167
- // authentication groups required
1168
- if (configuration && configuration.apiKey) {
1169
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1170
- ? await configuration.apiKey("x-user-resource-groupid")
1171
- : await configuration.apiKey;
1172
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
1173
- }
1174
- // authentication role required
1175
- if (configuration && configuration.apiKey) {
1176
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1177
- ? await configuration.apiKey("x-user-roleid")
1178
- : await configuration.apiKey;
1179
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
1180
- }
1181
- // authentication user required
1182
- if (configuration && configuration.apiKey) {
1183
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1184
- ? await configuration.apiKey("x-userid")
1185
- : await configuration.apiKey;
1186
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
1187
- }
1188
- if (q !== undefined) {
1189
- localVarQueryParameter['q'] = q;
1190
- }
1191
- if (latitude !== undefined) {
1192
- localVarQueryParameter['latitude'] = latitude;
1193
- }
1194
- if (longitude !== undefined) {
1195
- localVarQueryParameter['longitude'] = longitude;
1196
- }
1197
- if (radius !== undefined) {
1198
- localVarQueryParameter['radius'] = radius;
1199
- }
1200
- if (sortBy !== undefined) {
1201
- localVarQueryParameter['sortBy'] = sortBy;
1202
- }
1203
- if (sortOrder !== undefined) {
1204
- localVarQueryParameter['sortOrder'] = sortOrder;
1205
- }
1206
- if (mode !== undefined) {
1207
- localVarQueryParameter['mode'] = mode;
1208
- }
1209
- if (page !== undefined) {
1210
- localVarQueryParameter['page'] = page;
1211
- }
1212
- if (perPage !== undefined) {
1213
- localVarQueryParameter['perPage'] = perPage;
1214
- }
1215
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
1216
- for (const key in localVarQueryParameter) {
1217
- queryParameters.set(key, localVarQueryParameter[key]);
1218
- }
1219
- for (const key in options.query) {
1220
- queryParameters.set(key, options.query[key]);
1221
- }
1222
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
1223
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1224
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
1225
- return {
1226
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
1227
- options: localVarRequestOptions,
1228
- };
1229
- },
1230
- /**
1231
- *
1232
- * @param {string} id
1233
- * @param {*} [options] Override http request option.
1234
- * @throws {RequiredError}
1235
- */
1236
- reset: async (id, options = {}) => {
1237
- // verify required parameter 'id' is not null or undefined
1238
- if (id === null || id === undefined) {
1239
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling reset.');
1240
- }
1241
- const localVarPath = `/{id}/reset`
1242
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
1243
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
1244
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
1245
- let baseOptions;
1246
- if (configuration) {
1247
- baseOptions = configuration.baseOptions;
1248
- }
1249
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
1250
- const localVarHeaderParameter = {};
1251
- const localVarQueryParameter = {};
1252
- // authentication company required
1253
- if (configuration && configuration.apiKey) {
1254
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1255
- ? await configuration.apiKey("x-companyid")
1256
- : await configuration.apiKey;
1257
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
1258
- }
1259
- // authentication groups required
1260
- if (configuration && configuration.apiKey) {
1261
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1262
- ? await configuration.apiKey("x-user-resource-groupid")
1263
- : await configuration.apiKey;
1264
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
1265
- }
1266
- // authentication role required
1267
- if (configuration && configuration.apiKey) {
1268
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1269
- ? await configuration.apiKey("x-user-roleid")
1270
- : await configuration.apiKey;
1271
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
1272
- }
1273
- // authentication user required
1274
- if (configuration && configuration.apiKey) {
1275
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1276
- ? await configuration.apiKey("x-userid")
1277
- : await configuration.apiKey;
1278
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
1279
- }
1280
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
1281
- for (const key in localVarQueryParameter) {
1282
- queryParameters.set(key, localVarQueryParameter[key]);
1283
- }
1284
- for (const key in options.query) {
1285
- queryParameters.set(key, options.query[key]);
1286
- }
1287
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
1288
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1289
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
1290
- return {
1291
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
1292
- options: localVarRequestOptions,
1293
- };
1294
- },
1295
- /**
1296
- *
1297
- * @param {string} id
1298
- * @param {*} [options] Override http request option.
1299
- * @throws {RequiredError}
1300
- */
1301
- stop: async (id, options = {}) => {
1302
- // verify required parameter 'id' is not null or undefined
1303
- if (id === null || id === undefined) {
1304
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling stop.');
1305
- }
1306
- const localVarPath = `/{id}/pause`
1307
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
1308
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
1309
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
1310
- let baseOptions;
1311
- if (configuration) {
1312
- baseOptions = configuration.baseOptions;
1313
- }
1314
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
1315
- const localVarHeaderParameter = {};
1316
- const localVarQueryParameter = {};
1317
- // authentication company required
1318
- if (configuration && configuration.apiKey) {
1319
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1320
- ? await configuration.apiKey("x-companyid")
1321
- : await configuration.apiKey;
1322
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
1323
- }
1324
- // authentication groups required
1325
- if (configuration && configuration.apiKey) {
1326
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1327
- ? await configuration.apiKey("x-user-resource-groupid")
1328
- : await configuration.apiKey;
1329
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
1330
- }
1331
- // authentication role required
1332
- if (configuration && configuration.apiKey) {
1333
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1334
- ? await configuration.apiKey("x-user-roleid")
1335
- : await configuration.apiKey;
1336
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
1337
- }
1338
- // authentication user required
1339
- if (configuration && configuration.apiKey) {
1340
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1341
- ? await configuration.apiKey("x-userid")
1342
- : await configuration.apiKey;
1343
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
1344
- }
1345
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
1346
- for (const key in localVarQueryParameter) {
1347
- queryParameters.set(key, localVarQueryParameter[key]);
1348
- }
1349
- for (const key in options.query) {
1350
- queryParameters.set(key, options.query[key]);
1351
- }
1352
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
1353
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1354
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
1355
- return {
1356
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
1357
- options: localVarRequestOptions,
1358
- };
1359
- },
1360
- /**
1361
- *
1362
- * @param {string} id
1363
- * @param {PartialPatchBody} partialPatchBody
1364
- * @param {*} [options] Override http request option.
1365
- * @throws {RequiredError}
1366
- */
1367
- update: async (id, partialPatchBody, options = {}) => {
1368
- // verify required parameter 'id' is not null or undefined
1369
- if (id === null || id === undefined) {
1370
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling update.');
1371
- }
1372
- // verify required parameter 'partialPatchBody' is not null or undefined
1373
- if (partialPatchBody === null || partialPatchBody === undefined) {
1374
- throw new base_1.RequiredError('partialPatchBody', 'Required parameter partialPatchBody was null or undefined when calling update.');
1375
- }
1376
- const localVarPath = `/{id}`
1377
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
1378
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
1379
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
1380
- let baseOptions;
1381
- if (configuration) {
1382
- baseOptions = configuration.baseOptions;
1383
- }
1384
- const localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options };
1385
- const localVarHeaderParameter = {};
1386
- const localVarQueryParameter = {};
1387
- // authentication company required
1388
- if (configuration && configuration.apiKey) {
1389
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1390
- ? await configuration.apiKey("x-companyid")
1391
- : await configuration.apiKey;
1392
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
1393
- }
1394
- // authentication groups required
1395
- if (configuration && configuration.apiKey) {
1396
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1397
- ? await configuration.apiKey("x-user-resource-groupid")
1398
- : await configuration.apiKey;
1399
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
1400
- }
1401
- // authentication role required
1402
- if (configuration && configuration.apiKey) {
1403
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1404
- ? await configuration.apiKey("x-user-roleid")
1405
- : await configuration.apiKey;
1406
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
1407
- }
1408
- // authentication user required
1409
- if (configuration && configuration.apiKey) {
1410
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1411
- ? await configuration.apiKey("x-userid")
1412
- : await configuration.apiKey;
1413
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
1414
- }
1415
- localVarHeaderParameter['Content-Type'] = 'application/json';
1416
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
1417
- for (const key in localVarQueryParameter) {
1418
- queryParameters.set(key, localVarQueryParameter[key]);
1419
- }
1420
- for (const key in options.query) {
1421
- queryParameters.set(key, options.query[key]);
1422
- }
1423
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
1424
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1425
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
1426
- const needsSerialization = (typeof partialPatchBody !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
1427
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(partialPatchBody !== undefined ? partialPatchBody : {}) : (partialPatchBody || "");
1428
- return {
1429
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
1430
- options: localVarRequestOptions,
1431
- };
1432
- },
1433
- /**
1434
- *
1435
- * @param {string} id
1436
- * @param {InlineObject2} [inlineObject2]
1437
- * @param {*} [options] Override http request option.
1438
- * @throws {RequiredError}
1439
- */
1440
- validateAndGenerate: async (id, inlineObject2, options = {}) => {
1441
- // verify required parameter 'id' is not null or undefined
1442
- if (id === null || id === undefined) {
1443
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling validateAndGenerate.');
1444
- }
1445
- const localVarPath = `/{id}/validate`
1446
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
1447
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
1448
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
1449
- let baseOptions;
1450
- if (configuration) {
1451
- baseOptions = configuration.baseOptions;
1452
- }
1453
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
1454
- const localVarHeaderParameter = {};
1455
- const localVarQueryParameter = {};
1456
- // authentication company required
1457
- if (configuration && configuration.apiKey) {
1458
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1459
- ? await configuration.apiKey("x-companyid")
1460
- : await configuration.apiKey;
1461
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
1462
- }
1463
- // authentication groups required
1464
- if (configuration && configuration.apiKey) {
1465
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1466
- ? await configuration.apiKey("x-user-resource-groupid")
1467
- : await configuration.apiKey;
1468
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
1469
- }
1470
- // authentication role required
1471
- if (configuration && configuration.apiKey) {
1472
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1473
- ? await configuration.apiKey("x-user-roleid")
1474
- : await configuration.apiKey;
1475
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
1476
- }
1477
- // authentication user required
1478
- if (configuration && configuration.apiKey) {
1479
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
1480
- ? await configuration.apiKey("x-userid")
1481
- : await configuration.apiKey;
1482
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
1483
- }
1484
- localVarHeaderParameter['Content-Type'] = 'application/json';
1485
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
1486
- for (const key in localVarQueryParameter) {
1487
- queryParameters.set(key, localVarQueryParameter[key]);
1488
- }
1489
- for (const key in options.query) {
1490
- queryParameters.set(key, options.query[key]);
1491
- }
1492
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
1493
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
1494
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
1495
- const needsSerialization = (typeof inlineObject2 !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
1496
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(inlineObject2 !== undefined ? inlineObject2 : {}) : (inlineObject2 || "");
1497
- return {
1498
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
1499
- options: localVarRequestOptions,
1500
- };
1501
- },
1502
- };
1503
- };
1504
- /**
1505
- * DatasourcesApi - functional programming interface
1506
- * @export
1507
- */
1508
- exports.DatasourcesApiFp = function (configuration) {
1509
- return {
1510
- /**
1511
- *
1512
- * @param {string} id
1513
- * @param {string} [archive]
1514
- * @param {string} [dryRun]
1515
- * @param {*} [options] Override http request option.
1516
- * @throws {RequiredError}
1517
- */
1518
- async _delete(id, archive, dryRun, options) {
1519
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration)._delete(id, archive, dryRun, options);
1520
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1521
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1522
- return axios.request(axiosRequestArgs);
1523
- };
1524
- },
1525
- /**
1526
- *
1527
- * @param {string} id
1528
- * @param {*} [options] Override http request option.
1529
- * @throws {RequiredError}
1530
- */
1531
- async analyze(id, options) {
1532
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).analyze(id, options);
1533
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1534
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1535
- return axios.request(axiosRequestArgs);
1536
- };
1537
- },
1538
- /**
1539
- *
1540
- * @param {string} id
1541
- * @param {*} [options] Override http request option.
1542
- * @throws {RequiredError}
1543
- */
1544
- async areIndexesReady(id, options) {
1545
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).areIndexesReady(id, options);
1546
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1547
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1548
- return axios.request(axiosRequestArgs);
1549
- };
1550
- },
1551
- /**
1552
- *
1553
- * @param {string} id
1554
- * @param {any} [file]
1555
- * @param {*} [options] Override http request option.
1556
- * @throws {RequiredError}
1557
- */
1558
- async attach(id, file, options) {
1559
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).attach(id, file, options);
1560
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1561
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1562
- return axios.request(axiosRequestArgs);
1563
- };
1564
- },
1565
- /**
1566
- *
1567
- * @param {PartialOmitAliasPatchBodyUrlOrUrlsOrApiOptions} partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions
1568
- * @param {*} [options] Override http request option.
1569
- * @throws {RequiredError}
1570
- */
1571
- async create(partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions, options) {
1572
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).create(partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions, options);
1573
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1574
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1575
- return axios.request(axiosRequestArgs);
1576
- };
1577
- },
1578
- /**
1579
- *
1580
- * @param {string} id
1581
- * @param {InlineObject1} inlineObject1
1582
- * @param {*} [options] Override http request option.
1583
- * @throws {RequiredError}
1584
- */
1585
- async createIndexes(id, inlineObject1, options) {
1586
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).createIndexes(id, inlineObject1, options);
1587
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1588
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1589
- return axios.request(axiosRequestArgs);
1590
- };
1591
- },
1592
- /**
1593
- *
1594
- * @param {string} id
1595
- * @param {string} [versions]
1596
- * @param {string} [example]
1597
- * @param {*} [options] Override http request option.
1598
- * @throws {RequiredError}
1599
- */
1600
- async get(id, versions, example, options) {
1601
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).get(id, versions, example, options);
1602
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1603
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1604
- return axios.request(axiosRequestArgs);
1605
- };
1606
- },
1607
- /**
1608
- *
1609
- * @param {string} [name]
1610
- * @param {DatasourceFormat} [format]
1611
- * @param {string} [type]
1612
- * @param {string} [versions]
1613
- * @param {string} [strictVersions]
1614
- * @param {string} [health]
1615
- * @param {string} [showReady]
1616
- * @param {string} [showArchived]
1617
- * @param {SortOrder} [sortOrder]
1618
- * @param {SortBy} [sortBy]
1619
- * @param {number} [page]
1620
- * @param {number} [perPage]
1621
- * @param {*} [options] Override http request option.
1622
- * @throws {RequiredError}
1623
- */
1624
- async list(name, format, type, versions, strictVersions, health, showReady, showArchived, sortOrder, sortBy, page, perPage, options) {
1625
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).list(name, format, type, versions, strictVersions, health, showReady, showArchived, sortOrder, sortBy, page, perPage, options);
1626
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1627
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1628
- return axios.request(axiosRequestArgs);
1629
- };
1630
- },
1631
- /**
1632
- *
1633
- * @param {string} id
1634
- * @param {number} [contentVersion]
1635
- * @param {string} [version]
1636
- * @param {LogTypes} [type]
1637
- * @param {Order} [order]
1638
- * @param {string} [showLastVersion]
1639
- * @param {string} [level]
1640
- * @param {number} [page]
1641
- * @param {number} [perPage]
1642
- * @param {*} [options] Override http request option.
1643
- * @throws {RequiredError}
1644
- */
1645
- async listLogs(id, contentVersion, version, type, order, showLastVersion, level, page, perPage, options) {
1646
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).listLogs(id, contentVersion, version, type, order, showLastVersion, level, page, perPage, options);
1647
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1648
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1649
- return axios.request(axiosRequestArgs);
1650
- };
1651
- },
1652
- /**
1653
- *
1654
- * @param {*} [options] Override http request option.
1655
- * @throws {RequiredError}
1656
- */
1657
- async listen(options) {
1658
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).listen(options);
1659
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1660
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1661
- return axios.request(axiosRequestArgs);
1662
- };
1663
- },
1664
- /**
1665
- *
1666
- * @param {string} id
1667
- * @param {string} q
1668
- * @param {number} [latitude]
1669
- * @param {number} [longitude]
1670
- * @param {number} [radius]
1671
- * @param {string} [sortBy]
1672
- * @param {any} [sortOrder]
1673
- * @param {any} [mode]
1674
- * @param {number} [page]
1675
- * @param {number} [perPage]
1676
- * @param {*} [options] Override http request option.
1677
- * @throws {RequiredError}
1678
- */
1679
- async query(id, q, latitude, longitude, radius, sortBy, sortOrder, mode, page, perPage, options) {
1680
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).query(id, q, latitude, longitude, radius, sortBy, sortOrder, mode, page, perPage, options);
1681
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1682
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1683
- return axios.request(axiosRequestArgs);
1684
- };
1685
- },
1686
- /**
1687
- *
1688
- * @param {string} id
1689
- * @param {*} [options] Override http request option.
1690
- * @throws {RequiredError}
1691
- */
1692
- async reset(id, options) {
1693
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).reset(id, options);
1694
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1695
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1696
- return axios.request(axiosRequestArgs);
1697
- };
1698
- },
1699
- /**
1700
- *
1701
- * @param {string} id
1702
- * @param {*} [options] Override http request option.
1703
- * @throws {RequiredError}
1704
- */
1705
- async stop(id, options) {
1706
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).stop(id, options);
1707
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1708
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1709
- return axios.request(axiosRequestArgs);
1710
- };
1711
- },
1712
- /**
1713
- *
1714
- * @param {string} id
1715
- * @param {PartialPatchBody} partialPatchBody
1716
- * @param {*} [options] Override http request option.
1717
- * @throws {RequiredError}
1718
- */
1719
- async update(id, partialPatchBody, options) {
1720
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).update(id, partialPatchBody, options);
1721
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1722
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1723
- return axios.request(axiosRequestArgs);
1724
- };
1725
- },
1726
- /**
1727
- *
1728
- * @param {string} id
1729
- * @param {InlineObject2} [inlineObject2]
1730
- * @param {*} [options] Override http request option.
1731
- * @throws {RequiredError}
1732
- */
1733
- async validateAndGenerate(id, inlineObject2, options) {
1734
- const localVarAxiosArgs = await exports.DatasourcesApiAxiosParamCreator(configuration).validateAndGenerate(id, inlineObject2, options);
1735
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
1736
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
1737
- return axios.request(axiosRequestArgs);
1738
- };
1739
- },
1740
- };
1741
- };
1742
- /**
1743
- * DatasourcesApi - factory interface
1744
- * @export
1745
- */
1746
- exports.DatasourcesApiFactory = function (configuration, basePath, axios) {
1747
- return {
1748
- /**
1749
- *
1750
- * @param {string} id
1751
- * @param {string} [archive]
1752
- * @param {string} [dryRun]
1753
- * @param {*} [options] Override http request option.
1754
- * @throws {RequiredError}
1755
- */
1756
- _delete(id, archive, dryRun, options) {
1757
- return exports.DatasourcesApiFp(configuration)._delete(id, archive, dryRun, options).then((request) => request(axios, basePath));
1758
- },
1759
- /**
1760
- *
1761
- * @param {string} id
1762
- * @param {*} [options] Override http request option.
1763
- * @throws {RequiredError}
1764
- */
1765
- analyze(id, options) {
1766
- return exports.DatasourcesApiFp(configuration).analyze(id, options).then((request) => request(axios, basePath));
1767
- },
1768
- /**
1769
- *
1770
- * @param {string} id
1771
- * @param {*} [options] Override http request option.
1772
- * @throws {RequiredError}
1773
- */
1774
- areIndexesReady(id, options) {
1775
- return exports.DatasourcesApiFp(configuration).areIndexesReady(id, options).then((request) => request(axios, basePath));
1776
- },
1777
- /**
1778
- *
1779
- * @param {string} id
1780
- * @param {any} [file]
1781
- * @param {*} [options] Override http request option.
1782
- * @throws {RequiredError}
1783
- */
1784
- attach(id, file, options) {
1785
- return exports.DatasourcesApiFp(configuration).attach(id, file, options).then((request) => request(axios, basePath));
1786
- },
1787
- /**
1788
- *
1789
- * @param {PartialOmitAliasPatchBodyUrlOrUrlsOrApiOptions} partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions
1790
- * @param {*} [options] Override http request option.
1791
- * @throws {RequiredError}
1792
- */
1793
- create(partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions, options) {
1794
- return exports.DatasourcesApiFp(configuration).create(partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions, options).then((request) => request(axios, basePath));
1795
- },
1796
- /**
1797
- *
1798
- * @param {string} id
1799
- * @param {InlineObject1} inlineObject1
1800
- * @param {*} [options] Override http request option.
1801
- * @throws {RequiredError}
1802
- */
1803
- createIndexes(id, inlineObject1, options) {
1804
- return exports.DatasourcesApiFp(configuration).createIndexes(id, inlineObject1, options).then((request) => request(axios, basePath));
1805
- },
1806
- /**
1807
- *
1808
- * @param {string} id
1809
- * @param {string} [versions]
1810
- * @param {string} [example]
1811
- * @param {*} [options] Override http request option.
1812
- * @throws {RequiredError}
1813
- */
1814
- get(id, versions, example, options) {
1815
- return exports.DatasourcesApiFp(configuration).get(id, versions, example, options).then((request) => request(axios, basePath));
1816
- },
1817
- /**
1818
- *
1819
- * @param {string} [name]
1820
- * @param {DatasourceFormat} [format]
1821
- * @param {string} [type]
1822
- * @param {string} [versions]
1823
- * @param {string} [strictVersions]
1824
- * @param {string} [health]
1825
- * @param {string} [showReady]
1826
- * @param {string} [showArchived]
1827
- * @param {SortOrder} [sortOrder]
1828
- * @param {SortBy} [sortBy]
1829
- * @param {number} [page]
1830
- * @param {number} [perPage]
1831
- * @param {*} [options] Override http request option.
1832
- * @throws {RequiredError}
1833
- */
1834
- list(name, format, type, versions, strictVersions, health, showReady, showArchived, sortOrder, sortBy, page, perPage, options) {
1835
- return exports.DatasourcesApiFp(configuration).list(name, format, type, versions, strictVersions, health, showReady, showArchived, sortOrder, sortBy, page, perPage, options).then((request) => request(axios, basePath));
1836
- },
1837
- /**
1838
- *
1839
- * @param {string} id
1840
- * @param {number} [contentVersion]
1841
- * @param {string} [version]
1842
- * @param {LogTypes} [type]
1843
- * @param {Order} [order]
1844
- * @param {string} [showLastVersion]
1845
- * @param {string} [level]
1846
- * @param {number} [page]
1847
- * @param {number} [perPage]
1848
- * @param {*} [options] Override http request option.
1849
- * @throws {RequiredError}
1850
- */
1851
- listLogs(id, contentVersion, version, type, order, showLastVersion, level, page, perPage, options) {
1852
- return exports.DatasourcesApiFp(configuration).listLogs(id, contentVersion, version, type, order, showLastVersion, level, page, perPage, options).then((request) => request(axios, basePath));
1853
- },
1854
- /**
1855
- *
1856
- * @param {*} [options] Override http request option.
1857
- * @throws {RequiredError}
1858
- */
1859
- listen(options) {
1860
- return exports.DatasourcesApiFp(configuration).listen(options).then((request) => request(axios, basePath));
1861
- },
1862
- /**
1863
- *
1864
- * @param {string} id
1865
- * @param {string} q
1866
- * @param {number} [latitude]
1867
- * @param {number} [longitude]
1868
- * @param {number} [radius]
1869
- * @param {string} [sortBy]
1870
- * @param {any} [sortOrder]
1871
- * @param {any} [mode]
1872
- * @param {number} [page]
1873
- * @param {number} [perPage]
1874
- * @param {*} [options] Override http request option.
1875
- * @throws {RequiredError}
1876
- */
1877
- query(id, q, latitude, longitude, radius, sortBy, sortOrder, mode, page, perPage, options) {
1878
- return exports.DatasourcesApiFp(configuration).query(id, q, latitude, longitude, radius, sortBy, sortOrder, mode, page, perPage, options).then((request) => request(axios, basePath));
1879
- },
1880
- /**
1881
- *
1882
- * @param {string} id
1883
- * @param {*} [options] Override http request option.
1884
- * @throws {RequiredError}
1885
- */
1886
- reset(id, options) {
1887
- return exports.DatasourcesApiFp(configuration).reset(id, options).then((request) => request(axios, basePath));
1888
- },
1889
- /**
1890
- *
1891
- * @param {string} id
1892
- * @param {*} [options] Override http request option.
1893
- * @throws {RequiredError}
1894
- */
1895
- stop(id, options) {
1896
- return exports.DatasourcesApiFp(configuration).stop(id, options).then((request) => request(axios, basePath));
1897
- },
1898
- /**
1899
- *
1900
- * @param {string} id
1901
- * @param {PartialPatchBody} partialPatchBody
1902
- * @param {*} [options] Override http request option.
1903
- * @throws {RequiredError}
1904
- */
1905
- update(id, partialPatchBody, options) {
1906
- return exports.DatasourcesApiFp(configuration).update(id, partialPatchBody, options).then((request) => request(axios, basePath));
1907
- },
1908
- /**
1909
- *
1910
- * @param {string} id
1911
- * @param {InlineObject2} [inlineObject2]
1912
- * @param {*} [options] Override http request option.
1913
- * @throws {RequiredError}
1914
- */
1915
- validateAndGenerate(id, inlineObject2, options) {
1916
- return exports.DatasourcesApiFp(configuration).validateAndGenerate(id, inlineObject2, options).then((request) => request(axios, basePath));
1917
- },
1918
- };
1919
- };
1920
- /**
1921
- * DatasourcesApi - object-oriented interface
1922
- * @export
1923
- * @class DatasourcesApi
1924
- * @extends {BaseAPI}
1925
- */
1926
- class DatasourcesApi extends base_1.BaseAPI {
1927
- /**
1928
- *
1929
- * @param {DatasourcesApiDeleteRequest} requestParameters Request parameters.
1930
- * @param {*} [options] Override http request option.
1931
- * @throws {RequiredError}
1932
- * @memberof DatasourcesApi
1933
- */
1934
- _delete(requestParameters, options) {
1935
- return exports.DatasourcesApiFp(this.configuration)._delete(requestParameters.id, requestParameters.archive, requestParameters.dryRun, options).then((request) => request(this.axios, this.basePath));
1936
- }
1937
- /**
1938
- *
1939
- * @param {DatasourcesApiAnalyzeRequest} requestParameters Request parameters.
1940
- * @param {*} [options] Override http request option.
1941
- * @throws {RequiredError}
1942
- * @memberof DatasourcesApi
1943
- */
1944
- analyze(requestParameters, options) {
1945
- return exports.DatasourcesApiFp(this.configuration).analyze(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
1946
- }
1947
- /**
1948
- *
1949
- * @param {DatasourcesApiAreIndexesReadyRequest} requestParameters Request parameters.
1950
- * @param {*} [options] Override http request option.
1951
- * @throws {RequiredError}
1952
- * @memberof DatasourcesApi
1953
- */
1954
- areIndexesReady(requestParameters, options) {
1955
- return exports.DatasourcesApiFp(this.configuration).areIndexesReady(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
1956
- }
1957
- /**
1958
- *
1959
- * @param {DatasourcesApiAttachRequest} requestParameters Request parameters.
1960
- * @param {*} [options] Override http request option.
1961
- * @throws {RequiredError}
1962
- * @memberof DatasourcesApi
1963
- */
1964
- attach(requestParameters, options) {
1965
- return exports.DatasourcesApiFp(this.configuration).attach(requestParameters.id, requestParameters.file, options).then((request) => request(this.axios, this.basePath));
1966
- }
1967
- /**
1968
- *
1969
- * @param {DatasourcesApiCreateRequest} requestParameters Request parameters.
1970
- * @param {*} [options] Override http request option.
1971
- * @throws {RequiredError}
1972
- * @memberof DatasourcesApi
1973
- */
1974
- create(requestParameters, options) {
1975
- return exports.DatasourcesApiFp(this.configuration).create(requestParameters.partialOmitAliasPatchBodyUrlOrUrlsOrApiOptions, options).then((request) => request(this.axios, this.basePath));
1976
- }
1977
- /**
1978
- *
1979
- * @param {DatasourcesApiCreateIndexesRequest} requestParameters Request parameters.
1980
- * @param {*} [options] Override http request option.
1981
- * @throws {RequiredError}
1982
- * @memberof DatasourcesApi
1983
- */
1984
- createIndexes(requestParameters, options) {
1985
- return exports.DatasourcesApiFp(this.configuration).createIndexes(requestParameters.id, requestParameters.inlineObject1, options).then((request) => request(this.axios, this.basePath));
1986
- }
1987
- /**
1988
- *
1989
- * @param {DatasourcesApiGetRequest} requestParameters Request parameters.
1990
- * @param {*} [options] Override http request option.
1991
- * @throws {RequiredError}
1992
- * @memberof DatasourcesApi
1993
- */
1994
- get(requestParameters, options) {
1995
- return exports.DatasourcesApiFp(this.configuration).get(requestParameters.id, requestParameters.versions, requestParameters.example, options).then((request) => request(this.axios, this.basePath));
1996
- }
1997
- /**
1998
- *
1999
- * @param {DatasourcesApiListRequest} requestParameters Request parameters.
2000
- * @param {*} [options] Override http request option.
2001
- * @throws {RequiredError}
2002
- * @memberof DatasourcesApi
2003
- */
2004
- list(requestParameters = {}, options) {
2005
- return exports.DatasourcesApiFp(this.configuration).list(requestParameters.name, requestParameters.format, requestParameters.type, requestParameters.versions, requestParameters.strictVersions, requestParameters.health, requestParameters.showReady, requestParameters.showArchived, requestParameters.sortOrder, requestParameters.sortBy, requestParameters.page, requestParameters.perPage, options).then((request) => request(this.axios, this.basePath));
2006
- }
2007
- /**
2008
- *
2009
- * @param {DatasourcesApiListLogsRequest} requestParameters Request parameters.
2010
- * @param {*} [options] Override http request option.
2011
- * @throws {RequiredError}
2012
- * @memberof DatasourcesApi
2013
- */
2014
- listLogs(requestParameters, options) {
2015
- return exports.DatasourcesApiFp(this.configuration).listLogs(requestParameters.id, requestParameters.contentVersion, requestParameters.version, requestParameters.type, requestParameters.order, requestParameters.showLastVersion, requestParameters.level, requestParameters.page, requestParameters.perPage, options).then((request) => request(this.axios, this.basePath));
2016
- }
2017
- /**
2018
- *
2019
- * @param {*} [options] Override http request option.
2020
- * @throws {RequiredError}
2021
- * @memberof DatasourcesApi
2022
- */
2023
- listen(options) {
2024
- return exports.DatasourcesApiFp(this.configuration).listen(options).then((request) => request(this.axios, this.basePath));
2025
- }
2026
- /**
2027
- *
2028
- * @param {DatasourcesApiQueryRequest} requestParameters Request parameters.
2029
- * @param {*} [options] Override http request option.
2030
- * @throws {RequiredError}
2031
- * @memberof DatasourcesApi
2032
- */
2033
- query(requestParameters, options) {
2034
- return exports.DatasourcesApiFp(this.configuration).query(requestParameters.id, requestParameters.q, requestParameters.latitude, requestParameters.longitude, requestParameters.radius, requestParameters.sortBy, requestParameters.sortOrder, requestParameters.mode, requestParameters.page, requestParameters.perPage, options).then((request) => request(this.axios, this.basePath));
2035
- }
2036
- /**
2037
- *
2038
- * @param {DatasourcesApiResetRequest} requestParameters Request parameters.
2039
- * @param {*} [options] Override http request option.
2040
- * @throws {RequiredError}
2041
- * @memberof DatasourcesApi
2042
- */
2043
- reset(requestParameters, options) {
2044
- return exports.DatasourcesApiFp(this.configuration).reset(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
2045
- }
2046
- /**
2047
- *
2048
- * @param {DatasourcesApiStopRequest} requestParameters Request parameters.
2049
- * @param {*} [options] Override http request option.
2050
- * @throws {RequiredError}
2051
- * @memberof DatasourcesApi
2052
- */
2053
- stop(requestParameters, options) {
2054
- return exports.DatasourcesApiFp(this.configuration).stop(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
2055
- }
2056
- /**
2057
- *
2058
- * @param {DatasourcesApiUpdateRequest} requestParameters Request parameters.
2059
- * @param {*} [options] Override http request option.
2060
- * @throws {RequiredError}
2061
- * @memberof DatasourcesApi
2062
- */
2063
- update(requestParameters, options) {
2064
- return exports.DatasourcesApiFp(this.configuration).update(requestParameters.id, requestParameters.partialPatchBody, options).then((request) => request(this.axios, this.basePath));
2065
- }
2066
- /**
2067
- *
2068
- * @param {DatasourcesApiValidateAndGenerateRequest} requestParameters Request parameters.
2069
- * @param {*} [options] Override http request option.
2070
- * @throws {RequiredError}
2071
- * @memberof DatasourcesApi
2072
- */
2073
- validateAndGenerate(requestParameters, options) {
2074
- return exports.DatasourcesApiFp(this.configuration).validateAndGenerate(requestParameters.id, requestParameters.inlineObject2, options).then((request) => request(this.axios, this.basePath));
10
+ var definitions_1 = require("./definitions");
11
+ Object.defineProperty(exports, "DatasourceMode", { enumerable: true, get: function () { return definitions_1.DatasourceMode; } });
12
+ Object.defineProperty(exports, "DatasourceType", { enumerable: true, get: function () { return definitions_1.DatasourceType; } });
13
+ Object.defineProperty(exports, "DatasourceStatus", { enumerable: true, get: function () { return definitions_1.DatasourceStatus; } });
14
+ Object.defineProperty(exports, "DatasourceFormat", { enumerable: true, get: function () { return definitions_1.DatasourceFormat; } });
15
+ Object.defineProperty(exports, "FieldMapType", { enumerable: true, get: function () { return definitions_1.FieldMapType; } });
16
+ class default_1 {
17
+ constructor(configOrInstance) {
18
+ this.axios = 'interceptors' in configOrInstance
19
+ ? configOrInstance
20
+ : axios_1.default.create(configOrInstance);
21
+ }
22
+ listOauthClient(params, options) {
23
+ return this.axios.get("/oauth", Object.assign({}, {
24
+ params: pick(params, "page", "perPage"),
25
+ }, options));
26
+ }
27
+ createOauthClient(data, options) {
28
+ return this.axios.post("/oauth", data, options);
29
+ }
30
+ updateOauthClient(params, data, options) {
31
+ return this.axios.patch("/oauth/{id}".replace(/{id}/, String(params["id"])), data, options);
32
+ }
33
+ deleteOauthClient(params, options) {
34
+ return this.axios.delete("/oauth/{id}".replace(/{id}/, String(params["id"])), options);
35
+ }
36
+ getAuthorizeUrl(params, options) {
37
+ return this.axios.get("/oauth/{id}/authorize/url".replace(/{id}/, String(params["id"])), options);
38
+ }
39
+ getAuthorizeUrlForDatasource(params, options) {
40
+ return this.axios.get("/oauth/datasource/{id}/authorize/url".replace(/{id}/, String(params["id"])), options);
41
+ }
42
+ listenDatasource(params, options) {
43
+ return this.axios.get("/listen", Object.assign({}, {
44
+ params: pick(params, "datasources"),
45
+ }, options));
46
+ }
47
+ listTemplatesDatasource(params, options) {
48
+ return this.axios.get("/templates", Object.assign({}, {
49
+ params: pick(params, "name", "categories", "page", "perPage"),
50
+ }, options));
51
+ }
52
+ listTemplateCategoriesDatasource(options) {
53
+ return this.axios.get("/templates/categories", options);
54
+ }
55
+ listDatasource(params, options) {
56
+ return this.axios.get("/", Object.assign({}, {
57
+ params: pick(params, "ids", "name", "mode", "resourceGroupIds", "typeName", "subtype", "includeLiveOnly", "status", "includeArchived", "select", "sortBy", "sortOrder", "page", "perPage"),
58
+ }, options));
59
+ }
60
+ createDatasource(data, options) {
61
+ return this.axios.post("/", data, options);
62
+ }
63
+ getDatasource(params, options) {
64
+ return this.axios.get("/{id}".replace(/{id}/, String(params["id"])), Object.assign({}, {
65
+ params: pick(params, "versions", "withExample"),
66
+ }, options));
67
+ }
68
+ deleteDatasource(params, options) {
69
+ return this.axios.delete("/{id}".replace(/{id}/, String(params["id"])), Object.assign({}, {
70
+ params: pick(params, "archive", "dry-run"),
71
+ }, options));
72
+ }
73
+ getLogsWorkerDatasource(params, options) {
74
+ return this.axios.get("/worker/{id}/logs".replace(/{id}/, String(params["id"])), Object.assign({}, {
75
+ params: pick(params, "contentVersion", "version", "type", "order", "showLastVersion", "level", "page", "perPage"),
76
+ }, options));
77
+ }
78
+ getLogsDatasource(params, options) {
79
+ return this.axios.get("/{id}/logs".replace(/{id}/, String(params["id"])), Object.assign({}, {
80
+ params: pick(params, "contentVersion", "version", "type", "order", "showLastVersion", "level", "page", "perPage"),
81
+ }, options));
82
+ }
83
+ analyzeWorkerDatasource(params, options) {
84
+ return this.axios.post("/worker/{id}/analyzer".replace(/{id}/, String(params["id"])), {}, options);
85
+ }
86
+ analyzeProxyDatasource(params, options) {
87
+ return this.axios.post("/proxy/{id}/analyzer".replace(/{id}/, String(params["id"])), {}, options);
88
+ }
89
+ queryDatasource(data, options) {
90
+ return this.axios.post("/query", data, options);
91
+ }
92
+ queryValuesDatasource(data, options) {
93
+ return this.axios.post("/query-values", data, options);
94
+ }
95
+ getCurrentStepDatasource(params, options) {
96
+ return this.axios.get("/{id}/steps".replace(/{id}/, String(params["id"])), options);
97
+ }
98
+ validateStepDatasource(params, data, options) {
99
+ return this.axios.post("/{id}/steps".replace(/{id}/, String(params["id"])), data, options);
100
+ }
101
+ getIndexesStateWorkerDatasource(params, options) {
102
+ return this.axios.get("/worker/{id}/indexes".replace(/{id}/, String(params["id"])), options);
103
+ }
104
+ createIndexesWorkerDatasource(params, data, options) {
105
+ return this.axios.post("/worker/{id}/indexes".replace(/{id}/, String(params["id"])), data, options);
106
+ }
107
+ pauseWorkerDatasource(params, options) {
108
+ return this.axios.post("/worker/{id}/pause".replace(/{id}/, String(params["id"])), {}, options);
109
+ }
110
+ get OAuthClient() {
111
+ return {
112
+ list: this.listOauthClient.bind(this),
113
+ create: this.createOauthClient.bind(this),
114
+ update: this.updateOauthClient.bind(this),
115
+ delete: this.deleteOauthClient.bind(this),
116
+ getAuthorizeUrl: this.getAuthorizeUrl.bind(this),
117
+ getAuthorizeUrlForDatasource: this.getAuthorizeUrlForDatasource.bind(this)
118
+ };
119
+ }
120
+ get Datasource() {
121
+ return {
122
+ listen: this.listenDatasource.bind(this),
123
+ listTemplates: this.listTemplatesDatasource.bind(this),
124
+ listTemplateCategories: this.listTemplateCategoriesDatasource.bind(this),
125
+ list: this.listDatasource.bind(this),
126
+ create: this.createDatasource.bind(this),
127
+ get: this.getDatasource.bind(this),
128
+ delete: this.deleteDatasource.bind(this),
129
+ getLogs: this.getLogsDatasource.bind(this),
130
+ query: this.queryDatasource.bind(this),
131
+ queryValues: this.queryValuesDatasource.bind(this),
132
+ getCurrentStep: this.getCurrentStepDatasource.bind(this),
133
+ validateStep: this.validateStepDatasource.bind(this)
134
+ };
135
+ }
136
+ get WorkerDatasource() {
137
+ return {
138
+ getLogs: this.getLogsWorkerDatasource.bind(this),
139
+ analyze: this.analyzeWorkerDatasource.bind(this),
140
+ getIndexesState: this.getIndexesStateWorkerDatasource.bind(this),
141
+ createIndexes: this.createIndexesWorkerDatasource.bind(this),
142
+ pause: this.pauseWorkerDatasource.bind(this)
143
+ };
144
+ }
145
+ get ProxyDatasource() {
146
+ return {
147
+ analyze: this.analyzeProxyDatasource.bind(this)
148
+ };
2075
149
  }
2076
150
  }
2077
- exports.DatasourcesApi = DatasourcesApi;
2078
- /**
2079
- * OAuthClientApi - axios parameter creator
2080
- * @export
2081
- */
2082
- exports.OAuthClientApiAxiosParamCreator = function (configuration) {
2083
- return {
2084
- /**
2085
- *
2086
- * @param {PickSerializedOAuthClientExcludeKeyofSerializedOAuthClientCompanyIdOrResourceGroupIds} body
2087
- * @param {*} [options] Override http request option.
2088
- * @throws {RequiredError}
2089
- */
2090
- createClient: async (body, options = {}) => {
2091
- // verify required parameter 'body' is not null or undefined
2092
- if (body === null || body === undefined) {
2093
- throw new base_1.RequiredError('body', 'Required parameter body was null or undefined when calling createClient.');
2094
- }
2095
- const localVarPath = `/oauth`;
2096
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
2097
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
2098
- let baseOptions;
2099
- if (configuration) {
2100
- baseOptions = configuration.baseOptions;
2101
- }
2102
- const localVarRequestOptions = { method: 'POST', ...baseOptions, ...options };
2103
- const localVarHeaderParameter = {};
2104
- const localVarQueryParameter = {};
2105
- // authentication company required
2106
- if (configuration && configuration.apiKey) {
2107
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2108
- ? await configuration.apiKey("x-companyid")
2109
- : await configuration.apiKey;
2110
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
2111
- }
2112
- // authentication groups required
2113
- if (configuration && configuration.apiKey) {
2114
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2115
- ? await configuration.apiKey("x-user-resource-groupid")
2116
- : await configuration.apiKey;
2117
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
2118
- }
2119
- // authentication role required
2120
- if (configuration && configuration.apiKey) {
2121
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2122
- ? await configuration.apiKey("x-user-roleid")
2123
- : await configuration.apiKey;
2124
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
2125
- }
2126
- // authentication user required
2127
- if (configuration && configuration.apiKey) {
2128
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2129
- ? await configuration.apiKey("x-userid")
2130
- : await configuration.apiKey;
2131
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
2132
- }
2133
- localVarHeaderParameter['Content-Type'] = 'application/json';
2134
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
2135
- for (const key in localVarQueryParameter) {
2136
- queryParameters.set(key, localVarQueryParameter[key]);
2137
- }
2138
- for (const key in options.query) {
2139
- queryParameters.set(key, options.query[key]);
2140
- }
2141
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
2142
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2143
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
2144
- const needsSerialization = (typeof body !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
2145
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(body !== undefined ? body : {}) : (body || "");
2146
- return {
2147
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
2148
- options: localVarRequestOptions,
2149
- };
2150
- },
2151
- /**
2152
- *
2153
- * @param {string} id
2154
- * @param {*} [options] Override http request option.
2155
- * @throws {RequiredError}
2156
- */
2157
- deleteClient: async (id, options = {}) => {
2158
- // verify required parameter 'id' is not null or undefined
2159
- if (id === null || id === undefined) {
2160
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling deleteClient.');
2161
- }
2162
- const localVarPath = `/oauth/{id}`
2163
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
2164
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
2165
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
2166
- let baseOptions;
2167
- if (configuration) {
2168
- baseOptions = configuration.baseOptions;
2169
- }
2170
- const localVarRequestOptions = { method: 'DELETE', ...baseOptions, ...options };
2171
- const localVarHeaderParameter = {};
2172
- const localVarQueryParameter = {};
2173
- // authentication company required
2174
- if (configuration && configuration.apiKey) {
2175
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2176
- ? await configuration.apiKey("x-companyid")
2177
- : await configuration.apiKey;
2178
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
2179
- }
2180
- // authentication groups required
2181
- if (configuration && configuration.apiKey) {
2182
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2183
- ? await configuration.apiKey("x-user-resource-groupid")
2184
- : await configuration.apiKey;
2185
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
2186
- }
2187
- // authentication role required
2188
- if (configuration && configuration.apiKey) {
2189
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2190
- ? await configuration.apiKey("x-user-roleid")
2191
- : await configuration.apiKey;
2192
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
2193
- }
2194
- // authentication user required
2195
- if (configuration && configuration.apiKey) {
2196
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2197
- ? await configuration.apiKey("x-userid")
2198
- : await configuration.apiKey;
2199
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
2200
- }
2201
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
2202
- for (const key in localVarQueryParameter) {
2203
- queryParameters.set(key, localVarQueryParameter[key]);
2204
- }
2205
- for (const key in options.query) {
2206
- queryParameters.set(key, options.query[key]);
2207
- }
2208
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
2209
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2210
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
2211
- return {
2212
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
2213
- options: localVarRequestOptions,
2214
- };
2215
- },
2216
- /**
2217
- *
2218
- * @param {string} id
2219
- * @param {*} [options] Override http request option.
2220
- * @throws {RequiredError}
2221
- */
2222
- getAuthorizeUrl: async (id, options = {}) => {
2223
- // verify required parameter 'id' is not null or undefined
2224
- if (id === null || id === undefined) {
2225
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling getAuthorizeUrl.');
2226
- }
2227
- const localVarPath = `/oauth/{id}/authorize/url`
2228
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
2229
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
2230
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
2231
- let baseOptions;
2232
- if (configuration) {
2233
- baseOptions = configuration.baseOptions;
2234
- }
2235
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
2236
- const localVarHeaderParameter = {};
2237
- const localVarQueryParameter = {};
2238
- // authentication company required
2239
- if (configuration && configuration.apiKey) {
2240
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2241
- ? await configuration.apiKey("x-companyid")
2242
- : await configuration.apiKey;
2243
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
2244
- }
2245
- // authentication groups required
2246
- if (configuration && configuration.apiKey) {
2247
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2248
- ? await configuration.apiKey("x-user-resource-groupid")
2249
- : await configuration.apiKey;
2250
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
2251
- }
2252
- // authentication role required
2253
- if (configuration && configuration.apiKey) {
2254
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2255
- ? await configuration.apiKey("x-user-roleid")
2256
- : await configuration.apiKey;
2257
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
2258
- }
2259
- // authentication user required
2260
- if (configuration && configuration.apiKey) {
2261
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2262
- ? await configuration.apiKey("x-userid")
2263
- : await configuration.apiKey;
2264
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
2265
- }
2266
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
2267
- for (const key in localVarQueryParameter) {
2268
- queryParameters.set(key, localVarQueryParameter[key]);
2269
- }
2270
- for (const key in options.query) {
2271
- queryParameters.set(key, options.query[key]);
2272
- }
2273
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
2274
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2275
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
2276
- return {
2277
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
2278
- options: localVarRequestOptions,
2279
- };
2280
- },
2281
- /**
2282
- *
2283
- * @param {number} [page]
2284
- * @param {number} [perPage]
2285
- * @param {*} [options] Override http request option.
2286
- * @throws {RequiredError}
2287
- */
2288
- listClients: async (page, perPage, options = {}) => {
2289
- const localVarPath = `/oauth`;
2290
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
2291
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
2292
- let baseOptions;
2293
- if (configuration) {
2294
- baseOptions = configuration.baseOptions;
2295
- }
2296
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
2297
- const localVarHeaderParameter = {};
2298
- const localVarQueryParameter = {};
2299
- // authentication company required
2300
- if (configuration && configuration.apiKey) {
2301
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2302
- ? await configuration.apiKey("x-companyid")
2303
- : await configuration.apiKey;
2304
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
2305
- }
2306
- // authentication groups required
2307
- if (configuration && configuration.apiKey) {
2308
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2309
- ? await configuration.apiKey("x-user-resource-groupid")
2310
- : await configuration.apiKey;
2311
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
2312
- }
2313
- // authentication role required
2314
- if (configuration && configuration.apiKey) {
2315
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2316
- ? await configuration.apiKey("x-user-roleid")
2317
- : await configuration.apiKey;
2318
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
2319
- }
2320
- // authentication user required
2321
- if (configuration && configuration.apiKey) {
2322
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2323
- ? await configuration.apiKey("x-userid")
2324
- : await configuration.apiKey;
2325
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
2326
- }
2327
- if (page !== undefined) {
2328
- localVarQueryParameter['page'] = page;
2329
- }
2330
- if (perPage !== undefined) {
2331
- localVarQueryParameter['perPage'] = perPage;
2332
- }
2333
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
2334
- for (const key in localVarQueryParameter) {
2335
- queryParameters.set(key, localVarQueryParameter[key]);
2336
- }
2337
- for (const key in options.query) {
2338
- queryParameters.set(key, options.query[key]);
2339
- }
2340
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
2341
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2342
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
2343
- return {
2344
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
2345
- options: localVarRequestOptions,
2346
- };
2347
- },
2348
- /**
2349
- * Note: This route is called by the OAuth provider, so we don\'t have companyId header
2350
- * @param {string} id
2351
- * @param {string} code
2352
- * @param {string} state
2353
- * @param {*} [options] Override http request option.
2354
- * @throws {RequiredError}
2355
- */
2356
- replyCode: async (id, code, state, options = {}) => {
2357
- // verify required parameter 'id' is not null or undefined
2358
- if (id === null || id === undefined) {
2359
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling replyCode.');
2360
- }
2361
- // verify required parameter 'code' is not null or undefined
2362
- if (code === null || code === undefined) {
2363
- throw new base_1.RequiredError('code', 'Required parameter code was null or undefined when calling replyCode.');
2364
- }
2365
- // verify required parameter 'state' is not null or undefined
2366
- if (state === null || state === undefined) {
2367
- throw new base_1.RequiredError('state', 'Required parameter state was null or undefined when calling replyCode.');
2368
- }
2369
- const localVarPath = `/oauth/{id}/authorize/callback`
2370
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
2371
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
2372
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
2373
- let baseOptions;
2374
- if (configuration) {
2375
- baseOptions = configuration.baseOptions;
2376
- }
2377
- const localVarRequestOptions = { method: 'GET', ...baseOptions, ...options };
2378
- const localVarHeaderParameter = {};
2379
- const localVarQueryParameter = {};
2380
- if (code !== undefined) {
2381
- localVarQueryParameter['code'] = code;
2382
- }
2383
- if (state !== undefined) {
2384
- localVarQueryParameter['state'] = state;
2385
- }
2386
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
2387
- for (const key in localVarQueryParameter) {
2388
- queryParameters.set(key, localVarQueryParameter[key]);
2389
- }
2390
- for (const key in options.query) {
2391
- queryParameters.set(key, options.query[key]);
2392
- }
2393
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
2394
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2395
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
2396
- return {
2397
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
2398
- options: localVarRequestOptions,
2399
- };
2400
- },
2401
- /**
2402
- *
2403
- * @param {string} id
2404
- * @param {PartialPatch} partialPatch
2405
- * @param {*} [options] Override http request option.
2406
- * @throws {RequiredError}
2407
- */
2408
- updateClient: async (id, partialPatch, options = {}) => {
2409
- // verify required parameter 'id' is not null or undefined
2410
- if (id === null || id === undefined) {
2411
- throw new base_1.RequiredError('id', 'Required parameter id was null or undefined when calling updateClient.');
2412
- }
2413
- // verify required parameter 'partialPatch' is not null or undefined
2414
- if (partialPatch === null || partialPatch === undefined) {
2415
- throw new base_1.RequiredError('partialPatch', 'Required parameter partialPatch was null or undefined when calling updateClient.');
2416
- }
2417
- const localVarPath = `/oauth/{id}`
2418
- .replace(`{${"id"}}`, encodeURIComponent(String(id)));
2419
- // use dummy base URL string because the URL constructor only accepts absolute URLs.
2420
- const localVarUrlObj = new URL(localVarPath, 'https://example.com');
2421
- let baseOptions;
2422
- if (configuration) {
2423
- baseOptions = configuration.baseOptions;
2424
- }
2425
- const localVarRequestOptions = { method: 'PATCH', ...baseOptions, ...options };
2426
- const localVarHeaderParameter = {};
2427
- const localVarQueryParameter = {};
2428
- // authentication company required
2429
- if (configuration && configuration.apiKey) {
2430
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2431
- ? await configuration.apiKey("x-companyid")
2432
- : await configuration.apiKey;
2433
- localVarHeaderParameter["x-companyid"] = localVarApiKeyValue;
2434
- }
2435
- // authentication groups required
2436
- if (configuration && configuration.apiKey) {
2437
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2438
- ? await configuration.apiKey("x-user-resource-groupid")
2439
- : await configuration.apiKey;
2440
- localVarHeaderParameter["x-user-resource-groupid"] = localVarApiKeyValue;
2441
- }
2442
- // authentication role required
2443
- if (configuration && configuration.apiKey) {
2444
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2445
- ? await configuration.apiKey("x-user-roleid")
2446
- : await configuration.apiKey;
2447
- localVarHeaderParameter["x-user-roleid"] = localVarApiKeyValue;
2448
- }
2449
- // authentication user required
2450
- if (configuration && configuration.apiKey) {
2451
- const localVarApiKeyValue = typeof configuration.apiKey === 'function'
2452
- ? await configuration.apiKey("x-userid")
2453
- : await configuration.apiKey;
2454
- localVarHeaderParameter["x-userid"] = localVarApiKeyValue;
2455
- }
2456
- localVarHeaderParameter['Content-Type'] = 'application/json';
2457
- const queryParameters = new URLSearchParams(localVarUrlObj.search);
2458
- for (const key in localVarQueryParameter) {
2459
- queryParameters.set(key, localVarQueryParameter[key]);
2460
- }
2461
- for (const key in options.query) {
2462
- queryParameters.set(key, options.query[key]);
2463
- }
2464
- localVarUrlObj.search = (new URLSearchParams(queryParameters)).toString();
2465
- let headersFromBaseOptions = baseOptions && baseOptions.headers ? baseOptions.headers : {};
2466
- localVarRequestOptions.headers = { ...localVarHeaderParameter, ...headersFromBaseOptions, ...options.headers };
2467
- const needsSerialization = (typeof partialPatch !== "string") && configuration.isJsonMime(localVarRequestOptions.headers['Content-Type']);
2468
- localVarRequestOptions.data = needsSerialization ? JSON.stringify(partialPatch !== undefined ? partialPatch : {}) : (partialPatch || "");
2469
- return {
2470
- url: localVarUrlObj.pathname + localVarUrlObj.search + localVarUrlObj.hash,
2471
- options: localVarRequestOptions,
2472
- };
2473
- },
2474
- };
2475
- };
2476
- /**
2477
- * OAuthClientApi - functional programming interface
2478
- * @export
2479
- */
2480
- exports.OAuthClientApiFp = function (configuration) {
2481
- return {
2482
- /**
2483
- *
2484
- * @param {PickSerializedOAuthClientExcludeKeyofSerializedOAuthClientCompanyIdOrResourceGroupIds} body
2485
- * @param {*} [options] Override http request option.
2486
- * @throws {RequiredError}
2487
- */
2488
- async createClient(body, options) {
2489
- const localVarAxiosArgs = await exports.OAuthClientApiAxiosParamCreator(configuration).createClient(body, options);
2490
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
2491
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
2492
- return axios.request(axiosRequestArgs);
2493
- };
2494
- },
2495
- /**
2496
- *
2497
- * @param {string} id
2498
- * @param {*} [options] Override http request option.
2499
- * @throws {RequiredError}
2500
- */
2501
- async deleteClient(id, options) {
2502
- const localVarAxiosArgs = await exports.OAuthClientApiAxiosParamCreator(configuration).deleteClient(id, options);
2503
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
2504
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
2505
- return axios.request(axiosRequestArgs);
2506
- };
2507
- },
2508
- /**
2509
- *
2510
- * @param {string} id
2511
- * @param {*} [options] Override http request option.
2512
- * @throws {RequiredError}
2513
- */
2514
- async getAuthorizeUrl(id, options) {
2515
- const localVarAxiosArgs = await exports.OAuthClientApiAxiosParamCreator(configuration).getAuthorizeUrl(id, options);
2516
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
2517
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
2518
- return axios.request(axiosRequestArgs);
2519
- };
2520
- },
2521
- /**
2522
- *
2523
- * @param {number} [page]
2524
- * @param {number} [perPage]
2525
- * @param {*} [options] Override http request option.
2526
- * @throws {RequiredError}
2527
- */
2528
- async listClients(page, perPage, options) {
2529
- const localVarAxiosArgs = await exports.OAuthClientApiAxiosParamCreator(configuration).listClients(page, perPage, options);
2530
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
2531
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
2532
- return axios.request(axiosRequestArgs);
2533
- };
2534
- },
2535
- /**
2536
- * Note: This route is called by the OAuth provider, so we don\'t have companyId header
2537
- * @param {string} id
2538
- * @param {string} code
2539
- * @param {string} state
2540
- * @param {*} [options] Override http request option.
2541
- * @throws {RequiredError}
2542
- */
2543
- async replyCode(id, code, state, options) {
2544
- const localVarAxiosArgs = await exports.OAuthClientApiAxiosParamCreator(configuration).replyCode(id, code, state, options);
2545
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
2546
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
2547
- return axios.request(axiosRequestArgs);
2548
- };
2549
- },
2550
- /**
2551
- *
2552
- * @param {string} id
2553
- * @param {PartialPatch} partialPatch
2554
- * @param {*} [options] Override http request option.
2555
- * @throws {RequiredError}
2556
- */
2557
- async updateClient(id, partialPatch, options) {
2558
- const localVarAxiosArgs = await exports.OAuthClientApiAxiosParamCreator(configuration).updateClient(id, partialPatch, options);
2559
- return (axios = axios_1.default, basePath = base_1.BASE_PATH) => {
2560
- const axiosRequestArgs = { ...localVarAxiosArgs.options, url: basePath + localVarAxiosArgs.url };
2561
- return axios.request(axiosRequestArgs);
2562
- };
2563
- },
2564
- };
2565
- };
2566
- /**
2567
- * OAuthClientApi - factory interface
2568
- * @export
2569
- */
2570
- exports.OAuthClientApiFactory = function (configuration, basePath, axios) {
2571
- return {
2572
- /**
2573
- *
2574
- * @param {PickSerializedOAuthClientExcludeKeyofSerializedOAuthClientCompanyIdOrResourceGroupIds} body
2575
- * @param {*} [options] Override http request option.
2576
- * @throws {RequiredError}
2577
- */
2578
- createClient(body, options) {
2579
- return exports.OAuthClientApiFp(configuration).createClient(body, options).then((request) => request(axios, basePath));
2580
- },
2581
- /**
2582
- *
2583
- * @param {string} id
2584
- * @param {*} [options] Override http request option.
2585
- * @throws {RequiredError}
2586
- */
2587
- deleteClient(id, options) {
2588
- return exports.OAuthClientApiFp(configuration).deleteClient(id, options).then((request) => request(axios, basePath));
2589
- },
2590
- /**
2591
- *
2592
- * @param {string} id
2593
- * @param {*} [options] Override http request option.
2594
- * @throws {RequiredError}
2595
- */
2596
- getAuthorizeUrl(id, options) {
2597
- return exports.OAuthClientApiFp(configuration).getAuthorizeUrl(id, options).then((request) => request(axios, basePath));
2598
- },
2599
- /**
2600
- *
2601
- * @param {number} [page]
2602
- * @param {number} [perPage]
2603
- * @param {*} [options] Override http request option.
2604
- * @throws {RequiredError}
2605
- */
2606
- listClients(page, perPage, options) {
2607
- return exports.OAuthClientApiFp(configuration).listClients(page, perPage, options).then((request) => request(axios, basePath));
2608
- },
2609
- /**
2610
- * Note: This route is called by the OAuth provider, so we don\'t have companyId header
2611
- * @param {string} id
2612
- * @param {string} code
2613
- * @param {string} state
2614
- * @param {*} [options] Override http request option.
2615
- * @throws {RequiredError}
2616
- */
2617
- replyCode(id, code, state, options) {
2618
- return exports.OAuthClientApiFp(configuration).replyCode(id, code, state, options).then((request) => request(axios, basePath));
2619
- },
2620
- /**
2621
- *
2622
- * @param {string} id
2623
- * @param {PartialPatch} partialPatch
2624
- * @param {*} [options] Override http request option.
2625
- * @throws {RequiredError}
2626
- */
2627
- updateClient(id, partialPatch, options) {
2628
- return exports.OAuthClientApiFp(configuration).updateClient(id, partialPatch, options).then((request) => request(axios, basePath));
2629
- },
2630
- };
2631
- };
2632
- /**
2633
- * OAuthClientApi - object-oriented interface
2634
- * @export
2635
- * @class OAuthClientApi
2636
- * @extends {BaseAPI}
2637
- */
2638
- class OAuthClientApi extends base_1.BaseAPI {
2639
- /**
2640
- *
2641
- * @param {OAuthClientApiCreateClientRequest} requestParameters Request parameters.
2642
- * @param {*} [options] Override http request option.
2643
- * @throws {RequiredError}
2644
- * @memberof OAuthClientApi
2645
- */
2646
- createClient(requestParameters, options) {
2647
- return exports.OAuthClientApiFp(this.configuration).createClient(requestParameters.body, options).then((request) => request(this.axios, this.basePath));
2648
- }
2649
- /**
2650
- *
2651
- * @param {OAuthClientApiDeleteClientRequest} requestParameters Request parameters.
2652
- * @param {*} [options] Override http request option.
2653
- * @throws {RequiredError}
2654
- * @memberof OAuthClientApi
2655
- */
2656
- deleteClient(requestParameters, options) {
2657
- return exports.OAuthClientApiFp(this.configuration).deleteClient(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
2658
- }
2659
- /**
2660
- *
2661
- * @param {OAuthClientApiGetAuthorizeUrlRequest} requestParameters Request parameters.
2662
- * @param {*} [options] Override http request option.
2663
- * @throws {RequiredError}
2664
- * @memberof OAuthClientApi
2665
- */
2666
- getAuthorizeUrl(requestParameters, options) {
2667
- return exports.OAuthClientApiFp(this.configuration).getAuthorizeUrl(requestParameters.id, options).then((request) => request(this.axios, this.basePath));
2668
- }
2669
- /**
2670
- *
2671
- * @param {OAuthClientApiListClientsRequest} requestParameters Request parameters.
2672
- * @param {*} [options] Override http request option.
2673
- * @throws {RequiredError}
2674
- * @memberof OAuthClientApi
2675
- */
2676
- listClients(requestParameters = {}, options) {
2677
- return exports.OAuthClientApiFp(this.configuration).listClients(requestParameters.page, requestParameters.perPage, options).then((request) => request(this.axios, this.basePath));
2678
- }
2679
- /**
2680
- * Note: This route is called by the OAuth provider, so we don\'t have companyId header
2681
- * @param {OAuthClientApiReplyCodeRequest} requestParameters Request parameters.
2682
- * @param {*} [options] Override http request option.
2683
- * @throws {RequiredError}
2684
- * @memberof OAuthClientApi
2685
- */
2686
- replyCode(requestParameters, options) {
2687
- return exports.OAuthClientApiFp(this.configuration).replyCode(requestParameters.id, requestParameters.code, requestParameters.state, options).then((request) => request(this.axios, this.basePath));
2688
- }
2689
- /**
2690
- *
2691
- * @param {OAuthClientApiUpdateClientRequest} requestParameters Request parameters.
2692
- * @param {*} [options] Override http request option.
2693
- * @throws {RequiredError}
2694
- * @memberof OAuthClientApi
2695
- */
2696
- updateClient(requestParameters, options) {
2697
- return exports.OAuthClientApiFp(this.configuration).updateClient(requestParameters.id, requestParameters.partialPatch, options).then((request) => request(this.axios, this.basePath));
2698
- }
151
+ exports.default = default_1;
152
+ function pick(obj, ...keys) {
153
+ const ret = {};
154
+ keys.forEach(key => {
155
+ if (obj && Object.keys(obj).includes(key))
156
+ ret[key] = obj[key];
157
+ });
158
+ return ret;
2699
159
  }
2700
- exports.OAuthClientApi = OAuthClientApi;
2701
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCOzs7Ozs7Ozs7O0dBVUc7Ozs7OztBQUlILGtEQUFpRTtBQUNqRSx5REFBeUQ7QUFDekQsYUFBYTtBQUNiLGlDQUE0RjtBQThDNUY7Ozs7R0FJRztBQUNILElBQVkseUJBRVg7QUFGRCxXQUFZLHlCQUF5QjtJQUNqQyw4Q0FBaUIsQ0FBQTtBQUNyQixDQUFDLEVBRlcseUJBQXlCLEdBQXpCLGlDQUF5QixLQUF6QixpQ0FBeUIsUUFFcEM7QUFFRDs7OztHQUlHO0FBQ0gsSUFBWSxnQkFNWDtBQU5ELFdBQVksZ0JBQWdCO0lBQ3hCLCtCQUFXLENBQUE7SUFDWCxxQ0FBaUIsQ0FBQTtJQUNqQixpQ0FBYSxDQUFBO0lBQ2IsK0JBQVcsQ0FBQTtJQUNYLGlDQUFhLENBQUE7QUFDakIsQ0FBQyxFQU5XLGdCQUFnQixHQUFoQix3QkFBZ0IsS0FBaEIsd0JBQWdCLFFBTTNCO0FBRUQ7Ozs7R0FJRztBQUNILElBQVksY0FLWDtBQUxELFdBQVksY0FBYztJQUN0QixxQ0FBbUIsQ0FBQTtJQUNuQix1Q0FBcUIsQ0FBQTtJQUNyQixxQ0FBbUIsQ0FBQTtJQUNuQixpQ0FBZSxDQUFBO0FBQ25CLENBQUMsRUFMVyxjQUFjLEdBQWQsc0JBQWMsS0FBZCxzQkFBYyxRQUt6QjtBQUVEOzs7O0dBSUc7QUFDSCxJQUFZLHNCQUtYO0FBTEQsV0FBWSxzQkFBc0I7SUFDOUIsdUNBQWEsQ0FBQTtJQUNiLHlDQUFlLENBQUE7SUFDZixpREFBdUIsQ0FBQTtJQUN2QiwrQ0FBcUIsQ0FBQTtBQUN6QixDQUFDLEVBTFcsc0JBQXNCLEdBQXRCLDhCQUFzQixLQUF0Qiw4QkFBc0IsUUFLakM7QUFrR0Q7OztNQUdNO0FBQ04sSUFBWSxtQ0FFWDtBQUZELFdBQVksbUNBQW1DO0lBQzNDLGtEQUFXLENBQUE7QUFDZixDQUFD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
160
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxvQkFBb0I7QUFDcEIsb0JBQW9COzs7Ozs7QUFFcEIsa0RBQWlFO0FBR2pFLDZDQUF1d0Q7QUFBbHdCLDZHQUFBLGNBQWMsT0FBQTtBQUFFLDZHQUFBLGNBQWMsT0FBQTtBQUFFLCtHQUFBLGdCQUFnQixPQUFBO0FBQThJLCtHQUFBLGdCQUFnQixPQUFBO0FBQTZlLDJHQUFBLFlBQVksT0FBQTtBQUU1c0Q7SUFHSSxZQUFZLGdCQUFvRDtRQUM1RCxJQUFJLENBQUMsS0FBSyxHQUFHLGNBQWMsSUFBSSxnQkFBZ0I7WUFDM0MsQ0FBQyxDQUFDLGdCQUFnQjtZQUNsQixDQUFDLENBQUMsZUFBSyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO0lBQ3hDLENBQUM7SUFFTyxlQUFlLENBQUMsTUFHdkIsRUFBRSxPQUE0QjtRQUMzQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQVlqQixRQUFRLEVBQ1IsTUFBTSxDQUFDLE1BQU0sQ0FDVCxFQUFFLEVBQ0Y7WUFDSSxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDO1NBQzFDLEVBQ0QsT0FBTyxDQUNWLENBQ0osQ0FBQztJQUNOLENBQUM7SUFFTyxpQkFBaUIsQ0FBQyxJQUV6QixFQUFFLE9BQTRCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBU2xCLFFBQVEsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUMxQixDQUFDO0lBQ04sQ0FBQztJQUVPLGlCQUFpQixDQUFDLE1BRXpCLEVBQUUsSUFFRixFQUFFLE9BQTRCO1FBQzNCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBU25CLGFBQWEsQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMs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