diff --git a/specs/common/responses/Accepted.yml b/specs/common/responses/Accepted.yml new file mode 100644 index 00000000000..b0c78412f5c --- /dev/null +++ b/specs/common/responses/Accepted.yml @@ -0,0 +1,19 @@ +description: Accepted. +content: + application/json: + schema: + title: acceptedResponse + type: object + additionalProperties: false + required: + - status + - message + properties: + status: + type: integer + example: 202 + description: Status code. + message: + type: string + example: Accepted + description: Response message. diff --git a/specs/common/responses/Conflict.yml b/specs/common/responses/Conflict.yml new file mode 100644 index 00000000000..e521f7d8971 --- /dev/null +++ b/specs/common/responses/Conflict.yml @@ -0,0 +1,19 @@ +description: Conflict. +content: + application/json: + schema: + title: conflictResponse + type: object + additionalProperties: false + required: + - status + - message + properties: + status: + type: integer + example: 409 + description: Status code. + message: + type: string + example: Conflict + description: Response message. diff --git a/specs/common/responses/TooManyRequests.yml b/specs/common/responses/TooManyRequests.yml new file mode 100644 index 00000000000..80ccd70bfef --- /dev/null +++ b/specs/common/responses/TooManyRequests.yml @@ -0,0 +1,19 @@ +description: Too Many Requests. +content: + application/json: + schema: + title: tooManyRequestsResponse + type: object + additionalProperties: false + required: + - status + - message + properties: + status: + type: integer + example: 421 + description: Status code. + message: + type: string + example: Too Many Requests + description: Response message. diff --git a/specs/realtime-personalization/common/enums.yml b/specs/realtime-personalization/common/enums.yml index dccbc0aca78..054ab2e1462 100644 --- a/specs/realtime-personalization/common/enums.yml +++ b/specs/realtime-personalization/common/enums.yml @@ -2,5 +2,6 @@ strategy: type: string enum: - session + - historical - hybrid example: 'session' diff --git a/specs/realtime-personalization/paths/computeUser.yml b/specs/realtime-personalization/paths/computeUser.yml new file mode 100644 index 00000000000..4bc2b761dc8 --- /dev/null +++ b/specs/realtime-personalization/paths/computeUser.yml @@ -0,0 +1,25 @@ +post: + tags: + - users + operationId: computeUser + x-acl: + - recommendation + summary: Compute the user's personalization profile + description: Sends a request to compute the user's personalization profile. + parameters: + - $ref: '../common/parameters.yml#/UserToken' + responses: + '202': + $ref: '../../common/responses/Accepted.yml' + '400': + $ref: '../../common/responses/BadRequest.yml' + '402': + $ref: '../../common/responses/FeatureNotEnabled.yml' + '409': + $ref: '../../common/responses/Conflict.yml' + '421': + $ref: '../../common/responses/TooManyRequests.yml' + '422': + $ref: '../../common/responses/StatusUnprocessableEntity.yml' + '500': + $ref: '../../common/responses/InternalError.yml' diff --git a/specs/realtime-personalization/paths/getUser.yml b/specs/realtime-personalization/paths/getUser.yml index ca49bccba94..b05cd321582 100644 --- a/specs/realtime-personalization/paths/getUser.yml +++ b/specs/realtime-personalization/paths/getUser.yml @@ -19,7 +19,7 @@ get: $ref: '../../common/responses/BadRequest.yml' '402': $ref: '../../common/responses/FeatureNotEnabled.yml' - '403': - $ref: '../../common/responses/MethodNotAllowed.yml' - '404': - $ref: '../../common/responses/IndexNotFound.yml' + '421': + $ref: '../../common/responses/TooManyRequests.yml' + '500': + $ref: '../../common/responses/InternalError.yml' diff --git a/specs/realtime-personalization/spec.yml b/specs/realtime-personalization/spec.yml index 533ad0ce343..1cdf3dcab60 100644 --- a/specs/realtime-personalization/spec.yml +++ b/specs/realtime-personalization/spec.yml @@ -49,3 +49,6 @@ paths: /2/realtime/users/{userToken}: $ref: 'paths/getUser.yml' + + /2/realtime/users/{userToken}/compute: + $ref: 'paths/computeUser.yml'