@algolia/advanced-personalization 0.0.1-alpha.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,390 @@
1
+ // src/advancedPersonalizationClient.ts
2
+ import { createAuth, createTransporter, getAlgoliaAgent } from "@algolia/client-common";
3
+ var apiClientVersion = "0.0.1-alpha.1";
4
+ var REGIONS = ["eu", "us"];
5
+ function getDefaultHosts(region) {
6
+ const url = "ai-personalization.{region}.algolia.com".replace("{region}", region);
7
+ return [{ url, accept: "readWrite", protocol: "https" }];
8
+ }
9
+ function createAdvancedPersonalizationClient({
10
+ appId: appIdOption,
11
+ apiKey: apiKeyOption,
12
+ authMode,
13
+ algoliaAgents,
14
+ region: regionOption,
15
+ ...options
16
+ }) {
17
+ const auth = createAuth(appIdOption, apiKeyOption, authMode);
18
+ const transporter = createTransporter({
19
+ hosts: getDefaultHosts(regionOption),
20
+ ...options,
21
+ algoliaAgent: getAlgoliaAgent({
22
+ algoliaAgents,
23
+ client: "AdvancedPersonalization",
24
+ version: apiClientVersion
25
+ }),
26
+ baseHeaders: {
27
+ "content-type": "text/plain",
28
+ ...auth.headers(),
29
+ ...options.baseHeaders
30
+ },
31
+ baseQueryParameters: {
32
+ ...auth.queryParameters(),
33
+ ...options.baseQueryParameters
34
+ }
35
+ });
36
+ return {
37
+ transporter,
38
+ /**
39
+ * The `appId` currently in use.
40
+ */
41
+ appId: appIdOption,
42
+ /**
43
+ * The `apiKey` currently in use.
44
+ */
45
+ apiKey: apiKeyOption,
46
+ /**
47
+ * Clears the cache of the transporter for the `requestsCache` and `responsesCache` properties.
48
+ */
49
+ clearCache() {
50
+ return Promise.all([transporter.requestsCache.clear(), transporter.responsesCache.clear()]).then(() => void 0);
51
+ },
52
+ /**
53
+ * Get the value of the `algoliaAgent`, used by our libraries internally and telemetry system.
54
+ */
55
+ get _ua() {
56
+ return transporter.algoliaAgent.value;
57
+ },
58
+ /**
59
+ * Adds a `segment` to the `x-algolia-agent` sent with every requests.
60
+ *
61
+ * @param segment - The algolia agent (user-agent) segment to add.
62
+ * @param version - The version of the agent.
63
+ */
64
+ addAlgoliaAgent(segment, version) {
65
+ transporter.algoliaAgent.add({ segment, version });
66
+ },
67
+ /**
68
+ * Helper method to switch the API key used to authenticate the requests.
69
+ *
70
+ * @param params - Method params.
71
+ * @param params.apiKey - The new API Key to use.
72
+ */
73
+ setClientApiKey({ apiKey }) {
74
+ if (!authMode || authMode === "WithinHeaders") {
75
+ transporter.baseHeaders["x-algolia-api-key"] = apiKey;
76
+ } else {
77
+ transporter.baseQueryParameters["x-algolia-api-key"] = apiKey;
78
+ }
79
+ },
80
+ /**
81
+ * Sends a request to compute the user\'s personalization profile.
82
+ *
83
+ * Required API Key ACLs:
84
+ * - recommendation
85
+ * @param computeRealtimeUser - The computeRealtimeUser object.
86
+ * @param computeRealtimeUser.userToken - Unique identifier representing a user for which to fetch the personalization profile.
87
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
88
+ */
89
+ computeRealtimeUser({ userToken }, requestOptions) {
90
+ if (!userToken) {
91
+ throw new Error("Parameter `userToken` is required when calling `computeRealtimeUser`.");
92
+ }
93
+ const requestPath = "/2/realtime/users/{userToken}/compute".replace("{userToken}", encodeURIComponent(userToken));
94
+ const headers = {};
95
+ const queryParameters = {};
96
+ const request = {
97
+ method: "POST",
98
+ path: requestPath,
99
+ queryParameters,
100
+ headers
101
+ };
102
+ return transporter.request(request, requestOptions);
103
+ },
104
+ /**
105
+ * This method lets you send requests to the Algolia REST API.
106
+ * @param customDelete - The customDelete object.
107
+ * @param customDelete.path - Path of the endpoint, anything after \"/1\" must be specified.
108
+ * @param customDelete.parameters - Query parameters to apply to the current query.
109
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
110
+ */
111
+ customDelete({ path, parameters }, requestOptions) {
112
+ if (!path) {
113
+ throw new Error("Parameter `path` is required when calling `customDelete`.");
114
+ }
115
+ const requestPath = "/{path}".replace("{path}", path);
116
+ const headers = {};
117
+ const queryParameters = parameters ? parameters : {};
118
+ const request = {
119
+ method: "DELETE",
120
+ path: requestPath,
121
+ queryParameters,
122
+ headers
123
+ };
124
+ return transporter.request(request, requestOptions);
125
+ },
126
+ /**
127
+ * This method lets you send requests to the Algolia REST API.
128
+ * @param customGet - The customGet object.
129
+ * @param customGet.path - Path of the endpoint, anything after \"/1\" must be specified.
130
+ * @param customGet.parameters - Query parameters to apply to the current query.
131
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
132
+ */
133
+ customGet({ path, parameters }, requestOptions) {
134
+ if (!path) {
135
+ throw new Error("Parameter `path` is required when calling `customGet`.");
136
+ }
137
+ const requestPath = "/{path}".replace("{path}", path);
138
+ const headers = {};
139
+ const queryParameters = parameters ? parameters : {};
140
+ const request = {
141
+ method: "GET",
142
+ path: requestPath,
143
+ queryParameters,
144
+ headers
145
+ };
146
+ return transporter.request(request, requestOptions);
147
+ },
148
+ /**
149
+ * This method lets you send requests to the Algolia REST API.
150
+ * @param customPost - The customPost object.
151
+ * @param customPost.path - Path of the endpoint, anything after \"/1\" must be specified.
152
+ * @param customPost.parameters - Query parameters to apply to the current query.
153
+ * @param customPost.body - Parameters to send with the custom request.
154
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
155
+ */
156
+ customPost({ path, parameters, body }, requestOptions) {
157
+ if (!path) {
158
+ throw new Error("Parameter `path` is required when calling `customPost`.");
159
+ }
160
+ const requestPath = "/{path}".replace("{path}", path);
161
+ const headers = {};
162
+ const queryParameters = parameters ? parameters : {};
163
+ const request = {
164
+ method: "POST",
165
+ path: requestPath,
166
+ queryParameters,
167
+ headers,
168
+ data: body ? body : {}
169
+ };
170
+ return transporter.request(request, requestOptions);
171
+ },
172
+ /**
173
+ * This method lets you send requests to the Algolia REST API.
174
+ * @param customPut - The customPut object.
175
+ * @param customPut.path - Path of the endpoint, anything after \"/1\" must be specified.
176
+ * @param customPut.parameters - Query parameters to apply to the current query.
177
+ * @param customPut.body - Parameters to send with the custom request.
178
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
179
+ */
180
+ customPut({ path, parameters, body }, requestOptions) {
181
+ if (!path) {
182
+ throw new Error("Parameter `path` is required when calling `customPut`.");
183
+ }
184
+ const requestPath = "/{path}".replace("{path}", path);
185
+ const headers = {};
186
+ const queryParameters = parameters ? parameters : {};
187
+ const request = {
188
+ method: "PUT",
189
+ path: requestPath,
190
+ queryParameters,
191
+ headers,
192
+ data: body ? body : {}
193
+ };
194
+ return transporter.request(request, requestOptions);
195
+ },
196
+ /**
197
+ * Deletes a user profile.
198
+ *
199
+ * Required API Key ACLs:
200
+ * - search
201
+ * - browse
202
+ * - recommendation
203
+ * @param deleteUser - The deleteUser object.
204
+ * @param deleteUser.userID - ID of the user.
205
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
206
+ */
207
+ deleteUser({ userID }, requestOptions) {
208
+ if (!userID) {
209
+ throw new Error("Parameter `userID` is required when calling `deleteUser`.");
210
+ }
211
+ const requestPath = "/2/users/{userID}".replace("{userID}", encodeURIComponent(userID));
212
+ const headers = {};
213
+ const queryParameters = {};
214
+ const request = {
215
+ method: "DELETE",
216
+ path: requestPath,
217
+ queryParameters,
218
+ headers
219
+ };
220
+ return transporter.request(request, requestOptions);
221
+ },
222
+ /**
223
+ * Retrieves a list of configuration objects for each index.
224
+ *
225
+ * Required API Key ACLs:
226
+ * - search
227
+ * - browse
228
+ * - recommendation
229
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
230
+ */
231
+ getConfig(requestOptions) {
232
+ const requestPath = "/2/config";
233
+ const headers = {};
234
+ const queryParameters = {};
235
+ const request = {
236
+ method: "GET",
237
+ path: requestPath,
238
+ queryParameters,
239
+ headers
240
+ };
241
+ return transporter.request(request, requestOptions);
242
+ },
243
+ /**
244
+ * Retrieves the user\'s personalization profiles containing search filters.
245
+ *
246
+ * Required API Key ACLs:
247
+ * - recommendation
248
+ * @param getRealtimeUser - The getRealtimeUser object.
249
+ * @param getRealtimeUser.userToken - Unique identifier representing a user for which to fetch the personalization profile.
250
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
251
+ */
252
+ getRealtimeUser({ userToken }, requestOptions) {
253
+ if (!userToken) {
254
+ throw new Error("Parameter `userToken` is required when calling `getRealtimeUser`.");
255
+ }
256
+ const requestPath = "/2/realtime/users/{userToken}".replace("{userToken}", encodeURIComponent(userToken));
257
+ const headers = {};
258
+ const queryParameters = {};
259
+ const request = {
260
+ method: "GET",
261
+ path: requestPath,
262
+ queryParameters,
263
+ headers
264
+ };
265
+ return transporter.request(request, requestOptions);
266
+ },
267
+ /**
268
+ * Retrieves a user profile.
269
+ *
270
+ * Required API Key ACLs:
271
+ * - search
272
+ * - browse
273
+ * - recommendation
274
+ * @param getUser - The getUser object.
275
+ * @param getUser.userID - ID of the user.
276
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
277
+ */
278
+ getUser({ userID }, requestOptions) {
279
+ if (!userID) {
280
+ throw new Error("Parameter `userID` is required when calling `getUser`.");
281
+ }
282
+ const requestPath = "/2/users/{userID}".replace("{userID}", encodeURIComponent(userID));
283
+ const headers = {};
284
+ const queryParameters = {};
285
+ const request = {
286
+ method: "GET",
287
+ path: requestPath,
288
+ queryParameters,
289
+ headers
290
+ };
291
+ return transporter.request(request, requestOptions);
292
+ },
293
+ /**
294
+ * Retrieves a list of user profiles in [lexicographical order](https://www.educative.io/answers/what-is-a-lexicographic-order).
295
+ *
296
+ * Required API Key ACLs:
297
+ * - search
298
+ * - browse
299
+ * - recommendation
300
+ * @param getUsers - The getUsers object.
301
+ * @param getUsers.startDate - Filter users by start date (in RFC3339 format). Only users that were updated after the passed date will be returned.
302
+ * @param getUsers.endDate - Filter users by end date (in RFC3339 format). Only users that were updated before the passed date will be returned.
303
+ * @param getUsers.indices - Filter users by matching indices. If multiple indices are passed, returned users will match all indices.
304
+ * @param getUsers.affinity - Filter users by affinity name and value. If multiple values are passed, returned users will match all values.
305
+ * @param getUsers.limit - Limit the number of users in the response. The value of this parameter ranges from 1 to 1000.
306
+ * @param getUsers.nextPageToken - Reference for the next page, when navigating forward using pagination. Can\'t be used in the same request as `previousPageToken`.
307
+ * @param getUsers.previousPageToken - Reference for the previous page, when navigating backward using pagination. Can\'t be used in the same request as `nextPageToken`.
308
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
309
+ */
310
+ getUsers({ startDate, endDate, indices, affinity, limit, nextPageToken, previousPageToken } = {}, requestOptions = void 0) {
311
+ const requestPath = "/2/users";
312
+ const headers = {};
313
+ const queryParameters = {};
314
+ if (startDate !== void 0) {
315
+ queryParameters["startDate"] = startDate.toString();
316
+ }
317
+ if (endDate !== void 0) {
318
+ queryParameters["endDate"] = endDate.toString();
319
+ }
320
+ if (indices !== void 0) {
321
+ queryParameters["indices"] = indices.toString();
322
+ }
323
+ if (affinity !== void 0) {
324
+ queryParameters["affinity"] = affinity.toString();
325
+ }
326
+ if (limit !== void 0) {
327
+ queryParameters["limit"] = limit.toString();
328
+ }
329
+ if (nextPageToken !== void 0) {
330
+ queryParameters["nextPageToken"] = nextPageToken.toString();
331
+ }
332
+ if (previousPageToken !== void 0) {
333
+ queryParameters["previousPageToken"] = previousPageToken.toString();
334
+ }
335
+ const request = {
336
+ method: "GET",
337
+ path: requestPath,
338
+ queryParameters,
339
+ headers
340
+ };
341
+ return transporter.request(request, requestOptions);
342
+ },
343
+ /**
344
+ * Updates the configuration. The configuration is a list of configuration objects for each index. To configure Advanced Personalization for an index, create a new configuration object for the index.
345
+ *
346
+ * Required API Key ACLs:
347
+ * - search
348
+ * - browse
349
+ * - recommendation
350
+ * @param configurationParameters - The configurationParameters object.
351
+ * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.
352
+ */
353
+ putConfig(configurationParameters, requestOptions) {
354
+ if (!configurationParameters) {
355
+ throw new Error("Parameter `configurationParameters` is required when calling `putConfig`.");
356
+ }
357
+ if (!configurationParameters.indices) {
358
+ throw new Error("Parameter `configurationParameters.indices` is required when calling `putConfig`.");
359
+ }
360
+ if (!configurationParameters.personalizationReRanking) {
361
+ throw new Error(
362
+ "Parameter `configurationParameters.personalizationReRanking` is required when calling `putConfig`."
363
+ );
364
+ }
365
+ if (!configurationParameters.profileType) {
366
+ throw new Error("Parameter `configurationParameters.profileType` is required when calling `putConfig`.");
367
+ }
368
+ if (!configurationParameters.features) {
369
+ throw new Error("Parameter `configurationParameters.features` is required when calling `putConfig`.");
370
+ }
371
+ const requestPath = "/2/config";
372
+ const headers = {};
373
+ const queryParameters = {};
374
+ const request = {
375
+ method: "PUT",
376
+ path: requestPath,
377
+ queryParameters,
378
+ headers,
379
+ data: configurationParameters
380
+ };
381
+ return transporter.request(request, requestOptions);
382
+ }
383
+ };
384
+ }
385
+ export {
386
+ REGIONS,
387
+ apiClientVersion,
388
+ createAdvancedPersonalizationClient
389
+ };
390
+ //# sourceMappingURL=advancedPersonalizationClient.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/advancedPersonalizationClient.ts"],"sourcesContent":["// Code generated by OpenAPI Generator (https://openapi-generator.tech), manual changes will be lost - read more on https://github.com/algolia/api-clients-automation. DO NOT EDIT.\n\nimport type {\n CreateClientOptions,\n Headers,\n Host,\n QueryParameters,\n Request,\n RequestOptions,\n} from '@algolia/client-common';\nimport { createAuth, createTransporter, getAlgoliaAgent } from '@algolia/client-common';\n\nimport type { AcceptedResponse } from '../model/acceptedResponse';\nimport type { ConfigurationObject } from '../model/configurationObject';\nimport type { ConfigurationParameters } from '../model/configurationParameters';\n\nimport type { DeleteUserResponse } from '../model/deleteUserResponse';\n\nimport type { GetUsersResponse } from '../model/getUsersResponse';\nimport type { PutConfigResponse } from '../model/putConfigResponse';\nimport type { RealtimeUserUser } from '../model/realtimeUserUser';\n\nimport type { User } from '../model/user';\n\nimport type {\n ComputeRealtimeUserProps,\n CustomDeleteProps,\n CustomGetProps,\n CustomPostProps,\n CustomPutProps,\n DeleteUserProps,\n GetRealtimeUserProps,\n GetUserProps,\n GetUsersProps,\n} from '../model/clientMethodProps';\n\nexport const apiClientVersion = '0.0.1-alpha.1';\n\nexport const REGIONS = ['eu', 'us'] as const;\nexport type Region = (typeof REGIONS)[number];\nexport type RegionOptions = { region: Region };\n\nfunction getDefaultHosts(region: Region): Host[] {\n const url = 'ai-personalization.{region}.algolia.com'.replace('{region}', region);\n\n return [{ url, accept: 'readWrite', protocol: 'https' }];\n}\n\nexport function createAdvancedPersonalizationClient({\n appId: appIdOption,\n apiKey: apiKeyOption,\n authMode,\n algoliaAgents,\n region: regionOption,\n ...options\n}: CreateClientOptions & RegionOptions) {\n const auth = createAuth(appIdOption, apiKeyOption, authMode);\n const transporter = createTransporter({\n hosts: getDefaultHosts(regionOption),\n ...options,\n algoliaAgent: getAlgoliaAgent({\n algoliaAgents,\n client: 'AdvancedPersonalization',\n version: apiClientVersion,\n }),\n baseHeaders: {\n 'content-type': 'text/plain',\n ...auth.headers(),\n ...options.baseHeaders,\n },\n baseQueryParameters: {\n ...auth.queryParameters(),\n ...options.baseQueryParameters,\n },\n });\n\n return {\n transporter,\n\n /**\n * The `appId` currently in use.\n */\n appId: appIdOption,\n\n /**\n * The `apiKey` currently in use.\n */\n apiKey: apiKeyOption,\n\n /**\n * Clears the cache of the transporter for the `requestsCache` and `responsesCache` properties.\n */\n clearCache(): Promise<void> {\n return Promise.all([transporter.requestsCache.clear(), transporter.responsesCache.clear()]).then(() => undefined);\n },\n\n /**\n * Get the value of the `algoliaAgent`, used by our libraries internally and telemetry system.\n */\n get _ua(): string {\n return transporter.algoliaAgent.value;\n },\n\n /**\n * Adds a `segment` to the `x-algolia-agent` sent with every requests.\n *\n * @param segment - The algolia agent (user-agent) segment to add.\n * @param version - The version of the agent.\n */\n addAlgoliaAgent(segment: string, version?: string | undefined): void {\n transporter.algoliaAgent.add({ segment, version });\n },\n\n /**\n * Helper method to switch the API key used to authenticate the requests.\n *\n * @param params - Method params.\n * @param params.apiKey - The new API Key to use.\n */\n setClientApiKey({ apiKey }: { apiKey: string }): void {\n if (!authMode || authMode === 'WithinHeaders') {\n transporter.baseHeaders['x-algolia-api-key'] = apiKey;\n } else {\n transporter.baseQueryParameters['x-algolia-api-key'] = apiKey;\n }\n },\n\n /**\n * Sends a request to compute the user\\'s personalization profile.\n *\n * Required API Key ACLs:\n * - recommendation\n * @param computeRealtimeUser - The computeRealtimeUser object.\n * @param computeRealtimeUser.userToken - Unique identifier representing a user for which to fetch the personalization profile.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n computeRealtimeUser(\n { userToken }: ComputeRealtimeUserProps,\n requestOptions?: RequestOptions,\n ): Promise<AcceptedResponse> {\n if (!userToken) {\n throw new Error('Parameter `userToken` is required when calling `computeRealtimeUser`.');\n }\n\n const requestPath = '/2/realtime/users/{userToken}/compute'.replace('{userToken}', encodeURIComponent(userToken));\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * This method lets you send requests to the Algolia REST API.\n * @param customDelete - The customDelete object.\n * @param customDelete.path - Path of the endpoint, anything after \\\"/1\\\" must be specified.\n * @param customDelete.parameters - Query parameters to apply to the current query.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n customDelete(\n { path, parameters }: CustomDeleteProps,\n requestOptions?: RequestOptions,\n ): Promise<Record<string, unknown>> {\n if (!path) {\n throw new Error('Parameter `path` is required when calling `customDelete`.');\n }\n\n const requestPath = '/{path}'.replace('{path}', path);\n const headers: Headers = {};\n const queryParameters: QueryParameters = parameters ? parameters : {};\n\n const request: Request = {\n method: 'DELETE',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * This method lets you send requests to the Algolia REST API.\n * @param customGet - The customGet object.\n * @param customGet.path - Path of the endpoint, anything after \\\"/1\\\" must be specified.\n * @param customGet.parameters - Query parameters to apply to the current query.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n customGet({ path, parameters }: CustomGetProps, requestOptions?: RequestOptions): Promise<Record<string, unknown>> {\n if (!path) {\n throw new Error('Parameter `path` is required when calling `customGet`.');\n }\n\n const requestPath = '/{path}'.replace('{path}', path);\n const headers: Headers = {};\n const queryParameters: QueryParameters = parameters ? parameters : {};\n\n const request: Request = {\n method: 'GET',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * This method lets you send requests to the Algolia REST API.\n * @param customPost - The customPost object.\n * @param customPost.path - Path of the endpoint, anything after \\\"/1\\\" must be specified.\n * @param customPost.parameters - Query parameters to apply to the current query.\n * @param customPost.body - Parameters to send with the custom request.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n customPost(\n { path, parameters, body }: CustomPostProps,\n requestOptions?: RequestOptions,\n ): Promise<Record<string, unknown>> {\n if (!path) {\n throw new Error('Parameter `path` is required when calling `customPost`.');\n }\n\n const requestPath = '/{path}'.replace('{path}', path);\n const headers: Headers = {};\n const queryParameters: QueryParameters = parameters ? parameters : {};\n\n const request: Request = {\n method: 'POST',\n path: requestPath,\n queryParameters,\n headers,\n data: body ? body : {},\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * This method lets you send requests to the Algolia REST API.\n * @param customPut - The customPut object.\n * @param customPut.path - Path of the endpoint, anything after \\\"/1\\\" must be specified.\n * @param customPut.parameters - Query parameters to apply to the current query.\n * @param customPut.body - Parameters to send with the custom request.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n customPut(\n { path, parameters, body }: CustomPutProps,\n requestOptions?: RequestOptions,\n ): Promise<Record<string, unknown>> {\n if (!path) {\n throw new Error('Parameter `path` is required when calling `customPut`.');\n }\n\n const requestPath = '/{path}'.replace('{path}', path);\n const headers: Headers = {};\n const queryParameters: QueryParameters = parameters ? parameters : {};\n\n const request: Request = {\n method: 'PUT',\n path: requestPath,\n queryParameters,\n headers,\n data: body ? body : {},\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * Deletes a user profile.\n *\n * Required API Key ACLs:\n * - search\n * - browse\n * - recommendation\n * @param deleteUser - The deleteUser object.\n * @param deleteUser.userID - ID of the user.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n deleteUser({ userID }: DeleteUserProps, requestOptions?: RequestOptions): Promise<DeleteUserResponse> {\n if (!userID) {\n throw new Error('Parameter `userID` is required when calling `deleteUser`.');\n }\n\n const requestPath = '/2/users/{userID}'.replace('{userID}', encodeURIComponent(userID));\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'DELETE',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * Retrieves a list of configuration objects for each index.\n *\n * Required API Key ACLs:\n * - search\n * - browse\n * - recommendation\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n getConfig(requestOptions?: RequestOptions | undefined): Promise<ConfigurationObject> {\n const requestPath = '/2/config';\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'GET',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * Retrieves the user\\'s personalization profiles containing search filters.\n *\n * Required API Key ACLs:\n * - recommendation\n * @param getRealtimeUser - The getRealtimeUser object.\n * @param getRealtimeUser.userToken - Unique identifier representing a user for which to fetch the personalization profile.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n getRealtimeUser({ userToken }: GetRealtimeUserProps, requestOptions?: RequestOptions): Promise<RealtimeUserUser> {\n if (!userToken) {\n throw new Error('Parameter `userToken` is required when calling `getRealtimeUser`.');\n }\n\n const requestPath = '/2/realtime/users/{userToken}'.replace('{userToken}', encodeURIComponent(userToken));\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'GET',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * Retrieves a user profile.\n *\n * Required API Key ACLs:\n * - search\n * - browse\n * - recommendation\n * @param getUser - The getUser object.\n * @param getUser.userID - ID of the user.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n getUser({ userID }: GetUserProps, requestOptions?: RequestOptions): Promise<User> {\n if (!userID) {\n throw new Error('Parameter `userID` is required when calling `getUser`.');\n }\n\n const requestPath = '/2/users/{userID}'.replace('{userID}', encodeURIComponent(userID));\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'GET',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * Retrieves a list of user profiles in [lexicographical order](https://www.educative.io/answers/what-is-a-lexicographic-order).\n *\n * Required API Key ACLs:\n * - search\n * - browse\n * - recommendation\n * @param getUsers - The getUsers object.\n * @param getUsers.startDate - Filter users by start date (in RFC3339 format). Only users that were updated after the passed date will be returned.\n * @param getUsers.endDate - Filter users by end date (in RFC3339 format). Only users that were updated before the passed date will be returned.\n * @param getUsers.indices - Filter users by matching indices. If multiple indices are passed, returned users will match all indices.\n * @param getUsers.affinity - Filter users by affinity name and value. If multiple values are passed, returned users will match all values.\n * @param getUsers.limit - Limit the number of users in the response. The value of this parameter ranges from 1 to 1000.\n * @param getUsers.nextPageToken - Reference for the next page, when navigating forward using pagination. Can\\'t be used in the same request as `previousPageToken`.\n * @param getUsers.previousPageToken - Reference for the previous page, when navigating backward using pagination. Can\\'t be used in the same request as `nextPageToken`.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n getUsers(\n { startDate, endDate, indices, affinity, limit, nextPageToken, previousPageToken }: GetUsersProps = {},\n requestOptions: RequestOptions | undefined = undefined,\n ): Promise<GetUsersResponse> {\n const requestPath = '/2/users';\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n if (startDate !== undefined) {\n queryParameters['startDate'] = startDate.toString();\n }\n\n if (endDate !== undefined) {\n queryParameters['endDate'] = endDate.toString();\n }\n\n if (indices !== undefined) {\n queryParameters['indices'] = indices.toString();\n }\n\n if (affinity !== undefined) {\n queryParameters['affinity'] = affinity.toString();\n }\n\n if (limit !== undefined) {\n queryParameters['limit'] = limit.toString();\n }\n\n if (nextPageToken !== undefined) {\n queryParameters['nextPageToken'] = nextPageToken.toString();\n }\n\n if (previousPageToken !== undefined) {\n queryParameters['previousPageToken'] = previousPageToken.toString();\n }\n\n const request: Request = {\n method: 'GET',\n path: requestPath,\n queryParameters,\n headers,\n };\n\n return transporter.request(request, requestOptions);\n },\n\n /**\n * Updates the configuration. The configuration is a list of configuration objects for each index. To configure Advanced Personalization for an index, create a new configuration object for the index.\n *\n * Required API Key ACLs:\n * - search\n * - browse\n * - recommendation\n * @param configurationParameters - The configurationParameters object.\n * @param requestOptions - The requestOptions to send along with the query, they will be merged with the transporter requestOptions.\n */\n putConfig(\n configurationParameters: ConfigurationParameters,\n requestOptions?: RequestOptions,\n ): Promise<PutConfigResponse> {\n if (!configurationParameters) {\n throw new Error('Parameter `configurationParameters` is required when calling `putConfig`.');\n }\n\n if (!configurationParameters.indices) {\n throw new Error('Parameter `configurationParameters.indices` is required when calling `putConfig`.');\n }\n if (!configurationParameters.personalizationReRanking) {\n throw new Error(\n 'Parameter `configurationParameters.personalizationReRanking` is required when calling `putConfig`.',\n );\n }\n if (!configurationParameters.profileType) {\n throw new Error('Parameter `configurationParameters.profileType` is required when calling `putConfig`.');\n }\n if (!configurationParameters.features) {\n throw new Error('Parameter `configurationParameters.features` is required when calling `putConfig`.');\n }\n\n const requestPath = '/2/config';\n const headers: Headers = {};\n const queryParameters: QueryParameters = {};\n\n const request: Request = {\n method: 'PUT',\n path: requestPath,\n queryParameters,\n headers,\n data: configurationParameters,\n };\n\n return transporter.request(request, requestOptions);\n },\n };\n}\n"],"mappings":";AAUA,SAAS,YAAY,mBAAmB,uBAAuB;AA0BxD,IAAM,mBAAmB;AAEzB,IAAM,UAAU,CAAC,MAAM,IAAI;AAIlC,SAAS,gBAAgB,QAAwB;AAC/C,QAAM,MAAM,0CAA0C,QAAQ,YAAY,MAAM;AAEhF,SAAO,CAAC,EAAE,KAAK,QAAQ,aAAa,UAAU,QAAQ,CAAC;AACzD;AAEO,SAAS,oCAAoC;AAAA,EAClD,OAAO;AAAA,EACP,QAAQ;AAAA,EACR;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,GAAG;AACL,GAAwC;AACtC,QAAM,OAAO,WAAW,aAAa,cAAc,QAAQ;AAC3D,QAAM,cAAc,kBAAkB;AAAA,IACpC,OAAO,gBAAgB,YAAY;AAAA,IACnC,GAAG;AAAA,IACH,cAAc,gBAAgB;AAAA,MAC5B;AAAA,MACA,QAAQ;AAAA,MACR,SAAS;AAAA,IACX,CAAC;AAAA,IACD,aAAa;AAAA,MACX,gBAAgB;AAAA,MAChB,GAAG,KAAK,QAAQ;AAAA,MAChB,GAAG,QAAQ;AAAA,IACb;AAAA,IACA,qBAAqB;AAAA,MACnB,GAAG,KAAK,gBAAgB;AAAA,MACxB,GAAG,QAAQ;AAAA,IACb;AAAA,EACF,CAAC;AAED,SAAO;AAAA,IACL;AAAA;AAAA;AAAA;AAAA,IAKA,OAAO;AAAA;AAAA;AAAA;AAAA,IAKP,QAAQ;AAAA;AAAA;AAAA;AAAA,IAKR,aAA4B;AAC1B,aAAO,QAAQ,IAAI,CAAC,YAAY,cAAc,MAAM,GAAG,YAAY,eAAe,MAAM,CAAC,CAAC,EAAE,KAAK,MAAM,MAAS;AAAA,IAClH;AAAA;AAAA;AAAA;AAAA,IAKA,IAAI,MAAc;AAChB,aAAO,YAAY,aAAa;AAAA,IAClC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,gBAAgB,SAAiB,SAAoC;AACnE,kBAAY,aAAa,IAAI,EAAE,SAAS,QAAQ,CAAC;AAAA,IACnD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAQA,gBAAgB,EAAE,OAAO,GAA6B;AACpD,UAAI,CAAC,YAAY,aAAa,iBAAiB;AAC7C,oBAAY,YAAY,mBAAmB,IAAI;AAAA,MACjD,OAAO;AACL,oBAAY,oBAAoB,mBAAmB,IAAI;AAAA,MACzD;AAAA,IACF;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWA,oBACE,EAAE,UAAU,GACZ,gBAC2B;AAC3B,UAAI,CAAC,WAAW;AACd,cAAM,IAAI,MAAM,uEAAuE;AAAA,MACzF;AAEA,YAAM,cAAc,wCAAwC,QAAQ,eAAe,mBAAmB,SAAS,CAAC;AAChH,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,CAAC;AAE1C,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,aACE,EAAE,MAAM,WAAW,GACnB,gBACkC;AAClC,UAAI,CAAC,MAAM;AACT,cAAM,IAAI,MAAM,2DAA2D;AAAA,MAC7E;AAEA,YAAM,cAAc,UAAU,QAAQ,UAAU,IAAI;AACpD,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,aAAa,aAAa,CAAC;AAEpE,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IASA,UAAU,EAAE,MAAM,WAAW,GAAmB,gBAAmE;AACjH,UAAI,CAAC,MAAM;AACT,cAAM,IAAI,MAAM,wDAAwD;AAAA,MAC1E;AAEA,YAAM,cAAc,UAAU,QAAQ,UAAU,IAAI;AACpD,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,aAAa,aAAa,CAAC;AAEpE,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,WACE,EAAE,MAAM,YAAY,KAAK,GACzB,gBACkC;AAClC,UAAI,CAAC,MAAM;AACT,cAAM,IAAI,MAAM,yDAAyD;AAAA,MAC3E;AAEA,YAAM,cAAc,UAAU,QAAQ,UAAU,IAAI;AACpD,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,aAAa,aAAa,CAAC;AAEpE,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,MAAM,OAAO,OAAO,CAAC;AAAA,MACvB;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAUA,UACE,EAAE,MAAM,YAAY,KAAK,GACzB,gBACkC;AAClC,UAAI,CAAC,MAAM;AACT,cAAM,IAAI,MAAM,wDAAwD;AAAA,MAC1E;AAEA,YAAM,cAAc,UAAU,QAAQ,UAAU,IAAI;AACpD,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,aAAa,aAAa,CAAC;AAEpE,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,MAAM,OAAO,OAAO,CAAC;AAAA,MACvB;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaA,WAAW,EAAE,OAAO,GAAoB,gBAA8D;AACpG,UAAI,CAAC,QAAQ;AACX,cAAM,IAAI,MAAM,2DAA2D;AAAA,MAC7E;AAEA,YAAM,cAAc,oBAAoB,QAAQ,YAAY,mBAAmB,MAAM,CAAC;AACtF,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,CAAC;AAE1C,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWA,UAAU,gBAA2E;AACnF,YAAM,cAAc;AACpB,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,CAAC;AAE1C,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAWA,gBAAgB,EAAE,UAAU,GAAyB,gBAA4D;AAC/G,UAAI,CAAC,WAAW;AACd,cAAM,IAAI,MAAM,mEAAmE;AAAA,MACrF;AAEA,YAAM,cAAc,gCAAgC,QAAQ,eAAe,mBAAmB,SAAS,CAAC;AACxG,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,CAAC;AAE1C,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAaA,QAAQ,EAAE,OAAO,GAAiB,gBAAgD;AAChF,UAAI,CAAC,QAAQ;AACX,cAAM,IAAI,MAAM,wDAAwD;AAAA,MAC1E;AAEA,YAAM,cAAc,oBAAoB,QAAQ,YAAY,mBAAmB,MAAM,CAAC;AACtF,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,CAAC;AAE1C,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAmBA,SACE,EAAE,WAAW,SAAS,SAAS,UAAU,OAAO,eAAe,kBAAkB,IAAmB,CAAC,GACrG,iBAA6C,QAClB;AAC3B,YAAM,cAAc;AACpB,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,CAAC;AAE1C,UAAI,cAAc,QAAW;AAC3B,wBAAgB,WAAW,IAAI,UAAU,SAAS;AAAA,MACpD;AAEA,UAAI,YAAY,QAAW;AACzB,wBAAgB,SAAS,IAAI,QAAQ,SAAS;AAAA,MAChD;AAEA,UAAI,YAAY,QAAW;AACzB,wBAAgB,SAAS,IAAI,QAAQ,SAAS;AAAA,MAChD;AAEA,UAAI,aAAa,QAAW;AAC1B,wBAAgB,UAAU,IAAI,SAAS,SAAS;AAAA,MAClD;AAEA,UAAI,UAAU,QAAW;AACvB,wBAAgB,OAAO,IAAI,MAAM,SAAS;AAAA,MAC5C;AAEA,UAAI,kBAAkB,QAAW;AAC/B,wBAAgB,eAAe,IAAI,cAAc,SAAS;AAAA,MAC5D;AAEA,UAAI,sBAAsB,QAAW;AACnC,wBAAgB,mBAAmB,IAAI,kBAAkB,SAAS;AAAA,MACpE;AAEA,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,MACF;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAYA,UACE,yBACA,gBAC4B;AAC5B,UAAI,CAAC,yBAAyB;AAC5B,cAAM,IAAI,MAAM,2EAA2E;AAAA,MAC7F;AAEA,UAAI,CAAC,wBAAwB,SAAS;AACpC,cAAM,IAAI,MAAM,mFAAmF;AAAA,MACrG;AACA,UAAI,CAAC,wBAAwB,0BAA0B;AACrD,cAAM,IAAI;AAAA,UACR;AAAA,QACF;AAAA,MACF;AACA,UAAI,CAAC,wBAAwB,aAAa;AACxC,cAAM,IAAI,MAAM,uFAAuF;AAAA,MACzG;AACA,UAAI,CAAC,wBAAwB,UAAU;AACrC,cAAM,IAAI,MAAM,oFAAoF;AAAA,MACtG;AAEA,YAAM,cAAc;AACpB,YAAM,UAAmB,CAAC;AAC1B,YAAM,kBAAmC,CAAC;AAE1C,YAAM,UAAmB;AAAA,QACvB,QAAQ;AAAA,QACR,MAAM;AAAA,QACN;AAAA,QACA;AAAA,QACA,MAAM;AAAA,MACR;AAEA,aAAO,YAAY,QAAQ,SAAS,cAAc;AAAA,IACpD;AAAA,EACF;AACF;","names":[]}