openapi: 3.0.3 info: title: IDAM - Xapien description: |- This is the OpenAPI 3.0 specification for the Identity and Access Management API, which used to serve Portal and the Tenant Hub. version: 1.0.0 servers: - url: https://api.identity.{stage}.xapien.com description: IDAM API variables: stage: default: devel enum: - devel - qa - di-demo tags: - name: Organisations description: Endpoints used to manage the organisation. - name: Groups description: Endpoints used to manage groups. - name: Users description: Endpoints used to manage users. - name: User description: Endpoints used to manage your account. - name: Reports description: Endpoints used to manage reports. paths: /organisations: get: tags: - Organisations summary: Get summary of current organisation. description: Used to request a summary of the current user's organisation. operationId: getOrganisation security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetOrganisationResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/preferences: get: tags: - Organisations summary: Get organisation preferences description: Used to get the preferences of the current organisation. operationId: getOrganisationPreferences security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetOrganisationPreferencesResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" put: tags: - Organisations summary: Update organisation preferences description: Used to update the preferences of the current organisation. operationId: updateOrganisationPreferences security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] requestBody: description: Update organisation preferences content: application/json: schema: $ref: "#/components/schemas/UpdateOrganisationPreferencesRequest" responses: "204": description: "Success" "400": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/invite-request: post: tags: - Organisations summary: Request an invite to the organisation description: Used to request an invite to the organisation of the report specified in the body. operationId: organisationInviteRequest security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] requestBody: description: Request organisation invite content: application/json: schema: $ref: "#/components/schemas/OrganisationInviteRequest" responses: "204": description: "Success" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/usage: get: tags: - Organisations summary: Get organisation usage description: Used to get a breakdown of organisation usage. operationId: getOrganisationUsage security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetOrganisationUsageResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/usage/export: get: tags: - Organisations summary: Export organisation usage description: Used to export organisation report usage. operationId: exportOrganisationUsage security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: usagePeriod in: query description: Usage period required: true schema: $ref: "#/components/schemas/UsagePeriod" responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/ExportOrganisationUsageResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/projects: get: tags: - Organisations summary: Get a list of projects description: Used to fetch a list of an organisation's projects. operationId: getProjects security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetProjectsResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/groups: get: tags: - Groups summary: Get the organisation's groups description: Used to get all of the groups within the organisation. operationId: getOrganisationGroups security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetOrganisationGroupsResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" post: tags: - Groups summary: Create a new group description: Used to create a new group in the organisation. operationId: createOrganisationGroup security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] requestBody: description: Create a new group content: application/json: schema: $ref: "#/components/schemas/CreateOrganisationGroupRequest" responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/CreateOrganisationGroupResponse" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/groups/{groupId}: get: tags: - Groups summary: Get a specified group description: Used to get an organisation's group with the specified ID. operationId: getOrganisationGroup security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: groupId in: path description: ID of group to get required: true schema: type: string format: uuid responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetOrganisationGroupResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/GroupNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" put: tags: - Groups summary: Update a specified group description: Used to update an organisation's group with the specified ID. operationId: updateOrganisationGroup security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: groupId in: path description: ID of group to update required: true schema: type: string format: uuid requestBody: description: Update the specified group content: application/json: schema: $ref: "#/components/schemas/UpdateOrganisationGroupRequest" responses: "204": description: "Success" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/GroupNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" delete: tags: - Groups summary: Delete a specified group description: Used to delete an organisation's group with the specified ID. operationId: deleteOrganisationGroup security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: groupId in: path description: ID of group to delete required: true schema: type: string format: uuid responses: "204": description: "Success" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/GroupNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/groups/{groupId}/members: put: tags: - Groups summary: Update a group's members description: Used to update the members of the specified group. operationId: updateOrganisationGroupMembers security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: groupId in: path description: ID of group to update required: true schema: type: string format: uuid requestBody: description: Update group members content: application/json: schema: $ref: "#/components/schemas/UpdateOrganisationGroupMembersRequest" responses: "204": description: "Success" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/GroupNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/groups/{groupId}/members/{userId}/role/{role}: put: tags: - Groups summary: Update a group member's role description: Used to update the role of a member in a group. operationId: updateOrganisationGroupMemberRole security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: groupId in: path description: ID of group to update required: true schema: type: string format: uuid - name: userId in: path description: ID of user to update required: true schema: type: string format: uuid - name: role in: path description: The role to assign the user required: true schema: $ref: "#/components/schemas/GroupUserRole" requestBody: description: Update group members content: application/json: schema: $ref: "#/components/schemas/UpdateOrganisationGroupMembersRequest" responses: "204": description: "Success" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/GroupNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/groups/{groupId}/admins: put: tags: - Groups summary: Update a group's administrators description: Used to update the administrators of the specified group. operationId: updateOrganisationGroupAdmins security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: groupId in: path description: ID of group to update required: true schema: type: string format: uuid requestBody: description: Update group admins content: application/json: schema: $ref: "#/components/schemas/UpdateOrganisationGroupAdminsRequest" responses: "204": description: "Success" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/GroupNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/groups/{groupId}/leave: post: tags: - Groups summary: Leave a group description: Used to leave the specified group. operationId: leaveOrganisationGroup security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: groupId in: path description: ID of group to leave required: true schema: type: string format: uuid responses: "204": description: "Success" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/GroupNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/groups/{groupId}/reports/search: post: tags: - Groups summary: Search a group's reports description: Used to search reports that have been shared with a group. operationId: searchGroupReports security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: groupId in: path description: ID of group to search required: true schema: type: string format: uuid requestBody: description: Search parameters content: application/json: schema: $ref: "#/components/schemas/SearchRequest" responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/SearchResponse" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/GroupNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/users: get: tags: - Users summary: Get the organisation's users description: Used to get all of the users within the organisation. operationId: getOrganisationUsers security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetUsersResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" post: tags: - Users summary: Create a new user description: Used to create a new user in the organisation. operationId: createOrganisationUser security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] requestBody: description: Create a new user content: application/json: schema: $ref: "#/components/schemas/CreateUserRequest" responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/CreateUserResponse" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/users/{userId}: get: tags: - Users summary: Get a specified user description: Used to get an organisation's user with the specified ID. operationId: getOrganisationUser security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: userId in: path description: ID of user to get required: true schema: type: string format: uuid responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetOrganisationUserResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/UserNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" put: tags: - Users summary: Update a specified user description: Used to update an organisation's user with the specified ID. operationId: updateOrganisationUser security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: userId in: path description: ID of user to update required: true schema: type: string format: uuid requestBody: description: Update the specified user content: application/json: schema: $ref: "#/components/schemas/UpdateOrganisationUserRequest" responses: "204": description: "Success" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/UserNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" delete: tags: - Users summary: Delete a specified user description: Used to delete an organisation's user with the specified ID. operationId: deleteOrganisationUser security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: userId in: path description: ID of user to delete required: true schema: type: string format: uuid responses: "204": description: "Success" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/UserNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/users/{userId}/role/{role}: put: tags: - Users summary: Update a specified user's role description: Used to update an user's role. operationId: updateOrganisationUserRole security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: userId in: path description: ID of user to update required: true schema: type: string format: uuid - name: role in: path description: The role of the user required: true schema: $ref: "#/components/schemas/OrganisationRole" responses: "204": description: "Success" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/UserNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/users/{userId}/reports/search: post: tags: - Users summary: Search a users's reports description: Used to search reports that are owned by a user. operationId: searchUserReports security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: userId in: path description: ID of user to search required: true schema: type: string format: uuid requestBody: description: Search parameters content: application/json: schema: $ref: "#/components/schemas/SearchRequest" responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/SearchResponse" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/UserNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/users/{userId}/reports/transfer/{newOwnerUserId}: post: tags: - Users summary: Transfer a users reports to another user. description: Used to transfer all of a user's reports to another user in the organisation. operationId: transferAllReports security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: userId in: path description: The ID of the user to transfer reports from required: true schema: type: string format: uuid - name: newOwnerUserId in: path description: The ID of the user to transfer reports to required: true schema: type: string format: uuid responses: "204": description: "Success" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Not Found" content: application/json: schema: $ref: "#/components/schemas/UserNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /organisations/users/invite: post: tags: - Users summary: Invite new users to the organisation description: Used to invite new users by email to the organisation. operationId: inviteUsers security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] requestBody: description: Invite paramaters content: application/json: schema: $ref: "#/components/schemas/InviteUsersRequest" responses: "204": description: "Success" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /users: get: tags: - User summary: Get the current user's info description: Used to fetch the current user's information. operationId: getUser security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetUserResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" put: tags: - User summary: Update user info description: Used to update the current user's information. operationId: updateUser security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateUserRequest" responses: "204": description: "Success" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /users/preferences: get: tags: - User summary: Get the current user's preferences description: Used to fetch the current user's preferences. operationId: getUserPreferences security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetUserPreferencesResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" put: tags: - User summary: Update user preferences description: Used to update the current user's preferences. operationId: updateUserPreferences security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateUserPreferencesRequest" responses: "204": description: "Success" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /users/permissions: get: tags: - User summary: Get the current user's static permissions description: Used to fetch the current user's static permissions. operationId: getUserPermissions security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetUserPermissionsResponse" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /users/groups: get: tags: - User summary: Get the current user's groups description: Used to fetch the groups which the current user is a member of operationId: getUserGroups security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetUserGroupsResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /users/migration-pending: get: tags: - User summary: Get the status of a user's migration description: Used to determine if a user has completed their migration from the old system. operationId: getUserMigrationPending parameters: - name: email in: query description: The email of the user required: true schema: type: string - name: tenantId in: query description: The ID of the tenant required: true schema: type: string format: uuid responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetPendingMigrationResponse" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /users/migration-email: put: tags: - User summary: Used to resend the migration email description: Used to resend the migration email to a user who hasn't yet migrated. operationId: sendUserMigrationEmail requestBody: content: application/json: schema: $ref: "#/components/schemas/SendMigrationEmailRequest" responses: "204": description: "Success" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /users/getting-started/{base64token}: post: tags: - User summary: Used to accept an invitation description: Used to accept a user invitation to the system operationId: gettingStarted parameters: - name: base64token in: path description: A Base64 encoded invitation token required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/GettingStartedRequest" responses: "204": description: "Success" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /users/getting-started/{base64token}/validate: post: tags: - User summary: Used to validate an invitation description: Used to validate a user invitation to the system operationId: validateGettingStarted parameters: - name: base64token in: path description: A Base64 encoded invitation token required: true schema: type: string responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/ValidateGettingStartedResponse" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /users/getting-migrated/{base64token}: post: tags: - User summary: Used to accept a migration invitation description: Used to accept a user migration invitation to the system operationId: gettingMigrated parameters: - name: base64token in: path description: A Base64 encoded invitation token required: true schema: type: string requestBody: content: application/json: schema: $ref: "#/components/schemas/GettingStartedRequest" responses: "204": description: "Success" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports: get: tags: - Reports summary: Get a list of reports description: Used to get a list of reports, given a set of query parameters operationId: getReports security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: sortByMostRecent in: query description: Used to determine if the reports should be ordered by start time. required: false schema: type: boolean - name: filterByRead in: query description: Used to filter reports by ones that the current user has read. required: false schema: type: boolean default: false - name: filterByUnread in: query description: Used to filter reports by ones that the current user has not yet read. required: false schema: type: boolean default: false - name: excludeOwnedReports in: query description: Used to exclude reports the current user owns from the response. required: false schema: type: boolean default: false - name: excludeUserSharedReports in: query description: Used to exclude reports that have been directly shared with the current user. required: false schema: type: boolean default: false - name: excludeGroupSharedReports in: query description: Used to exclude reports that have been shared with the current user, via a group. required: false schema: type: boolean default: false - name: start in: query description: Used to give an offset of what reports are returned. required: false schema: type: integer default: 0 minimum: 0 - name: limit in: query description: Used to limit the amount of reports returned. required: false schema: type: integer default: 25 minimum: 1 responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/SearchResponse" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports/{reportId}: get: tags: - Reports summary: Get a report description: Used to get a report with the given id. operationId: getReport security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/Report" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" delete: tags: - Reports summary: Delete a report description: Used to delete a report with the given id. operationId: deleteReport security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid responses: "204": description: "Success" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports/{reportId}/{token}: get: tags: - Reports summary: Get a report (share link) description: Used to get a report with the given id, using a share link token. operationId: getReportToken security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid - name: token in: path description: The share link token required: true schema: type: string - name: isForPDFExport in: query description: Used to indicate if the request is meant for the PDF Export service. required: true schema: type: boolean default: false responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/Report" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports/{reportId}/sharing-preferences: get: tags: - Reports summary: Get a report's sharing preferences description: Used to fetch a report's sharing preferences operationId: getReportSharingPreferences security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetReportSharingPreferencesResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" put: tags: - Reports summary: Update a report's sharing preferences description: Used to share a report with users and groups. operationId: updateReportSharingPreferences security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateReportSharingPreferencesRequest" responses: "204": description: "Success" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports/{reportId}/mark-read: put: tags: - Reports summary: Mark a report as read description: Used to mark a report as read by the current user operationId: markReportAsRead security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid responses: "204": description: "Success" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports/{reportId}/mark-unread: put: tags: - Reports summary: Mark a report as unread description: Used to mark a report as unread by the current user operationId: markReportAsUnread security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid responses: "204": description: "Success" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports/{reportId}/access-request: post: tags: - Reports summary: Request access to a report description: Used to request access to a report operationId: requestAccess security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid requestBody: content: application/json: schema: $ref: "#/components/schemas/RequestAccessRequest" responses: "204": description: "Success" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports/{reportId}/access-request/{requesterId}: get: tags: - Reports summary: View an access request description: Used to view an access request for a report operationId: viewAccessRequest security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid - name: requesterId in: path description: ID of the user who requested access required: true schema: type: string format: uuid responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetAccessRequestResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" put: tags: - Reports summary: Respond to an access request description: Used to approve or reject and access request operationId: respondAccessRequest security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid - name: requesterId in: path description: ID of the user who requested access required: true schema: type: string format: uuid requestBody: content: application/json: schema: $ref: "#/components/schemas/UpdateAccessRequestRequest" responses: "204": description: "Success" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports/{reportId}/share-link: get: tags: - Reports summary: Get a report's share link description: Used to get a report's share link, if one has been generated operationId: getReportShareLink security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetShareLinkResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" post: tags: - Reports summary: Generate a share link description: Used to generate a share link for report operationId: generateShareLink security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GenerateShareLinkResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" delete: tags: - Reports summary: Revoke a report's share link description: Used to revoke a share link for report operationId: revokeShareLink security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid responses: "204": description: "Success" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports/{reportId}/monitoring: put: tags: - Reports summary: Update monitoring config description: Used to update the monitoring configuration for a report operationId: updateMonitoringConfig security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: reportId in: path description: ID of report required: true schema: type: string format: uuid requestBody: content: application/json: schema: $ref: "#/components/schemas/MonitoringConfig" responses: "204": description: "Success" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports/search: post: tags: - Reports summary: Search reports description: Used to search reports that the current user has access to. operationId: searchReports security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] requestBody: description: Search parameters content: application/json: schema: $ref: "#/components/schemas/SearchRequest" responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/SearchResponse" "400": description: "Validation Error" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports/pdf-metadata: put: tags: - Reports summary: Store PDF metadata description: Used to store metadata for the PDF export service operationId: updatePdfMetadata security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] requestBody: description: Metadata content: application/json: schema: $ref: "#/components/schemas/UpdatePdfMetadataRequest" responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/UpdatePdfMetadataResponse" "400": description: "Validation" content: application/json: schema: $ref: "#/components/schemas/ValidationError" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" /reports/pdf-metadata/{requestId}: get: tags: - Reports summary: Get PDF metadata description: Used to get metadata for the PDF export service operationId: getPdfMetadata security: - devel_cognito: [] - qa_cognito: [] - demo_cognito: [] parameters: - name: requestId in: path description: Id of the request required: true schema: type: string format: uuid responses: "200": description: "Success" content: application/json: schema: $ref: "#/components/schemas/GetPdfMetadataResponse" "403": description: "Forbidden" content: application/json: schema: $ref: "#/components/schemas/ForbiddenError" "404": description: "Report Not Found" content: application/json: schema: $ref: "#/components/schemas/ReportNotFoundError" "500": description: "Internal Server Error" content: application/json: schema: $ref: "#/components/schemas/InternalServerError" components: schemas: ## IDAM GetOrganisationResponse: type: object required: - organisationId - name - creationDate - tenantId properties: organisationId: type: string format: uuid readOnly: true name: type: string readOnly: true description: type: string readOnly: true creationDate: type: string format: date-time readOnly: true tenantId: type: string format: uuid readOnly: true GetOrganisationPreferencesResponse: type: object required: - defaultRetentionDays - shareViaLink - letUsersOnboardOtherUsers - mfaEnabled properties: defaultRetentionDays: type: integer minimum: 0 default: 180 shareViaLink: type: boolean default: true letUsersOnboardOtherUsers: type: boolean default: true mfaEnabled: type: boolean default: false UpdateOrganisationPreferencesRequest: type: object required: - defaultRetentionDays - shareViaLink - letUsersOnboardOtherUsers properties: defaultRetentionDays: type: integer minimum: 0 default: 180 shareViaLink: type: boolean default: true letUsersOnboardOtherUsers: type: boolean default: true mfaEnabled: type: boolean nullable: true default: "null" description: This property can only be used if the Organisation has the MFA feature. If it does not, it should be omitted or set to null. OrganisationInviteRequest: type: object required: - reportId - name - email properties: reportId: type: string format: uuid name: type: string email: type: string format: enum GetOrganisationUsageResponse: type: object required: - reportsRunPastYear - reportsRunPast7Days - reportsRunPast30Days - reportsRunSinceOrganisationCreation properties: reportsRunPast7Days: type: integer reportsRunPast30Days: type: integer reportsRunPastYear: type: integer reportsRunSinceOrganisationCreation: type: integer ExportOrganisationUsageResponse: type: object required: - url properties: url: type: string format: uri GroupPermissions: type: object readOnly: true required: - canView - canEdit - canViewMembers - canEditMembers - canEditAdmins - canLeave - canViewReports - canDelete properties: canView: type: boolean default: false readOnly: true canEdit: type: boolean default: false readOnly: true canViewMembers: type: boolean default: false readOnly: true canEditMembers: type: boolean default: false readOnly: true canEditAdmins: type: boolean default: false readOnly: true canLeave: type: boolean default: false readOnly: true canViewReports: type: boolean default: false readOnly: true canDelete: type: boolean default: false readOnly: true GetOrganisationGroupsResponse: type: array items: type: object required: - groupId - name - users - permissions properties: groupId: type: string format: uuid readOnly: true name: type: string readOnly: true description: type: string readOnly: true users: type: integer description: The number of users in the group. readOnly: true permissions: $ref: "#/components/schemas/GroupPermissions" CreateOrganisationGroupRequest: type: object required: - name properties: name: type: string maxLength: 30 description: type: string maxLength: 255 CreateOrganisationGroupResponse: type: object required: - groupId properties: groupId: type: string format: uuid readOnly: true GetOrganisationGroupResponse: type: object readOnly: true required: - groupId - name - creationDate - users - permissions properties: groupId: type: string format: uuid name: type: string description: type: string creationDate: type: string format: date-time users: type: array items: type: object required: - userId - firstName - lastName - email - role properties: userId: type: string format: uuid firstName: type: string lastName: type: string email: type: string format: email jobTitle: type: string role: $ref: "#/components/schemas/GroupUserRole" permissions: $ref: "#/components/schemas/GroupPermissions" UpdateOrganisationGroupRequest: type: object required: - name properties: name: type: string maxLength: 30 description: type: string maxLength: 255 UpdateOrganisationGroupMembersRequest: type: object required: - addUsers - removeUsers properties: addUsers: type: array items: type: string format: uuid removeUsers: type: array items: type: string format: uuid UpdateOrganisationGroupAdminsRequest: type: object required: - addUsers - removeUsers properties: addUsers: type: array items: type: string format: uuid removeUsers: type: array items: type: string format: uuid GetProjectsResponse: type: array items: type: object required: - projectId - reference properties: projectId: type: string format: uuid reference: type: string description: type: string SearchRequest: type: object properties: queryString: type: string start: type: integer default: 0 limit: type: integer default: 25 minimum: 1 filterHasPep: type: boolean default: false filterHasWatchlist: type: boolean default: false filterHasSanction: type: boolean default: false filterHasRca: type: boolean default: false filterHasSip: type: boolean default: false filterHasMissingData: type: boolean default: false filterOnlyOwned: type: boolean default: false filterOnlyShared: type: boolean default: false sortMostRecentFirst: type: boolean default: false sortOldestFirst: type: boolean default: false projects: type: array items: type: string format: uuid default: [] users: type: array items: type: string format: uuid default: [] groups: type: array items: type: string format: uuid default: [] SearchResponse: type: object required: - reports - total properties: reports: type: array items: $ref: "#/components/schemas/Report" total: type: integer Report: type: object required: - reportId - type - displayName - sanctions - watchLists - pepsOrStateOwned - flags - rcas - sips - missingData - startTime - expires - state - subject - contexts - groups - permissions - owner properties: reportId: type: string format: uuid originalReportId: type: string format: uuid type: $ref: "#/components/schemas/ReportType" imageUrl: type: string displayName: type: string project: $ref: "#/components/schemas/ReportProject" sanctions: type: integer watchLists: type: integer pepsOrStateOwned: type: integer flags: type: integer rcas: type: integer sips: type: integer missingData: type: boolean startTime: type: string format: date-time endTime: type: string format: date-time expires: type: string format: date-time state: $ref: "#/components/schemas/ReportState" subject: type: string contexts: type: array items: type: string reportUrl: type: string owner: $ref: "#/components/schemas/ReportOwner" groups: $ref: "#/components/schemas/ReportGroup" permissions: $ref: "#/components/schemas/ReportPermissions" monitoring: $ref: "#/components/schemas/MonitoringConfig" ReportProject: type: object required: - projectId - reference properties: projectId: type: string format: uuid reference: type: string ReportOwner: type: object required: - userId - firstName - lastName - email - organisationName - organisationId - tenantId properties: userId: type: string format: uuid firstName: type: string lastName: type: string email: type: string jobTitle: type: string organisationName: type: string organisationId: type: string format: uuid tenantId: type: string format: uuid ReportGroup: type: array items: type: object required: - groupId - name properties: groupId: type: string format: uuid name: type: string ReportPermissions: type: object required: - canView - canEdit - canDelete - canViewSharingPreferences - canEditSharingPreferences - canViewShareLink - canGenerateShareLink - canDeleteShareLink - canTransferOwnership - canTransferOwnershipBetweenOrganisations - canExport properties: canView: type: boolean default: false canEdit: type: boolean default: false canDelete: type: boolean default: false canViewSharingPreferences: type: boolean default: false canEditSharingPreferences: type: boolean default: false canViewShareLink: type: boolean default: false canGenerateShareLink: type: boolean default: false canDeleteShareLink: type: boolean default: false canTransferOwnership: type: boolean default: false canTransferOwnershipBetweenOrganisations: type: boolean default: false canExport: type: boolean default: false GetUsersResponse: type: array items: $ref: "#/components/schemas/GetUsersResponseUser" GetUsersResponseUser: type: object required: - userId - firstName - lastName - email - role - groups - permissions properties: userId: type: string format: uuid firstName: type: string lastName: type: string email: type: string jobTitle: type: string role: $ref: "#/components/schemas/OrganisationRole" groups: type: array items: $ref: "#/components/schemas/GetUsersResponseUserGroup" permissions: $ref: "#/components/schemas/UserPermissions" GetUsersResponseUserGroup: type: object required: - groupId - name - role properties: groupId: type: string format: uuid name: type: string role: $ref: "#/components/schemas/GroupUserRole" UserPermissions: type: object required: - canView - canEdit - canDelete - canViewReports properties: canView: type: boolean default: false canEdit: type: boolean default: false canDelete: type: boolean default: false canViewReports: type: boolean default: false CreateUserRequest: type: object required: - firstName - lastName - email properties: firstName: type: string lastName: type: string email: type: string maxLength: 320 jobTitle: type: string CreateUserResponse: type: object required: - userId properties: userId: type: string format: uuid GetOrganisationUserResponse: type: object required: - userId - firstName - lastName - email - role - groups - permissions properties: userId: type: string format: uuid firstName: type: string lastName: type: string email: type: string jobTitle: type: string role: $ref: "#/components/schemas/OrganisationRole" groups: type: array items: $ref: "#/components/schemas/GetOrganisationUserResponseGroup" permissions: $ref: "#/components/schemas/UserPermissions" GetOrganisationUserResponseGroup: type: object required: - groupId - name - role properties: groupId: type: string format: uuid name: type: string role: $ref: "#/components/schemas/GroupUserRole" UpdateOrganisationUserRequest: type: object required: - firstName - lastName properties: firstName: type: string lastName: type: string jobTitle: type: string InviteUsersRequest: type: object required: - emails - groups - role properties: emails: type: array items: type: string groups: type: array items: type: string format: uuid role: $ref: "#/components/schemas/OrganisationRole" GetUserResponse: type: object required: - userId - firstName - lastName - email - organisationRole - groups - permissions - organisationId properties: userId: type: string format: uuid firstName: type: string lastName: type: string email: type: string jobTitle: type: string organisationRole: $ref: "#/components/schemas/OrganisationRole" organisationId: type: string format: uuid groups: type: array items: $ref: "#/components/schemas/GetUserResponseGroup" permissions: $ref: "#/components/schemas/UserPermissions" GetUserResponseGroup: type: object required: - groupId - name - role properties: groupId: type: string format: uuid name: type: string role: $ref: "#/components/schemas/GroupUserRole" UpdateUserRequest: type: object required: - firstName - lastName properties: firstName: type: string lastName: type: string jobTitle: type: string UpdateUserPreferencesRequest: type: object required: - sharingPreferences properties: sharingPreferences: $ref: "#/components/schemas/UpdateUserPreferencesRequestSharingPreferences" UpdateUserPreferencesRequestSharingPreferences: type: object required: - autoShare - sharedWithUsers - sharedWithGroups properties: autoShare: type: boolean default: false sharedWithUsers: type: array items: $ref: "#/components/schemas/UpdateUserPreferencesRequestSharingPreferencesUser" sharedWithGroups: type: array items: $ref: "#/components/schemas/UpdateUserPreferencesRequestSharingPreferencesGroup" UpdateUserPreferencesRequestSharingPreferencesUser: type: object required: - userId - permission properties: userId: type: string format: uuid permission: $ref: "#/components/schemas/ReportRole" UpdateUserPreferencesRequestSharingPreferencesGroup: type: object required: - groupId - permission properties: groupId: type: string format: uuid permission: $ref: "#/components/schemas/ReportRole" GetUserPreferencesResponse: type: object required: - sharingPreferences - projectReferenceEnabled properties: sharingPreferences: $ref: "#/components/schemas/GetUserPreferencesResponseSharingPreferences" projectReferenceEnabled: type: boolean GetUserPreferencesResponseSharingPreferences: type: object required: - autoShare - sharedWithUsers - sharedWithGroups properties: autoShare: type: boolean default: false sharedWithUsers: type: array items: $ref: "#/components/schemas/GetUserPreferencesRequestSharingPreferencesUser" sharedWithGroups: type: array items: $ref: "#/components/schemas/GetUserPreferencesRequestSharingPreferencesGroup" GetUserPreferencesRequestSharingPreferencesUser: type: object required: - userId - firstName - lastName - email - permission properties: userId: type: string format: uuid firstName: type: string lastName: type: string email: type: string avatarUrl: type: string permission: $ref: "#/components/schemas/ReportRole" GetUserPreferencesRequestSharingPreferencesGroup: type: object required: - groupId - name - permission properties: groupId: type: string format: uuid name: type: string permission: $ref: "#/components/schemas/ReportRole" GetUserGroupsResponse: type: array items: $ref: "#/components/schemas/GetUserGroupsResponseGroup" GetUserGroupsResponseGroup: type: object required: - groupId - name - role - users - permissions properties: groupId: type: string format: uuid name: type: string description: type: string role: $ref: "#/components/schemas/GroupUserRole" users: type: integer permissions: $ref: "#/components/schemas/GroupPermissions" GetPendingMigrationResponse: type: object required: - isPending properties: isPending: type: boolean default: false requestId: type: string format: uuid default: null SendMigrationEmailRequest: type: object required: - requestId properties: requestId: type: string format: uuid GettingStartedRequest: type: object required: - firstName - lastName - password properties: firstName: type: string lastName: type: string jobTitle: type: string password: type: string ValidateGettingStartedResponse: type: object required: - inviteAccepted properties: inviteAccepted: type: boolean default: false GetUserPermissionsResponse: type: object required: - canInviteUsers - canInviteAdmins - canChangeUserRole - canGetOrganisationUsage - canExportOrganisationUsage - canGetOrganisation - canUpdateOrganisation - canGetOrganisationPreferences - canUpdateOrganisationPreferences - canListUsers - canListGroups - canCreateGroup - canListReports - canStartReports properties: canInviteUsers: type: boolean default: false canInviteAdmins: type: boolean default: false canChangeUserRole: type: boolean default: false canGetOrganisationUsage: type: boolean default: false canExportOrganisationUsage: type: boolean default: false canGetOrganisation: type: boolean default: false canUpdateOrganisation: type: boolean default: false canGetOrganisationPreferences: type: boolean default: false canUpdateOrganisationPreferences: type: boolean default: false canListUsers: type: boolean default: false canListGroups: type: boolean default: false canCreateGroup: type: boolean default: false canListReports: type: boolean default: false canStartReports: type: boolean default: false canEditMfa: type: boolean default: false GetReportSharingPreferencesResponse: type: object required: - sharedWithUsers - sharedWithGroups properties: sharedWithUsers: type: array items: $ref: "#/components/schemas/GetReportSharingPreferencesResponseUser" sharedWithGroups: type: array items: $ref: "#/components/schemas/GetReportSharingPreferencesResponseGroup" GetReportSharingPreferencesResponseUser: type: object required: - userId - firstName - lastName - email - permission properties: userId: type: string format: uuid firstName: type: string lastName: type: string email: type: string avatarUrl: type: string permission: $ref: "#/components/schemas/ReportRole" GetReportSharingPreferencesResponseGroup: type: object required: - groupId - name - permission properties: groupId: type: string format: uuid name: type: string permission: $ref: "#/components/schemas/ReportRole" UpdateReportSharingPreferencesRequest: type: object required: - sharedWithUsers - sharedWithGroups properties: sharedWithUsers: type: array items: $ref: "#/components/schemas/UpdateReportSharingPreferencesRequestUser" sharedWithGroups: type: array items: $ref: "#/components/schemas/UpdateReportSharingPreferencesRequestGroup" UpdateReportSharingPreferencesRequestUser: type: object required: - userId - permission properties: userId: type: string format: uuid permission: $ref: "#/components/schemas/ReportRole" UpdateReportSharingPreferencesRequestGroup: type: object required: - groupId - permission properties: groupId: type: string format: uuid permission: $ref: "#/components/schemas/ReportRole" RequestAccessRequest: type: object required: - role properties: role: $ref: "#/components/schemas/ReportRole" GetAccessRequestResponse: type: object required: - requester - report - role properties: requester: $ref: "#/components/schemas/GetAccessRequestResponseRequester" report: $ref: "#/components/schemas/GetAccessRequestResponseReport" role: $ref: "#/components/schemas/ReportRole" GetAccessRequestResponseRequester: type: object required: - userId - firstName - lastName - email properties: userId: type: string format: uuid firstName: type: string lastName: type: string email: type: string GetAccessRequestResponseReport: type: object required: - reportId - subjectItem - contextItems properties: reportId: type: string format: uuid imageUrl: type: string subjectItem: type: string contextItems: type: array items: type: string UpdateAccessRequestRequest: type: object required: - approved - role properties: approved: type: boolean role: $ref: "#/components/schemas/ReportRole" GetPdfMetadataResponse: type: object required: - requestId - reportId - viewState properties: requestId: type: string format: uuid reportId: type: string format: uuid viewState: type: string format: uuid UpdatePdfMetadataRequest: type: object required: - reportId - viewState properties: reportId: type: string format: uuid viewState: type: string format: uuid UpdatePdfMetadataResponse: type: object required: - requestId properties: requestId: type: string format: uuid TransferOwnershipRequest: type: object required: - retainAccess properties: retainAccess: $ref: "#/components/schemas/ReportRole" GenerateShareLinkResponse: type: object required: - token - uses properties: token: type: string uses: type: integer GetShareLinkResponse: type: object required: - token - uses properties: token: type: string uses: type: integer MonitoringConfig: type: object required: - adverseMedia - sanctions properties: adverseMedia: type: boolean default: false sanctions: type: boolean default: false ## Enums GroupUserRole: type: string enum: - Admin - Standard UsagePeriod: type: string enum: - ReportsRunPastYear - ReportsRunPast30Days - ReportsRunPast7Days - ReportsRunSinceOrganisationCreation ReportType: type: string enum: - Person - Organisation ReportState: type: string enum: - InProgress - Done - Failed - Regenerating - Deleted OrganisationRole: type: string enum: - User - Admin ReportRole: type: string enum: - Read - Write ## Errors InternalServerError: type: object required: - type - message properties: type: type: string default: "INTERNAL_SERVER_ERROR" message: type: string ForbiddenError: type: object required: - type - message properties: type: type: string default: "FORBIDDEN" message: type: string ValidationError: type: object required: - type - message properties: type: type: string default: "VALIDATION" message: type: string paramName: type: string GroupNotFoundError: type: object required: - type - message properties: type: type: string default: "GROUP_NOT_FOUND" message: type: string paramName: type: string ReportNotFoundError: type: object required: - type - message properties: type: type: string default: "REPORT_NOT_FOUND" message: type: string paramName: type: string UserNotFoundError: type: object required: - type - message properties: type: type: string default: "USER_NOT_FOUND" message: type: string paramName: type: string securitySchemes: devel_cognito: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.identity.devel.xapien.com/oauth/authorize tokenUrl: https://auth.identity.devel.xapien.com/oauth/token scopes: {} qa_cognito: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.identity.qa.xapien.com/oauth/authorize tokenUrl: https://auth.identity.qa.xapien.com/oauth/token scopes: {} demo_cognito: type: oauth2 flows: authorizationCode: authorizationUrl: https://auth.identity.di-demo.xapien.com/oauth/authorize tokenUrl: https://auth.identity.di-demo.xapien.com/oauth/token scopes: {}