info: title: Users API @ NHS Innovation Service version: 1.0.0 servers: - url: https://nhse-${ENV}-innovation-service-user-functions.azurewebsites.net/api openapi: 3.0.3 paths: /v1/email-preferences: get: description: Returns the user email notifications preferences operationId: v1-email-notification-preferences-info tags: - "[v1] Email Preferences" responses: "200": description: Success content: application/json: schema: type: object properties: {} put: description: Updates the user email preferences operationId: v1-email-notification-preferences-upsert tags: - "[v1] Email Preferences" requestBody: required: true content: application/json: schema: type: object properties: preferences: oneOf: - type: object properties: NEEDS_ASSESSMENT: type: string enum: - YES - NO TASK: type: string enum: - YES - NO MESSAGES: type: string enum: - YES - NO INNOVATION_MANAGEMENT: type: string enum: - YES - NO ANNOUNCEMENTS: type: string enum: - YES - NO required: - NEEDS_ASSESSMENT - TASK - MESSAGES - INNOVATION_MANAGEMENT - ANNOUNCEMENTS additionalProperties: false x-required: true - type: object properties: SUPPORT: type: string enum: - YES - NO TASK: type: string enum: - YES - NO MESSAGES: type: string enum: - YES - NO INNOVATION_MANAGEMENT: type: string enum: - YES - NO AUTOMATIC: type: string enum: - YES - NO NOTIFY_ME: type: string enum: - YES - NO ANNOUNCEMENTS: type: string enum: - YES - NO required: - SUPPORT - TASK - MESSAGES - INNOVATION_MANAGEMENT - AUTOMATIC - NOTIFY_ME - ANNOUNCEMENTS additionalProperties: false x-required: true - type: object properties: ORGANISATION_SUGGESTIONS: type: string enum: - YES - NO SUPPORT: type: string enum: - YES - NO TASK: type: string enum: - YES - NO MESSAGES: type: string enum: - YES - NO INNOVATION_MANAGEMENT: type: string enum: - YES - NO AUTOMATIC: type: string enum: - YES - NO NOTIFY_ME: type: string enum: - YES - NO ANNOUNCEMENTS: type: string enum: - YES - NO required: - ORGANISATION_SUGGESTIONS - SUPPORT - TASK - MESSAGES - INNOVATION_MANAGEMENT - AUTOMATIC - NOTIFY_ME - ANNOUNCEMENTS additionalProperties: false x-required: true - type: object properties: SUPPORT: type: string enum: - YES - NO MESSAGES: type: string enum: - YES - NO TASK: type: string enum: - YES - NO DOCUMENTS: type: string enum: - YES - NO AUTOMATIC: type: string enum: - YES - NO USER_RESEARCH_SURVEYS: type: string enum: - YES - NO ANNOUNCEMENTS: type: string enum: - YES - NO required: - SUPPORT - MESSAGES - TASK - DOCUMENTS - AUTOMATIC - USER_RESEARCH_SURVEYS - ANNOUNCEMENTS additionalProperties: false x-required: true additionalProperties: false responses: "204": description: The user email preferences were updated successfully "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not found "500": description: Internal server error /v1/invites: get: description: Get collaboration invites list operationId: v1-invites-list parameters: [] responses: "200": description: Success content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid invitedAt: type: string format: date-time innovation: type: object properties: id: type: string format: uuid name: type: string required: - id - name additionalProperties: false required: - id - invitedAt additionalProperties: false /v1/me/announcements/{announcementId}/read: patch: operationId: v1-me-announcement-read description: Mark an announcement as read. parameters: - name: announcementId in: path required: true schema: type: string format: uuid - name: innovationId in: query required: false schema: type: string format: uuid responses: "204": description: Success "404": description: Not found /v1/me/announcements: get: description: Returns unread announcements operationId: v1-me-announcements tags: - "[v1] Announcements" parameters: - name: type in: query required: false schema: type: array items: type: string enum: - LOG_IN - HOMEPAGE - name: innovationId in: query required: false schema: type: string format: uuid responses: "200": description: Success content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid title: type: string startsAt: type: string format: date-time expiresAt: type: string format: date-time nullable: true params: type: object properties: content: type: string link: type: object properties: label: type: string url: type: string required: - label - url additionalProperties: false required: - content additionalProperties: false nullable: true required: - id - title - startsAt additionalProperties: false /v1/me: post: description: Create a new user on DB operationId: v1-me-create tags: - "[v1] Users" responses: "200": description: User created content: application/json: schema: type: object properties: id: type: string format: uuid required: - id additionalProperties: false "400": description: Bad request content: application/json: schema: type: object properties: code: type: string message: type: string get: description: Retrieves the user profile information. operationId: v1-me-info tags: - "[v1] Users" parameters: - name: forceRefresh in: query required: false schema: type: boolean responses: "200": description: Successful operation content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid email: type: string displayName: type: string jobTitle: type: string nullable: true roles: type: object properties: id: type: string format: uuid role: type: string enum: - ADMIN - INNOVATOR - ACCESSOR - ASSESSMENT - QUALIFYING_ACCESSOR isActive: type: boolean organisation: type: object properties: id: type: string format: uuid name: type: string acronym: type: string nullable: true required: - id - name - acronym additionalProperties: false organisationUnit: type: object properties: id: type: string format: uuid name: type: string acronym: type: string required: - id - name - acronym additionalProperties: false required: - id - isActive additionalProperties: false strategicRoles: type: array items: type: object properties: id: type: string format: uuid strategicRole: type: string required: - id - strategicRole additionalProperties: false contactByEmail: type: boolean contactByPhone: type: boolean contactByPhoneTimeframe: type: string enum: - MORNING - AFTERNOON - DAILY nullable: true contactDetails: type: string nullable: true phone: type: string nullable: true termsOfUseAccepted: type: boolean hasInnovationTransfers: type: boolean hasInnovationCollaborations: type: boolean hasLoginAnnouncements: type: object properties: {} additionalProperties: type: boolean passwordResetAt: type: string format: date-time nullable: true firstTimeSignInAt: type: string format: date-time nullable: true organisations: type: array items: type: object properties: id: type: string format: uuid acronym: type: string nullable: true name: type: string isShadow: type: boolean size: type: string nullable: true description: type: string nullable: true registrationNumber: type: string nullable: true required: - id - acronym - name - isShadow - size - description - registrationNumber additionalProperties: false required: - id - email - displayName - jobTitle - contactByEmail - contactByPhone - contactDetails - phone - termsOfUseAccepted - hasInnovationTransfers - hasInnovationCollaborations - passwordResetAt - firstTimeSignInAt additionalProperties: false "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not found "500": description: Internal server error put: description: User profile information update operationId: v1-me-update tags: - "[v1] Users" parameters: [] requestBody: required: true content: application/json: schema: type: object properties: displayName: type: string mobilePhone: type: string maxLength: 20 nullable: true contactByEmail: type: boolean contactByPhone: type: boolean contactByPhoneTimeframe: enum: - MORNING - AFTERNOON - DAILY nullable: true contactDetails: type: string nullable: true organisation: type: object properties: id: type: string format: uuid isShadow: type: boolean name: anyOf: - type: string maxLength: 100 x-required: true - type: string nullable: true size: anyOf: - type: string maxLength: 25 x-required: true - type: string nullable: true description: anyOf: - type: string maxLength: 50 x-required: true - type: string nullable: true registrationNumber: type: string maxLength: 8 nullable: true required: - id - isShadow additionalProperties: false howDidYouFindUsAnswers: type: object properties: event: type: boolean eventComment: type: string reading: type: boolean readingComment: type: string recommendationColleague: type: boolean recommendationOrg: type: boolean recommendationOrgComment: type: string searchEngine: type: boolean socialMedia: type: boolean other: type: boolean otherComment: type: string additionalProperties: false required: - displayName - organisation - howDidYouFindUsAnswers additionalProperties: false responses: "200": description: User information updated content: application/json: schema: type: object properties: id: type: string format: uuid required: - id additionalProperties: false "400": description: Bad request content: application/json: schema: type: object properties: code: type: string message: type: string /v1/me/delete: patch: description: User delete operationId: v1-me-delete tags: - "[v1] Users" parameters: [] requestBody: description: Reason for deletion required: true content: application/json: schema: type: object properties: reason: type: string maxLength: 2000 required: - reason additionalProperties: false responses: "204": description: User deleted successfully "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not found "500": description: Internal server error /v1/me/innovations: get: description: Retrieves the user owned innovations. operationId: v1-me-innovations tags: - "[v1] Owned innovations information" parameters: [] responses: "200": description: Success content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid name: type: string collaboratorsCount: type: integer expirationTransferDate: type: string format: date-time nullable: true required: - id - name - collaboratorsCount - expirationTransferDate additionalProperties: false "400": description: Bad request /v1/me/mfa: get: description: Get user MFA configuration operationId: v1-me-mfa-info tags: - "[v1] Users" responses: "200": description: Success content: application/json: schema: type: object properties: type: type: string enum: - none - email - phone phoneNumber: type: string required: - type additionalProperties: false "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not Found "500": description: Internal Server Error put: description: Upsert user MFA configuration operationId: v1-me-mfa-upsert tags: - "[v1] Users" requestBody: required: true content: application/json: schema: type: object properties: type: type: string enum: - none - email - phone phoneNumber: anyOf: - type: string maxLength: 20 x-required: true required: - type additionalProperties: false responses: "204": description: MFA information upserted "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not Found "500": description: Internal Server Error /v1/me/terms-of-use/accept: patch: description: Accept user terms of use operationId: v1-me-terms-of-use-accept tags: - "[v1] Terms of Use" parameters: [] responses: "200": description: Successful operation content: application/json: schema: type: object properties: id: type: string format: uuid required: - id additionalProperties: false "422": description: Unprocessable Entity /v1/me/terms-of-use: get: description: Retrieves the user terms of use operationId: v1-me-terms-of-use-info tags: - "[v1] Terms of Use" parameters: [] responses: "200": description: Successful operation content: application/json: schema: type: object properties: id: type: string format: uuid name: type: string summary: type: string releasedAt: type: string format: date-time isAccepted: type: boolean required: - id - name - summary - releasedAt - isAccepted additionalProperties: false "404": description: Terms of use not found /v1/needs-assessors: get: description: Get needs assessors and their associated innovations operationId: v1-needs-assessors parameters: [] responses: "200": description: Success content: application/json: schema: type: object properties: count: type: integer data: type: array items: type: object properties: assignedInnovation: type: string needsAssessmentVersion: type: string innovationId: type: string needsAssessorUserName: type: string required: - assignedInnovation - needsAssessmentVersion - innovationId - needsAssessorUserName additionalProperties: false required: - count additionalProperties: false "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not Found "500": description: Internal Server Error /v1/notifications/counters: get: description: Returns the notifications counters operationId: v1-notifications-counters tags: - "[v1] Notifications" parameters: [] responses: "200": description: Success content: application/json: schema: type: object properties: total: type: integer description: The total of active notifications required: - total additionalProperties: false /v1/notifications/{notificationId}: delete: description: Returns the id of the deleted notification operationId: v1-notifications-delete tags: - "[v1] Notifications" parameters: - name: notificationId in: path required: true schema: type: string format: uuid description: The notification ID responses: "204": description: Notification deleted /v1/notifications/dismiss: patch: description: Returns the number of affected notifications operationId: v1-notifications-dismiss tags: - "[v1] Notifications" requestBody: required: true content: application/json: schema: type: object properties: notificationIds: type: array items: type: string format: uuid default: [] contextIds: type: array items: type: string format: uuid default: [] contextTypes: type: array items: type: string enum: - TASK - DOCUMENTS - MESSAGES - SUPPORT - NEEDS_ASSESSMENT - ORGANISATION_SUGGESTIONS - INNOVATION_MANAGEMENT - ADMIN - ACCOUNT - AUTOMATIC - NOTIFY_ME - ANNOUNCEMENTS default: [] contextDetails: type: array items: type: string enum: - TA01_TASK_CREATION_TO_INNOVATOR - TA02_TASK_RESPONDED_TO_OTHER_INNOVATORS - TA03_TASK_DONE_TO_ACCESSOR_OR_ASSESSMENT - TA04_TASK_DECLINED_TO_ACCESSOR_OR_ASSESSMENT - TA05_TASK_CANCELLED_TO_INNOVATOR - TA06_TASK_REOPEN_TO_INNOVATOR - DC01_UPLOADED_DOCUMENT_TO_INNOVATOR - ME01_THREAD_CREATION - ME02_THREAD_ADD_FOLLOWERS - ME03_THREAD_MESSAGE_CREATION - ST01_SUPPORT_STATUS_TO_ENGAGING - ST02_SUPPORT_STATUS_TO_OTHER - ST03_SUPPORT_STATUS_TO_WAITING - ST04_SUPPORT_NEW_ASSIGNED_ACCESSORS_TO_INNOVATOR - ST05_SUPPORT_NEW_ASSIGNED_ACCESSOR_TO_NEW_QA - ST06_SUPPORT_NEW_ASSIGNED_ACCESSOR_TO_OLD_QA - ST07_SUPPORT_STATUS_CHANGE_REQUEST - ST08_SUPPORT_NEW_ASSIGNED_WAITING_INNOVATION_TO_QA - ST09_SUPPORT_STATUS_TO_CLOSED - SS01_SUPPORT_SUMMARY_UPDATE_TO_INNOVATORS - SS02_SUPPORT_SUMMARY_UPDATE_TO_OTHER_ENGAGING_ACCESSORS - NA01_INNOVATOR_SUBMITS_FOR_NEEDS_ASSESSMENT_TO_INNOVATOR - NA02_INNOVATOR_SUBMITS_FOR_NEEDS_ASSESSMENT_TO_ASSESSMENT - NA03_NEEDS_ASSESSMENT_STARTED_TO_INNOVATOR - NA04_NEEDS_ASSESSMENT_COMPLETE_TO_INNOVATOR - NA06_NEEDS_ASSESSOR_REMOVED - NA07_NEEDS_ASSESSOR_ASSIGNED - OS01_UNITS_SUGGESTION_TO_SUGGESTED_UNITS_QA - OS02_UNITS_SUGGESTION_NOT_SHARED_TO_INNOVATOR - OS03_INNOVATION_DELAYED_SHARED_SUGGESTION - RE01_EXPORT_REQUEST_SUBMITTED - RE02_EXPORT_REQUEST_APPROVED - RE03_EXPORT_REQUEST_REJECTED - AI01_INNOVATION_ARCHIVED_TO_SELF - AI02_INNOVATION_ARCHIVED_TO_COLLABORATORS - AI03_INNOVATION_ARCHIVED_TO_ENGAGING_QA_A - AI04_INNOVATION_ARCHIVED_TO_NA_DURING_NEEDS_ASSESSMENT - SH04_INNOVATION_STOPPED_SHARING_WITH_INDIVIDUAL_ORG_TO_OWNER - SH05_INNOVATION_STOPPED_SHARING_WITH_INDIVIDUAL_ORG_TO_QA_A - DA01_OWNER_DELETED_ACCOUNT_WITH_PENDING_TRANSFER_TO_COLLABORATOR - DA02_OWNER_DELETED_ACCOUNT_WITHOUT_PENDING_TRANSFER_TO_COLLABORATOR - MC01_COLLABORATOR_INVITE_EXISTING_USER - MC02_COLLABORATOR_INVITE_NEW_USER - MC03_COLLABORATOR_UPDATE_CANCEL_INVITE - MC04_COLLABORATOR_UPDATE_ACCEPTS_INVITE - MC05_COLLABORATOR_UPDATE_DECLINES_INVITE - MC06_COLLABORATOR_UPDATE_REMOVED_COLLABORATOR - MC07_COLLABORATOR_UPDATE_COLLABORATOR_LEFT_TO_INNOVATORS - MC08_COLLABORATOR_UPDATE_COLLABORATOR_LEFT_TO_SELF - TO01_TRANSFER_OWNERSHIP_NEW_USER - TO02_TRANSFER_OWNERSHIP_EXISTING_USER - TO06_TRANSFER_OWNERSHIP_ACCEPTS_PREVIOUS_OWNER - TO07_TRANSFER_OWNERSHIP_ACCEPTS_ASSIGNED_ACCESSORS - TO08_TRANSFER_OWNERSHIP_DECLINES_PREVIOUS_OWNER - TO09_TRANSFER_OWNERSHIP_CANCELED_NEW_OWNER - AP02_INNOVATOR_LOCKED_TO_ASSIGNED_USERS - AP03_USER_LOCKED_TO_LOCKED_USER - AP07_UNIT_INACTIVATED_TO_ENGAGING_INNOVATIONS - AP08_USER_EMAIL_ADDRESS_UPDATED - AP09_NEW_SUPPORTING_ACCOUNT - CA01_ACCOUNT_CREATION_OF_INNOVATOR - CA02_ACCOUNT_CREATION_OF_COLLABORATOR - AU01_INNOVATOR_INCOMPLETE_RECORD - AU02_ACCESSOR_IDLE_ENGAGING_SUPPORT - AU03_INNOVATOR_IDLE_SUPPORT - AU04_SUPPORT_KPI_REMINDER - AU05_SUPPORT_KPI_OVERDUE - AU06_ACCESSOR_IDLE_WAITING - AU07_TRANSFER_ONE_WEEK_REMINDER_NEW_USER - AU08_TRANSFER_ONE_WEEK_REMINDER_EXISTING_USER - AU09_TRANSFER_EXPIRED - AU10_ACCESSOR_IDLE_ENGAGING_SUPPORT_FOR_SIX_WEEKS - AU11_ACCESSOR_IDLE_WAITING_SUPPORT_FOR_SIX_WEEKS - AU12_INNOVATOR_SURVEY_END_SUPPORT_TWO_MONTHS_REMINDER - SUPPORT_UPDATED - PROGRESS_UPDATE_CREATED - INNOVATION_RECORD_UPDATED - DOCUMENT_UPLOADED - REMINDER - SUGGESTED_SUPPORT_UPDATED - AP10_NEW_ANNOUNCEMENT - AP11_NEW_ANNOUNCEMENT_WITH_INNOVATIONS_NAME default: [] dismissAll: type: boolean description: Dismiss all notifications default: false additionalProperties: false responses: "200": description: Success content: application/json: schema: type: object properties: affected: type: integer description: The number of affected notifications required: - affected additionalProperties: false /v1/notifications: get: description: Returns the user notifications operationId: v1-notifications-list tags: - "[v1] Notifications" parameters: - name: skip in: query required: false schema: type: integer - name: take in: query required: false schema: type: integer maximum: 100 default: 20 - name: order in: query required: false schema: type: object properties: {} additionalProperties: type: string enum: - ASC - DESC default: default: DESC - name: contextTypes in: query required: false schema: type: array items: type: string enum: - "" - TASK - DOCUMENTS - MESSAGES - SUPPORT - NEEDS_ASSESSMENT - ORGANISATION_SUGGESTIONS - INNOVATION_MANAGEMENT - ADMIN - ACCOUNT - AUTOMATIC - NOTIFY_ME - ANNOUNCEMENTS description: The context types to filter by default: [] - name: unreadOnly in: query required: false schema: type: boolean description: If true, only returns the unread notifications default: false responses: "200": description: Success content: application/json: schema: type: object properties: count: type: integer data: type: array items: type: object properties: id: type: string format: uuid innovation: type: object properties: id: type: string format: uuid name: type: string status: type: string enum: - CREATED - WAITING_NEEDS_ASSESSMENT - NEEDS_ASSESSMENT - IN_PROGRESS - WITHDRAWN - ARCHIVED required: - id - name - status additionalProperties: false contextType: type: string enum: - TASK - DOCUMENTS - MESSAGES - SUPPORT - NEEDS_ASSESSMENT - ORGANISATION_SUGGESTIONS - INNOVATION_MANAGEMENT - ADMIN - ACCOUNT - AUTOMATIC - NOTIFY_ME - ANNOUNCEMENTS contextDetail: type: string enum: - TA01_TASK_CREATION_TO_INNOVATOR - TA02_TASK_RESPONDED_TO_OTHER_INNOVATORS - TA03_TASK_DONE_TO_ACCESSOR_OR_ASSESSMENT - TA04_TASK_DECLINED_TO_ACCESSOR_OR_ASSESSMENT - TA05_TASK_CANCELLED_TO_INNOVATOR - TA06_TASK_REOPEN_TO_INNOVATOR - DC01_UPLOADED_DOCUMENT_TO_INNOVATOR - ME01_THREAD_CREATION - ME02_THREAD_ADD_FOLLOWERS - ME03_THREAD_MESSAGE_CREATION - ST01_SUPPORT_STATUS_TO_ENGAGING - ST02_SUPPORT_STATUS_TO_OTHER - ST03_SUPPORT_STATUS_TO_WAITING - ST04_SUPPORT_NEW_ASSIGNED_ACCESSORS_TO_INNOVATOR - ST05_SUPPORT_NEW_ASSIGNED_ACCESSOR_TO_NEW_QA - ST06_SUPPORT_NEW_ASSIGNED_ACCESSOR_TO_OLD_QA - ST07_SUPPORT_STATUS_CHANGE_REQUEST - ST08_SUPPORT_NEW_ASSIGNED_WAITING_INNOVATION_TO_QA - ST09_SUPPORT_STATUS_TO_CLOSED - SS01_SUPPORT_SUMMARY_UPDATE_TO_INNOVATORS - SS02_SUPPORT_SUMMARY_UPDATE_TO_OTHER_ENGAGING_ACCESSORS - NA01_INNOVATOR_SUBMITS_FOR_NEEDS_ASSESSMENT_TO_INNOVATOR - NA02_INNOVATOR_SUBMITS_FOR_NEEDS_ASSESSMENT_TO_ASSESSMENT - NA03_NEEDS_ASSESSMENT_STARTED_TO_INNOVATOR - NA04_NEEDS_ASSESSMENT_COMPLETE_TO_INNOVATOR - NA06_NEEDS_ASSESSOR_REMOVED - NA07_NEEDS_ASSESSOR_ASSIGNED - OS01_UNITS_SUGGESTION_TO_SUGGESTED_UNITS_QA - OS02_UNITS_SUGGESTION_NOT_SHARED_TO_INNOVATOR - OS03_INNOVATION_DELAYED_SHARED_SUGGESTION - RE01_EXPORT_REQUEST_SUBMITTED - RE02_EXPORT_REQUEST_APPROVED - RE03_EXPORT_REQUEST_REJECTED - AI01_INNOVATION_ARCHIVED_TO_SELF - AI02_INNOVATION_ARCHIVED_TO_COLLABORATORS - AI03_INNOVATION_ARCHIVED_TO_ENGAGING_QA_A - AI04_INNOVATION_ARCHIVED_TO_NA_DURING_NEEDS_ASSESSMENT - SH04_INNOVATION_STOPPED_SHARING_WITH_INDIVIDUAL_ORG_TO_OWNER - SH05_INNOVATION_STOPPED_SHARING_WITH_INDIVIDUAL_ORG_TO_QA_A - DA01_OWNER_DELETED_ACCOUNT_WITH_PENDING_TRANSFER_TO_COLLABORATOR - DA02_OWNER_DELETED_ACCOUNT_WITHOUT_PENDING_TRANSFER_TO_COLLABORATOR - MC01_COLLABORATOR_INVITE_EXISTING_USER - MC02_COLLABORATOR_INVITE_NEW_USER - MC03_COLLABORATOR_UPDATE_CANCEL_INVITE - MC04_COLLABORATOR_UPDATE_ACCEPTS_INVITE - MC05_COLLABORATOR_UPDATE_DECLINES_INVITE - MC06_COLLABORATOR_UPDATE_REMOVED_COLLABORATOR - MC07_COLLABORATOR_UPDATE_COLLABORATOR_LEFT_TO_INNOVATORS - MC08_COLLABORATOR_UPDATE_COLLABORATOR_LEFT_TO_SELF - TO01_TRANSFER_OWNERSHIP_NEW_USER - TO02_TRANSFER_OWNERSHIP_EXISTING_USER - TO06_TRANSFER_OWNERSHIP_ACCEPTS_PREVIOUS_OWNER - TO07_TRANSFER_OWNERSHIP_ACCEPTS_ASSIGNED_ACCESSORS - TO08_TRANSFER_OWNERSHIP_DECLINES_PREVIOUS_OWNER - TO09_TRANSFER_OWNERSHIP_CANCELED_NEW_OWNER - AP02_INNOVATOR_LOCKED_TO_ASSIGNED_USERS - AP03_USER_LOCKED_TO_LOCKED_USER - AP07_UNIT_INACTIVATED_TO_ENGAGING_INNOVATIONS - AP08_USER_EMAIL_ADDRESS_UPDATED - AP09_NEW_SUPPORTING_ACCOUNT - CA01_ACCOUNT_CREATION_OF_INNOVATOR - CA02_ACCOUNT_CREATION_OF_COLLABORATOR - AU01_INNOVATOR_INCOMPLETE_RECORD - AU02_ACCESSOR_IDLE_ENGAGING_SUPPORT - AU03_INNOVATOR_IDLE_SUPPORT - AU04_SUPPORT_KPI_REMINDER - AU05_SUPPORT_KPI_OVERDUE - AU06_ACCESSOR_IDLE_WAITING - AU07_TRANSFER_ONE_WEEK_REMINDER_NEW_USER - AU08_TRANSFER_ONE_WEEK_REMINDER_EXISTING_USER - AU09_TRANSFER_EXPIRED - AU10_ACCESSOR_IDLE_ENGAGING_SUPPORT_FOR_SIX_WEEKS - AU11_ACCESSOR_IDLE_WAITING_SUPPORT_FOR_SIX_WEEKS - AU12_INNOVATOR_SURVEY_END_SUPPORT_TWO_MONTHS_REMINDER - SUPPORT_UPDATED - PROGRESS_UPDATE_CREATED - INNOVATION_RECORD_UPDATED - DOCUMENT_UPLOADED - REMINDER - SUGGESTED_SUPPORT_UPDATED - AP10_NEW_ANNOUNCEMENT - AP11_NEW_ANNOUNCEMENT_WITH_INNOVATIONS_NAME contextId: type: string createdAt: type: string format: date-time readAt: type: string format: date-time nullable: true params: type: object properties: {} additionalProperties: false required: - id - contextId - createdAt - readAt additionalProperties: false required: - count additionalProperties: false /v1/notify-me: delete: description: Notify me subscription delete operationId: v1-notify-me-delete tags: - "[v1] Notify Me" parameters: - name: ids in: query required: false schema: type: array items: type: string format: uuid minItems: 1 responses: "204": description: Subscriptions deleted "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not found "500": description: Internal server error post: description: Notify me subscription create operationId: v1-notify-me-subscription-create tags: - "[v1] Notify Me" parameters: [] requestBody: required: true content: application/json: schema: type: object properties: innovationId: type: string format: uuid config: anyOf: - type: object properties: eventType: type: string enum: - SUPPORT_UPDATED subscriptionType: type: string enum: - INSTANTLY - ONCE default: INSTANTLY preConditions: type: object properties: units: type: array items: type: string format: uuid minItems: 1 status: type: array items: type: string enum: - ENGAGING - WAITING - UNSUITABLE - CLOSED not: enum: - SUGGESTED - UNASSIGNED minItems: 1 required: - units - status additionalProperties: false notificationType: type: string enum: - SUPPORT_UPDATED - SUGGESTED_SUPPORT_UPDATED default: SUPPORT_UPDATED required: - eventType - preConditions additionalProperties: false x-required: true - type: object properties: eventType: type: string enum: - PROGRESS_UPDATE_CREATED subscriptionType: type: string enum: - INSTANTLY default: INSTANTLY preConditions: type: object properties: units: type: array items: type: string format: uuid minItems: 1 required: - units additionalProperties: false required: - eventType - preConditions additionalProperties: false x-required: true - type: object properties: eventType: type: string enum: - INNOVATION_RECORD_UPDATED subscriptionType: type: string enum: - INSTANTLY default: INSTANTLY preConditions: type: object properties: sections: type: array items: type: string enum: - INNOVATION_DESCRIPTION - UNDERSTANDING_OF_NEEDS - EVIDENCE_OF_EFFECTIVENESS - MARKET_RESEARCH - CURRENT_CARE_PATHWAY - TESTING_WITH_USERS - REGULATIONS_AND_STANDARDS - INTELLECTUAL_PROPERTY - REVENUE_MODEL - COST_OF_INNOVATION - DEPLOYMENT minItems: 1 additionalProperties: false required: - eventType - preConditions additionalProperties: false x-required: true - type: object properties: eventType: type: string enum: - DOCUMENT_UPLOADED subscriptionType: type: string enum: - INSTANTLY default: INSTANTLY required: - eventType additionalProperties: false - type: object properties: eventType: type: string enum: - REMINDER subscriptionType: type: string enum: - SCHEDULED default: SCHEDULED customMessage: type: string date: type: string format: date-time required: - eventType - customMessage - date additionalProperties: false required: - innovationId - config additionalProperties: false responses: "204": description: Subscription created "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not found "500": description: Internal server error get: description: Notify me subscriptions list operationId: v1-notify-me-subscription-list tags: - "[v1] Notify Me" responses: "200": description: List of user custom notifications content: application/json: schema: type: array items: type: object properties: innovationId: type: string format: uuid name: type: string count: type: integer subscriptions: type: object properties: {} additionalProperties: false required: - innovationId - name - count additionalProperties: false "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not found "500": description: Internal server error /v1/notify-me/innovation/{innovationId}: get: description: Notify me innovation subscriptions list operationId: v1-notify-me-innovation-subscription-list tags: - "[v1] Notify Me" parameters: - name: innovationId in: path required: true schema: type: string format: uuid responses: "200": description: List of user innovation custom notifications "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not found "500": description: Internal server error /v1/notify-me/{subscriptionId}: delete: description: Notify me subscription delete operationId: v1-notify-me-subscription-delete tags: - "[v1] Notify Me" parameters: - name: subscriptionId in: path required: true schema: type: string format: uuid responses: "204": description: Subscription deleted "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not found "500": description: Internal server error get: description: Notify me subscription get operationId: v1-notify-me-subscription-get tags: - "[v1] Notify Me" parameters: - name: subscriptionId in: path required: true schema: type: string format: uuid responses: "200": description: The subscription "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not found "500": description: Internal server error put: description: Notify me subscription update operationId: v1-notify-me-subscription-update tags: - "[v1] Notify Me" parameters: - name: subscriptionId in: path required: true schema: type: string format: uuid requestBody: required: true content: application/json: schema: anyOf: - type: object properties: eventType: type: string enum: - SUPPORT_UPDATED subscriptionType: type: string enum: - INSTANTLY - ONCE default: INSTANTLY preConditions: type: object properties: units: type: array items: type: string format: uuid minItems: 1 status: type: array items: type: string enum: - ENGAGING - WAITING - UNSUITABLE - CLOSED not: enum: - SUGGESTED - UNASSIGNED minItems: 1 required: - units - status additionalProperties: false notificationType: type: string enum: - SUPPORT_UPDATED - SUGGESTED_SUPPORT_UPDATED default: SUPPORT_UPDATED required: - eventType - preConditions additionalProperties: false x-required: true - type: object properties: eventType: type: string enum: - PROGRESS_UPDATE_CREATED subscriptionType: type: string enum: - INSTANTLY default: INSTANTLY preConditions: type: object properties: units: type: array items: type: string format: uuid minItems: 1 required: - units additionalProperties: false required: - eventType - preConditions additionalProperties: false x-required: true - type: object properties: eventType: type: string enum: - INNOVATION_RECORD_UPDATED subscriptionType: type: string enum: - INSTANTLY default: INSTANTLY preConditions: type: object properties: sections: type: array items: type: string enum: - INNOVATION_DESCRIPTION - UNDERSTANDING_OF_NEEDS - EVIDENCE_OF_EFFECTIVENESS - MARKET_RESEARCH - CURRENT_CARE_PATHWAY - TESTING_WITH_USERS - REGULATIONS_AND_STANDARDS - INTELLECTUAL_PROPERTY - REVENUE_MODEL - COST_OF_INNOVATION - DEPLOYMENT minItems: 1 additionalProperties: false required: - eventType - preConditions additionalProperties: false x-required: true - type: object properties: eventType: type: string enum: - DOCUMENT_UPLOADED subscriptionType: type: string enum: - INSTANTLY default: INSTANTLY required: - eventType additionalProperties: false - type: object properties: eventType: type: string enum: - REMINDER subscriptionType: type: string enum: - SCHEDULED default: SCHEDULED customMessage: type: string date: type: string format: date-time required: - eventType - customMessage - date additionalProperties: false responses: "204": description: Subscription created "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not found "500": description: Internal server error /v1/organisations/{organisationId}: get: description: Get organisation info. operationId: v1-organisation-info parameters: - name: organisationId in: path required: true schema: type: string format: uuid responses: "200": description: Success. "400": description: Bad request. "401": description: The user is not authorized to get this information. "500": description: An error occurred while getting this information. /v1/organisations/{organisationId}/units/{organisationUnitId}/accessors: get: description: Get an unit accessors and their associated innovations operationId: v1-organisation-unit-accessors parameters: - name: organisationId in: path required: true schema: type: string format: uuid - name: organisationUnitId in: path required: true schema: type: string format: uuid responses: "200": description: Success content: application/json: schema: type: object properties: count: type: integer data: type: array items: type: object properties: accessor: type: object properties: name: type: string role: type: string enum: - ADMIN - INNOVATOR - ACCESSOR - ASSESSMENT - QUALIFYING_ACCESSOR jobTitle: type: string nullable: true required: - name additionalProperties: false innovations: type: array items: type: object properties: id: type: string format: uuid name: type: string required: - id - name additionalProperties: false additionalProperties: false required: - count additionalProperties: false "400": description: Bad Request "401": description: Unauthorized "403": description: Forbidden "404": description: Not Found "500": description: Internal Server Error /v1/organisations/{organisationId}/units/{organisationUnitId}: get: description: Get organisation unitinfo. operationId: v1-organisation-unit-info parameters: - name: organisationId in: path required: true schema: type: string format: uuid - name: organisationUnitId in: path required: true schema: type: string format: uuid responses: "200": description: Success. "400": description: Bad request. "401": description: The user is not authorized to get this information. "500": description: An error occurred while getting this information. /v1/organisations: get: description: Retrieves organisations list operationId: v1-organisations-list tags: - "[v1] Organisations" parameters: [] responses: "200": description: Ok content: application/json: schema: type: array items: type: object properties: id: type: string format: uuid name: type: string acronym: type: string isActive: type: boolean organisationUnits: type: object properties: id: type: string format: uuid name: type: string acronym: type: string isActive: type: boolean required: - id - name - acronym additionalProperties: false required: - id - name - acronym additionalProperties: false /v1: head: operationId: v1-users-email-available description: Check if email is available for a new user. tags: - "[v1] Users" parameters: - name: email in: query required: true schema: type: string format: email description: Email of a user. responses: "200": description: Email is already in use. "404": description: Email is available. get: operationId: v1-users-list description: Get users list tags: - "[v1] Users" parameters: - name: skip in: query required: false schema: type: integer - name: take in: query required: false schema: type: integer maximum: 500 default: 20 - name: order in: query required: false schema: type: object properties: {} additionalProperties: type: string enum: - ASC - DESC default: default: DESC - name: userTypes in: query required: false schema: type: array items: type: string enum: - ADMIN - INNOVATOR - ACCESSOR - ASSESSMENT - QUALIFYING_ACCESSOR minItems: 1 description: Types of user to filter. - name: organisationUnitId in: query required: false schema: type: string format: uuid description: Id of the organisation unit the user belongs to. - name: onlyActive in: query required: false schema: type: boolean description: List only active users or all users. - name: fields in: query required: false schema: type: array items: type: string enum: - email description: Additional fields to display in response. default: [] responses: "200": description: Success content: application/json: schema: type: object properties: id: type: string description: Unique identifier for user object /v1/statistics: get: description: Get an user statistics operationId: v1-users-statistics tags: - "[v1] User Statistics" parameters: - name: statistics in: query required: true schema: type: array items: type: string enum: - WAITING_ASSESSMENT_COUNTER - ASSIGNED_INNOVATIONS_COUNTER - INNOVATIONS_ASSIGNED_TO_ME_COUNTER - TASKS_RESPONDED_COUNTER - INNOVATIONS_TO_REVIEW_COUNTER - INNOVATIONS_NEEDING_ACTION_COUNTER responses: "200": description: Ok content: application/json: schema: type: object