From 50675f75f21170ffaa3b072d97bdd6d8ab747b75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment=20Vannicatte?= Date: Wed, 8 Jan 2025 13:42:16 +0100 Subject: [PATCH] chore: remove ai-personalization orphan files (#4321) --- docs/bundled/ai-personalization-snippets.json | 13 - docs/bundled/ai-personalization.yml | 902 ----------------- specs/bundled/ai-personalization.yml | 910 ------------------ 3 files changed, 1825 deletions(-) delete mode 100644 docs/bundled/ai-personalization-snippets.json delete mode 100644 docs/bundled/ai-personalization.yml delete mode 100644 specs/bundled/ai-personalization.yml diff --git a/docs/bundled/ai-personalization-snippets.json b/docs/bundled/ai-personalization-snippets.json deleted file mode 100644 index e6e21ceeb2..0000000000 --- a/docs/bundled/ai-personalization-snippets.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "csharp": {}, - "dart": {}, - "go": {}, - "java": {}, - "javascript": {}, - "kotlin": {}, - "php": {}, - "python": {}, - "ruby": {}, - "scala": {}, - "swift": {} -} \ No newline at end of file diff --git a/docs/bundled/ai-personalization.yml b/docs/bundled/ai-personalization.yml deleted file mode 100644 index b6333f4a26..0000000000 --- a/docs/bundled/ai-personalization.yml +++ /dev/null @@ -1,902 +0,0 @@ -openapi: 3.1.0 -info: - title: AI Personalization API - description: > - The AI Personalization API lets you access user profiles built based on the - behavior of your users on your website or app. - - - ## Client libraries - - - Use Algolia's API clients and libraries to reliably integrate Algolia's APIs - with your apps. - - The official API clients are covered by Algolia's [Service Level - Agreement](https://www.algolia.com/policies/sla/). - - - See: [Algolia's - ecosystem](https://www.algolia.com/doc/guides/getting-started/how-algolia-works/in-depth/ecosystem/) - - - ## Base URLs - - - The AI Personalization API can be reached from multiple domains, each - specific to a region. - - - - `https://ai-personalization.eu.algolia.com` - - - `https://ai-personalization.us.algolia.com` - - - Use the URL that matches your [analytics - region](https://dashboard.algolia.com/account/infrastructure/analytics). - - - **All requests must use HTTPS.** - - - ## Authentication - - - To authenticate your API requests, add these headers: - - - - `x-algolia-application-id`. Your Algolia application ID. - - - `x-algolia-api-key`. An API key with the `search`, `browse` and - `recommendation` ACL permissions. - - - You can find your application ID and API key in the [Algolia - dashboard](https://dashboard.algolia.com/account). - - - ## Request format - - - Request bodies must be JSON objects. - - - ## Response status and errors - - - The AI Personalization API returns JSON responses. - - Since JSON doesn't guarantee any specific ordering, don't rely on the order - of attributes in the API response. - - - Successful responses return a `2xx` status. Client errors return a `4xx` - status. Server errors are indicated by a `5xx` status. - - Error responses have a `message` property with more information. - - - ## Rate limiting - - - When making requests to the AI Personalization API, you are limited to 500 - API calls per minute per application. - - - The following headers provide information about your current limit: - - - - `x-ratelimit-limit`: The number of requests allowed every 60 seconds. - - - `x-ratelimit-remaining`: The number of requests remaining in the current - 60 second period. - - - `x-ratelimit-reset`: [Unix timestamp](https://www.unixtimestamp.com/) of - the next time period. - - - ## Version - - - The current version of the AI Personalization API is version 2, as indicated - by the `/2/` in each endpoint's URL. - version: 2.0.0 -servers: - - url: https://ai-personalization.{region}.algolia.com - variables: - region: - description: > - Use the URL that matches your [analytics - region](https://dashboard.algolia.com/account/infrastructure/analytics). - enum: - - eu - - us - default: eu -security: - - appId: [] - apiKey: [] -tags: - - name: config - x-displayName: Configuration - description: > - Manage your AI Personalization configuration. - - - The configuration defines the indices, facet attributes and events that - describe your user's - - behaviour on your website or app. It helps AI Personalization determine - how personalization should affect the search results. - - name: users - x-displayName: Users - description: > - Manage user profiles generated by AI Personalization. - - - User profiles contain the affinities each user has for the different - facets in your index. - externalDocs: - url: >- - https://www.algolia.com/doc/guides/personalization/ai-personalization/what-is-ai-personalization/concepts/user-profiles/ - description: | - Related guide: User Profiles. -externalDocs: - url: >- - https://www.algolia.com/doc/guides/personalization/ai-personalization/what-is-ai-personalization/ -paths: - /{path}: - get: - operationId: customGet - summary: Send requests to the Algolia REST API - description: This method allow you to send requests to the Algolia REST API. - parameters: - - $ref: '#/components/parameters/PathInPath' - - $ref: '#/components/parameters/Parameters' - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - $ref: '#/components/responses/BadRequest' - '402': - $ref: '#/components/responses/FeatureNotEnabled' - '403': - $ref: '#/components/responses/MethodNotAllowed' - '404': - $ref: '#/components/responses/IndexNotFound' - post: - operationId: customPost - requestBody: - description: Parameters to send with the custom request. - content: - application/json: - schema: - type: object - summary: Send requests to the Algolia REST API - description: This method allow you to send requests to the Algolia REST API. - parameters: - - $ref: '#/components/parameters/PathInPath' - - $ref: '#/components/parameters/Parameters' - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - $ref: '#/components/responses/BadRequest' - '402': - $ref: '#/components/responses/FeatureNotEnabled' - '403': - $ref: '#/components/responses/MethodNotAllowed' - '404': - $ref: '#/components/responses/IndexNotFound' - put: - operationId: customPut - requestBody: - description: Parameters to send with the custom request. - content: - application/json: - schema: - type: object - summary: Send requests to the Algolia REST API - description: This method allow you to send requests to the Algolia REST API. - parameters: - - $ref: '#/components/parameters/PathInPath' - - $ref: '#/components/parameters/Parameters' - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - $ref: '#/components/responses/BadRequest' - '402': - $ref: '#/components/responses/FeatureNotEnabled' - '403': - $ref: '#/components/responses/MethodNotAllowed' - '404': - $ref: '#/components/responses/IndexNotFound' - delete: - operationId: customDelete - summary: Send requests to the Algolia REST API - description: This method allow you to send requests to the Algolia REST API. - parameters: - - $ref: '#/components/parameters/PathInPath' - - $ref: '#/components/parameters/Parameters' - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - $ref: '#/components/responses/BadRequest' - '402': - $ref: '#/components/responses/FeatureNotEnabled' - '403': - $ref: '#/components/responses/MethodNotAllowed' - '404': - $ref: '#/components/responses/IndexNotFound' - /2/config: - get: - tags: - - config - operationId: getConfig - x-acl: - - search - - browse - - recommendation - summary: Retrieve the configuration - description: Retrieves a list of configuration objects for each index. - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/configurationObject' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/ConfigurationNotFound' - '500': - $ref: '#/components/responses/InternalServerError' - put: - tags: - - config - operationId: putConfig - x-acl: - - search - - browse - - recommendation - summary: Update the configuration - description: > - Updates the configuration. - - - The configuration is a list of configuration objects for each index. To - configure AI Personalization for an index, create a new configuration - object for the index. - requestBody: - required: true - content: - application/json: - schema: - title: configurationParameters - type: object - properties: - indices: - type: array - items: - title: configurationParametersObject - type: object - properties: - index: - type: string - affinities: - type: array - items: - type: string - source: - title: source - type: object - properties: - type: - $ref: '#/components/schemas/sourceType' - events: - $ref: '#/components/schemas/events' - required: - - type - required: - - index - - affinities - - source - personalizationReRanking: - $ref: '#/components/schemas/personalizationReRanking' - profileType: - $ref: '#/components/schemas/profileType' - required: - - indices - - personalizationReRanking - - profileType - responses: - '200': - description: OK - content: - application/json: - schema: - title: putConfigResponse - type: object - properties: - status: - type: number - errors: - type: array - items: - $ref: '#/components/schemas/issue' - warnings: - type: array - items: - $ref: '#/components/schemas/issue' - message: - type: string - required: - - status - - errors - - warnings - - message - '400': - $ref: '#/components/responses/BadRequest-2' - '401': - $ref: '#/components/responses/Unauthorized' - '500': - $ref: '#/components/responses/InternalServerError' - /2/users: - get: - tags: - - users - operationId: getUsers - x-acl: - - search - - browse - - recommendation - summary: Get a list of user profiles - description: >- - Retrieves a list of user profiles in [lexicographical - order](https://www.educative.io/answers/what-is-a-lexicographic-order). - parameters: - - $ref: '#/components/parameters/startDate' - - $ref: '#/components/parameters/endDate' - - $ref: '#/components/parameters/indices' - - $ref: '#/components/parameters/affinity' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/nextPageToken' - - $ref: '#/components/parameters/previousPageToken' - responses: - '200': - description: OK - content: - application/json: - schema: - title: getUsersResponse - type: object - properties: - users: - type: array - items: - $ref: '#/components/schemas/user' - previousPageToken: - type: string - nextPageToken: - type: string - required: - - users - '400': - $ref: '#/components/responses/BadRequest-2' - '401': - $ref: '#/components/responses/Unauthorized' - '500': - $ref: '#/components/responses/InternalServerError' - /2/users/{userID}: - get: - tags: - - users - operationId: getUser - x-acl: - - search - - browse - - recommendation - summary: Get a user profile - description: Retrieves a user profile. - parameters: - - $ref: '#/components/parameters/userID' - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/user' - '400': - $ref: '#/components/responses/BadRequest-2' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/UserNotFound' - '422': - $ref: '#/components/responses/InvalidUserID' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - tags: - - users - operationId: deleteUser - x-acl: - - search - - browse - - recommendation - summary: Delete a user profile - description: Deletes a user profile. - parameters: - - $ref: '#/components/parameters/userID' - responses: - '200': - description: OK - content: - application/json: - schema: - title: deleteUserResponse - type: object - properties: - message: - type: string - status: - type: integer - userID: - type: string - deletedUntil: - type: string - deletedAt: - type: string - '400': - $ref: '#/components/responses/BadRequest-2' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/UserNotFound' - '422': - $ref: '#/components/responses/InvalidUserID' - '500': - $ref: '#/components/responses/InternalServerError' -components: - securitySchemes: - appId: - type: apiKey - in: header - name: x-algolia-application-id - description: Your Algolia application ID. - apiKey: - type: apiKey - in: header - name: x-algolia-api-key - description: > - Your Algolia API key with the necessary permissions to make the request. - - Permissions are controlled through access control lists (ACL) and access - restrictions. - - The required ACL to make a request is listed in each endpoint's - reference. - parameters: - PathInPath: - name: path - in: path - description: Path of the endpoint, anything after "/1" must be specified. - required: true - schema: - type: string - example: /keys - Parameters: - name: parameters - in: query - description: Query parameters to apply to the current query. - schema: - type: object - additionalProperties: true - startDate: - name: startDate - description: | - Filter users by start date (in RFC3339 format). - Only users that were updated after the passed date will be returned. - in: query - schema: - type: string - example: '2024-06-27T08:27:26Z' - endDate: - name: endDate - description: | - Filter users by end date (in RFC3339 format). - Only users that were updated before the passed date will be returned. - in: query - schema: - type: string - example: '2024-06-28T08:27:26Z' - indices: - name: indices - description: | - Filter users by matching indices. - If multiple indices are passed, returned users will match all indices. - in: query - schema: - type: array - items: - type: string - examples: - singleIndex: - value: - - products_EN - summary: Filter by single index - multipleIndices: - value: - - products_EN - - products_FR - summary: Filter by multiple indices - style: form - explode: false - affinity: - name: affinity - description: | - Filter users by affinity name and value. - If multiple values are passed, returned users will match all values. - in: query - schema: - type: array - items: - type: string - examples: - affinityName: - value: brand - summary: Filter by single affinity name - affinityValuePair: - value: brand:Nike - summary: Filter by single affinity name and value - multipleAffinityNames: - value: brand,color - summary: Filter by multiple affinity names - multipleAffinityValuePairs: - value: brand:Nike,color:white - summary: Filter by multiple affinity name and value pairs - limit: - name: limit - description: | - Limit the number of users in the response. - The value of this parameter ranges from 1 to 1000. - in: query - schema: - type: integer - default: 10 - minimum: 1 - maximum: 1000 - nextPageToken: - name: nextPageToken - description: | - Reference for the next page, when navigating forward using pagination. - Can't be used in the same request as `previousPageToken`. - in: query - schema: - type: string - previousPageToken: - name: previousPageToken - description: > - Reference for the previous page, when navigating backward using - pagination. - - Can't be used in the same request as `nextPageToken`. - in: query - schema: - type: string - userID: - name: userID - description: ID of the user. - in: path - required: true - schema: - type: string - schemas: - ErrorBase: - description: Error. - type: object - x-keep-model: true - additionalProperties: true - properties: - message: - type: string - example: Invalid Application-Id or API-Key - sourceType: - title: type - type: string - enum: - - insights - eventType: - type: string - enum: - - view - - click - - conversion - subtype: - type: string - enum: - - addToCart - - purchase - event: - type: object - properties: - type: - $ref: '#/components/schemas/eventType' - subtype: - $ref: '#/components/schemas/subtype' - name: - type: string - required: - - type - - name - events: - type: object - properties: - viewDetails: - type: array - items: - $ref: '#/components/schemas/event' - viewListing: - type: array - items: - $ref: '#/components/schemas/event' - addToCart: - type: array - items: - $ref: '#/components/schemas/event' - purchase: - type: array - items: - $ref: '#/components/schemas/event' - required: - - viewDetails - - viewListing - - addToCart - - purchase - issue: - type: object - description: >- - An issue is either an 'error' or a 'warning' that is generated by the - validator. - properties: - code: - type: string - index: - type: string - message: - type: string - required: - - code - - index - - message - personalizationReRanking: - type: string - description: The impact that personalization has on the re-ranking of search results. - enum: - - none - - low - - medium - - high - - maximum - profileType: - type: string - enum: - - basic - description: > - The type of user profiles to generate. - - - Basic profiles are based on past behaviors, ensuring search results - align with previous interests. - status: - title: status - type: string - enum: - - pending - - active - - paused - errorCodes: - title: errorCodes - type: string - enum: - - blocked - - deleted - - no_perso_access - - all_attr_value_filtered - - missing_index - - no_events_last_30_days - - pending_pipelines - - invalid_config - - all_facets_invalid - Configuration_status: - type: object - properties: - type: - $ref: '#/components/schemas/status' - errors: - type: array - items: - $ref: '#/components/schemas/errorCodes' - configurationObject: - type: object - properties: - indices: - type: array - items: - title: configurationObject - type: object - properties: - index: - type: string - affinities: - type: array - items: - type: string - source: - title: source - type: object - properties: - type: - $ref: '#/components/schemas/sourceType' - events: - $ref: '#/components/schemas/events' - errors: - type: array - items: - $ref: '#/components/schemas/issue' - warnings: - type: array - items: - $ref: '#/components/schemas/issue' - lastUpdatedAt: - type: string - required: - - index - - affinities - - source - - errors - - warnings - - lastUpdatedAt - personalizationReRanking: - $ref: '#/components/schemas/personalizationReRanking' - profileType: - $ref: '#/components/schemas/profileType' - status: - $ref: '#/components/schemas/Configuration_status' - required: - - indices - - personalzationReRanking - - profileType - - status - BaseResponse: - type: object - properties: - status: - type: integer - description: HTTP status code. - message: - type: string - description: Details about the response, such as error messages. - user: - type: object - properties: - userID: - type: string - affinities: - type: array - items: - title: affinity - type: object - properties: - name: - type: string - indices: - type: array - items: - type: string - minimum: 1 - value: - type: string - score: - type: number - minimum: 1 - maximum: 20 - lastUpdatedAt: - type: string - required: - - name - - indices - - value - - score - - lastUpdatedAt - lastUpdatedAt: - type: string - required: - - userID - - affinities - - lastUpdatedAt - responses: - BadRequest: - description: Bad request or request arguments. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBase' - FeatureNotEnabled: - description: This feature is not enabled on your Algolia account. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBase' - MethodNotAllowed: - description: Method not allowed with this API key. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBase' - IndexNotFound: - description: Index not found. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBase' - Unauthorized: - description: Not authorized to access this resource. - content: - application/json: - schema: - $ref: '#/components/schemas/BaseResponse' - ConfigurationNotFound: - description: Configuration not found. - content: - application/json: - schema: - $ref: '#/components/schemas/BaseResponse' - InternalServerError: - description: Internal server error. - content: - application/json: - schema: - $ref: '#/components/schemas/BaseResponse' - BadRequest-2: - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/BaseResponse' - UserNotFound: - description: User not found. - content: - application/json: - schema: - $ref: '#/components/schemas/BaseResponse' - InvalidUserID: - description: Invalid user ID format. - content: - application/json: - schema: - $ref: '#/components/schemas/BaseResponse' -x-tagGroups: - - name: AI Personalization - tags: - - config - - users diff --git a/specs/bundled/ai-personalization.yml b/specs/bundled/ai-personalization.yml deleted file mode 100644 index a7f05c1844..0000000000 --- a/specs/bundled/ai-personalization.yml +++ /dev/null @@ -1,910 +0,0 @@ -openapi: 3.1.0 -info: - title: AI Personalization API - description: > - The AI Personalization API lets you access user profiles built based on the - behavior of your users on your website or app. - - - ## Client libraries - - - Use Algolia's API clients and libraries to reliably integrate Algolia's APIs - with your apps. - - The official API clients are covered by Algolia's [Service Level - Agreement](https://www.algolia.com/policies/sla/). - - - See: [Algolia's - ecosystem](https://www.algolia.com/doc/guides/getting-started/how-algolia-works/in-depth/ecosystem/) - - - ## Base URLs - - - The AI Personalization API can be reached from multiple domains, each - specific to a region. - - - - `https://ai-personalization.eu.algolia.com` - - - `https://ai-personalization.us.algolia.com` - - - Use the URL that matches your [analytics - region](https://dashboard.algolia.com/account/infrastructure/analytics). - - - **All requests must use HTTPS.** - - - ## Authentication - - - To authenticate your API requests, add these headers: - - - - `x-algolia-application-id`. Your Algolia application ID. - - - `x-algolia-api-key`. An API key with the `search`, `browse` and - `recommendation` ACL permissions. - - - You can find your application ID and API key in the [Algolia - dashboard](https://dashboard.algolia.com/account). - - - ## Request format - - - Request bodies must be JSON objects. - - - ## Response status and errors - - - The AI Personalization API returns JSON responses. - - Since JSON doesn't guarantee any specific ordering, don't rely on the order - of attributes in the API response. - - - Successful responses return a `2xx` status. Client errors return a `4xx` - status. Server errors are indicated by a `5xx` status. - - Error responses have a `message` property with more information. - - - ## Rate limiting - - - When making requests to the AI Personalization API, you are limited to 500 - API calls per minute per application. - - - The following headers provide information about your current limit: - - - - `x-ratelimit-limit`: The number of requests allowed every 60 seconds. - - - `x-ratelimit-remaining`: The number of requests remaining in the current - 60 second period. - - - `x-ratelimit-reset`: [Unix timestamp](https://www.unixtimestamp.com/) of - the next time period. - - - ## Version - - - The current version of the AI Personalization API is version 2, as indicated - by the `/2/` in each endpoint's URL. - version: 2.0.0 -servers: - - url: https://ai-personalization.{region}.algolia.com - variables: - region: - description: > - Use the URL that matches your [analytics - region](https://dashboard.algolia.com/account/infrastructure/analytics). - enum: - - eu - - us - default: eu -security: - - appId: [] - apiKey: [] -tags: - - name: config - x-displayName: Configuration - description: > - Manage your AI Personalization configuration. - - - The configuration defines the indices, facet attributes and events that - describe your user's - - behaviour on your website or app. It helps AI Personalization determine - how personalization should affect the search results. - - name: users - x-displayName: Users - description: > - Manage user profiles generated by AI Personalization. - - - User profiles contain the affinities each user has for the different - facets in your index. - externalDocs: - url: >- - https://www.algolia.com/doc/guides/personalization/ai-personalization/what-is-ai-personalization/concepts/user-profiles/ - description: | - Related guide: User Profiles. -externalDocs: - url: >- - https://www.algolia.com/doc/guides/personalization/ai-personalization/what-is-ai-personalization/ -paths: - /{path}: - get: - operationId: customGet - summary: Send requests to the Algolia REST API - description: This method allow you to send requests to the Algolia REST API. - parameters: - - $ref: '#/components/parameters/PathInPath' - - $ref: '#/components/parameters/Parameters' - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - $ref: '#/components/responses/BadRequest' - '402': - $ref: '#/components/responses/FeatureNotEnabled' - '403': - $ref: '#/components/responses/MethodNotAllowed' - '404': - $ref: '#/components/responses/IndexNotFound' - tags: - - ai-personalization - post: - operationId: customPost - requestBody: - description: Parameters to send with the custom request. - content: - application/json: - schema: - type: object - summary: Send requests to the Algolia REST API - description: This method allow you to send requests to the Algolia REST API. - parameters: - - $ref: '#/components/parameters/PathInPath' - - $ref: '#/components/parameters/Parameters' - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - $ref: '#/components/responses/BadRequest' - '402': - $ref: '#/components/responses/FeatureNotEnabled' - '403': - $ref: '#/components/responses/MethodNotAllowed' - '404': - $ref: '#/components/responses/IndexNotFound' - tags: - - ai-personalization - put: - operationId: customPut - requestBody: - description: Parameters to send with the custom request. - content: - application/json: - schema: - type: object - summary: Send requests to the Algolia REST API - description: This method allow you to send requests to the Algolia REST API. - parameters: - - $ref: '#/components/parameters/PathInPath' - - $ref: '#/components/parameters/Parameters' - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - $ref: '#/components/responses/BadRequest' - '402': - $ref: '#/components/responses/FeatureNotEnabled' - '403': - $ref: '#/components/responses/MethodNotAllowed' - '404': - $ref: '#/components/responses/IndexNotFound' - tags: - - ai-personalization - delete: - operationId: customDelete - summary: Send requests to the Algolia REST API - description: This method allow you to send requests to the Algolia REST API. - parameters: - - $ref: '#/components/parameters/PathInPath' - - $ref: '#/components/parameters/Parameters' - responses: - '200': - description: OK - content: - application/json: - schema: - type: object - '400': - $ref: '#/components/responses/BadRequest' - '402': - $ref: '#/components/responses/FeatureNotEnabled' - '403': - $ref: '#/components/responses/MethodNotAllowed' - '404': - $ref: '#/components/responses/IndexNotFound' - tags: - - ai-personalization - /2/config: - get: - tags: - - ai-personalization - operationId: getConfig - x-acl: - - search - - browse - - recommendation - summary: Retrieve the configuration - description: Retrieves a list of configuration objects for each index. - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/configurationObject' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/ConfigurationNotFound' - '500': - $ref: '#/components/responses/InternalServerError' - put: - tags: - - ai-personalization - operationId: putConfig - x-acl: - - search - - browse - - recommendation - summary: Update the configuration - description: > - Updates the configuration. - - - The configuration is a list of configuration objects for each index. To - configure AI Personalization for an index, create a new configuration - object for the index. - requestBody: - required: true - content: - application/json: - schema: - title: configurationParameters - type: object - properties: - indices: - type: array - items: - title: configurationParametersObject - type: object - properties: - index: - type: string - affinities: - type: array - items: - type: string - source: - title: source - type: object - properties: - type: - $ref: '#/components/schemas/sourceType' - events: - $ref: '#/components/schemas/events' - required: - - type - required: - - index - - affinities - - source - personalizationReRanking: - $ref: '#/components/schemas/personalizationReRanking' - profileType: - $ref: '#/components/schemas/profileType' - required: - - indices - - personalizationReRanking - - profileType - responses: - '200': - description: OK - content: - application/json: - schema: - title: putConfigResponse - type: object - properties: - status: - type: number - errors: - type: array - items: - $ref: '#/components/schemas/issue' - warnings: - type: array - items: - $ref: '#/components/schemas/issue' - message: - type: string - required: - - status - - errors - - warnings - - message - '400': - $ref: '#/components/responses/BadRequest-2' - '401': - $ref: '#/components/responses/Unauthorized' - '500': - $ref: '#/components/responses/InternalServerError' - /2/users: - get: - tags: - - ai-personalization - operationId: getUsers - x-acl: - - search - - browse - - recommendation - summary: Get a list of user profiles - description: >- - Retrieves a list of user profiles in [lexicographical - order](https://www.educative.io/answers/what-is-a-lexicographic-order). - parameters: - - $ref: '#/components/parameters/startDate' - - $ref: '#/components/parameters/endDate' - - $ref: '#/components/parameters/indices' - - $ref: '#/components/parameters/affinity' - - $ref: '#/components/parameters/limit' - - $ref: '#/components/parameters/nextPageToken' - - $ref: '#/components/parameters/previousPageToken' - responses: - '200': - description: OK - content: - application/json: - schema: - title: getUsersResponse - type: object - properties: - users: - type: array - items: - $ref: '#/components/schemas/user' - previousPageToken: - type: string - nextPageToken: - type: string - required: - - users - '400': - $ref: '#/components/responses/BadRequest-2' - '401': - $ref: '#/components/responses/Unauthorized' - '500': - $ref: '#/components/responses/InternalServerError' - /2/users/{userID}: - get: - tags: - - ai-personalization - operationId: getUser - x-acl: - - search - - browse - - recommendation - summary: Get a user profile - description: Retrieves a user profile. - parameters: - - $ref: '#/components/parameters/userID' - responses: - '200': - description: OK - content: - application/json: - schema: - $ref: '#/components/schemas/user' - '400': - $ref: '#/components/responses/BadRequest-2' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/UserNotFound' - '422': - $ref: '#/components/responses/InvalidUserID' - '500': - $ref: '#/components/responses/InternalServerError' - delete: - tags: - - ai-personalization - operationId: deleteUser - x-acl: - - search - - browse - - recommendation - summary: Delete a user profile - description: Deletes a user profile. - parameters: - - $ref: '#/components/parameters/userID' - responses: - '200': - description: OK - content: - application/json: - schema: - title: deleteUserResponse - type: object - properties: - message: - type: string - status: - type: integer - userID: - type: string - deletedUntil: - type: string - deletedAt: - type: string - '400': - $ref: '#/components/responses/BadRequest-2' - '401': - $ref: '#/components/responses/Unauthorized' - '404': - $ref: '#/components/responses/UserNotFound' - '422': - $ref: '#/components/responses/InvalidUserID' - '500': - $ref: '#/components/responses/InternalServerError' -components: - securitySchemes: - appId: - type: apiKey - in: header - name: x-algolia-application-id - description: Your Algolia application ID. - apiKey: - type: apiKey - in: header - name: x-algolia-api-key - description: > - Your Algolia API key with the necessary permissions to make the request. - - Permissions are controlled through access control lists (ACL) and access - restrictions. - - The required ACL to make a request is listed in each endpoint's - reference. - parameters: - PathInPath: - name: path - in: path - description: Path of the endpoint, anything after "/1" must be specified. - required: true - schema: - type: string - example: /keys - Parameters: - name: parameters - in: query - description: Query parameters to apply to the current query. - schema: - type: object - additionalProperties: true - startDate: - name: startDate - description: | - Filter users by start date (in RFC3339 format). - Only users that were updated after the passed date will be returned. - in: query - schema: - type: string - example: '2024-06-27T08:27:26Z' - endDate: - name: endDate - description: | - Filter users by end date (in RFC3339 format). - Only users that were updated before the passed date will be returned. - in: query - schema: - type: string - example: '2024-06-28T08:27:26Z' - indices: - name: indices - description: | - Filter users by matching indices. - If multiple indices are passed, returned users will match all indices. - in: query - schema: - type: array - items: - type: string - examples: - singleIndex: - value: - - products_EN - summary: Filter by single index - multipleIndices: - value: - - products_EN - - products_FR - summary: Filter by multiple indices - style: form - explode: false - affinity: - name: affinity - description: | - Filter users by affinity name and value. - If multiple values are passed, returned users will match all values. - in: query - schema: - type: array - items: - type: string - examples: - affinityName: - value: brand - summary: Filter by single affinity name - affinityValuePair: - value: brand:Nike - summary: Filter by single affinity name and value - multipleAffinityNames: - value: brand,color - summary: Filter by multiple affinity names - multipleAffinityValuePairs: - value: brand:Nike,color:white - summary: Filter by multiple affinity name and value pairs - limit: - name: limit - description: | - Limit the number of users in the response. - The value of this parameter ranges from 1 to 1000. - in: query - schema: - type: integer - default: 10 - minimum: 1 - maximum: 1000 - nextPageToken: - name: nextPageToken - description: | - Reference for the next page, when navigating forward using pagination. - Can't be used in the same request as `previousPageToken`. - in: query - schema: - type: string - previousPageToken: - name: previousPageToken - description: > - Reference for the previous page, when navigating backward using - pagination. - - Can't be used in the same request as `nextPageToken`. - in: query - schema: - type: string - userID: - name: userID - description: ID of the user. - in: path - required: true - schema: - type: string - schemas: - ErrorBase: - description: Error. - type: object - x-keep-model: true - additionalProperties: true - properties: - message: - type: string - example: Invalid Application-Id or API-Key - sourceType: - title: type - type: string - enum: - - insights - eventType: - type: string - enum: - - view - - click - - conversion - subtype: - type: string - enum: - - addToCart - - purchase - event: - type: object - properties: - type: - $ref: '#/components/schemas/eventType' - subtype: - $ref: '#/components/schemas/subtype' - name: - type: string - required: - - type - - name - events: - type: object - properties: - viewDetails: - type: array - items: - $ref: '#/components/schemas/event' - viewListing: - type: array - items: - $ref: '#/components/schemas/event' - addToCart: - type: array - items: - $ref: '#/components/schemas/event' - purchase: - type: array - items: - $ref: '#/components/schemas/event' - required: - - viewDetails - - viewListing - - addToCart - - purchase - issue: - type: object - description: >- - An issue is either an 'error' or a 'warning' that is generated by the - validator. - properties: - code: - type: string - index: - type: string - message: - type: string - required: - - code - - index - - message - personalizationReRanking: - type: string - description: The impact that personalization has on the re-ranking of search results. - enum: - - none - - low - - medium - - high - - maximum - profileType: - type: string - enum: - - basic - description: > - The type of user profiles to generate. - - - Basic profiles are based on past behaviors, ensuring search results - align with previous interests. - status: - title: status - type: string - enum: - - pending - - active - - paused - errorCodes: - title: errorCodes - type: string - enum: - - blocked - - deleted - - no_perso_access - - all_attr_value_filtered - - missing_index - - no_events_last_30_days - - pending_pipelines - - invalid_config - - all_facets_invalid - Configuration_status: - type: object - properties: - type: - $ref: '#/components/schemas/status' - errors: - type: array - items: - $ref: '#/components/schemas/errorCodes' - configurationObject: - type: object - properties: - indices: - type: array - items: - title: configurationObject - type: object - properties: - index: - type: string - affinities: - type: array - items: - type: string - source: - title: source - type: object - properties: - type: - $ref: '#/components/schemas/sourceType' - events: - $ref: '#/components/schemas/events' - errors: - type: array - items: - $ref: '#/components/schemas/issue' - warnings: - type: array - items: - $ref: '#/components/schemas/issue' - lastUpdatedAt: - type: string - required: - - index - - affinities - - source - - errors - - warnings - - lastUpdatedAt - personalizationReRanking: - $ref: '#/components/schemas/personalizationReRanking' - profileType: - $ref: '#/components/schemas/profileType' - status: - $ref: '#/components/schemas/Configuration_status' - required: - - indices - - personalzationReRanking - - profileType - - status - BaseResponse: - type: object - properties: - status: - type: integer - description: HTTP status code. - message: - type: string - description: Details about the response, such as error messages. - user: - type: object - properties: - userID: - type: string - affinities: - type: array - items: - title: affinity - type: object - properties: - name: - type: string - indices: - type: array - items: - type: string - minimum: 1 - value: - type: string - score: - type: number - minimum: 1 - maximum: 20 - lastUpdatedAt: - type: string - required: - - name - - indices - - value - - score - - lastUpdatedAt - lastUpdatedAt: - type: string - required: - - userID - - affinities - - lastUpdatedAt - responses: - BadRequest: - description: Bad request or request arguments. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBase' - FeatureNotEnabled: - description: This feature is not enabled on your Algolia account. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBase' - MethodNotAllowed: - description: Method not allowed with this API key. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBase' - IndexNotFound: - description: Index not found. - content: - application/json: - schema: - $ref: '#/components/schemas/ErrorBase' - Unauthorized: - description: Not authorized to access this resource. - content: - application/json: - schema: - $ref: '#/components/schemas/BaseResponse' - ConfigurationNotFound: - description: Configuration not found. - content: - application/json: - schema: - $ref: '#/components/schemas/BaseResponse' - InternalServerError: - description: Internal server error. - content: - application/json: - schema: - $ref: '#/components/schemas/BaseResponse' - BadRequest-2: - description: Bad request. - content: - application/json: - schema: - $ref: '#/components/schemas/BaseResponse' - UserNotFound: - description: User not found. - content: - application/json: - schema: - $ref: '#/components/schemas/BaseResponse' - InvalidUserID: - description: Invalid user ID format. - content: - application/json: - schema: - $ref: '#/components/schemas/BaseResponse' -x-tagGroups: - - name: AI Personalization - tags: - - config - - users