openapi: "3.0.0" info: title: Edge Impulse API version: 1.0.0 servers: - url: https://studio.edgeimpulse.com/v1 paths: # =============== # LOGIN # =============== /api-login: post: summary: Get JWT token security: [] description: Get a JWT token to authenticate with the API. tags: - Login operationId: "login" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GetJWTRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetJWTResponse' # =============== # User # =============== /api-user-create: post: summary: Create user security: [] description: Create a new user and project tags: - User operationId: "createUser" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateUserRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateUserResponse' /api-user-create-evaluate: post: summary: Create evaluation user security: [] description: Creates an evaluation user and a new project, and redirects the user to the new project. tags: - User operationId: "createEvaluationUser" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateEvaluationUserResponse' /api-user-create-enterprise-trial: post: summary: Create enterprise trial user security: [] description: Creates an enterprise trial user and a new trial organization, and redirects the user to the new organization. tags: - User operationId: "createEnterpriseTrialUser" requestBody: description: Trial request required: true content: application/json: schema: $ref: '#/components/schemas/CreateEnterpriseTrialUserRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateEnterpriseTrialResponse' /api-user-need-to-set-password/{usernameOrEmail}: get: summary: Get user registration state security: [] description: Tells whether a user is registered and whether it needs to set its password. tags: - User operationId: "getUserNeedToSetPassword" parameters: - $ref: '#/components/parameters/UsernameOrEmailParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetUserNeedToSetPasswordResponse' /api/user: get: summary: Get current user description: Get information about the current user. This function is only available through a JWT token. tags: - User operationId: "getCurrentUser" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetUserResponse' post: summary: Update current user description: Update user properties such as name. This function is only available through a JWT token. tags: - User operationId: "updateCurrentUser" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateUserRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete current user description: Delete a user. This function is only available through a JWT token, and can only remove the current user. tags: - User operationId: "deleteCurrentUser" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/user/convert: post: summary: Convert current evaluation user description: Convert current evaluation user account to regular account. tags: - User operationId: "convertCurrentUser" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ConvertUserRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/user/activate: post: summary: Activate current user description: Activate the current user account (requires an activation code). This function is only available through a JWT token. tags: - User operationId: "activateCurrentUser" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ActivateUserOrVerifyEmailRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/user/request-activation: post: summary: Request activation code description: Request a new activation code for the current user. This function is only available through a JWT token. tags: - User operationId: "requestActivationCodeCurrentUser" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/user/create-developer-profile: post: summary: Create developer profile description: Create a developer profile for the current active user. tags: - User operationId: "createDeveloperProfile" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateDeveloperProfileResponse' /api/user/trial: post: summary: Start enterprise trial description: Create an enterprise trial for the current user. Users can only go through a trial once. tags: - User operationId: "startEnterpriseTrial" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StartEnterpriseTrialRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateEnterpriseTrialResponse' /api/user/emails: get: summary: List emails description: Get a list of all emails sent by Edge Impulse to the current user. This function is only available through a JWT token, and is not available for all users. security: [ "permissions": [ "users:emails:read" ] ] tags: - User operationId: "listEmailsCurrentUser" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListEmailResponse' /api/user/photo: post: summary: Upload photo description: Upload a photo for the current user. This function is only available through a JWT token. tags: - User operationId: "uploadPhotoCurrentUser" requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UploadUserPhotoRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UploadUserPhotoResponse' delete: summary: Delete photo description: Delete user profile photo. This function is only available through a JWT token. tags: - User operationId: "deletePhotoCurrentUser" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/user/change-password: post: summary: Change password current user description: Change the password for the current user account. This function is only available through a JWT token. tags: - User operationId: "changePasswordCurrentUser" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ChangePasswordRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/user/organizations: get: summary: Get organizations description: List all organizations that the current user is a member of. This function is only available through a JWT token. tags: - User operationId: "listOrganizationsCurrentUser" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationsResponse' /api/users/buckets: get: summary: Get buckets current user description: List all organizational storage buckets that the current user has access to. This function is only available through a JWT token. tags: - User operationId: "listOrganizationBucketsCurrentUser" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationBucketsUserResponse' /api/user/by-third-party-activation-code: post: summary: Get user by third party activation code description: Get information about a user through an activation code. This function is only available through a JWT token. tags: - User operationId: "getUserByThirdPartyActivationCode" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserByThirdPartyActivationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetUserResponse' /api/user/activate-by-third-party-activation-code: post: summary: Activate user by third party activation code description: Activate a user that was created by a third party. This function is only available through a JWT token. tags: - User operationId: "activateUserByThirdPartyActivationCode" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ActivateUserByThirdPartyActivationCodeRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetJWTResponse' /api/user/accept-tos: post: summary: Accept Terms of Service description: Accept Terms of Service. tags: - User operationId: "acceptTermsOfService" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/user/dismiss-notification: post: summary: Dismiss a notification description: Dismiss a notification tags: - User operationId: "userDismissNotification" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserDismissNotificationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/user/mfa/totp/create-key: post: summary: Generate a new TOTP MFA key description: Creates a new MFA key, only allowed if the user has no MFA configured. TOTP tokens use SHA-1 algorithm. tags: - User operationId: "userGenerateNewTotpMfaKey" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UserGenerateNewMfaKeyResponse' /api/user/mfa/totp/set-key: post: summary: Set TOTP MFA key description: Enable MFA on this account using an TOTP token. First create a new key via `userGenerateNewTotpMfaKey`. tags: - User operationId: "userSetTotpMfaKey" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserSetTotpMfaKeyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UserSetTotpMfaKeyResponse' /api/user/mfa/totp/clear: post: summary: Remove TOTP MFA key description: Disable MFA on this account using an TOTP token. tags: - User operationId: "userDeleteTotpMfaKey" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UserDeleteTotpMfaKeyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/users/{userId}: get: summary: Get user description: Get information about a user. This function is only available through a JWT token. tags: - User parameters: - $ref: '#/components/parameters/UserIdParameter' operationId: "getUser" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetUserResponse' post: summary: Update user description: Update user properties such as name. This function is only available through a JWT token. tags: - User parameters: - $ref: '#/components/parameters/UserIdParameter' operationId: "updateUser" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateUserRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete user description: Delete a user. This function is only available through a JWT token, and can only remove the current user. tags: - User parameters: - $ref: '#/components/parameters/UserIdParameter' operationId: "deleteUser" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/users/{userId}/activate: post: summary: Activate user description: Activate a user account (requires an activation code). This function is only available through a JWT token. tags: - User parameters: - $ref: '#/components/parameters/UserIdParameter' operationId: "activateUser" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ActivateUserOrVerifyEmailRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/users/{userId}/request-activation: post: summary: Request activation code description: Request a new activation code. This function is only available through a JWT token. tags: - User parameters: - $ref: '#/components/parameters/UserIdParameter' operationId: "requestActivationCodeUser" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/users/{userId}/emails: get: summary: List emails description: Get a list of all emails sent by Edge Impulse to a user. This function is only available through a JWT token, and is not available for all users. security: [ "permissions": [ "users:emails:read" ] ] tags: - User parameters: - $ref: '#/components/parameters/UserIdParameter' operationId: "listEmailsUser" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListEmailResponse' /api/users/{userId}/photo: post: summary: Upload photo description: Upload a photo for a user. This function is only available through a JWT token, and is not available for all users. tags: - User parameters: - $ref: '#/components/parameters/UserIdParameter' operationId: "uploadPhotoUser" requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UploadUserPhotoRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UploadUserPhotoResponse' /api/users/{userId}/change-password: post: summary: Change password description: Change the password for a user account. This function is only available through a JWT token. tags: - User parameters: - $ref: '#/components/parameters/UserIdParameter' operationId: "changePasswordUser" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ChangePasswordRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/users/{userId}/set-password: post: summary: Set password for SSO user description: Set the password for a new SSO user. This function is only available through an SSO access token. security: [] tags: - User parameters: - $ref: '#/components/parameters/UserIdParameter' operationId: "setUserPassword" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetUserPasswordRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/users/{userId}/organizations: get: summary: Get organizations description: List all organizations for a user. This function is only available through a JWT token. tags: - User operationId: "listOrganizationsUser" parameters: - $ref: '#/components/parameters/UserIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationsResponse' /api/users/{userId}/buckets: get: summary: Get buckets description: List all organizational storage buckets that a user has access to. This function is only available through a JWT token. tags: - User operationId: "listOrganizationBucketsUser" parameters: - $ref: '#/components/parameters/UserIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationBucketsUserResponse' /api/users/{userId}/feedback: post: summary: Send feedback description: Send feedback to Edge Impulse or get in touch with sales. tags: - User operationId: "sendUserFeedback" parameters: - $ref: '#/components/parameters/UserIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SendUserFeedbackRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/users/{userId}/upgrade: post: summary: Send upgrade request description: Send an upgrade to Enterprise request to Edge Impulse. tags: - User operationId: "sendUserUpgradeRequest" parameters: - $ref: '#/components/parameters/UserIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EnterpriseUpgradeOrTrialExtensionRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/users/{userId}/trials: get: summary: Get enterprise trials description: Get a list of all enterprise trials for a user. This function is only available through a JWT token. tags: - User operationId: "listEnterpriseTrialsUser" parameters: - $ref: '#/components/parameters/UserIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListEnterpriseTrialsResponse' /api-user-request-reset-password: post: summary: Request reset password security: [] description: Request a password reset link for a user. tags: - User operationId: "requestResetPassword" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RequestResetPasswordRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api-user-reset-password: post: summary: Reset password security: [] description: Reset the password for a user. tags: - User operationId: "resetPassword" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ResetPasswordRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api-user-verify-reset-password-code: post: summary: Verify reset password code security: [] description: Verify whether the reset password code for the user is valid. tags: - User operationId: "verifyResetPassword" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VerifyResetPasswordRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' # =============== # THIRD PARTY AUTH # =============== /api/third-party-auth: get: summary: Get all third party auth description: Get information about all third party authentication partners operationId: getAllThirdPartyAuth security: [ "permissions": [ "thirdpartyauth:read" ] ] tags: - ThirdPartyAuth responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetAllThirdPartyAuthResponse' post: summary: Create third party auth description: Create a new third party authentication partner operationId: createThirdPartyAuth security: [ "permissions": [ "thirdpartyauth:write" ] ] tags: - ThirdPartyAuth requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateThirdPartyAuthRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateThirdPartyAuthResponse' /api/third-party-auth/{authId}: get: summary: Get third party auth description: Get information about a third party authentication partner operationId: getThirdPartyAuth security: [ "permissions": [ "thirdpartyauth:read" ] ] tags: - ThirdPartyAuth parameters: - $ref: '#/components/parameters/AuthIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetThirdPartyAuthResponse' post: summary: Update third party auth description: Update a third party authentication partner operationId: updateThirdPartyAuth security: [ "permissions": [ "thirdpartyauth:write" ] ] tags: - ThirdPartyAuth parameters: - $ref: '#/components/parameters/AuthIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateThirdPartyAuthRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete third party auth description: Delete a third party authentication partner operationId: deleteThirdPartyAuth security: [ "permissions": [ "thirdpartyauth:write" ] ] tags: - ThirdPartyAuth parameters: - $ref: '#/components/parameters/AuthIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/third-party-auth/{authId}/authorize: post: summary: Give access to project description: Authorize a third party to access a project operationId: authorizeThirdParty tags: - ThirdPartyAuth parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/AuthIdParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/AuthorizeThirdPartyRequest' responses: '302': description: "A redirect to the nextUrl from the request" /api/third-party-auth/{authId}/login: post: summary: Create or login a user description: Login as a user as a third-party authentication provider. If the user does not exists, it's automatically created. You can only log in as users that were previously created by you. tags: - ThirdPartyAuth x-middleware: - RequiresThirdPartyAuthApiKey parameters: - $ref: '#/components/parameters/AuthIdParameter' operationId: "createUserThirdParty" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateUserThirdPartyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateUserThirdPartyResponse' # ======= # Themes # ======= /api/themes: get: summary: Get themes description: Get all available Studio themes. operationId: getThemes tags: - Themes responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetThemesResponse' /api/themes/{themeId}: get: summary: Get theme by ID description: Get a theme given its unique identifier. operationId: getTheme tags: - Themes parameters: - $ref: '#/components/parameters/ThemeIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetThemeResponse' delete: summary: Delete theme by ID description: Delete a theme given its unique identifier. operationId: deleteTheme tags: - Themes parameters: - $ref: '#/components/parameters/ThemeIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/themes/{themeId}/logos: post: summary: Update theme logos description: Update some or all theme logos. operationId: updateThemeLogos tags: - Themes parameters: - $ref: '#/components/parameters/ThemeIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateThemeLogosRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/themes/{themeId}/colors: post: summary: Update theme colors description: Update some or all theme colors. operationId: updateThemeColors tags: - Themes parameters: - $ref: '#/components/parameters/ThemeIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateThemeColorsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/themes/{themeId}/favicon: post: summary: Update theme favicon description: Update the theme favicon operationId: updateThemeFavicon tags: - Themes parameters: - $ref: '#/components/parameters/ThemeIdParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadImageRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' # =========== # Whitelabels # =========== /api/whitelabels: get: summary: List the registered white labels description: Retrieve the list of registered white labels. security: [ "permissions": [ "whitelabels:read" ] ] tags: - Whitelabels operationId: "getAllWhitelabels" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetAllWhitelabelsResponse' post: summary: Create a new white label description: Create a new white label security: [ "permissions": [ "whitelabels:write" ] ] tags: - Whitelabels operationId: "createWhitelabel" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateWhitelabelRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateWhitelabelResponse' /api/whitelabel/{whitelabelIdentifier}: get: summary: White label information description: Retrieve all the information about this white label. security: [ "permissions": [ "whitelabels:read" ] ] tags: - Whitelabels operationId: "getWhitelabel" parameters: - $ref: '#/components/parameters/WhitelabelIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetWhitelabelResponse' delete: summary: Deletes a white label description: Deletes the white label with the given id. security: [ "permissions": [ "whitelabels:write" ] ] tags: - Whitelabels operationId: "deleteWhitelabel" parameters: - $ref: '#/components/parameters/WhitelabelIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/whitelabel/{whitelabelIdentifier}/domain: get: summary: Get white label domain description: Get a white label domain given its unique identifier. operationId: getWhitelabelDomain security: [] tags: - Whitelabels parameters: - $ref: '#/components/parameters/WhitelabelIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetWhitelabelDomainResponse' /api/whitelabel/{whitelabelIdentifier}/deploymentTargets: post: summary: Update deployment targets description: Update some or all of the deployment targets enabled for this white label. operationId: updateDeploymentTargets tags: - Whitelabels parameters: - $ref: '#/components/parameters/WhitelabelIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateWhitelabelDeploymentTargetsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/whitelabel/{whitelabelIdentifier}/impulse/blocks: get: summary: Get impulse blocks description: "Lists all possible DSP and ML blocks available for this white label." operationId: getAllImpulseBlocks tags: - Whitelabels parameters: - $ref: '#/components/parameters/WhitelabelIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetImpulseBlocksResponse' # ================== # DEPLOYMENT TARGETS # ================== /api/deployment/targets: get: summary: Deployment targets description: List all deployment targets operationId: listAllDeploymentTargets tags: - Deployment x-middleware: - AllowsReadOnly responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DeploymentTargetsResponse' # =============== # PROJECTS # =============== /api/projects: get: summary: List active projects x-skip-route: true description: Retrieve list of active projects. If authenticating using JWT token this lists all the projects the user has access to, if authenticating using an API key, this only lists that project. tags: - Projects operationId: "listProjects" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListProjectsResponse' /api/projects/create: post: summary: Create new project description: Create a new project. This API can only be called using a JWT token. tags: - Projects operationId: "createProject" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateProjectRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateProjectResponse' /api/{projectId}/devkeys: get: summary: Get development keys description: Retrieve the development API and HMAC keys for a project. These keys are specifically marked to be used during development. These keys can be `undefined` if no development keys are set. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "listDevkeys" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DevelopmentKeysResponse' /api/{projectId}/downloads: get: summary: Get downloads description: Retrieve the downloads for a project. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "listDownloads" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProjectDownloadsResponse' /api/{projectId}/csv-wizard/download-config: get: summary: Download CSV Wizard config description: Returns a JSON file with the current CSV wizard config. If there is no config this will throw a 5xx error. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "downloadCsvWizardConfig" responses: '200': description: OK content: application/octet-stream: schema: type: string format: binary /api/{projectId}/csv-wizard/uploaded-file: get: summary: Get CSV Wizard uploaded file info description: Returns whether the file that was uploaded when the CSV wizard was configured is available. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "getCsvWizardUploadedFileInfo" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetCsvWizardUploadedFileInfo' post: summary: Store CSV Wizard uploaded file description: Asynchronously called in the CSV Wizard to store the file that the CSV wizard was based on. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "uploadCsvWizardUploadedFile" requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadCsvWizardUploadedFileRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/csv-wizard/uploaded-file/download: get: summary: Download CSV Wizard uploaded file description: Returns the file that was uploaded when the CSV wizard was configured. If there is no config this will throw a 5xx error. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "downloadCsvWizardUploadedFile" responses: '200': description: OK content: application/octet-stream: schema: type: string format: binary /api/{projectId}/collaborators/add: post: summary: Add collaborator description: Add a collaborator to a project. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "addCollaborator" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddCollaboratorRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/collaborators/remove: post: summary: Remove collaborator description: Remove a collaborator to a project. Note that you cannot invoke this function if only a single collaborator is present. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "removeCollaborator" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RemoveCollaboratorRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/collaborators/transfer-ownership: post: summary: Transfer ownership (user) description: Transfer ownership of a project to another user. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "transferOwnership" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddCollaboratorRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/collaborators/transfer-ownership-org: post: summary: Transfer ownership (organization) description: Transfer ownership of a project to another organization. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "transferOwnershipOrganization" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TransferOwnershipOrganizationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/hmackeys: get: summary: Get HMAC keys description: Retrieve all HMAC keys. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "listProjectHmacKeys" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListHmacKeysResponse' post: summary: Add HMAC key description: Add an HMAC key. If you set `developmentKey` to `true` this flag will be removed from the current development HMAC key. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "addProjectHmacKey" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddHmacKeyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/hmackeys/{hmacId}: delete: summary: Remove HMAC key description: Revoke an HMAC key. Note that if you revoke the development key some services (such as automatic provisioning of devices through the serial daemon) will no longer work. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/HmacIdParameter' operationId: "revokeProjectHmacKey" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/apikeys: get: summary: Get API keys description: Retrieve all API keys. This does **not** return the full API key, but only a portion (for security purposes). The development key will be returned in full, as it'll be set in devices and is thus not private. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "listProjectApiKeys" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListApiKeysResponse' post: summary: Add API key description: Add an API key. If you set `developmentKey` to `true` this flag will be removed from the current development API key. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "addProjectApiKey" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddProjectApiKeyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/apikeys/{apiKeyId}: delete: summary: Revoke API key description: Revoke an API key. Note that if you revoke the development API key some services (such as automatic provisioning of devices through the serial daemon) will no longer work. tags: - Projects x-middleware: - ProjectRequiresAdmin parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/ApiKeyIdParameter' operationId: "revokeProjectApiKey" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/emails: get: summary: List emails description: Get a list of all emails sent by Edge Impulse regarding this project. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "listEmails" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListEmailResponse' /api/{projectId}/socket-token: get: summary: Get socket token description: Get a token to authenticate with the web socket interface. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "getSocketToken" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SocketTokenResponse' /api/{projectId}/data-axes: get: summary: Get data axes summary description: Get a list of axes that are present in the training data. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/IncludeDisabledParameter' - $ref: '#/components/parameters/IncludeNotProcessedParameter' operationId: "getProjectDataAxesSummary" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProjectDataAxesSummaryResponse' /api/{projectId}/data-summary: get: summary: Get data summary description: Get summary of all data present in the training set. This returns the number of data items, the total length of all data, and the labels. This is similar to `dataSummary` in `ProjectInfoResponse` but allows you to exclude disabled items or items that are still processing. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/IncludeDisabledParameter' - $ref: '#/components/parameters/IncludeNotProcessedParameter' operationId: "getProjectTrainingDataSummary" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProjectTrainingDataSummaryResponse' /api/{projectId}/data-interval: get: summary: Get the interval (in ms) of the training data description: Get the interval of the training data; if multiple intervals are present, the interval of the longest data item is returned. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "getProjectRecommendedDataInterval" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProjectDataIntervalResponse' /api/{projectId}/compute-time-limit: post: summary: Set compute time limit description: Change the job compute time limit for the project. This function is only available through a JWT token, and is not available to all users. security: [ "permissions": [ "projects:limits:write" ] ] tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "setProjectComputeTimeLimit" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetProjectComputeTimeRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/dsp-file-size-limit: post: summary: Set DSP file size limit description: Change the DSP file size limit for the project. This function is only available through a JWT token, and is not available to all users. security: [ "permissions": [ "projects:limits:write" ] ] tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "setProjectFileSizeLimit" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetProjectDspFileSizeRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/versions: get: summary: List versions description: Get all versions for this project. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "listVersions" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListVersionsResponse' /api/{projectId}/versions/public: get: summary: List public versions description: Get all public versions for this project. You don't need any authentication for this function. security: [] tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "listPublicVersions" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListPublicVersionsResponse' /api/{projectId}/versions/{versionId}: post: summary: Update version description: Updates a version, this only updates fields that were set in the body. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/VersionIdParameter' operationId: "updateVersion" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateVersionRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete versions description: Delete a version. This does not delete the version from cold storage. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/VersionIdParameter' operationId: "deleteVersion" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/versions/{versionId}/make-private: post: summary: Make version private description: Make a public version private. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/VersionIdParameter' operationId: "makeVersionPrivate" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/readme/upload-image: post: summary: Upload image for readme description: Uploads an image to the user CDN and returns the path. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "uploadReadmeImage" requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadImageRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UploadReadmeImageResponse' /api/{projectId}/launch-getting-started: post: summary: Launch getting started wizard description: This clears out *all data in your project*, and is irrevocable. This function is only available through a JWT token, and is not available to all users. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "launchGettingStartedWizard" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/last-modification: get: summary: Last modification description: Get the last modification date for a project (will be upped when data is modified, or when an impulse is trained) tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "getProjectLastModificationDate" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/LastModificationDateResponse' /api/{projectId}/development-boards: get: summary: Development boards description: List all development boards for a project operationId: listDevelopmentBoards tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DevelopmentBoardsResponse' /api/{projectId}/target-constraints: get: summary: Get target constraints description: "Retrieve target constraints for a project. The constraints object captures hardware attributes of your target device, along with an application budget to allow guidance on performance and resource usage" operationId: getTargetConstraints tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetTargetConstraintsResponse' post: summary: Set target constraints description: "Set target constraints for a project. Use the constraints object to capture hardware attributes of your target device, along with an application budget to allow guidance on performance and resource usage" operationId: setTargetConstraints tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TargetConstraints' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/dismiss-notification: post: summary: Dismiss a notification description: Dismiss a notification operationId: projectDismissNotification tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProjectDismissNotificationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' # =============== # PROJECT TAGS # =============== /api/{projectId}/tags: post: summary: Update tags description: "Update the list of project tags." tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "updateProjectTags" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateProjectTagsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' # =============== # PUBLIC PROJECTS # =============== /api/projects/public: get: summary: List public projects description: Retrieve the list of all public projects. You don't need any authentication for this method. security: [] tags: - Projects parameters: - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/FiltersProjectNameParameter' operationId: "listPublicProjects" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListPublicProjectsResponse' # =============== # DEVICES # =============== /api/{projectId}/devices: get: summary: Lists devices description: "List all devices for this project. Devices get included here if they connect to the remote management API or if they have sent data to the ingestion API and had the `device_id` field set." tags: - Devices parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "listDevices" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListDevicesResponse' /api/{projectId}/device/{deviceId}: get: summary: Get device description: "Retrieves a single device" tags: - Devices parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DeviceIdParameter' operationId: "getDevice" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetDeviceResponse' delete: summary: Delete device description: "Delete a device. When this device sends a new message to ingestion or connects to remote management the device will be recreated." tags: - Devices parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DeviceIdParameter' operationId: "deleteDevice" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/device/{deviceId}/start-sampling: post: summary: Start sampling description: "Start sampling on a device. This function returns immediately. Updates are streamed through the websocket API." tags: - Devices parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DeviceIdParameter' operationId: "startSampling" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StartSamplingRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartSamplingResponse' /api/{projectId}/devices/create: post: summary: Create device description: Create a new device. If you set `ifNotExists` to `false` and the device already exists, the `deviceType` will be overwritten. tags: - Devices parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "createDevice" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateDeviceRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/devices/{deviceId}/rename: post: summary: Rename description: Set the current name for a device. tags: - Devices parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DeviceIdParameter' operationId: "renameDevice" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RenameDeviceRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' # =============== # RAW DATA # =============== /api/{projectId}/raw-data: get: summary: List samples description: Retrieve all raw data by category. operationId: listSamples tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/RawDataCategoryQueryParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/ExcludeSensorsParameter' - $ref: '#/components/parameters/FiltersLabelsParameter' - $ref: '#/components/parameters/FiltersFilenameParameter' - $ref: '#/components/parameters/FiltersMaxLengthParameter' - $ref: '#/components/parameters/FiltersMinLengthParameter' - $ref: '#/components/parameters/FiltersMinFrequencyParameter' - $ref: '#/components/parameters/FiltersMaxFrequencyParameter' - $ref: '#/components/parameters/FiltersSignatureParameter' - $ref: '#/components/parameters/FiltersDisabledParameter' - $ref: '#/components/parameters/SearchQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListSamplesResponse' /api/{projectId}/raw-data/count: get: summary: Count samples description: Count all raw data by category. operationId: countSamples tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/RawDataCategoryQueryParameter' - $ref: '#/components/parameters/FiltersLabelsParameter' - $ref: '#/components/parameters/FiltersFilenameParameter' - $ref: '#/components/parameters/FiltersMaxLengthParameter' - $ref: '#/components/parameters/FiltersMinLengthParameter' - $ref: '#/components/parameters/FiltersMinFrequencyParameter' - $ref: '#/components/parameters/FiltersMaxFrequencyParameter' - $ref: '#/components/parameters/FiltersSignatureParameter' - $ref: '#/components/parameters/FiltersDisabledParameter' - $ref: '#/components/parameters/SearchQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CountSamplesResponse' /api/{projectId}/raw-data/label-object-detection-queue: get: summary: Object detection label queue description: Get all unlabeled items from the object detection queue. operationId: getObjectDetectionLabelQueue tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ObjectDetectionLabelQueueResponse' /api/{projectId}/raw-data/label-object-detection-queue/count: get: summary: Object detection label queue count description: Get count for unlabeled items from the object detection queue. operationId: getObjectDetectionLabelQueueCount tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ObjectDetectionLabelQueueCountResponse' /api/{projectId}/rebalance: post: summary: Rebalance dataset description: Rebalances the dataset over training / testing categories. This resets the category for all data and splits it 80%/20% between training and testing. This is a deterministic process based on the hash of the name of the data. operationId: rebalanceDataset tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RebalanceDatasetResponse' /api/{projectId}/raw-data/clear-all-object-detection-labels: post: summary: Clear all object detection labels description: Clears all object detection labels for this dataset, and places all images back in the labeling queue. operationId: clearAllObjectDetectionLabels tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/delete-all: post: summary: Remove all samples description: Deletes all samples for this project over all categories. This also invalidates all DSP and learn blocks. Note that this does not delete the data from cold storage. operationId: deleteAllSamples tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/delete-all/{category}: post: summary: Remove all samples by category description: Deletes all samples for this project over a single category. Note that this does not delete the data from cold storage. operationId: deleteAllSamplesByCategory tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/RawDataCategoryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/metadata: get: summary: Get project sample metadata description: Get metadata for all samples in a project. operationId: getSampleMetadata tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/RawDataCategoryQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetSampleMetadataResponse' /api/{projectId}/raw-data/auto-labeler/run: post: summary: Run auto-labeler job description: Run the auto-labeler over all unlabeled data. operationId: runAutoLabeler tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RunAutoLabelerRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/raw-data/auto-labeler: get: summary: Get auto-labeler results description: Retrieve the results of the auto-labeler (after running `StartJobResponse`) operationId: getAutoLabeler tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetAutoLabelerResponse' /api/{projectId}/raw-data/auto-labeler/image: get: summary: Get auto-labeler image description: Grab a segment image from the auto-labeler operationId: getAutoLabelerImage tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/GetAutoLabelerImageParameter' responses: '200': description: OK content: application/octet-stream: schema: type: string format: binary /api/{projectId}/raw-data/auto-labeler/save: post: summary: Save auto-labeler clusters description: Set labels for all auto-segment clusters. operationId: saveAutoLabelerClusters tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SaveAutoLabelerClustersRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SaveAutoLabelerClustersResponse' /api/{projectId}/raw-data/imported-from: get: summary: List data with "imported from" metadata key description: Lists all data with an 'imported from' metadata key. Used to check in a data source which items are already in a project. operationId: getAllImportedFrom tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetAllImportedFromResponse' /api/{projectId}/raw-data/{sampleId}: get: summary: Get sample description: Get a sample. operationId: getSample tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/LimitPayloadValues' - $ref: '#/components/parameters/CacheKeyParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetSampleResponse' delete: summary: Remove sample description: Deletes the sample. Note that this does not delete the data from cold storage. operationId: deleteSample tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/{sampleId}/raw: get: summary: Download file description: Download a sample in it's original format as uploaded to the ingestion service. operationId: getSampleAsRaw tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' responses: '200': description: CBOR or JSON file content: application/octet-stream: schema: type: string format: binary /api/{projectId}/raw-data/{sampleId}/wav: get: summary: Get WAV file description: Get a sample as a WAV file. This only applies to samples with an audio axis. operationId: getSampleAsAudio tags: - Raw data x-middleware: - SupportsRange - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/AxisIndexParameter' - $ref: '#/components/parameters/OptionalSliceStartParameter' - $ref: '#/components/parameters/OptionalSliceEndParameter' - $ref: '#/components/parameters/CacheKeyParameter' responses: '200': description: Wav file content: audio/wav: schema: type: string format: binary /api/{projectId}/raw-data/{sampleId}/image: get: summary: Get image file description: Get a sample as an image file. This only applies to samples with RGBA data. operationId: getSampleAsImage tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/AfterInputBlockParameter' - $ref: '#/components/parameters/CacheKeyParameter' responses: '200': description: Image file (either JPEG or PNG format) content: image/jpeg: schema: type: string format: binary /api/{projectId}/raw-data/{sampleId}/video: get: summary: Get video file description: Get a sample as an video file. This only applies to samples with video data. operationId: getSampleAsVideo tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/AfterInputBlockParameter' - $ref: '#/components/parameters/CacheKeyParameter' responses: '200': description: Video file in AVI or MP4 format content: video/mp4: schema: type: string format: binary /api/{projectId}/raw-data/{sampleId}/slice: get: summary: Get sample slice description: Get a slice of a sample. operationId: getSampleSlice tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/SliceStartParameter' - $ref: '#/components/parameters/OptionalSliceEndDefaultToWindowLengthParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetSampleResponse' /api/{projectId}/raw-data/{sampleId}/rename: post: summary: Rename sample description: Sets the file name of the sample. This name does not need to be unique, but it's highly recommended to do so. operationId: renameSample tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RenameSampleRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/{sampleId}/edit-label: post: summary: Edit label description: Sets the label (also known as class) of the sample. Use the same label for similar types of data, as they are used during training. operationId: editLabel tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EditSampleLabelRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/{sampleId}/move: post: summary: Move sample description: Move a sample to another category (e.g. from test to training). operationId: moveSample tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MoveRawDataRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/{sampleId}/crop: post: summary: Crop sample description: Crop a sample to within a new range. operationId: cropSample tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CropSampleRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CropSampleResponse' /api/{projectId}/raw-data/{sampleId}/split: post: summary: Split sample into frames description: Split a video sample into individual frames. operationId: splitSampleInFrames tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SplitSampleInFramesRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/{sampleId}/find-segments: post: summary: Find segments description: Find start and end times for all non-noise events in a sample operationId: findSegmentsInSample tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/FindSegmentSampleRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FindSegmentSampleResponse' /api/{projectId}/raw-data/{sampleId}/segment: post: summary: Segment sample description: Slice a sample into multiple segments. The original file will be marked as deleted, but you can crop any created segment to retrieve the original file. operationId: segmentSample tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SegmentSampleRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/{sampleId}/bounding-boxes: post: summary: Set bounding boxes description: Set the bounding boxes for a sample operationId: setSampleBoundingBoxes tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SampleBoundingBoxesRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/{sampleId}/structured-labels: post: summary: Update structured labels description: Set structured labels for a sample. If a sample has structured labels the `label` column is ignored, and the sample is allowed to have multiple labels. An array of { startIndex, endIndex, label } needs to be passed in with labels for the complete sample (see `valuesCount` to get the upper bound). endIndex is _inclusive_. If you pass in an incorrect array (e.g. missing values) you'll get an error back. operationId: setSampleStructuredLabels tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetSampleStructuredLabelsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/store-segment-length: post: summary: Store the last segment length description: When segmenting a sample into smaller segments, store the segment length to ensure uniform segment lengths. operationId: storeSegmentLength tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StoreSegmentLengthRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/{sampleId}/original: get: summary: Get the original downsampled data description: Get the original, uncropped, downsampled data. operationId: getUncroppedDownsampledSample tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/LimitPayloadValues' - $ref: '#/components/parameters/ZoomStart' - $ref: '#/components/parameters/ZoomEnd' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetSampleResponse' /api/{projectId}/raw-data/{sampleId}/retry-processing: post: summary: Retry processing description: If a sample failed processing, retry the processing operation. operationId: retryProcessing tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/{sampleId}/enable: post: summary: Enable sample description: Enable a sample, ensuring that it is not excluded from the dataset. operationId: enableSample tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/{sampleId}/disable: post: summary: Disable sample description: Disable a sample, ensuring that it is excluded from the dataset. operationId: disableSample tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/{sampleId}/autolabel: post: summary: Auto-label an image description: Classify an image using another neural network. operationId: classifyUsingAutolabel tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ObjectDetectionAutoLabelRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ObjectDetectionAutoLabelResponse' /api/{projectId}/raw-data/{sampleId}/metadata: post: summary: Set sample metadata description: Adds or updates the metadata associated to a sample. operationId: setSampleMetadata tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetSampleMetadataRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/{sampleId}/to-labeling-queue: post: summary: Move sample to labeling queue description: Clears the bounding box labels and moves item back to labeling queue operationId: moveToLabelingQueue tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/batch/edit-labels: post: summary: Edit labels for multiple samples description: Sets the label (also known as class) of multiple samples. operationId: batchEditLabels tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/RawDataCategoryQueryParameter' - $ref: '#/components/parameters/FiltersLabelsParameter' - $ref: '#/components/parameters/FiltersFilenameParameter' - $ref: '#/components/parameters/FiltersMaxLengthParameter' - $ref: '#/components/parameters/FiltersMinLengthParameter' - $ref: '#/components/parameters/FiltersMinFrequencyParameter' - $ref: '#/components/parameters/FiltersMaxFrequencyParameter' - $ref: '#/components/parameters/FiltersSignatureParameter' - $ref: '#/components/parameters/FiltersDisabledParameter' - $ref: '#/components/parameters/FiltersIdsParameter' - $ref: '#/components/parameters/FiltersExcludeIdsParameter' - $ref: '#/components/parameters/SearchQueryParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EditSampleLabelRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/batch/delete: post: summary: Remove multiple samples description: Deletes samples. Note that this does not delete the data from cold storage. operationId: batchDelete tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/RawDataCategoryQueryParameter' - $ref: '#/components/parameters/FiltersLabelsParameter' - $ref: '#/components/parameters/FiltersFilenameParameter' - $ref: '#/components/parameters/FiltersMaxLengthParameter' - $ref: '#/components/parameters/FiltersMinLengthParameter' - $ref: '#/components/parameters/FiltersMinFrequencyParameter' - $ref: '#/components/parameters/FiltersMaxFrequencyParameter' - $ref: '#/components/parameters/FiltersSignatureParameter' - $ref: '#/components/parameters/FiltersDisabledParameter' - $ref: '#/components/parameters/FiltersIdsParameter' - $ref: '#/components/parameters/FiltersExcludeIdsParameter' - $ref: '#/components/parameters/SearchQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/batch/moveSamples: post: summary: Move multiple samples description: Move multiple samples to another category (e.g. from test to training). operationId: batchMove tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/RawDataCategoryQueryParameter' - $ref: '#/components/parameters/FiltersLabelsParameter' - $ref: '#/components/parameters/FiltersFilenameParameter' - $ref: '#/components/parameters/FiltersMaxLengthParameter' - $ref: '#/components/parameters/FiltersMinLengthParameter' - $ref: '#/components/parameters/FiltersMinFrequencyParameter' - $ref: '#/components/parameters/FiltersMaxFrequencyParameter' - $ref: '#/components/parameters/FiltersSignatureParameter' - $ref: '#/components/parameters/FiltersDisabledParameter' - $ref: '#/components/parameters/FiltersIdsParameter' - $ref: '#/components/parameters/FiltersExcludeIdsParameter' - $ref: '#/components/parameters/SearchQueryParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/MoveRawDataRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/batch/enable-samples: post: summary: Enable multiple samples description: Enables samples, ensuring that they are not excluded from the dataset. operationId: batchEnable tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/RawDataCategoryQueryParameter' - $ref: '#/components/parameters/FiltersLabelsParameter' - $ref: '#/components/parameters/FiltersFilenameParameter' - $ref: '#/components/parameters/FiltersMaxLengthParameter' - $ref: '#/components/parameters/FiltersMinLengthParameter' - $ref: '#/components/parameters/FiltersMinFrequencyParameter' - $ref: '#/components/parameters/FiltersMaxFrequencyParameter' - $ref: '#/components/parameters/FiltersSignatureParameter' - $ref: '#/components/parameters/FiltersDisabledParameter' - $ref: '#/components/parameters/FiltersIdsParameter' - $ref: '#/components/parameters/FiltersExcludeIdsParameter' - $ref: '#/components/parameters/SearchQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/batch/disable-samples: post: summary: Disable multiple samples description: Disables samples, ensuring that they are excluded from the dataset. operationId: batchDisable tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/RawDataCategoryQueryParameter' - $ref: '#/components/parameters/FiltersLabelsParameter' - $ref: '#/components/parameters/FiltersFilenameParameter' - $ref: '#/components/parameters/FiltersMaxLengthParameter' - $ref: '#/components/parameters/FiltersMinLengthParameter' - $ref: '#/components/parameters/FiltersMinFrequencyParameter' - $ref: '#/components/parameters/FiltersMaxFrequencyParameter' - $ref: '#/components/parameters/FiltersSignatureParameter' - $ref: '#/components/parameters/FiltersDisabledParameter' - $ref: '#/components/parameters/FiltersIdsParameter' - $ref: '#/components/parameters/FiltersExcludeIdsParameter' - $ref: '#/components/parameters/SearchQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/track-objects: post: summary: Track objects description: Track objects between two samples. Source sample should have bounding boxes set. operationId: trackObjects tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TrackObjectsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TrackObjectsResponse' /api/{projectId}/raw-data/data-explorer/features: get: summary: Get data explorer features description: t-SNE2 output of the raw dataset operationId: getDataExplorerFeatures tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetDataExplorerFeaturesResponse' /api/{projectId}/raw-data/data-explorer/has-features: get: summary: Check data explorer features description: t-SNE2 output of the raw dataset operationId: hasDataExplorerFeatures tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/HasDataExplorerFeaturesResponse' /api/{projectId}/raw-data/data-explorer/predictions: get: summary: Get data explorer predictions description: Predictions for every data explorer point (only available when using current impulse to populate data explorer) operationId: getDataExplorerPredictions tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DataExplorerPredictionsResponse' /api/{projectId}/raw-data/data-explorer/clear: post: summary: Clear data explorer description: Remove the current data explorer state operationId: clearDataExplorer tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/data-explorer/settings: get: summary: Get data explorer settings description: Get data explorer configuration, like the type of data, and the input / dsp block to use. operationId: getDataExplorerSettings tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetDataExplorerSettingsResponse' post: summary: Set data explorer settings description: Set data explorer configuration, like the type of data, and the input / dsp block to use. operationId: setDataExplorerSettings tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DataExplorerSettings' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/data-explorer/screenshot: post: summary: Upload a data explorer screenshot description: Used internally (from a data pipeline) to upload a picture of the data explorer x-internal-api: true operationId: uploadDataExplorerScreenshot tags: - Raw data parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadImageRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/raw-data/data-quality/diversity/exists: get: summary: Check if data diversity metrics exist description: Determine if data diversity metrics have been calculated. To calculate these metrics, use the `calculateDataQualityMetrics` endpoint. operationId: hasDiversityData tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/HasDataExplorerFeaturesResponse' /api/{projectId}/raw-data/data-quality/diversity: get: summary: Get diversity metrics data description: Obtain metrics that describe the similarity and diversity of a dataset. To calculate these metrics, use the `calculateDataQualityMetrics` endpoint. operationId: getDiversityData tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetDiversityDataResponse' /api/{projectId}/raw-data/data-quality/label-noise/exists: get: summary: Check if label noise metrics exist description: Determine if label noise metrics have been calculated. To calculate these metrics, use the `calculateDataQualityMetrics` endpoint. operationId: hasLabelNoiseData tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/HasDataExplorerFeaturesResponse' /api/{projectId}/raw-data/data-quality/label-noise: get: summary: Get label noise data description: Obtain metrics that describe potential label noise issues in the dataset. To calculate these metrics, use the `calculateDataQualityMetrics` endpoint. operationId: getLabelNoiseData tags: - Raw data x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetLabelNoiseDataResponse' # =============== # Impulse # =============== /api/{projectId}/impulse: get: summary: Get impulse description: "Retrieve the impulse for this project" operationId: getImpulse tags: - Impulse parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetImpulseResponse' post: summary: Create impulse description: "Sets the impulse for this project." operationId: createImpulse tags: - Impulse parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Impulse' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete impulse description: "Completely clears the impulse for this project." operationId: deleteImpulse tags: - Impulse parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/impulse/all: get: summary: Get impulse including disabled blocks description: "Retrieve the impulse for this project including disabled blocks" operationId: getImpulseAll tags: - Impulse parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetImpulseResponse' /api/{projectId}/impulse/block-versions/{blockType}/{blockId}: post: summary: Create new block version description: Create a new version of a given block operationId: createBlockVersion tags: - Impulse parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/BlockTypeParameter' - $ref: '#/components/parameters/BlockIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateBlockVersionResponse' put: summary: Update block version details description: Update the details of a block version operationId: updateBlockVersion tags: - Impulse parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/BlockTypeParameter' - $ref: '#/components/parameters/BlockIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ImpulseBlockVersion' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/impulse/blocks: get: summary: Get impulse blocks description: "Lists all possible blocks that can be used in the impulse" operationId: getImpulseBlocks tags: - Impulse parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetImpulseBlocksResponse' /api/{projectId}/verify-dsp-block/url: post: summary: Verify custom DSP block description: "Verify the validity of a custom DSP block" operationId: verifyDspBlockUrl tags: - Impulse parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VerifyDspBlockUrlRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/VerifyDspBlockUrlResponse' # =============== # DSP # =============== /api/{projectId}/dsp/{dspId}: get: summary: Get config description: "Retrieve the configuration parameters for the DSP block. Use the impulse functions to retrieve all DSP blocks." operationId: getDspConfig tags: - DSP parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DSPConfigResponse' post: summary: Set config description: "Set configuration parameters for the DSP block. Only values set in the body will be overwritten." operationId: setDspConfig tags: - DSP parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DSPConfigRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/dsp/{dspId}/clear: post: summary: Clear DSP block description: "Clear generated features for a DSP block (used in tests)." operationId: clearDspBlock tags: - DSP parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/dsp/{dspId}/metadata: get: summary: Get metadata description: "Retrieve the metadata from a generated DSP block." operationId: getDspMetadata tags: - DSP x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' - $ref: '#/components/parameters/ExcludeIncludedSamplesParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DSPMetadataResponse' /api/{projectId}/dsp/{dspId}/raw-data/{sampleId}: get: summary: Get raw sample description: "Get raw sample data, but with only the axes selected by the DSP block. E.g. if you have selected only accX and accY as inputs for the DSP block, but the raw sample also contains accZ, accZ is filtered out. If you pass dspId = 0 this will return a raw graph without any processing." operationId: getDspRawSample tags: - DSP x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/LimitPayloadValues' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetSampleResponse' /api/{projectId}/dsp/{dspId}/raw-data/{sampleId}/slice: get: summary: Get raw sample (slice) description: "Get slice of raw sample data, but with only the axes selected by the DSP block. E.g. if you have selected only accX and accY as inputs for the DSP block, but the raw sample also contains accZ, accZ is filtered out." operationId: getDspSampleSlice tags: - DSP x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/SliceStartParameter' - $ref: '#/components/parameters/OptionalSliceEndDefaultToWindowLengthParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetSampleResponse' /api/{projectId}/dsp/{dspId}/raw-data/{sampleId}/slice/run: post: summary: Get processed sample (slice) description: "Get slice of sample data, and run it through the DSP block. This only the axes selected by the DSP block. E.g. if you have selected only accX and accY as inputs for the DSP block, but the raw sample also contains accZ, accZ is filtered out." operationId: runDspSampleSlice tags: - DSP parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/SliceStartParameter' - $ref: '#/components/parameters/OptionalSliceEndDefaultToWindowLengthParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DspRunRequestWithoutFeatures' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DspRunResponseWithSample' /api/{projectId}/dsp/{dspId}/raw-data/{sampleId}/slice/run/readonly: get: summary: Get processed sample (slice) description: "Get slice of sample data, and run it through the DSP block. This only the axes selected by the DSP block. E.g. if you have selected only accX and accY as inputs for the DSP block, but the raw sample also contains accZ, accZ is filtered out." operationId: runDspSampleSliceReadOnly tags: - DSP x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/SliceStartParameter' - $ref: '#/components/parameters/OptionalSliceEndDefaultToWindowLengthParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DspRunResponseWithSample' /api/{projectId}/dsp/{dspId}/features/labels: get: summary: Feature labels description: Retrieve the names of the features the DSP block generates operationId: getDspFeatureLabels tags: - DSP parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DspFeatureLabelsResponse' /api/{projectId}/dsp/{dspId}/features/get-graph/{category}: get: summary: Sample of trained features description: Get a sample of trained features, this extracts a number of samples and their labels. Used to visualize the current training set. operationId: dspSampleTrainedFeatures tags: - DSP x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' - $ref: '#/components/parameters/FeatureAx1Parameter' - $ref: '#/components/parameters/FeatureAx2Parameter' - $ref: '#/components/parameters/FeatureAx3Parameter' - $ref: '#/components/parameters/RawDataCategoryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DspTrainedFeaturesResponse' /api/{projectId}/dsp/{dspId}/features/get-graph/classification/{sampleId}: get: summary: Features for sample description: Runs the DSP block against a sample. This will move the sliding window (dependent on the sliding window length and the sliding window increase parameters in the impulse) over the complete file, and run the DSP function for every window that is extracted. operationId: dspGetFeaturesForSample tags: - DSP x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' - $ref: '#/components/parameters/SampleIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DspSampleFeaturesResponse' /api/{projectId}/dsp/{dspId}/features/importance: get: summary: Feature importance description: Retrieve the feature importance for a DSP block (only available for blocks where dimensionalityReduction is not enabled) operationId: getDspFeatureImportance tags: - DSP parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DspFeatureImportanceResponse' /api/{projectId}/dsp-data/{dspId}/x/{category}: get: summary: Download DSP data description: Download output from a DSP block over all data in the training set, already sliced in windows. In Numpy binary format. operationId: downloadDspData tags: - DSP x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' - $ref: '#/components/parameters/RawDataCategoryParameter' - $ref: '#/components/parameters/DSPDataRawParameter' responses: '200': description: Numpy binary file content: application/octet-stream: schema: type: string format: binary /api/{projectId}/dsp-data/{dspId}/y/{category}: get: summary: Download DSP labels description: Download labels for a DSP block over all data in the training set, already sliced in windows. operationId: downloadDspLabels tags: - DSP x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' - $ref: '#/components/parameters/RawDataCategoryParameter' responses: '200': description: Numpy binary file content: application/octet-stream: schema: type: string format: binary /api/{projectId}/dsp/{dspId}/get-autotuner-results: get: summary: Get results from DSP autotuner description: Get a set of parameters, found as a result of running the DSP autotuner. operationId: getAutotunerResults tags: - DSP parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DspAutotunerResults' /api/{projectId}/dsp-data/{dspId}/artifact/{key}: get: summary: Download a DSP artifact description: Download an artifact from a DSP block for debugging. This is an internal API. x-internal-api: true operationId: downloadDspArtifact tags: - DSP x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' - $ref: '#/components/parameters/DspArtifactKeyParameter' responses: '200': description: Artifact binary file content: application/octet-stream: schema: type: string format: binary /api/{projectId}/dsp/{dspId}/profile: post: summary: Profile custom DSP block description: Returns performance characteristics for a custom DSP block (needs `hasTfliteImplementation`). Updates are streamed over the websocket API (or can be retrieved through the /stdout endpoint). Use getProfileTfliteJobResult to get the results when the job is completed. tags: - DSP parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' operationId: "startProfileCustomDspBlock" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DspRunRequestWithoutFeaturesReadOnly' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/dsp/{dspId}/performance: get: summary: Get DSP block performance for all latency devices description: Get estimated performance (latency and RAM) for the DSP block, for all supported project latency devices. operationId: getPerformanceAllVariants tags: - DSP parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DspPerformanceAllVariantsResponse' /api/{projectId}/dsp/{dspId}/run: post: summary: Get processed sample (from features array) description: "Takes in a features array and runs it through the DSP block. This data should have the same frequency as set in the input block in your impulse." operationId: runDspOnFeaturesArray tags: - DSP parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DspIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DspRunRequestWithFeatures' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DspRunResponse' # =============== # Learn # =============== /api/{projectId}/training/{learnId}/x: get: summary: Download data description: Download the processed data for this learning block. This is data already processed by the signal processing blocks. operationId: getLearnXData tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' responses: '200': description: Numpy binary file content: application/octet-stream: schema: type: string format: binary /api/{projectId}/training/{learnId}/y: get: summary: Download labels description: Download the labels for this learning block. This is data already processed by the signal processing blocks. Not all blocks support this function. If so, a GenericApiResponse is returned with an error message. operationId: getLearnYData tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' responses: '200': description: Numpy binary file content: application/octet-stream: schema: type: string format: binary /api/{projectId}/training/anomaly/{learnId}: get: summary: Anomaly information description: Get information about an anomaly block, such as its dependencies. Use the impulse blocks to find the learnId. operationId: getAnomaly tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AnomalyResponse' post: summary: Anomaly settings description: Configure the anomaly block, such as its minimum confidence score. Use the impulse blocks to find the learnId. operationId: setAnomaly tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetAnomalyParameterRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/training/anomaly/{learnId}/metadata: get: summary: Anomaly metadata description: Get metadata about a trained anomaly block. Use the impulse blocks to find the learnId. operationId: getAnomalyMetadata tags: - Learn x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AnomalyModelMetadata' /api/{projectId}/training/anomaly/{learnId}/gmm/metadata: get: summary: Anomaly GMM metadata description: Get raw model metadata of the Gaussian mixture model (GMM) for a trained anomaly block. Use the impulse blocks to find the learnId. operationId: getGmmMetadata tags: - Learn x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AnomalyGmmMetadata' /api/{projectId}/training/keras/{learnId}: get: summary: Keras information description: Get information about a Keras block, such as its dependencies. Use the impulse blocks to find the learnId. operationId: getKeras tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/KerasResponse' post: summary: Keras settings description: Configure the Keras block, such as its minimum confidence score. Use the impulse blocks to find the learnId. operationId: setKeras tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetKerasParameterRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/training/keras/{learnId}/metadata: get: summary: Keras metadata description: Get metadata about a trained Keras block. Use the impulse blocks to find the learnId. operationId: getKerasMetadata tags: - Learn x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/KerasModelMetadata' /api/{projectId}/training/keras/{learnId}/data-explorer/features: get: summary: Get data explorer features description: t-SNE2 output of the raw dataset using embeddings from this Keras block operationId: getKerasDataExplorerFeatures tags: - Learn x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetDataExplorerFeaturesResponse' /api/{projectId}/training/keras/{learnId}/files: post: summary: Upload Keras files description: Replace Keras block files with the contents of a zip. This is an internal API. x-internal-api: true security: [ "permissions": [ "projects:training:keras:write" ] ] operationId: uploadKerasFiles tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UploadKerasFilesRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/training/keras/{learnId}/addFiles: post: summary: Add Keras files description: Add Keras block files with the contents of a zip. This is an internal API. x-internal-api: true security: [ "permissions": [ "projects:training:keras:write" ] ] operationId: addKerasFiles tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/AddKerasFilesRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/training/keras/{learnId}/download-export: get: summary: Download Keras export description: Download an exported Keras block - needs to be exported via 'exportKerasBlock' first operationId: downloadKerasExport tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' responses: '200': description: File content: application/zip: schema: type: string format: binary /api/{projectId}/training/keras/{learnId}/download-data: get: summary: Download Keras data export description: Download the data of an exported Keras block - needs to be exported via 'exportKerasBlockData' first operationId: downloadKerasData tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' responses: '200': description: File content: application/zip: schema: type: string format: binary /api/{projectId}/learn-data/{learnId}/model/{modelDownloadId}: get: summary: Download trained model description: Download a trained model for a learning block. Depending on the block this can be a TensorFlow model, or the cluster centroids. operationId: downloadLearnModel tags: - Learn x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' - $ref: '#/components/parameters/ModelDownloadIdParameter' responses: '200': description: File content: application/octet-stream: schema: type: string format: binary /api/{projectId}/training/anomaly/{learnId}/features/get-graph: get: summary: Trained features description: Get a sample of trained features, this extracts a number of samples and their features. operationId: anomalyTrainedFeatures tags: - Learn x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' - $ref: '#/components/parameters/FeatureAx1Parameter' - $ref: '#/components/parameters/FeatureAx2Parameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AnomalyTrainedFeaturesResponse' /api/{projectId}/training/anomaly/{learnId}/features/get-graph/classification/{sampleId}: get: summary: Trained features for sample description: Get trained features for a single sample. This runs both the DSP prerequisites and the anomaly classifier. operationId: anomalyTrainedFeaturesPerSample tags: - Learn x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' - $ref: '#/components/parameters/SampleIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AnomalyTrainedFeaturesResponse' /api/{projectId}/pretrained-model: get: summary: Get pretrained model description: Receive info back about the earlier uploaded pretrained model (via `uploadPretrainedModel`) input/output tensors. If you want to deploy a pretrained model from the API, see `startDeployPretrainedModelJob`. operationId: getPretrainedModelInfo tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetPretrainedModelResponse' /api/{projectId}/pretrained-model/upload: post: summary: Upload a pretrained model description: Upload a pretrained model and receive info back about the input/output tensors. If you want to deploy a pretrained model from the API, see `startDeployPretrainedModelJob`. operationId: uploadPretrainedModel tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/UploadPretrainedModelRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/pretrained-model/save: post: summary: Save parameters for pretrained model description: Save input / model configuration for a pretrained model. This overrides the current impulse. If you want to deploy a pretrained model from the API, see `startDeployPretrainedModelJob`. operationId: savePretrainedModelParameters tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: content: application/json: schema: $ref: '#/components/schemas/SavePretrainedModelRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/pretrained-model/test: post: summary: Test pretrained model description: Test out a pretrained model (using raw features) - upload first via `uploadPretrainedModel`. If you want to deploy a pretrained model from the API, see `startDeployPretrainedModelJob`. operationId: testPretrainedModel tags: - Learn x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: content: application/json: schema: $ref: '#/components/schemas/TestPretrainedModelRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/TestPretrainedModelResponse' /api/{projectId}/pretrained-model/profile: post: summary: Profile pretrained model description: Returns the latency, RAM and ROM used for the pretrained model - upload first via `uploadPretrainedModel`. This is using the project's selected latency device. Updates are streamed over the websocket API (or can be retrieved through the /stdout endpoint). Use getProfileTfliteJobResult to get the results when the job is completed. tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "profilePretrainedModel" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/pretrained-model/download/{pretrainedModelDownloadType}: get: summary: Download pretrained model description: Download a pretrained model file operationId: downloadPretrainedModel tags: - Learn parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/PretrainedModelDownloadParameter' responses: '200': description: File content: application/octet-stream: schema: type: string format: binary # =============== # Classify # =============== /api/{projectId}/classify/{sampleId}: get: summary: Classify sample (deprecated) description: "This API is deprecated, use classifySampleV2 instead (`/v1/api/{projectId}/classify/v2/{sampleId}`). Classify a complete file against the current impulse. This will move the sliding window (dependent on the sliding window length and the sliding window increase parameters in the impulse) over the complete file, and classify for every window that is extracted." operationId: classifySample tags: - Classify x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/IncludeDebugInfoParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ClassifySampleResponse' /api/{projectId}/classify/v2/{sampleId}: post: summary: Classify sample description: | Classify a complete file against the current impulse. This will move the sliding window (dependent on the sliding window length and the sliding window increase parameters in the impulse) over the complete file, and classify for every window that is extracted. Depending on the size of your file, whether your sample is resampled, and whether the result is cached you'll get either the result or a job back. If you receive a job, then wait for the completion of the job, and then call this function again to receive the results. The unoptimized (float32) model is used by default, and classification with an optimized (int8) model can be slower. operationId: classifySampleV2 tags: - Classify x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/IncludeDebugInfoParameter' - $ref: '#/components/parameters/ModelVariantParameter' responses: '200': description: OK content: application/json: schema: anyOf: - $ref: '#/components/schemas/ClassifySampleResponse' - $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/classify/v2/{sampleId}/raw-data/{windowIndex}: get: summary: Get a window of raw sample features from cache, after a live classification job has completed. description: | Get raw sample features for a particular window. This is only available after a live classification job has completed and raw features have been cached. operationId: getSampleWindowFromCache tags: - Classify x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/SampleWindowIndexParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetSampleResponse' /api/{projectId}/classify/all/result: get: summary: Classify job result description: "Get classify job result, containing the result for the complete testing dataset." operationId: getClassifyJobResult tags: - Classify x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/FeatureExplorerOnlyParameter' - $ref: '#/components/parameters/ModelVariantParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ClassifyJobResponse' /api/{projectId}/classify/all/result/page: get: summary: Single page of a classify job result description: "Get classify job result, containing the predictions for a given page." operationId: getClassifyJobResultPage tags: - Classify x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/ModelVariantParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ClassifyJobResponsePage' /api/{projectId}/classify/all/metrics: get: summary: Get metrics for all available model variants description: "Get metrics, calculated during a classify all job, for all available model variants. This is experimental and may change in the future." x-internal-api: true operationId: getClassifyMetricsAllVariants tags: - Classify x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/MetricsAllVariantsResponse' /api/{projectId}/classify/anomaly-gmm/{blockId}/{sampleId}: get: summary: Classify sample by learn block description: "This API is deprecated, use classifySampleByLearnBlockV2 (`/v1/api/{projectId}/classify/anomaly-gmm/v2/{blockId}/{sampleId}`) instead. Classify a complete file against the specified learn block. This will move the sliding window (dependent on the sliding window length and the sliding window increase parameters in the impulse) over the complete file, and classify for every window that is extracted." operationId: classifySampleByLearnBlock tags: - Classify x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/BlockIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ClassifySampleResponse' /api/{projectId}/classify/anomaly-gmm/v2/{blockId}/{sampleId}: post: summary: Classify sample by learn block description: | Classify a complete file against the specified learn block. This will move the sliding window (dependent on the sliding window length and the sliding window increase parameters in the impulse) over the complete file, and classify for every window that is extracted. Depending on the size of your file, whether your sample is resampled, and whether the result is cached you'll get either the result or a job back. If you receive a job, then wait for the completion of the job, and then call this function again to receive the results. The unoptimized (float32) model is used by default, and classification with an optimized (int8) model can be slower. operationId: classifySampleByLearnBlockV2 tags: - Classify x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/SampleIdParameter' - $ref: '#/components/parameters/BlockIdParameter' - $ref: '#/components/parameters/ModelVariantParameter' responses: '200': description: OK content: application/json: schema: anyOf: - $ref: '#/components/schemas/ClassifySampleResponse' - $ref: '#/components/schemas/StartJobResponse' # =================== # Performance calibration # =================== /api/{projectId}/performance-calibration/status: get: summary: Get status description: Get performance calibration status operationId: getPerformanceCalibrationStatus tags: - PerformanceCalibration x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetPerformanceCalibrationStatusResponse' /api/{projectId}/performance-calibration/ground-truth: get: summary: Get ground truth description: Get performance calibration ground truth data operationId: getPerformanceCalibrationGroundTruth tags: - PerformanceCalibration x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetPerformanceCalibrationGroundTruthResponse' /api/{projectId}/performance-calibration/raw-result: get: summary: Get raw result description: Get performance calibration raw result operationId: getPerformanceCalibrationRawResult tags: - PerformanceCalibration x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: File content: application/json: schema: $ref: '#/components/schemas/GetPerformanceCalibrationRawResultResponse' /api/{projectId}/performance-calibration/parameter-sets: get: summary: Get parameter sets description: Get performance calibration parameter sets operationId: getPerformanceCalibrationParameterSets tags: - PerformanceCalibration x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: File content: application/json: schema: $ref: '#/components/schemas/GetPerformanceCalibrationParameterSetsResponse' /api/{projectId}/performance-calibration/parameters: get: summary: Get parameters description: Get performance calibration stored parameters operationId: getPerformanceCalibrationSavedParameters tags: - PerformanceCalibration x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetPerformanceCalibrationParametersResponse' post: summary: Save performance calibration parameters description: Set the current performance calibration parameters operationId: setPerformanceCalibrationSavedParameters tags: - PerformanceCalibration parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PerformanceCalibrationSaveParameterSetRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Clear performance calibration parameters description: Clears the current performance calibration parameters operationId: deletePerformanceCalibrationSavedParameters tags: - PerformanceCalibration parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/performance-calibration/wav: get: summary: Get WAV file description: Get the synthetic sample as a WAV file operationId: getWavFile tags: - PerformanceCalibration x-middleware: - SupportsRange - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: Wav file content: audio/wav: schema: type: string format: binary /api/{projectId}/performance-calibration/files: post: summary: Upload Performance Calibration Audio files description: Upload a zip files with a wav file and its Label metadata to run performance calibration on it. operationId: "uploadLabeledAudio" tags: - PerformanceCalibration parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: content: multipart/form-data: schema: $ref: '#/components/schemas/PerformanceCalibrationUploadLabeledAudioRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PerformanceCalibrationUploadLabeledAudioResponse' # =============== # Deployment # =============== /api/{projectId}/deployment/targets: get: summary: Deployment targets description: List deployment targets for a project operationId: listDeploymentTargetsForProject tags: - Deployment x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProjectDeploymentTargetsResponse' /api/{projectId}/deployment/targets/data-sources: get: summary: Deployment targets (data sources) description: List deployment targets for a project from data sources page (it shows some things like all Linux deploys, and hides 'fake' deploy targets like mobile phone / computer) operationId: listDeploymentTargetsForProjectDataSources tags: - Deployment x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DeploymentTargetsResponse' /api/{projectId}/deployment/evaluate: get: summary: Evaluate job result description: "Get evaluate job result, containing detailed performance statistics for every possible variant of the impulse." operationId: getEvaluateJobResult tags: - Deployment parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/EvaluateJobResponse' /api/{projectId}/deployment/evaluate/cache: get: summary: Check evaluate job result (cache) description: "Get evaluate job result, containing detailed performance statistics for every possible variant of the impulse. This only checks cache, and throws an error if there is no data in cache." operationId: getEvaluateJobResultCache tags: - Deployment parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/EvaluateJobResponse' /api/{projectId}/deployment: get: summary: Get deployment info description: Gives information on whether a deployment was already built for a type operationId: getDeployment tags: - Deployment parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DeploymentTypeParameter' - $ref: '#/components/parameters/ModelTypeParameter' - $ref: '#/components/parameters/ModelEngineParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetDeploymentResponse' /api/{projectId}/deployment/download: get: summary: Download description: Download the build artefacts for a project operationId: downloadBuild tags: - Deployment x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DeploymentTypeParameter' - $ref: '#/components/parameters/ModelTypeParameter' - $ref: '#/components/parameters/ModelEngineParameter' responses: '200': description: ZIP or BIN file content: application/zip: schema: type: string format: binary /api/{projectId}/deployment/last: get: summary: Get information on the last deployment build description: Get information on the result of the last successful deployment job, including info on the build e.g. whether it is still valid. operationId: getLastDeploymentBuild tags: - Deployment parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetLastDeploymentBuildResponse' /api/{projectId}/deployment/syntiant/posterior: get: summary: Get Syntiant posterior parameters description: Get the current posterior parameters for the Syntiant deployment target operationId: getSyntiantPosterior tags: - Deployment parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetSyntiantPosteriorResponse' post: summary: Set Syntiant posterior parameters description: Set the current posterior parameters for the Syntiant deployment target operationId: setSyntiantPosterior tags: - Deployment parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetSyntiantPosteriorRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/jobs/find-syntiant-posterior: post: summary: Find Syntiant posterior parameters description: Automatically find the current posterior parameters for the Syntiant deployment target operationId: findSyntiantPosterior tags: - Deployment parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/FindSyntiantPosteriorRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/data-explorer-features: post: summary: Generate data explorer features description: Generate features for the data explorer operationId: generateDataExplorerFeatures tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/data-quality-metrics: post: summary: Calculate data quality metrics. Only available for EI staff. description: Calculate data quality metrics for the dataset operationId: calculateDataQualityMetrics tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CalculateDataQualityMetricsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' # =============== # AutoML # =============== /api/{projectId}/optimize/runs: get: summary: List all tuner runs description: List all the tuner runs for a project. operationId: listTunerRuns tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListTunerRunsResponse' /api/{projectId}/optimize/config: get: summary: Get config description: Get config operationId: getConfig tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OptimizeConfigResponse' post: summary: Update config description: Update config operationId: updateConfig tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OptimizeConfig' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/optimize/window-settings: get: summary: Get window settings description: Get window settings operationId: getWindowSettings tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/WindowSettingsResponse' /api/{projectId}/optimize/score-trial: post: summary: Score trial description: Score trial operationId: scoreTrial tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TunerCreateTrialImpulse' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ScoreTrialResponse' /api/{projectId}/optimize/{jobId}/create-trial: post: summary: Create trial description: Create trial operationId: createTrial tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/JobIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TunerCreateTrialImpulse' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/optimize/space: get: summary: Search space description: Search space operationId: getSpace tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OptimizeSpaceResponse' /api/{projectId}/optimize/state: get: summary: Retrieves the EON tuner state description: Retrieves the EON tuner state operationId: getState tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: Current EON tuner state content: application/json: schema: $ref: '#/components/schemas/OptimizeStateResponse' delete: summary: Delete EON tuner state description: "Completely clears the EON tuner state for this project." operationId: deleteState tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/optimize/dsp-parameters: get: summary: Retrieves DSP block parameters description: Retrieves DSP block parameters operationId: getDspParameters tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/OptimizeOrganizationIdParameter' - $ref: '#/components/parameters/OptimizeOrganizationDspIdParameter' responses: '200': description: DSP parameters content: application/json: schema: $ref: '#/components/schemas/OptimizeDSPParametersResponse' /api/{projectId}/optimize/transfer-learning-models: get: summary: Retrieves available transfer learning models description: Retrieves available transfer learning models operationId: getTransferLearningModels tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: Block info content: application/json: schema: $ref: '#/components/schemas/OptimizeTransferLearningModelsResponse' /api/{projectId}/jobs/optimize: post: summary: Optimize model description: Evaluates optimal model architecture operationId: optimizeJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/set-tuner-primary-job: post: summary: Sets EON tuner primary model description: Sets EON tuner primary model operationId: setTunerPrimaryJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/TrialIdQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/optimize/trial/{trialId}/stdout: get: summary: Get trial logs description: Get the logs for a trial. operationId: getTrialLogs tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/TrialIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/LogStdoutResponse' /api/{projectId}/optimize/{tunerCoordinatorJobId}/state: get: summary: Retrieves EON tuner state for a run. description: Retrieves the EON tuner state for a specific run. operationId: getTunerRunState tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/TunerCoordinatorJobIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OptimizeStateResponse' /api/{projectId}/optimize/{tunerCoordinatorJobId}: post: summary: Update EON tuner state description: Updates the EON tuner state for a specific run. operationId: updateTunerRun tags: - Optimization parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/TunerCoordinatorJobIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateTunerRunRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' # =============== # Export # =============== /api/{projectId}/export/get-url: get: summary: Get URL of export description: Get the URL to the exported artefacts for an export job of a project. operationId: getExportUrl tags: - Export parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ExportGetUrlResponse' # =============== # Jobs # =============== /api/{projectId}/jobs: get: summary: List active jobs description: Get all active jobs for this project operationId: listActiveJobs tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/OnlyRootJobsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListJobsResponse' /api/{projectId}/jobs/history: get: summary: List finished jobs description: Get all finished jobs for this project operationId: listFinishedJobs tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/OptionalStartDateParameter' - $ref: '#/components/parameters/OptionalEndDateParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/OnlyRootJobsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListJobsResponse' /api/{projectId}/jobs/all: get: summary: List all jobs description: Get all jobs for this project operationId: listAllJobs tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/OptionalStartDateParameter' - $ref: '#/components/parameters/OptionalEndDateParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/OnlyRootJobsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListJobsResponse' /api/{projectId}/jobs/summary: get: summary: Job summary description: Get a summary of jobs, grouped by key. Used to report to users how much compute they've used. operationId: getJobsSummary tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/RequiredStartDateParameter' - $ref: '#/components/parameters/RequiredEndDateParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/JobSummaryResponse' /api/{projectId}/jobs/{jobId}/update: post: summary: Update job description: Update a job. operationId: updateJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/JobIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateJobRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/jobs/{jobId}/status: get: summary: Get job status description: Get the status for a job. operationId: getJobStatus tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/JobIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetJobResponse' /api/{projectId}/jobs/{jobId}/stdout: get: summary: Get logs description: Get the logs for a job. operationId: getJobsLogs tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/JobIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/LogLevelParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/LogStdoutResponse' /api/{projectId}/jobs/{jobId}/stdout/download: get: summary: Download logs description: Download the logs for a job (as a text file). operationId: downloadJobsLogs tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/JobIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/LogLevelParameter' responses: '200': description: OK content: text/plain: schema: type: string /api/{projectId}/jobs/{jobId}/cancel: post: summary: Cancel job description: Cancel a running job. operationId: cancelJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/JobIdParameter' - $ref: '#/components/parameters/ForceCancelParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/jobs/generate-features: post: summary: Generate features description: Take the raw training set and generate features from them. Updates are streamed over the websocket API. operationId: generateFeaturesJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/GenerateFeaturesRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/autotune-dsp: post: summary: Autotune DSP parameters description: Autotune DSP block parameters. Updates are streamed over the websocket API. operationId: autotuneDspJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AutotuneDspRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/train/keras/{learnId}: post: summary: Train model (Keras) description: Take the output from a DSP block and train a neural network using Keras. Updates are streamed over the websocket API. operationId: trainKerasJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetKerasParameterRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/train/anomaly/{learnId}: post: summary: Train model (Anomaly) description: Take the output from a DSP block and train an anomaly detection model using K-means or GMM. Updates are streamed over the websocket API. operationId: trainAnomalyJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StartTrainingRequestAnomaly' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/train/keras/{learnId}/export: post: summary: Export Keras block description: Export the training pipeline of a Keras block. Updates are streamed over the websocket API. operationId: exportKerasBlock tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/train/keras/{learnId}/data: post: summary: Export Keras block data description: Export the data of a Keras block (already split in train/validate data). Updates are streamed over the websocket API. operationId: exportKerasBlockData tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/LearnIdParameter' requestBody: content: application/json: schema: $ref: '#/components/schemas/ExportKerasBlockDataRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/build-ondevice-model: post: summary: Build on-device model description: Generate code to run the impulse on an embedded device. When this step is complete use `downloadBuild` to download the artefacts. Updates are streamed over the websocket API. operationId: buildOnDeviceModelJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/DeploymentTypeParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BuildOnDeviceModelRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/build-ondevice-model/organization: post: summary: Build organizational on-device model description: Generate code to run the impulse on an embedded device using an organizational deployment block. When this step is complete use `downloadBuild` to download the artefacts. Updates are streamed over the websocket API. operationId: buildOrganizationOnDeviceModelJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/BuildOrganizationOnDeviceModelRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/export/original: post: summary: Export original data description: Export all the data in the project as it was uploaded to Edge Impulse. Updates are streamed over the websocket API. operationId: startOriginalExportJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExportOriginalDataRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/export/wav: post: summary: Export data as WAV description: Export all the data in the project in WAV format. Updates are streamed over the websocket API. operationId: startWavExportJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ExportWavDataRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/retrain: post: summary: Retrain description: Retrains the current impulse with the last known parameters. Updates are streamed over the websocket API. operationId: startRetrainJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/classify: post: summary: Classify description: Classifies all items in the testing dataset against the current impulse. Updates are streamed over the websocket API. operationId: startClassifyJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/performance-calibration: post: summary: Performance Calibration description: Simulates real world usage and returns performance metrics. operationId: startPerformanceCalibrationJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StartPerformanceCalibrationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/evaluate: post: summary: Evaluate description: Evaluates every variant of the current impulse. Updates are streamed over the websocket API. operationId: startEvaluateJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/version: post: summary: Version project description: Create a new version of the project. This stores all data and configuration offsite. If you have access to the enterprise version of Edge Impulse you can store your data in your own storage buckets (only through JWT token authentication). operationId: startVersionJob tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProjectVersionRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/restore: post: summary: Restore project to version description: Restore a project to a certain version. This can only applied to a project without data, and will overwrite your impulse and all settings. tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "startRestoreJob" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RestoreProjectRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/jobs/restore/from-public: post: summary: Restore project to public version description: Restore a project to a certain public version. This can only applied to a project without data, and will overwrite your impulse and all settings. tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "startRestoreJobFromPublic" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RestoreProjectFromPublicRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/jobs/versions/{versionId}/make-public: post: summary: Make a version public description: Make a version of a project public. This makes all data and state available (read-only) on a public URL, and allows users to clone this project. tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/VersionIdParameter' operationId: "startMakeVersionPublicJob" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/keywords-noise: post: summary: Add keywords and noise description: Add keywords and noise data to a project (for getting started guide) tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "startKeywordsNoiseJob" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/profile-tflite: post: summary: Profile TFLite model description: Takes in a TFLite model and returns the latency, RAM and ROM used for this model. Updates are streamed over the websocket API (or can be retrieved through the /stdout endpoint). Use getProfileTfliteJobResult to get the results when the job is completed. tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "startProfileTfliteJob" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ProfileTfLiteRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/deploy-pretrained-model: post: summary: Deploy pretrained model description: Takes in a TFLite file and builds the model and SDK. Updates are streamed over the websocket API (or can be retrieved through the /stdout endpoint). Use getProfileTfliteJobResult to get the results when the job is completed. tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "startDeployPretrainedModelJob" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DeployPretrainedModelRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/{projectId}/jobs/profile-tflite/{jobId}/result: get: summary: Get TFLite profile result (GET) description: Get the results from a job started from startProfileTfliteJob (via a GET request). tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/JobIdParameter' operationId: "getProfileTfliteJobResult" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProfileTfLiteResponse' post: summary: Get TFLite profile result (POST) description: Get the results from a job started from startProfileTfliteJob (via a POST request). tags: - Jobs parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/JobIdParameter' operationId: "getProfileTfliteJobResultViaPostRequest" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProfileTfLiteResponse' # =============== # Auth # =============== /api/auth/discourse: get: summary: Discourse description: Log in a user to the forum. This function is only available through a JWT token. operationId: discourse tags: - Auth parameters: - $ref: '#/components/parameters/DiscourseSsoParameter' - $ref: '#/components/parameters/DiscourseSigParameter' responses: '302': description: "Discourse SSO link" /api/auth/readme: get: summary: Readme.io description: Log in a user to the docs. This function is only available through a JWT token. operationId: readme tags: - Auth responses: '302': description: "Readme.io SSO link" # =============== # Organizations # =============== /api/organizations: get: summary: List active organizations x-skip-route: true description: Retrieve list of organizations that a user is a part of. If authenticating using JWT token this lists all the organizations the user has access to, if authenticating using an API key, this only lists that organization. tags: - Organizations operationId: "listOrganizations" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationsResponse' /api/organizations/create: post: summary: Create new organization description: Create a new organization. This is an internal API. x-internal-api: true tags: - Organizations x-middleware: - OrganizationAllowDeveloperProfile # need this to ensure that we don't block this call operationId: "createOrganization" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateOrganizationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateOrganizationResponse' /api/organizations/{organizationId}: get: summary: Organization information description: List all information about this organization. tags: - Organizations x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "getOrganizationInfo" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OrganizationInfoResponse' post: summary: Update organization description: Update organization properties such as name and logo. tags: - Organizations x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "updateOrganization" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Remove organization description: Remove the current organization, and all data associated with it. This is irrevocable! tags: - Organizations x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "deleteOrganization" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/trial/request-extension: post: summary: Request trial extension description: Request an extension for an enterprise trial. tags: - Organizations operationId: "requestEnterpriseTrialExtension" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EnterpriseUpgradeOrTrialExtensionRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/metrics: get: summary: Organization metrics description: Get general metrics for this organization. tags: - Organizations parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ExcludeEdgeImpulseUsersParameter' - $ref: '#/components/parameters/ProjectVisibilityParameter' operationId: "getOrganizationMetrics" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OrganizationMetricsResponse' # ================= # WHITE LABEL ADMIN # ================= /api/organizations/{organizationId}/whitelabel: get: summary: White Label Admin - Get white label information description: White label admin only API to get the white label information. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetInfo" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetWhitelabelResponse' put: summary: White Label Admin - Update white label information description: White label admin only API to update the white label information. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "whitelabelAdminUpdateInfo" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateWhitelabelRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/deploymentTargets: post: summary: White Label Admin - Update deployment targets description: White label admin only API to update some or all of the deployment targets enabled for this white label. operationId: whitelabelAdminUpdateDeploymentTargets tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateWhitelabelDeploymentTargetsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/deploymentTargets/default: post: summary: White Label Admin - Update default deployment target description: White label admin only API to update the default deployment target for this white label. operationId: whitelabelAdminUpdateDefaultDeploymentTarget tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateWhitelabelDefaultDeploymentTargetRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/deploymentOptionsOrder: post: summary: White Label Admin - Update the order of deployment options in the deployment view description: White label admin only API to customize the order of deployment options in the deployment view for this white label. operationId: whitelabelAdminUpdateDeploymentOptionsOrder tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateWhitelabelDeploymentOptionsOrderRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/learningBlocks: post: summary: White Label Admin - Update learning blocks description: White label admin only API to update some or all of the learning blocks enabled for this white label. operationId: whitelabelAdminUpdateLearningBlocks tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateWhitelabelLearningBlocksRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/theme/logo: post: summary: White Label Admin - Update theme logo description: White label admin only API to update the white label theme logo. operationId: whitelabelAdminUpdateThemeLogo tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadAssetRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UploadAssetResponse' /api/organizations/{organizationId}/whitelabel/theme/deviceLogo: post: summary: White Label Admin - Update theme device logo description: White label admin only API to update the white label theme device logo. operationId: whitelabelAdminUpdateThemeDeviceLogo tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadAssetRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UploadAssetResponse' /api/organizations/{organizationId}/whitelabel/theme/colors: post: summary: White Label Admin - Update theme colors description: White label admin only API to update some or all theme colors. operationId: whitelabelAdminUpdateThemeColors tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateThemeColorsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/theme/favicon: post: summary: White Label Admin - Update theme favicon description: White label admin only API to update the theme favicon. operationId: whitelabelAdminUpdateThemeFavicon tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadImageRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/metrics: get: summary: White Label Admin - Get global white label metrics description: White label admin only API to get global metrics. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetMetrics" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetMetricsResponse' /api/organizations/{organizationId}/whitelabel/users: get: summary: White Label Admin - Get all white label users description: White label admin only API to get the list of all registered users. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetUsers" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/FiltersActiveParameter' - $ref: '#/components/parameters/FiltersTierParameter' - $ref: '#/components/parameters/FieldsParameter' - $ref: '#/components/parameters/SortQueryParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/SearchQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetUsersResponse' /api/organizations/{organizationId}/whitelabel/users/{userId}: get: summary: White Label Admin - Get a white label user description: White label admin only API to get information about a user. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetUser" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/UserIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetUserResponse' post: summary: White Label Admin - Update white label user description: White label admin only API to update user properties. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminUpdateUser" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/UserIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminUpdateUserRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete a user description: White label admin only API to delete a user. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminDeleteUser" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/UserIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/users/{userId}/metrics: get: summary: White Label Admin - Get white label user metrics description: White label admin only API to get marketing metrics about a user. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetUserMetrics" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/UserIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetUserMetricsResponse' /api/organizations/{organizationId}/whitelabel/projects: get: summary: White Label Admin - Get all white label projects description: White label admin only API to get the list of all projects. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetProjects" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/FiltersActiveParameter' - $ref: '#/components/parameters/SortQueryParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/SearchQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminListProjectsResponse' post: summary: White Label Admin - Create a new project within white label context. description: Create a new free tier project. This is an API only available to white label admins. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminCreateProject" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminCreateProjectRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateProjectResponse' /api/organizations/{organizationId}/whitelabel/projects/{projectId}: get: summary: White Label Admin - Get a white label project description: White label admin only API to get project information. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetProject" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProjectInfoResponse' post: summary: White Label Admin - Update white label project description: White label admin only API to update project properties. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminUpdateProject" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateProjectRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: White Label Admin - Delete a project description: White label admin only API to delete a project. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminDeleteProject" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/projects/{projectId}/apiKeys: post: summary: White Label Admin - Add Project API key description: White label admin only API to add an API key to a project. Add a temporary API key that can be used to make Projects API (/api/projects/{projectId}/) requests on behalf of the project admin. These API keys are not visible to the project itself and have a customizable TTL defaulting to 1 minute. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminAddProjectApiKey" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminAddProjectApiKeyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/projects/{projectId}/members: post: summary: White Label Admin - Add user to a project description: White label admin only API to add a user to a project. If no user is provided, the current user is used. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ProjectIdParameter' operationId: "whitelabelAdminAddUserToProject" requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminAddProjectUserRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/projects/{projectId}/members/{userId}: delete: summary: White Label Admin - Remove user from a project description: White label admin only API to remove a user from a project. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/UserIdParameter' operationId: "whitelabelAdminRemoveUserFromProject" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/development-boards: post: summary: White Label Admin - Add a development board to a whitelabel description: White label admin only API to add a development board. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "whitelabelAdminAddDevelopmentBoard" requestBody: content: application/json: schema: $ref: '#/components/schemas/DevelopmentBoardRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DevelopmentBoardCreatedResponse' /api/organizations/{organizationId}/whitelabel/development-boards/{developmentBoardId}: put: summary: White Label Admin - Update a development board in a whitelabel description: White label admin only API to update a development board. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/DevelopmentBoardIdParameter' operationId: "whitelabelAdminUpdateDevelopmentBoard" requestBody: content: application/json: schema: $ref: '#/components/schemas/DevelopmentBoardRequestUpdate' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: White Label Admin - Remove a development board from a whitelabel description: White label admin only API to remove a development board. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/DevelopmentBoardIdParameter' operationId: "whitelabelAdminRemoveDevelopmentBoard" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/development-boards/{developmentBoardId}/image: post: summary: White Label Admin - Update the image of a whitelabel development board description: White label admin only API to update the image of a development board. operationId: whitelabelAdminUpdateDevelopmentBoardImage tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/DevelopmentBoardIdParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadAssetRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UploadAssetResponse' /api/organizations/{organizationId}/whitelabel/organizations: get: summary: White Label Admin - Get all organizations within a white label description: White label admin only API to get the list of all organizations. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetOrganizations" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/FiltersActiveParameter' - $ref: '#/components/parameters/FiltersIncludeDeletedParameter' - $ref: '#/components/parameters/SortQueryParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/SearchQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetOrganizationsResponse' post: summary: White Label Admin - Create new organization within white label context description: Create a new organization. This is an API only available to white label admins tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminCreateOrganization" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WhitelabelAdminCreateOrganizationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateOrganizationResponse' /api/organizations/{organizationId}/whitelabel/organizations/{innerOrganizationId}/usage/computeTime: get: summary: White Label Admin - Get organization compute time usage description: Get compute time usage for an organization over a period of time. This is an API only available to white label admins tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetOrganizationComputeTimeUsage" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' - $ref: '#/components/parameters/RequiredStartDateParameter' - $ref: '#/components/parameters/RequiredEndDateParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetOrganizationComputeTimeUsageResponse' /api/organizations/{organizationId}/whitelabel/organizations/{innerOrganizationId}/usage/reports: get: summary: White Label Admin - Get all usage reports description: Get all usage reports for an organization. This is an API only available to white label admins. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetOrganizationUsageReports" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetOrganizationUsageReportsResponse' post: summary: White Label Admin - Creates a new usage report description: Create a new usage report for an organization. A job is created to process the report request and the job details are returned in the response. This is an API only available to white label admins. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminCreateOrganizationUsageReport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' - $ref: '#/components/parameters/RequiredStartDateParameter' - $ref: '#/components/parameters/RequiredEndDateParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/organizations/{organizationId}/whitelabel/organizations/{innerOrganizationId}/usage/reports/{usageReportId}: get: summary: White Label Admin - Get usage report description: Get a usage report for an organization. This is an API only available to white label admins. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetOrganizationUsageReport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' - $ref: '#/components/parameters/UsageReportIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetOrganizationUsageReportResponse' delete: summary: White Label Admin - Delete usage report description: Delete a usage report for an organization. This is an API only available to white label admins. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminDeleteOrganizationUsageReport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' - $ref: '#/components/parameters/UsageReportIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/organizations/{innerOrganizationId}/usage/reports/{usageReportId}/download: get: summary: White Label Admin - Download usage report description: Download a usage report for an organization. This is an API only available to white label admins. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminDownloadOrganizationUsageReport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' - $ref: '#/components/parameters/UsageReportIdParameter' responses: '302': description: "A redirect to the CSV file" /api/organizations/{organizationId}/whitelabel/organizations/{innerOrganizationId}/exports: get: summary: White Label Admin - Get all organization data exports description: Get all data exports for an organization. This is an API only available to white label admins. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetOrganizationExports" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDataExportsResponse' post: summary: White Label Admin - Create a new organization data export description: | Create a new data export for an organization. A job is created to process the export request and the job details are returned in the response. This is an API only available to white label admins. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminCreateOrganizationExport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminCreateOrganizationDataExportRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/organizations/{organizationId}/whitelabel/organizations/{innerOrganizationId}/exports/{exportId}: get: summary: White Label Admin - Get organization data export description: Get a data export for an organization. This is an API only available to white label admins. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetOrganizationExport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' - $ref: '#/components/parameters/ExportIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDataExportResponse' delete: summary: White Label Admin - Delete organization data export description: Delete a data export for an organization. This is an API only available to white label admins. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminDeleteOrganizationExport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' - $ref: '#/components/parameters/ExportIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' put: summary: White Label Admin - Update organization data export description: Update a data export for an organization. This is an API only available to white label admins. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminUpdateOrganizationExport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' - $ref: '#/components/parameters/ExportIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminUpdateOrganizationDataExportRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/organizations/{innerOrganizationId}/apiKeys: post: summary: White Label Admin - Add organization API key description: White label admin only API to add an API key to an organization. Add a temporary API key that can be used to make Organizations API (/api/organizations/{organizationId}/) requests on behalf of the organization. These API keys are not visible to the organization itself and have a customizable TTL defaulting to 1 minute. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminAddOrganizationApiKey" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminAddOrganizationApiKeyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/organizations/{innerOrganizationId}/members: post: summary: White Label Admin - Add user to an organization description: White label admin only API to add a user to an organization. If no user is provided, the current user is used. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' operationId: "whitelabelAdminAddUserToOrganization" requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminAddOrganizationUserRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/organizations/{innerOrganizationId}/members/{userId}: delete: summary: White Label Admin - Remove user from an organization description: White label admin only API to remove a user from an organization. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' - $ref: '#/components/parameters/UserIdParameter' operationId: "whitelabelAdminRemoveUserFromOrganization" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/organizations/{innerOrganizationId}: get: summary: White Label Admin - Get organization information description: White label admin only API to list all information about an organization. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminGetOrganizationInfo" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' - $ref: '#/components/parameters/FiltersIncludeDeletedParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrganizationInfoResponse' post: summary: White Label Admin - Update organization description: White label admin only API to update organization properties such as name and logo. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminUpdateOrganization" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminUpdateOrganizationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: White Label Admin - Delete an organization description: White label admin only API to delete an organization. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminDeleteOrganization" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/organizations/{innerOrganizationId}/restore: get: summary: White Label Admin - Restore an organization description: > White label admin only API to restore a deleted organization. All organization projects sharing the same deletion date as that of the organization will also be restored. If this is a trial organization that was never upgraded to a paid plan then the organization will be restored to its original trial state. tags: - Organizations operationId: "whitelabelAdminRestoreOrganization" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/whitelabel/organizations/{innerOrganizationId}/projects: post: summary: White Label Admin - Create a new organization project description: White label admin only API to create a new project for an organization. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationRequiresWhitelabelAdmin operationId: "whitelabelAdminCreateOrganizationProject" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/InnerOrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminCreateProjectRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateProjectResponse' # ===================== # END WHITE LABEL ADMIN # ===================== /api/organizations/{organizationId}/logo: post: summary: Upload organization logo description: Uploads and updates the organization logo tags: - Organizations x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "uploadOrganizationLogo" requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadAssetRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UploadAssetResponse' /api/organizations/{organizationId}/header: post: summary: Upload organization header image description: Uploads and updates the organization header image tags: - Organizations x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "uploadOrganizationHeader" requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadAssetRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UploadAssetResponse' /api/organizations/{organizationId}/test-admin: get: summary: Admin endpoint description: Test endpoint that can only be reached with admin rights. tags: - Organizations x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "testOrganizationAdmin" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/projects: get: summary: Get projects description: Retrieve all projects for the organization. tags: - Organizations x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "listOrganizationProjects" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListProjectsResponse' /api/organizations/{organizationId}/apikeys: get: summary: Get API keys description: Retrieve all API keys. This does **not** return the full API key, but only a portion (for security purposes). tags: - Organizations x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "listOrganizationApiKeys" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationApiKeysResponse' post: summary: Add API key description: Add an API key. tags: - Organizations x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "addOrganizationApiKey" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddOrganizationApiKeyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/apikeys/{apiKeyId}: delete: summary: Revoke API key description: Revoke an API key. tags: - Organizations x-middleware: - OrganizationRequiresAdmin - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ApiKeyIdParameter' operationId: "revokeOrganizationApiKey" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/members/add: post: summary: Add member description: Add a member to an organization. tags: - Organizations x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "addOrganizationMember" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddMemberRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/members/invite: post: summary: Invite member description: Invite a member to an organization. tags: - Organizations x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "inviteOrganizationMember" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/InviteOrganizationMemberRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/members/remove: post: summary: Remove member description: Remove a member from an organization. Note that you cannot invoke this function if only a single member is present to the organization. tags: - Organizations x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "removeOrganizationMember" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RemoveMemberRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/members/{memberId}/role: post: summary: Set member role description: Change the role of a member in an organization. tags: - Organizations x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/MemberIdParameter' operationId: "setOrganizationMemberRole" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetMemberRoleRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/members/{memberId}/datasets: post: summary: Set member datasets description: Set the datasets a guest member has access to in an organization. tags: - Organizations x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/MemberIdParameter' operationId: "setOrganizationMemberDatasets" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetMemberDatasetsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/members/{memberId}/resend-invite: post: summary: Resend invitation description: Resend an invitation to a member in an organization. tags: - Organizations parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/MemberIdParameter' operationId: "resendOrganizationMemberInvite" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/readme/upload-image: post: summary: Upload image for readme description: Uploads an image to the user CDN and returns the path. tags: - Organizations parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "uploadOrganizationReadmeImage" requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadImageRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UploadReadmeImageResponse' # ================= # Organization Data # ================= /api/organizations/{organizationId}/buckets: get: summary: List storage buckets description: Retrieve all configured storage buckets. This does not list the secret key. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "listOrganizationBuckets" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationBucketsResponse' post: summary: Add a storage bucket description: Add a storage bucket. tags: - OrganizationData x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "addOrganizationBucket" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddOrganizationBucketRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/buckets/verify: post: summary: Verify bucket connectivity description: Verify whether we can reach a bucket before adding it. tags: - OrganizationData x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "verifyOrganizationBucket" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VerifyOrganizationBucketRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/VerifyOrganizationBucketResponse' /api/organizations/{organizationId}/buckets/{bucketId}: get: summary: Get storage bucket description: Get storage bucket details. tags: - OrganizationData x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/BucketIdParameter' operationId: "getOrganizationBucket" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationBucketResponse' post: summary: Update storage bucket description: Updates storage bucket details. This only updates fields that were set in the request body. tags: - OrganizationData x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/BucketIdParameter' operationId: "updateOrganizationBucket" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationBucketRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Remove storage bucket description: Remove a storage bucket. This will render any data in this storage bucket unreachable. tags: - OrganizationData x-middleware: - OrganizationRequiresAdmin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/BucketIdParameter' operationId: "removeOrganizationBucket" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/buckets/{bucketId}/verify: post: summary: Verify existing bucket connectivity description: Verify whether we can reach a bucket before adding it. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/BucketIdParameter' operationId: "verifyExistingOrganizationBucket" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/VerifyOrganizationExistingBucketRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/VerifyOrganizationBucketResponse' /api/organizations/{organizationId}/data: get: summary: List data description: Lists all data items. This can be filtered by the ?filter parameter. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetParameter' - $ref: '#/components/parameters/OrganizationDataFilterParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' operationId: "listOrganizationData" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationDataResponse' /api/organizations/{organizationId}/projects/data: get: summary: Get projects data description: Retrieve all the data samples from organizational projects. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationProjectsDataProjectIdParameter' - $ref: '#/components/parameters/OrganizationProjectsDataFilterParameter' - $ref: '#/components/parameters/FiltersIdsParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' operationId: "listOrganizationProjectsData" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationProjectsDataResponse' delete: summary: Delete projects data description: Delete data samples from organizational projects. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationProjectsDataProjectIdParameter' - $ref: '#/components/parameters/FiltersIdsParameter' operationId: 'deleteOrganizationProjectsData' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/projects/data/enable: post: summary: Batch enable data description: Batch enable project data samples by dataId tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: organizationProjectsDataBatchEnable requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrganizationProjectsDataBatchRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OrganizationProjectsDataBatchEnableResponse' /api/organizations/{organizationId}/projects/data/disable: post: summary: Batch disable data description: Batch disable project data samples by dataId tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: organizationProjectsDataBatchDisable requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrganizationProjectsDataBatchRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OrganizationProjectsDataBatchDisableResponse' /api/organizations/{organizationId}/projects/data/metadata: post: summary: Bulk update metadata description: Bulk update the metadata of many raw data items in one go. This requires you to submit a CSV file with headers, one of which the columns should be named 'name'. The other columns are used as metadata keys. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/OrganizationProjectsDataBulkMetadataRequest' operationId: "organizationProjectsDataBulkUpdateMetadata" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/organizations/{organizationId}/projects/data/count: get: summary: Get projects data count description: Get the number of samples for all or for a specific organization project. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationProjectsDataProjectIdParameter' - $ref: '#/components/parameters/OrganizationProjectsDataFilterParameter' - $ref: '#/components/parameters/FiltersIdsParameter' operationId: "getOrganizationProjectsDataCount" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationProjectsDataCountResponse' /api/organizations/{organizationId}/projects/data/download: get: summary: Download data description: Download all selected project data items. operationId: "downloadOrganizationProjectsData" tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationProjectsDataProjectIdParameter' - $ref: '#/components/parameters/FiltersIdsParameter' responses: '200': description: ZIP file content: application/x-zip: schema: type: string format: binary /api/organizations/{organizationId}/data/add: post: summary: Add new data description: Add a new data item. You can add a maximum of 10000 files directly through this API. Use `addOrganizationDataFile` to add additional files. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/OrganizationAddDataItemRequest' operationId: "addOrganizationDataItem" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/data/add-folder: post: summary: Add data items from bucket description: Bulk adds data items that already exist in a storage bucket. The bucket path specified should contain folders. Each folder is added as a data item in Edge Impulse. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrganizationAddDataFolderRequest' operationId: "addOrganizationDataFolder" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/organizations/{organizationId}/data/download: get: summary: Download data description: Download all data for selected data items. This function does not query the underlying bucket. operationId: downloadOrganizationDataItem tags: - OrganizationData x-middleware: - OrganizationAllowGuestAccess parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetParameter' - $ref: '#/components/parameters/OrganizationDataIdsParameter' - $ref: '#/components/parameters/OrganizationDataFilterParameter' responses: '200': description: TAR file content: application/x-tar: schema: type: string format: binary /api/organizations/{organizationId}/data/delete: post: summary: Delete data description: Delete all data for selected data items. This removes all data in the underlying data bucket. operationId: deleteOrganizationDataItems tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetParameter' - $ref: '#/components/parameters/OrganizationDataIdsParameter' - $ref: '#/components/parameters/OrganizationDataFilterParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/organizations/{organizationId}/data/clear-checklist: post: summary: Clear checklist for data description: Clear all checklist flags for selected data items. operationId: clearChecklistOrganizationDataItems tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetParameter' - $ref: '#/components/parameters/OrganizationDataIdsParameter' - $ref: '#/components/parameters/OrganizationDataFilterParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/organizations/{organizationId}/data/change-dataset: post: summary: Change dataset description: Change the dataset for selected data items. operationId: changeDatasetOrganizationDataItems tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetParameter' - $ref: '#/components/parameters/OrganizationDataIdsParameter' - $ref: '#/components/parameters/OrganizationDataFilterParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/SetOrganizationDataDatasetRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/organizations/{organizationId}/data/files: get: summary: List files description: Lists all files included by the filter. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetParameter' - $ref: '#/components/parameters/OrganizationDataFilterParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' operationId: "listOrganizationFiles" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationFilesResponse' /api/organizations/{organizationId}/data/refresh: post: summary: Refresh data description: Update all data items. HEADs all underlying buckets to retrieve the last file information. Use this API after uploading data directly to S3. If your dataset has bucketId and bucketPath set then this will also remove items that have been removed from S3. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetRequiredParameter' operationId: "refreshOrganizationData" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/organizations/{organizationId}/data/bulk-metadata: post: summary: Bulk update metadata description: Bulk update the metadata of many data items in one go. This requires you to submit a CSV file with headers, one of which the columns should be named 'name'. The other columns are used as metadata keys. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/OrganizationBulkMetadataRequest' operationId: "organizationBulkUpdateMetadata" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/organizations/{organizationId}/data/{dataId}: get: summary: Get data metadata description: Get a data item. This will HEAD the underlying bucket to retrieve the last file information. tags: - OrganizationData x-middleware: - OrganizationAllowGuestAccess parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataIdParameter' - $ref: '#/components/parameters/OrganizationDataFilterParameter' operationId: "getOrganizationDataItem" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDataItemResponse' post: summary: Update data metadata description: Update the data item metadata. tags: - OrganizationData x-middleware: - OrganizationAllowGuestAccess parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationDataItemRequest' operationId: "updateOrganizationDataItem" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete data description: Delete a data item. This will remove items the items from the underlying storage if your dataset has "bucketPath" set. tags: - OrganizationData x-middleware: - OrganizationAllowGuestAccess parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataIdParameter' operationId: "deleteOrganizationDataItem" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/data/{dataId}/add: post: summary: Add files description: Add a new file to an existing data item. tags: - OrganizationData x-middleware: - OrganizationAllowGuestAccess parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataIdParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/OrganizationAddDataFileRequest' operationId: "addOrganizationDataFile" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/data/{dataId}/download: get: summary: Download data description: Download all data for this data item. operationId: downloadOrganizationSingleDataItem tags: - OrganizationData x-middleware: - OrganizationAllowGuestAccess parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataIdParameter' - $ref: '#/components/parameters/OrganizationDataFilterParameter' responses: '200': description: ZIP file content: application/zip: schema: type: string format: binary delete: summary: Delete file description: Delete a single file from a data item. operationId: deleteOrganizationDataFile tags: - OrganizationData x-middleware: - OrganizationAllowGuestAccess parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataIdParameter' - $ref: '#/components/parameters/OrganizationFileNameParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/data/{dataId}/files/download: get: summary: Download file description: Download a single file from a data item. operationId: downloadOrganizationDataFile tags: - OrganizationData x-middleware: - OrganizationAllowGuestAccess parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataIdParameter' - $ref: '#/components/parameters/OrganizationFileNameParameter' responses: '200': description: File content: application/octet-stream: schema: type: string format: binary /api/organizations/{organizationId}/data/{dataId}/files/preview: get: summary: Preview file description: Preview a single file from a data item (same as downloadOrganizationDataFile but w/ content-disposition inline and could be truncated). operationId: previewOrganizationDataFile tags: - OrganizationData x-middleware: - ContentDispositionInline - OrganizationAllowGuestAccess parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataIdParameter' - $ref: '#/components/parameters/OrganizationFileNameParameter' responses: '200': description: File content: application/octet-stream: schema: type: string format: binary /api/organizations/{organizationId}/data/{dataId}/transformation-jobs: get: summary: Get transformation jobs for data item description: Get all transformation jobs that ran for a data item. If limit / offset is not provided then max. 20 results are returned. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' operationId: "getOrganizationDataItemTransformJobs" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDataItemTransformJobsResponse' /api/organizations/{organizationId}/dataset: post: summary: Add dataset description: Add a new research dataset operationId: addOrganizationDataset tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrganizationAddDatasetRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/organizations/{organizationId}/dataset/{dataset}: get: summary: Get dataset description: Get information about a dataset operationId: getOrganizationDataset tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetPathParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDatasetResponse' post: summary: Update dataset description: Set information about a dataset operationId: updateOrganizationDataset tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetPathParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationDatasetRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/dataset/{dataset}/hide: post: summary: Hide dataset description: Hide a dataset (does not remove underlying data) operationId: hideOrganizationDataset tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetPathParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/dataset/{dataset}/upload-link: post: summary: Create pre-signed S3 upload link description: Creates a signed link to securely upload data to s3 bucket directly from the client. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetPathParameter' operationId: "createSignedUploadLinkDataset" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateSignedUploadLinkRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateSignedUploadLinkResponse' /api/organizations/{organizationId}/dataset/{dataset}/verify: post: summary: Verify dataset description: Verify whether we can reach a dataset (and return some random files, used for data sources) tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetPathParameter' operationId: "verifyDataset" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/VerifyOrganizationBucketResponse' /api/organizations/{organizationId}/dataset/{dataset}/files: post: summary: List files in dataset description: List all files and directories in specified prefix. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetPathParameter' operationId: "listDatasetFilesInFolder" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ListPortalFilesInFolderRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListPortalFilesInFolderResponse' /api/organizations/{organizationId}/dataset/{dataset}/files/delete: post: summary: Delete file from dataset description: Delete a file from a dataset tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetPathParameter' operationId: "deleteDatasetFile" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DeletePortalFileRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/dataset/{dataset}/files/rename: post: summary: Rename file from dataset description: Rename a file in a dataset tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetPathParameter' operationId: "renameDatasetFile" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RenamePortalFileRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/dataset/{dataset}/files/download: post: summary: Download file from dataset description: Download a file from a dataset. Will return a signed URL to the bucket. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetPathParameter' operationId: "downloadDatasetFile" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DownloadPortalFileRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DownloadPortalFileResponse' /api/organizations/{organizationId}/dataset/{dataset}/files/download-folder: get: summary: Download folder from dataset description: Download all files in the given folder in a dataset, ignoring any subdirectories. operationId: downloadDatasetFolder tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetPathParameter' - $ref: '#/components/parameters/OrganizationPathInDatasetParameter' responses: '200': description: ZIP file content: application/zip: schema: type: string format: binary /api/organizations/{organizationId}/dataset/{dataset}/files/view: get: summary: View file from dataset description: View a file that's located in a dataset (requires JWT auth). File might be converted (e.g. Parquet) or truncated (e.g. CSV). tags: - OrganizationData x-middleware: - ContentDispositionInline parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetPathParameter' - $ref: '#/components/parameters/PortalPathParameter' operationId: "viewDatasetFile" responses: '200': description: OK content: application/octet-stream: schema: type: string format: binary /api/organizations/{organizationId}/dataset/{dataset}/files/preview: post: summary: Preview files in a default dataset description: Preview files and directories in a default dataset for the given prefix, with support for wildcards. This is an internal API used when starting a transformation job. tags: - OrganizationData parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDatasetPathParameter' operationId: "previewDefaultFilesInFolder" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/PreviewDefaultFilesInFolderRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PreviewDefaultFilesInFolderResponse' # =============== # Organization create project # =============== /api/organizations/{organizationId}/create-project: get: summary: List transformation jobs description: Get list of transformation jobs. operationId: getOrganizationCreateProjects tags: - OrganizationCreateProject parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/IncludePipelineJobsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OrganizationGetCreateProjectsResponse' post: summary: Start transformation job description: Start a transformation job to fetch data from the organization and put it in a project, or transform into new data. operationId: organizationCreateProject tags: - OrganizationCreateProject parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrganizationCreateProjectRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OrganizationCreateProjectResponse' /api/organizations/{organizationId}/create-project/{createProjectId}: get: summary: Get transformation job status description: Get the current status of a transformation job job. operationId: getOrganizationCreateProjectStatus tags: - OrganizationCreateProject parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationCreateProjectIdParameter' - $ref: '#/components/parameters/TransformLimitResultsParameter' - $ref: '#/components/parameters/TransformOffsetResultsParameter' - $ref: '#/components/parameters/TransformSelectionParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OrganizationCreateProjectStatusResponse' post: summary: Update transformation job description: Update the properties of a transformation job. operationId: updateOrganizationCreateProject tags: - OrganizationCreateProject parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationCreateProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationCreateProjectRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete transformation job description: Remove a transformation job. This will stop all running jobs. operationId: deleteOrganizationCreateProject tags: - OrganizationCreateProject parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationCreateProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/create-project/{createProjectId}/transform/retry: post: summary: Retry failed transform jobs description: Retry all failed transform job from a transformation job. Only jobs that have failed will be retried. operationId: retryOrganizationTransform tags: - OrganizationCreateProject parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationCreateProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/create-project/{createProjectId}/transform/clear: post: summary: Clear failed transform jobs description: Clear all failed transform job from a create project job. Only jobs that have failed will be cleared. operationId: clearOrganizationTransform tags: - OrganizationCreateProject parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationCreateProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/create-project/{createProjectId}/upload/retry: post: summary: Retry transformation upload job description: Retry the upload job from a transformation job. Only jobs that have failed can be retried. operationId: retryOrganizationUpload tags: - OrganizationCreateProject x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationCreateProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/create-project/{createProjectId}/files/{createProjectFileId}: delete: summary: Delete create project file description: Remove a file from a create project job. Only files for which no jobs are running can be deleted. operationId: deleteOrganizationCreateProjectFile tags: - OrganizationCreateProject parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationCreateProjectIdParameter' - $ref: '#/components/parameters/OrganizationCreateProjectFileIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/create-project/{createProjectId}/files/{createProjectFileId}/retry: post: summary: Retry transformation file description: Retry a transformation action on a file from a transformation job. Only files that have failed can be retried. operationId: retryOrganizationCreateProjectFile tags: - OrganizationCreateProject parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationCreateProjectIdParameter' - $ref: '#/components/parameters/OrganizationCreateProjectFileIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/transformation: get: summary: Get transformation blocks description: Retrieve all transformation blocks. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "listOrganizationTransformationBlocks" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationTransformationBlocksResponse' post: summary: Add transformation block description: Adds a transformation block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "addOrganizationTransformationBlock" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddOrganizationTransformationBlockRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AddOrganizationTransformationBlockResponse' /api/organizations/{organizationId}/transformation/public: get: summary: List public transformation blocks description: Retrieve all transformation blocks published by other organizations, available for all organizations. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "listPublicOrganizationTransformationBlocks" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListPublicOrganizationTransformationBlocksResponse' /api/organizations/{organizationId}/transformation/{transformationId}: get: summary: Get transformation block description: Get a transformation block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/TransformationIdParameter' operationId: "getOrganizationTransformationBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationTransformationBlockResponse' post: summary: Update transformation block description: Updates a transformation block. Only values in the body will be updated. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/TransformationIdParameter' operationId: "updateOrganizationTransformationBlock" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationTransformationBlockRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete transformation block description: Deletes a transformation block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/TransformationIdParameter' operationId: "deleteOrganizationTransformationBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/transformation/{transformationId}/export: post: summary: Export transformation block description: Download the source code for this block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/TransformationIdParameter' operationId: "exportOrganizationTransformationBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ExportBlockResponse' /api/organizations/{organizationId}/custom-block: post: summary: Upload a custom block description: Upload a zip file containing a custom transformation or deployment block. tags: - OrganizationCreateProject x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "uploadCustomBlock" requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadCustomBlockRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/organizations/{organizationId}/deploy: get: summary: Get deploy blocks description: Retrieve all deploy blocks. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "listOrganizationDeployBlocks" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationDeployBlocksResponse' post: summary: Add deploy block description: Adds a deploy block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "addOrganizationDeployBlock" requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/AddOrganizationDeployBlockRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AddOrganizationDeployBlockResponse' /api/organizations/{organizationId}/deploy/{deployId}: get: summary: Get deploy block description: Gets a deploy block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/DeployIdParameter' operationId: "getOrganizationDeployBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDeployBlockResponse' post: summary: Update deploy block description: Updates a deploy block. Only values in the body will be updated. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/DeployIdParameter' operationId: "updateOrganizationDeployBlock" requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UpdateOrganizationDeployBlockRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete deploy block description: Deletes a deploy block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/DeployIdParameter' operationId: "deleteOrganizationDeployBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/deploy/{deployId}/export: post: summary: Export deploy block description: Download the source code for this block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/DeployIdParameter' operationId: "exportOrganizationDeployBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ExportBlockResponse' /api/organizations/{organizationId}/dsp: get: summary: Get dsp blocks description: Retrieve all dsp blocks. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "listOrganizationDspBlocks" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationDspBlocksResponse' post: summary: Add dsp block description: Adds a dsp block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "addOrganizationDspBlock" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddOrganizationDspBlockRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AddOrganizationDspBlockResponse' /api/organizations/{organizationId}/dsp/{dspId}: get: summary: Get dsp block description: Gets a dsp block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/DspIdParameter' operationId: "getOrganizationDspBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDspBlockResponse' post: summary: Update dsp block description: Updates a dsp block. Only values in the body will be updated. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/DspIdParameter' operationId: "updateOrganizationDspBlock" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationDspBlockRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete dsp block description: Deletes a dsp block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/DspIdParameter' operationId: "deleteOrganizationDspBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/dsp/{dspId}/export: post: summary: Export dsp block description: Download the source code for this block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/DspIdParameter' operationId: "exportOrganizationDspBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ExportBlockResponse' /api/organizations/{organizationId}/dsp/{dspId}/retry: post: summary: Retry connection to dsp block description: Retry launch a dsp block. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/DspIdParameter' operationId: "retryOrganizationDspBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/transfer-learning: get: summary: Get transfer learning blocks description: Retrieve all transfer learning blocks. tags: - OrganizationBlocks x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "listOrganizationTransferLearningBlocks" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationTransferLearningBlocksResponse' post: summary: Add transfer learning block description: Adds a transfer learning block. tags: - OrganizationBlocks x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "addOrganizationTransferLearningBlock" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddOrganizationTransferLearningBlockRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AddOrganizationTransferLearningBlockResponse' /api/organizations/{organizationId}/transfer-learning/{transferLearningId}: get: summary: Get transfer learning block description: Gets a transfer learning block. tags: - OrganizationBlocks x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/TransferLearningIdParameter' operationId: "getOrganizationTransferLearningBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationTransferLearningBlockResponse' post: summary: Update transfer learning block description: Updates a transfer learning block. Only values in the body will be updated. tags: - OrganizationBlocks x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/TransferLearningIdParameter' operationId: "updateOrganizationTransferLearningBlock" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationTransferLearningBlockRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete transfer learning block description: Deletes a transfer learning block. tags: - OrganizationBlocks x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/TransferLearningIdParameter' operationId: "deleteOrganizationTransferLearningBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/transfer-learning/{transferLearningId}/export: post: summary: Export transfer learning block description: Download the source code for this block. tags: - OrganizationBlocks x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/TransferLearningIdParameter' operationId: "exportOrganizationTransferLearningBlock" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ExportBlockResponse' /api/organizations/{organizationId}/secrets: get: summary: Get secrets description: Retrieve all secrets. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "listOrganizationSecrets" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationSecretsResponse' post: summary: Add secret description: Adds a secret. tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "addOrganizationSecret" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddOrganizationSecretRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AddOrganizationSecretResponse' /api/organizations/{organizationId}/secrets/{secretId}: delete: summary: Delete secret description: Deletes a secret tags: - OrganizationBlocks parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/SecretIdParameter' operationId: "deleteOrganizationSecret" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/new-project: post: summary: Create new empty project description: Create a new empty project within an organization. operationId: organizationCreateEmptyProject tags: - OrganizationCreateProject parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationCreateEmptyProjectRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateProjectResponse' /api/organizations/{organizationId}/add-project-collaborator: post: summary: Add a collaborator to a project within an organisation description: Add a new collaborator to a project owned by an organisation. operationId: organizationAddCollaborator tags: - OrganizationCreateProject parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationAddCollaboratorRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' # =============== # Organization Jobs # =============== /api/organizations/{organizationId}/jobs: get: summary: List active jobs description: Get all active jobs for this organization operationId: listActiveOrganizationJobs tags: - OrganizationJobs x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OnlyRootJobsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListJobsResponse' /api/organizations/{organizationId}/jobs/history: get: summary: List finished jobs description: Get all finished jobs for this organization operationId: listFinishedOrganizationJobs tags: - OrganizationJobs x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OptionalStartDateParameter' - $ref: '#/components/parameters/OptionalEndDateParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/OnlyRootJobsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListJobsResponse' /api/organizations/{organizationId}/jobs/all: get: summary: List all jobs description: Get all jobs for this organization operationId: listAllOrganizationJobs tags: - OrganizationJobs x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OptionalStartDateParameter' - $ref: '#/components/parameters/OptionalEndDateParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/ExcludePipelineTransformationJobsParameter' - $ref: '#/components/parameters/OnlyRootJobsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListJobsResponse' /api/organizations/{organizationId}/jobs/{jobId}/cancel: post: summary: Cancel job description: Cancel a running job. operationId: cancelOrganizationJob tags: - OrganizationJobs x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/JobIdParameter' - $ref: '#/components/parameters/ForceCancelParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/jobs/{jobId}/status: get: summary: Get job status description: Get the status for a job. operationId: getOrganizationJobStatus tags: - OrganizationJobs x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/JobIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetJobResponse' /api/organizations/{organizationId}/jobs/{jobId}/stdout: get: summary: Get logs description: Get the logs for a job. operationId: getOrganizationJobsLogs tags: - OrganizationJobs x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/JobIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/LogLevelParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/LogStdoutResponse' /api/organizations/{organizationId}/jobs/{jobId}/stdout/download: get: summary: Download logs description: Download the logs for a job (as a text file). operationId: downloadOrganizationJobsLogs tags: - OrganizationJobs x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/JobIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/LogLevelParameter' responses: '200': description: OK content: text/plain: schema: type: string /api/organizations/{organizationId}/socket-token: get: summary: Get socket token for an organization description: Get a token to authenticate with the web socket interface. tags: - OrganizationJobs x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: getOrganizationSocketToken responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/SocketTokenResponse' # =============== # Organization Pipelines # =============== /api/organizations/{organizationId}/pipelines: get: summary: List pipelines description: Retrieve all organizational pipelines tags: - OrganizationPipelines x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ListPipelinesProjectIdParameter' operationId: "listOrganizationPipelines" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationPipelinesResponse' post: summary: Create pipeline description: Create an organizational pipelines tags: - OrganizationPipelines x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "createOrganizationPipeline" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrganizationUpdatePipelineBody' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreatePipelineResponse' /api/organizations/{organizationId}/pipelines/archived: get: summary: List archived pipelines description: Retrieve all archived organizational pipelines tags: - OrganizationPipelines x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ListPipelinesProjectIdParameter' operationId: "listArchivedOrganizationPipelines" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationPipelinesResponse' /api/organizations/{organizationId}/pipelines/{pipelineId}: get: summary: Get pipeline description: Retrieve an organizational pipelines tags: - OrganizationPipelines x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationPipelineIdParameter' operationId: "getOrganizationPipeline" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationPipelinesResponse' post: summary: Update pipeline description: Update an organizational pipelines tags: - OrganizationPipelines x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationPipelineIdParameter' operationId: "updateOrganizationPipeline" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrganizationUpdatePipelineBody' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete pipeline description: Delete an organizational pipelines tags: - OrganizationPipelines x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationPipelineIdParameter' operationId: "deleteOrganizationPipeline" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/pipelines/{pipelineId}/run: post: summary: Run pipeline description: Run an organizational pipeline tags: - OrganizationPipelines x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationPipelineIdParameter' - $ref: '#/components/parameters/IgnoreLastSuccessfulRunQueryParameter' operationId: "runOrganizationPipeline" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/RunOrganizationPipelineResponse' /api/organizations/{organizationId}/pipelines/{pipelineId}/stop: post: summary: Stop a running pipeline description: Stops the pipeline, and marks it as failed. tags: - OrganizationPipelines x-middleware: - OrganizationAllowDeveloperProfile parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationPipelineIdParameter' operationId: "stopOrganizationPipeline" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' # =============== # CDN # =============== /api-usercdn: get: summary: User CDN resource description: Proxy function to retrieve data from the user CDN. This function is only used during development. operationId: getUserCDNResource security: [] tags: - CDN parameters: - $ref: '#/components/parameters/CDNPathParameter' responses: '200': description: Image content: image/jpeg: schema: type: string # =============== # ORG DATA CAMPAIGNS # =============== /api/organizations/{organizationId}/campaign-dashboards: get: summary: Get data campaign dashboards description: List all data campaign dashboards operationId: getOrganizationDataCampaignDashboards tags: - OrganizationDataCampaigns parameters: - $ref: '#/components/parameters/OrganizationIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDataCampaignDashboardsResponse' post: summary: Add data campaign dashboard description: Add a new data campaign dashboard operationId: addOrganizationDataCampaignDashboard tags: - OrganizationDataCampaigns parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddOrganizationDataCampaignDashboardRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AddOrganizationDataCampaignDashboardResponse' /api/organizations/{organizationId}/campaign-dashboard/{campaignDashboardId}: get: summary: Get data campaign dashboard description: Get a data campaign dashboard operationId: getOrganizationDataCampaignDashboard tags: - OrganizationDataCampaigns parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataCampaignDashboardIdPathParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDataCampaignDashboardResponse' post: summary: Update data campaign dashboard description: Update a data campaign dashboard operationId: updateOrganizationDataCampaignDashboard tags: - OrganizationDataCampaigns parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataCampaignDashboardIdPathParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationDataCampaignDashboardRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete data campaign dashboard description: Delete a data campaign dashboard operationId: deleteOrganizationDataCampaignDashboard tags: - OrganizationDataCampaigns parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataCampaignDashboardIdPathParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/campaign-dashboard/{campaignDashboardId}/campaigns: get: summary: Get data campaigns description: Get a list of all data campaigns for a dashboard operationId: getOrganizationDataCampaignsForDashboard tags: - OrganizationDataCampaigns parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataCampaignDashboardIdPathParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDataCampaignsResponse' /api/organizations/{organizationId}/campaign-dashboard/{campaignDashboardId}/screenshot: post: summary: Upload a dashboard screenshot description: Used internally to upload a picture of a screenshot x-internal-api: true operationId: uploadDashboardScreenshot tags: - OrganizationDataCampaigns parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataCampaignDashboardIdPathParameter' requestBody: required: true content: multipart/form-data: schema: $ref: '#/components/schemas/UploadImageRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/campaigns: post: summary: Add a data campaign description: Add a new data campaign to a data campaign dashboard operationId: addOrganizationDataCampaign tags: - OrganizationDataCampaigns parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AddOrganizationDataCampaignRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AddOrganizationDataCampaignResponse' /api/organizations/{organizationId}/campaigns/{campaignId}: get: summary: Get data campaign description: Get a data campaign operationId: getOrganizationDataCampaign tags: - OrganizationDataCampaigns parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataCampaignIdPathParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDataCampaignResponse' post: summary: Update data campaign description: Update a data campaign operationId: updateOrganizationDataCampaign tags: - OrganizationDataCampaigns parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataCampaignIdPathParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationDataCampaignRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete data campaign description: Delete a data campaign operationId: deleteOrganizationDataCampaign tags: - OrganizationDataCampaigns parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataCampaignIdPathParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/campaigns/{campaignId}/diff: post: summary: Get diff for data campaign description: Get which items have changed for a data campaign. You post the data points and we'll return which data items are different in the past day. operationId: getOrganizationDataCampaignDiff tags: - OrganizationDataCampaigns parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/OrganizationDataCampaignIdPathParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/OrganizationDataCampaignDiffRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/OrganizationDataCampaignDiffResponse' /api/organizations/{organizationId}/exports: get: summary: Get all organization data exports description: Get all data exports for an organization. tags: - Organizations x-middleware: - OrganizationRequiresAdmin operationId: "getOrganizationDataExports" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDataExportsResponse' /api/organizations/{organizationId}/exports/{exportId}: get: summary: Get organization data export description: Get a data export for an organization. tags: - Organizations x-middleware: - OrganizationRequiresAdmin operationId: "getOrganizationDataExport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ExportIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDataExportResponse' /api/organizations/{organizationId}/exports/{exportId}/download: get: summary: Download organization data export description: Download a data export for an organization. tags: - Organizations x-middleware: - OrganizationRequiresAdmin operationId: "downloadOrganizationDataExport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ExportIdParameter' responses: '302': description: "A redirect to the ZIP file" # =============== # HEALTH # =============== /api-health: get: summary: Get studio web containers health security: [] description: Get studio web containers health. tags: - Health parameters: - $ref: '#/components/parameters/HealthCheckRequesterParameter' operationId: "health" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' '503': description: Unhealthy content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/api-health: get: summary: Get studio api containers health security: [] description: Get studio api containers health. tags: - Health parameters: - $ref: '#/components/parameters/HealthCheckRequesterParameter' operationId: "apiHealth" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' '503': description: Unhealthy content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' # =============== # Projects 2 # This is here because this wildcard URL should be last # Quite annoying and the API is used in the while so we cannot change URL either. # =============== /api/{projectId}: get: summary: Project information description: List all information about this project. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "getProjectInfo" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProjectInfoResponse' post: summary: Update project description: Update project properties such as name and logo. tags: - Projects parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "updateProject" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateProjectRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Remove project description: Remove the current project, and all data associated with it. This is irrevocable! tags: - Projects x-middleware: - ProjectRequiresAdmin parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "deleteProject" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/{projectId}/public-info: get: summary: Public project information description: List a summary about this project - available for public projects. tags: - Projects x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "getProjectInfoSummary" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProjectInfoSummaryResponse' # ====================== # FEATURE FLAGS (PUBLIC) # ====================== /api-feature-flags: get: summary: Get the current global feature flags and whether they are enabled security: [] description: Get the current global feature flags and whether they are enabled operationId: "getFeatureFlags" tags: - FeatureFlags responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetFeatureFlagsResponse' # =============== # ADMIN # =============== /api/admin/metrics: get: summary: Get global metrics description: Admin-only API to get global metrics. x-internal-api: true security: [ "permissions": [ "admin:metrics:read" ] ] tags: - Admin operationId: "adminGetMetrics" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetMetricsResponse' /api/admin/infra/migrations: get: summary: Get data migrations description: Admin-only API to get data migrations. x-internal-api: true security: [ "permissions": [ "admin:infra:migrations:read" ] ] tags: - Admin operationId: "adminGetDataMigrations" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetDataMigrationsResponse' /api/admin/infra/migrations/{migrationId}: get: summary: Get data migration description: Admin-only API to get a data migration. x-internal-api: true security: [ "permissions": [ "admin:infra:migrations:read" ] ] tags: - Admin operationId: "adminGetDataMigration" parameters: - $ref: '#/components/parameters/MigrationIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetDataMigrationResponse' post: summary: Run or pause a data migration description: Admin-only API to run or pause a data migration. x-internal-api: true security: [ "permissions": [ "admin:infra:migrations:write" ] ] tags: - Admin operationId: "adminToggleDataMigration" parameters: - $ref: '#/components/parameters/MigrationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminToggleDataMigrationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/infra/disallowedEmailDomains: get: summary: Get the list of disallowed email domains description: Admin-only API to get the list of disallowed email domains. x-internal-api: true tags: - Admin operationId: "adminGetDisallowedEmailDomains" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetDisallowedEmailDomainsResponse' put: summary: Add a disallowed email domain description: Admin-only API to add an email domain to the list of disallowed email domains. x-internal-api: true security: [ "permissions": [ "admin:infra:disallowedEmailDomains:write" ] ] tags: - Admin operationId: "adminAddDisallowedEmailDomain" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminAddDisallowedEmailDomainRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/infra/disallowedEmailDomains/{domainName}: delete: summary: Delete disallowed email domain description: Admin-only API to delete an email domain from the list of disallowed email domains. x-internal-api: true security: [ "permissions": [ "admin:infra:disallowedEmailDomains:write" ] ] tags: - Admin operationId: "adminDeleteDisallowedEmailDomain" parameters: - $ref: '#/components/parameters/DomainNameParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/infra/featureFlags: get: summary: Get all feature flags description: Admin-only API to get all feature flags. x-internal-api: true security: [ "permissions": [ "admin:infra:featureFlags:read" ] ] tags: - Admin operationId: "adminGetFeatureFlags" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetFeatureFlagsResponse' /api/admin/infra/featureFlags/{featureId}: put: summary: Set a feature flag ON description: Admin-only API to set a feature flag ON. Setting a feature flag ON essentially enables the feature for all users. x-internal-api: true security: [ "permissions": [ "admin:infra:featureFlags:write" ] ] tags: - Admin operationId: "adminEnableFeature" parameters: - $ref: '#/components/parameters/FeatureIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Set a feature flag OFF description: Admin-only API to delete a feature flag. Deleting a feature flag essentially disables the feature for all users. x-internal-api: true security: [ "permissions": [ "admin:infra:featureFlags:write" ] ] tags: - Admin operationId: "adminDisableFeature" parameters: - $ref: '#/components/parameters/FeatureIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/users: get: summary: Get all users description: Admin-only API to get the list of all registered users. x-internal-api: true security: [ "permissions": [ "admin:users:read" ] ] tags: - Admin operationId: "adminGetUsers" parameters: - $ref: '#/components/parameters/FiltersActiveParameter' - $ref: '#/components/parameters/FiltersTierParameter' - $ref: '#/components/parameters/FieldsParameter' - $ref: '#/components/parameters/SortQueryParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/SearchQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetUsersResponse' /api/admin/users/{userId}: get: summary: Get user description: Admin-only API to get information about a user. x-internal-api: true security: [ "permissions": [ "admin:users:read" ] ] tags: - Admin operationId: "adminGetUser" parameters: - $ref: '#/components/parameters/UserIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetUserResponse' post: summary: Update user description: Admin-only API to update user properties. x-internal-api: true security: [ "permissions": [ "admin:users:write" ] ] tags: - Admin operationId: "adminUpdateUser" parameters: - $ref: '#/components/parameters/UserIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminUpdateUserRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete a user description: Admin-only API to delete a user. If `fullDeletion` is set, it deletes the user's identifiable information and files. Otherwise, it soft deletes the user by setting it's `delete_date` value. x-internal-api: true security: [ "permissions": [ "admin:users:write" ] ] tags: - Admin operationId: "adminDeleteUser" parameters: - $ref: '#/components/parameters/UserIdParameter' - $ref: '#/components/parameters/FullDeleteEntityParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/admin/users/{userId}/metrics: get: summary: Get user metrics description: Admin-only API to get marketing metrics about a user. x-internal-api: true security: [ "permissions": [ "admin:users:read" ] ] tags: - Admin operationId: "adminGetUserMetrics" parameters: - $ref: '#/components/parameters/UserIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetUserMetricsResponse' /api/admin/users/{userId}/permissions: post: summary: Update user permissions description: Admin-only API to update the list of permissions for a user. x-internal-api: true security: [ "permissions": [ "admin:users:permissions:write" ] ] tags: - Admin operationId: "adminUpdateUserPermissions" parameters: - $ref: '#/components/parameters/UserIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminUpdateUserPermissionsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/users/{userId}/trials: post: summary: Create user enterprise trial description: Admin-only API to create an enterprise trial for a user. x-internal-api: true security: [ "permissions": [ "admin:users:trials:write" ] ] tags: - Admin operationId: "adminCreateUserTrial" parameters: - $ref: '#/components/parameters/UserIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/StartEnterpriseTrialRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/EntityCreatedResponse' /api/admin/users/{userId}/trials/{enterpriseTrialId}: get: summary: Get user enterprise trial description: Admin-only API to get a specific enterprise trial. x-internal-api: true security: [ "permissions": [ "admin:users:read" ] ] tags: - Admin operationId: "adminGetUserTrial" parameters: - $ref: '#/components/parameters/UserIdParameter' - $ref: '#/components/parameters/EnterpriseTrialIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetUserTrialResponse' put: summary: Update user enterprise trial description: Admin-only API to update an enterprise trial for a user. x-internal-api: true security: [ "permissions": [ "admin:users:trials:write" ] ] tags: - Admin operationId: "adminUpdateUserTrial" parameters: - $ref: '#/components/parameters/UserIdParameter' - $ref: '#/components/parameters/EnterpriseTrialIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminUpdateUserTrialRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete user enterprise trial description: Admin-only API to delete an enterprise trial for a user. x-internal-api: true security: [ "permissions": [ "admin:users:trials:write" ] ] tags: - Admin operationId: "adminDeleteUserTrial" parameters: - $ref: '#/components/parameters/UserIdParameter' - $ref: '#/components/parameters/EnterpriseTrialIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/users/{userId}/trials/{enterpriseTrialId}/upgrade: post: summary: Upgrade user enterprise trial to a full enterprise account description: Admin-only API to upgrade a specific enterprise trial for a user to a full enterprise account. x-internal-api: true security: [ "permissions": [ "admin:users:trials:write" ] ] tags: - Admin operationId: "adminUpgradeUserTrial" parameters: - $ref: '#/components/parameters/UserIdParameter' - $ref: '#/components/parameters/EnterpriseTrialIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/projects: get: summary: Get all projects description: Admin-only API to get the list of all projects. x-internal-api: true security: [ "permissions": [ "admin:projects:read" ] ] tags: - Admin operationId: "adminGetProjects" parameters: - $ref: '#/components/parameters/FiltersActiveParameter' - $ref: '#/components/parameters/SortQueryParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/SearchQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminListProjectsResponse' post: summary: Create a new project description: Admin-only API to create a new free tier project. x-internal-api: true tags: - Admin security: [ "permissions": [ "admin:projects:write" ] ] operationId: "adminCreateProject" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminCreateProjectRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateProjectResponse' /api/admin/projects/{projectId}: get: summary: Get project description: Admin-only API to get project information. x-internal-api: true security: [ "permissions": [ "admin:projects:read" ] ] tags: - Admin operationId: "adminGetProject" parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ProjectInfoResponse' post: summary: Update project description: Admin-only API to update project properties. x-internal-api: true security: [ "permissions": [ "admin:projects:write" ] ] tags: - Admin operationId: "adminUpdateProject" parameters: - $ref: '#/components/parameters/ProjectIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/UpdateProjectRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete a project description: Admin-only API to delete a project. x-internal-api: true security: [ "permissions": [ "admin:projects:write" ] ] tags: - Admin operationId: "adminDeleteProject" parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/projects/{projectId}/members: post: summary: Add user to a project description: Admin-only API to add a user to a project. If no user is provided, the current user is used. x-internal-api: true security: [ "permissions": [ "admin:projects:members:write" ] ] tags: - Admin parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "adminAddUserToProject" requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminAddProjectUserRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/projects/{projectId}/members/{userId}: delete: summary: Remove user from a project description: Admin-only API to remove a user from a project. x-internal-api: true security: [ "permissions": [ "admin:projects:members:write" ] ] tags: - Admin parameters: - $ref: '#/components/parameters/ProjectIdParameter' - $ref: '#/components/parameters/UserIdParameter' operationId: "adminRemoveUserFromProject" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/organizations: get: summary: Get all organizations description: Admin-only API to get the list of all organizations. x-internal-api: true security: [ "permissions": [ "admin:organizations:read" ] ] tags: - Admin operationId: "adminGetOrganizations" parameters: - $ref: '#/components/parameters/FiltersActiveParameter' - $ref: '#/components/parameters/FiltersIncludeDeletedParameter' - $ref: '#/components/parameters/SortQueryParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' - $ref: '#/components/parameters/SearchQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetOrganizationsResponse' post: summary: Create a new organization description: Admin-only API to create a new organization. x-internal-api: true security: [ "permissions": [ "admin:organizations:write" ] ] tags: - Admin operationId: "adminCreateOrganization" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminCreateOrganizationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateOrganizationResponse' /api/admin/organizations/{organizationId}: get: summary: Organization information description: "Admin-only API to list all information about this organization." x-internal-api: true security: [ "permissions": [ "admin:organizations:read" ] ] tags: - Admin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/FiltersIncludeDeletedParameter' operationId: "adminGetOrganizationInfo" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminOrganizationInfoResponse' post: summary: Update organization description: "Admin-only API to update organization properties such as name and logo." x-internal-api: true security: [ "permissions": [ "admin:organizations:write" ] ] tags: - Admin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "adminUpdateOrganization" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminUpdateOrganizationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete an organization description: Admin-only API to delete an organization. If `fullDeletion` is set, it deletes the organization's identifiable information and files. Otherwise, it soft deletes the organization by setting its `delete_date` value. x-internal-api: true security: [ "permissions": [ "admin:organizations:write" ] ] tags: - Admin operationId: "adminDeleteOrganization" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/FullDeleteEntityParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/organizations/{organizationId}/restore: post: summary: Restore an organization description: > Admin-only API to restore a soft deleted organization. All organization projects sharing the same deletion date as that of the organization will also be restored. If this is a trial organization that was never upgraded to a paid plan then the organization will be restored to its original trial state. x-internal-api: true security: [ "permissions": [ "admin:organizations:write" ] ] tags: - Admin operationId: "adminRestoreOrganization" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/organizations/{organizationId}/usage/computeTime: get: summary: Get organization compute time usage description: Admin-only API to get compute time usage for an organization over a period of time. x-internal-api: true security: [ "permissions": [ "admin:organizations:read" ] ] tags: - Admin operationId: "adminGetOrganizationComputeTimeUsage" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/RequiredStartDateParameter' - $ref: '#/components/parameters/RequiredEndDateParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetOrganizationComputeTimeUsageResponse' /api/admin/organizations/{organizationId}/usage/reports: get: summary: Get all usage reports description: Admin-only API to get all usage reports for an organization. x-internal-api: true security: [ "permissions": [ "admin:organizations:read" ] ] tags: - Admin operationId: "adminGetOrganizationUsageReports" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetOrganizationUsageReportsResponse' post: summary: Creates a new usage report description: Admin-only API to create a new usage report for an organization. A job is created to process the report request and the job details are returned in the response. x-internal-api: true security: [ "permissions": [ "admin:organizations:read" ] ] tags: - Admin operationId: "adminCreateOrganizationUsageReport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/RequiredStartDateParameter' - $ref: '#/components/parameters/RequiredEndDateParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/admin/organizations/{organizationId}/usage/reports/{usageReportId}: get: summary: Get usage report description: Admin-only API to get a usage report for an organization. x-internal-api: true security: [ "permissions": [ "admin:organizations:read" ] ] tags: - Admin operationId: "adminGetOrganizationUsageReport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/UsageReportIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetOrganizationUsageReportResponse' delete: summary: Delete usage report description: Admin-only API to delete a usage report for an organization. x-internal-api: true security: [ "permissions": [ "admin:organizations:read" ] ] tags: - Admin operationId: "adminDeleteOrganizationUsageReport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/UsageReportIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/organizations/{organizationId}/usage/reports/{usageReportId}/download: get: summary: Download usage report description: Admin-only API to download a usage report for an organization. x-internal-api: true security: [ "permissions": [ "admin:organizations:read" ] ] tags: - Admin operationId: "adminDownloadOrganizationUsageReport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/UsageReportIdParameter' responses: '302': description: "A redirect to the CSV file" /api/admin/organizations/{organizationId}/members: post: summary: Add user to an organization description: Admin-only API to add a user to an organization. If no user is provided, the current user is used. x-internal-api: true security: [ "permissions": [ "admin:organizations:members:write" ] ] tags: - Admin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "adminAddUserToOrganization" requestBody: content: application/json: schema: $ref: '#/components/schemas/AdminAddOrganizationUserRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/organizations/{organizationId}/members/{userId}: delete: summary: Remove user from an organization description: Admin-only API to remove a user from an organization. x-internal-api: true security: [ "permissions": [ "admin:organizations:members:write" ] ] tags: - Admin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/UserIdParameter' operationId: "adminRemoveUserFromOrganization" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/organizations/{organizationId}/projects: post: summary: Create a new organization project description: Admin-only API to create a new project for an organization. x-internal-api: true security: [ "permissions": [ "admin:projects:write" ] ] tags: - Admin parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "adminCreateOrganizationProject" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminCreateProjectRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateProjectResponse' /api/admin/organizations/{organizationId}/exports: get: summary: Get all organization data exports description: Admin-only API to get the list of all data exports for an organization. x-internal-api: true security: [ "permissions": [ "admin:organizations:read" ] ] tags: - Admin operationId: "adminGetOrganizationDataExports" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/LimitResultsParameter' - $ref: '#/components/parameters/OffsetResultsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDataExportsResponse' post: summary: Create a new organization data export description: | Admin-only API to create a new data export for an organization. A job is created to process the export request and the job details are returned in the response. x-internal-api: true security: [ "permissions": [ "admin:organizations:write" ] ] tags: - Admin operationId: "adminCreateOrganizationDataExport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminCreateOrganizationDataExportRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/StartJobResponse' /api/admin/organizations/{organizationId}/exports/{exportId}: get: summary: Get organization data export description: Admin-only API to get a data export for an organization. x-internal-api: true security: [ "permissions": [ "admin:organizations:read" ] ] tags: - Admin operationId: "adminGetOrganizationDataExport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ExportIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationDataExportResponse' delete: summary: Delete organization data export description: Admin-only API to delete a data export for an organization. x-internal-api: true security: [ "permissions": [ "admin:organizations:write" ] ] tags: - Admin operationId: "adminDeleteOrganizationDataExport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ExportIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' put: summary: Update organization data export description: Admin-only API to update a data export for an organization. x-internal-api: true security: [ "permissions": [ "admin:organizations:write" ] ] tags: - Admin operationId: "adminUpdateOrganizationDataExport" parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/ExportIdParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminUpdateOrganizationDataExportRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/sso: get: summary: Get SSO settings description: Admin-only API to get the SSO settings. x-internal-api: true tags: - Admin x-middleware: - RequiresSudo operationId: "adminGetSSOSettings" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetSSOSettingsResponse' /api/admin/sso/{domainName}: get: summary: Get SSO settings for a domain description: Admin-only API to get the list of identity providers enabled for a given domain. x-internal-api: true tags: - Admin x-middleware: - RequiresSudo operationId: "adminGetSSODomainIdPs" parameters: - $ref: '#/components/parameters/DomainNameParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetSSODomainIdPsResponse' put: summary: Add or update SSO settings for a domain description: Admin-only API to set the list of identity provider for a given domain. x-internal-api: true tags: - Admin x-middleware: - RequiresSudo operationId: "adminAddOrUpdateSSODomainIdPs" parameters: - $ref: '#/components/parameters/DomainNameParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/AdminAddOrUpdateSSODomainIdPsRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' delete: summary: Delete SSO settings for a domain description: Admin-only API to delete the list of identity providers for a given domain. x-internal-api: true tags: - Admin x-middleware: - RequiresSudo operationId: "adminDeleteSSODomainIdPs" parameters: - $ref: '#/components/parameters/DomainNameParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/jobs/{jobId}/details: get: summary: Get job execution details description: Get the job execution details including inner jobs x-internal-api: true security: [ "permissions": [ "admin:jobs:read" ] ] operationId: adminGetJobDetails tags: - Admin parameters: - $ref: '#/components/parameters/JobIdParameter' - $ref: '#/components/parameters/ParentTypeParameter' - $ref: '#/components/parameters/IncludeChildrenJobsParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/JobDetailsResponse' /api/admin/jobs/{jobId}/logs: get: summary: Get job logs description: Get the logs for a job. x-internal-api: true security: [ "permissions": [ "admin:jobs:read" ] ] operationId: adminGetJobsLogs tags: - Admin parameters: - $ref: '#/components/parameters/JobIdParameter' - $ref: '#/components/parameters/ParentTypeParameter' - $ref: '#/components/parameters/LogsLimitParameter' - $ref: '#/components/parameters/LogsOffsetParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/JobLogsResponse' /api/admin/jobs/{jobId}/metrics: get: summary: Get job usage metrics description: Get cpu/memory usage metrics, if the job is a Kubernetes job x-internal-api: true security: [ "permissions": [ "admin:jobs:read" ] ] operationId: adminGetJobsMetrics tags: - Admin parameters: - $ref: '#/components/parameters/JobIdParameter' - $ref: '#/components/parameters/ParentTypeParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/JobMetricsResponse' /api/admin/emails/{email}/verification-code: get: summary: Get enterprise trial email verification code description: Get the enterprise trial verification code of the specified email. x-internal-api: true security: [ "permissions": [ 'admin:emails:verification:code:read' ] ] operationId: adminGetEmailVerificationCode tags: - Admin parameters: - $ref: '#/components/parameters/EmailParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetEmailVerificationCodeResponse' # ==================== # DEPRECATED ADMIN API # ==================== /api/admin/find-user: get: summary: Find a user description: DEPRECATED. Admin-only API to find a user by username or email address. x-internal-api: true security: [ "permissions": [ "admin:users:read" ] ] tags: - Admin operationId: "adminFindUser" deprecated: true # Use /api/admin/users?search= instead parameters: - $ref: '#/components/parameters/FindUserQueryParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/FindUserResponse' /api/admin/users-ids: get: summary: Get all user IDs description: DEPRECATED. Admin-only API to get list of all users. x-internal-api: true security: [ "permissions": [ "admin:users:read" ] ] tags: - Admin operationId: "adminGetAllUserIds" deprecated: true # Use /api/admin/users?fields=id instead responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetUserIdsResponse' /api/admin/users-ids/active: get: summary: Get all user IDs (active last 30 days) description: DEPRECATED. Admin-only API to get list of all users that have been active in the past 30 days. x-internal-api: true security: [ "permissions": [ "admin:users:read" ] ] tags: - Admin operationId: "adminGetAllActiveUserIds" deprecated: true # Use /api/admin/users?active=30&fields=id instead responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/AdminGetUserIdsResponse' /api/admin/projects/{projectId}/add: post: summary: Add current user to a project description: DEPRECATED. Admin-only API to add the current user to a project. x-internal-api: true security: [ "permissions": [ "admin:projects:members:write" ] ] tags: - Admin parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "adminAddUserToProjectDeprecated" deprecated: true # Use /api/admin/projects/{projectId}/members instead responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/admin/projects/{projectId}/remove: post: summary: Remove current user from a project description: DEPRECATED. Admin-only API to remove the current user from a project. x-internal-api: true security: [ "permissions": [ "admin:projects:members:write" ] ] tags: - Admin parameters: - $ref: '#/components/parameters/ProjectIdParameter' operationId: "adminRemoveUserFromProjectDeprecated" deprecated: true # Use /api/admin/projects/{projectId}/members/{userId} instead responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' # =============== # METRICS # =============== /api-metrics: get: summary: Get public metrics security: [] description: Get information about number of projects, compute and data samples. Updated once per hour. tags: - Metrics operationId: "getPublicMetrics" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetPublicMetricsResponse' /api-metrics/website/pageviews: post: summary: Log website pageview security: [] description: Log a website pageview. Used for website analytics. tags: - Metrics operationId: "logWebsitePageview" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LogWebsitePageviewRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api-metrics/events: post: summary: Log analytics event security: [] description: Log an analytics event. tags: - Metrics operationId: "logAnalyticsEvent" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/LogAnalyticsEventRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' # =============== # UPLOAD PORTAL # =============== /api/portals/{portalId}: get: summary: Portal info description: Get information about a portal tags: - UploadPortal parameters: - $ref: '#/components/parameters/PortalIdParameter' operationId: "getPortalInfo" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/PortalInfoResponse' /api/portals/{portalId}/upload-link: post: summary: Create pre-signed S3 upload link description: Creates a signed link to securely upload data to s3 bucket directly from the client. tags: - UploadPortal parameters: - $ref: '#/components/parameters/PortalIdParameter' operationId: "createSignedUploadLink" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateSignedUploadLinkRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateSignedUploadLinkResponse' /api/portals/{portalId}/files: post: summary: List files in portal description: List all files and directories in specified prefix. tags: - UploadPortal parameters: - $ref: '#/components/parameters/PortalIdParameter' operationId: "listPortalFilesInFolder" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ListPortalFilesInFolderRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListPortalFilesInFolderResponse' /api/portals/{portalId}/files/delete: post: summary: Delete file from portal description: Delete a file from an upload portal (requires JWT auth). tags: - UploadPortal parameters: - $ref: '#/components/parameters/PortalIdParameter' operationId: "deletePortalFile" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DeletePortalFileRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/portals/{portalId}/files/rename: post: summary: Rename file from portal description: Rename a file on an upload portal (requires JWT auth). tags: - UploadPortal parameters: - $ref: '#/components/parameters/PortalIdParameter' operationId: "renamePortalFile" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RenamePortalFileRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/portals/{portalId}/files/download: post: summary: Download file from portal description: Download a file from an upload portal (requires JWT auth). Will return a signed URL to the bucket. tags: - UploadPortal parameters: - $ref: '#/components/parameters/PortalIdParameter' operationId: "downloadPortalFile" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DownloadPortalFileRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/DownloadPortalFileResponse' /api/portals/{portalId}/files/view: get: summary: View file from portal description: View a file that's located in an upload portal (requires JWT auth). File might be converted (e.g. Parquet) or truncated (e.g. CSV). tags: - UploadPortal x-middleware: - ContentDispositionInline parameters: - $ref: '#/components/parameters/PortalIdParameter' - $ref: '#/components/parameters/PortalPathParameter' operationId: "viewPortalFile" responses: '200': description: OK content: application/octet-stream: schema: type: string format: binary /api/organizations/{organizationId}/portals: get: summary: List upload portals description: Retrieve all configured upload portals. tags: - OrganizationPortals parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "listOrganizationPortals" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ListOrganizationPortalsResponse' /api/organizations/{organizationId}/portals/{portalId}: get: summary: Retrieve upload portal information description: Retrieve a single upload portals identified by ID. tags: - OrganizationPortals parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/PortalIdParameter' operationId: "getOrganizationPortal" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetOrganizationPortalResponse' /api/organizations/{organizationId}/portals/{portalId}/verify: get: summary: Verify upload portal information description: Retrieve a subset of files from the portal, to be used in the data source wizard. tags: - OrganizationPortals parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/PortalIdParameter' operationId: "verifyOrganizationPortal" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/VerifyOrganizationBucketResponse' /api/organizations/{organizationId}/portals/create: post: summary: Create upload portal description: Creates a new upload portal for the organization. tags: - OrganizationPortals parameters: - $ref: '#/components/parameters/OrganizationIdParameter' operationId: "createOrganizationPortal" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateOrganizationPortalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateOrganizationPortalResponse' /api/organizations/{organizationId}/portals/{portalId}/update: put: summary: Update upload portal description: Updates an upload portal for the organization. tags: - OrganizationPortals parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/PortalIdParameter' operationId: "updateOrganizationPortal" requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateOrganizationPortalRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/UpdateOrganizationPortalResponse' /api/organizations/{organizationId}/portals/{portalId}/rotate-token: delete: summary: Rotate upload portal token description: Rotates the token for an upload portal. tags: - OrganizationPortals parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/PortalIdParameter' operationId: "rotateOrganizationPortalToken" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' /api/organizations/{organizationId}/portals/{portalId}/delete: delete: summary: Delete upload portal description: Deletes an upload portal for the organization. tags: - OrganizationPortals parameters: - $ref: '#/components/parameters/OrganizationIdParameter' - $ref: '#/components/parameters/PortalIdParameter' operationId: "deleteOrganizationPortal" responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GenericApiResponse' # =============== # PROJECT NOTES # =============== /api/{projectId}/notes: get: summary: Get notes description: Get all notes in project. operationId: getNotes tags: - Projects x-middleware: - AllowsReadOnly parameters: - $ref: '#/components/parameters/ProjectIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetNotesResponse' # ================================== # ENTERPRISE TRIAL EMAIL VERIFICATION # ================================== /api/emails/{email}/request-verification: post: summary: Request email verification description: Request an email activation code to be sent to the specified email address. security: [] operationId: requestEmailVerification tags: - EmailVerification parameters: - $ref: '#/components/parameters/EmailParameter' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RequestEmailVerificationRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/EntityCreatedResponse' /api/emails/verify: post: summary: Verify email description: Verify an email address using the specified verification code. security: [] operationId: verifyEmail tags: - EmailVerification requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/ActivateUserOrVerifyEmailRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/VerifyEmailResponse' /api/emails/{emailId}: get: summary: Get email verification status description: Get the status of an email verification. security: [] operationId: getEmailVerificationStatus tags: - EmailVerification parameters: - $ref: '#/components/parameters/EmailIdParameter' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/GetEmailVerificationStatusResponse' components: securitySchemes: ApiKeyAuthentication: type: apiKey in: header name: x-api-key JWTAuthentication: type: apiKey in: cookie name: jwt JWTHttpHeaderAuthentication: type: apiKey in: header name: x-jwt-token parameters: ProjectIdParameter: name: projectId in: path required: true description: Project ID schema: type: integer BlockIdParameter: name: blockId in: path required: true description: Block ID schema: type: integer AuthIdParameter: name: authId in: path required: true description: Auth ID schema: type: integer DeviceIdParameter: name: deviceId in: path required: true description: Device ID schema: type: string SampleIdParameter: name: sampleId in: path required: true description: Sample ID schema: type: integer SampleWindowIndexParameter: name: windowIndex in: path required: true description: Sample window index schema: type: integer DspIdParameter: name: dspId in: path required: true description: DSP Block ID, use the impulse functions to retrieve the ID schema: type: integer TransferLearningIdParameter: name: transferLearningId in: path required: true description: Transfer learning ID schema: type: integer SecretIdParameter: name: secretId in: path required: true description: Secret ID schema: type: integer LearnIdParameter: name: learnId in: path required: true description: Learn Block ID, use the impulse functions to retrieve the ID schema: type: integer ModelDownloadIdParameter: name: modelDownloadId in: path required: true description: Model download ID, which can be obtained from the project information schema: type: string RawDataCategoryParameter: name: category in: path required: true description: Which of the three acquisition categories to download data from schema: type: string enum: [ training, testing, anomaly ] DspArtifactKeyParameter: name: key in: path required: true description: DSP artifact file key schema: type: string ModelVariantParameter: name: variant in: query required: false description: Keras model variant schema: $ref: '#/components/schemas/KerasModelVariantEnum' IncludeDisabledParameter: name: includeDisabled in: query required: false description: Whether to include disabled samples. Defaults to true schema: type: boolean IncludeNotProcessedParameter: name: includeNotProcessed in: query required: false description: Whether to include non-processed samples. Defaults to true schema: type: boolean DSPDataRawParameter: name: raw in: query required: false description: Whether to download raw data or processed data. Processed data is the default. schema: type: boolean RawDataCategoryQueryParameter: name: category in: query required: true description: Which of the three acquisition categories to retrieve data from schema: type: string enum: [ training, testing, anomaly ] JobIdParameter: name: jobId in: path required: true description: Job ID schema: type: integer ParentTypeParameter: name: parentType in: query required: true description: Job parent type (project, organization, or standalone) schema: $ref: '#/components/schemas/JobParentTypeEnum' IncludeChildrenJobsParameter: name: includeChildrenJobs in: query required: false description: Include the details of each of the children jobs (recursively) schema: type: boolean TrialIdParameter: name: trialId in: path required: true description: trial ID schema: type: string TrialIdQueryParameter: name: trialId in: query required: true description: trial ID schema: type: string HmacIdParameter: name: hmacId in: path required: true description: Hmac key ID schema: type: integer ApiKeyIdParameter: name: apiKeyId in: path required: true description: API key ID schema: type: integer UserIdParameter: name: userId in: path required: true description: User ID schema: type: integer UserUUIDParameter: name: userUUID in: path required: true description: User UUID schema: type: string LimitPayloadValues: name: limitPayloadValues in: query required: false description: Limit the number of payload values in the response schema: type: integer ZoomStart: name: zoomStart in: query required: false description: Zoom into the sample, with the focus starting at this index schema: type: integer ZoomEnd: name: zoomEnd in: query required: false description: Zoom into the sample, with the focus ending at this index schema: type: integer AxisIndexParameter: name: axisIx in: query required: true description: Axis index schema: type: integer SliceStartParameter: name: sliceStart in: query required: true description: Begin index of the slice schema: type: integer OptionalSliceStartParameter: name: sliceStart in: query required: false description: Begin index of the slice. If not given, the whole sample is used. schema: type: integer OptionalSliceEndParameter: name: sliceEnd in: query required: false description: End index of the slice. If not given, the whole sample is used. schema: type: integer OptionalSliceEndDefaultToWindowLengthParameter: name: sliceEnd in: query required: false description: End index of the slice. If not given, the sample will be sliced to the same length as the impulse input block window length. schema: type: integer DeploymentTypeParameter: name: type in: query required: true description: The name of the built target. You can find this by listing all deployment targets through `listDeploymentTargetsForProject` (via `GET /v1/api/{projectId}/deployment/targets`) and see the `format` type. schema: type: string ModelTypeParameter: name: modelType in: query required: false description: Optional model type of the build (if not, it uses the settings in the Keras block) schema: $ref: '#/components/schemas/KerasModelTypeEnum' ModelEngineParameter: name: engine in: query required: false description: Optional engine for the build (if not, it uses the default engine for the deployment target) schema: $ref: '#/components/schemas/DeploymentTargetEngine' DiscourseSsoParameter: name: sso in: query required: true description: Single sign-on token schema: type: string DiscourseSigParameter: name: sig in: query required: true description: Verification signature schema: type: string CDNPathParameter: name: path in: query required: true description: CDN Path schema: type: string RequiredStartDateParameter: name: startDate in: query required: true description: Start date schema: type: string format: date-time RequiredEndDateParameter: name: endDate in: query required: true description: End date schema: type: string format: date-time OptionalStartDateParameter: name: startDate in: query required: false description: Start date schema: type: string format: date-time OptionalEndDateParameter: name: endDate in: query required: false description: End date schema: type: string format: date-time OrganizationIdParameter: name: organizationId in: path required: true description: Organization ID schema: type: integer InnerOrganizationIdParameter: name: innerOrganizationId in: path required: true description: Organization ID within the context of a white label schema: type: integer FullDeleteEntityParameter: name: fullDeletion in: query required: false description: Set to true for full deletion schema: type: boolean OptimizeOrganizationIdParameter: name: organizationId in: query required: true description: Organization ID schema: type: integer OptimizeOrganizationDspIdParameter: name: organizationDspId in: query required: true description: Organization DSP ID schema: type: integer PortalIdParameter: name: portalId in: path required: true description: Portal ID schema: type: integer MemberIdParameter: name: memberId in: path required: true description: Member ID schema: type: integer BucketIdParameter: name: bucketId in: path required: true description: Bucket ID schema: type: integer OrganizationDatasetParameter: name: dataset in: query required: false description: Selected dataset example: activity data schema: type: string OrganizationDatasetRequiredParameter: name: dataset in: query required: true description: Selected dataset example: activity data schema: type: string OrganizationDataFilterParameter: name: filter in: query required: false description: Data filter in SQL WHERE format, where you can reference 'dataset', 'bucket', 'name', 'total_file_count', 'total_file_size', 'created' and any metadata label through 'metadata->' (dots are replaced by underscore). example: dataset = 'activity data' AND (label = 'running' OR metadata->user = 'Jan Jongboom') schema: type: string OrganizationProjectsDataFilterParameter: name: filter in: query required: false description: Data filter in SQL WHERE format, where you can reference 'filename', 'label', 'project_name', 'category', 'sensors', 'frequency', and any metadata through 'metadata->' (dots are replaced by underscore). example: label = 'yes' AND (project_name LIKE 'keyword%' OR metadata->user = 'Jan Jongboom') schema: type: string OrganizationProjectsDataProjectIdParameter: name: projectId in: query required: false description: Unique identifier of the organizational project from where data samples will be fetched. example: 12 schema: type: integer OrganizationDataIdParameter: name: dataId in: path required: true description: Data ID schema: type: integer OrganizationDatasetPathParameter: name: dataset in: path required: true description: Dataset name schema: type: string OrganizationPathInDatasetParameter: name: path in: query required: true description: Path, relative to dataset schema: type: string OrganizationFileNameParameter: name: fileName in: query required: true description: File name schema: type: string OrganizationDataIdsParameter: name: dataIds in: query required: true description: Data IDs as an Array example: [ 3, 7 ] schema: type: string LimitResultsParameter: name: limit in: query required: false description: Maximum number of results schema: type: integer LogsLimitParameter: name: limit in: query required: true description: Maximum number of logs schema: type: integer LogsOffsetParameter: name: offset in: query required: true description: Start fetching logs from this offset schema: type: integer LogLevelParameter: name: logLevel in: query required: false description: Log level (error, warn, info, debug) schema: type: string enum: ['error', 'warn', 'info', 'debug'] SearchQueryParameter: name: search in: query required: false description: Search query schema: example: " " type: string OffsetResultsParameter: name: offset in: query required: false description: Offset in results, can be used in conjunction with LimitResultsParameter to implement paging. schema: type: integer FeatureExplorerOnlyParameter: name: featureExplorerOnly in: query required: false description: Whether to get only the classification results relevant to the feature explorer. schema: type: boolean IncludeDebugInfoParameter: name: includeDebugInfo in: query required: false description: Whether to return the debug information from FOMO classification. schema: type: boolean ExcludeSensorsParameter: name: excludeSensors in: query required: false description: Whether to exclude sensors in the response (as these can slow down requests when you have large pages). schema: type: boolean FiltersLabelsParameter: name: labels in: query required: false description: Only include samples with a label within the given list of labels, given as a JSON string schema: example: '["idle", "snake"]' type: string FiltersFilenameParameter: name: filename in: query required: false description: Only include samples whose filename includes the given filename schema: type: string FiltersMaxLengthParameter: name: maxLength in: query required: false description: Only include samples shorter than the given length, in milliseconds schema: type: integer FiltersMinLengthParameter: name: minLength in: query required: false description: Only include samples longer than the given length, in milliseconds schema: type: integer FiltersMinFrequencyParameter: name: minFrequency in: query required: false description: Only include samples with higher frequency than given frequency, in hertz schema: type: number FiltersMaxFrequencyParameter: name: maxFrequency in: query required: false description: Only include samples with lower frequency than given frequency, in hertz schema: type: number FiltersSignatureParameter: name: signatureValidity in: query required: false description: Include samples with either valid or invalid signatures schema: type: string enum: - both - valid - invalid FiltersDisabledParameter: name: includeDisabled in: query required: false description: Include only enabled or disabled samples (or both) schema: type: string enum: - both - enabled - disabled FiltersIdsParameter: name: ids in: query required: false description: Only include samples with an ID within the given list of IDs, given as a JSON string schema: example: '[1, 2, 3]' type: string FiltersExcludeIdsParameter: name: excludeIds in: query required: false description: Exclude samples with an ID within the given list of IDs, given as a JSON string schema: example: '[4, 5, 6]' type: string TransformationIdParameter: name: transformationId in: path required: true description: Transformation block ID. schema: type: integer DeployIdParameter: name: deployId in: path required: true description: Deploy block ID. schema: type: integer OrganizationCreateProjectIdParameter: name: createProjectId in: path required: true description: Create project job ID. schema: type: integer OrganizationCreateProjectFileIdParameter: name: createProjectFileId in: path required: true description: Create project job file ID. schema: type: integer ForceCancelParameter: name: forceCancel in: query required: false description: If set to 'true', we won't wait for the job cluster to cancel the job, and will mark the job as finished. schema: type: string TransformLimitResultsParameter: name: transformLimit in: query required: true description: Maximum number of results of transformation jobs schema: type: integer TransformOffsetResultsParameter: name: transformOffset in: query required: true description: Offset in results of transformation jobs, can be used in conjunction with TransformLimitResultsParameter to implement paging. schema: type: integer TransformSelectionParameter: name: selection in: query required: false description: Type of selected rows, either 'all', 'created', 'in-progress' or 'failed' (defaults to 'all') schema: type: string FindUserQueryParameter: name: query in: query required: true description: Part of e-mail address or username schema: type: string VersionIdParameter: name: versionId in: path required: true description: Version ID schema: type: integer BlockTypeParameter: name: blockType in: path required: true description: Type of block schema: type: string FeatureAx1Parameter: name: featureAx1 in: query required: true description: Feature axis 1 schema: type: integer FeatureAx2Parameter: name: featureAx2 in: query required: true description: Feature axis 2 schema: type: integer FeatureAx3Parameter: name: featureAx3 in: query required: true description: Feature axis 3 schema: type: integer AllowDimensionalityReductionParameter: name: allowDimensionalityReduction in: query required: true description: Whether to allow dimensionality reduction in the response schema: type: boolean AfterInputBlockParameter: name: afterInputBlock in: query required: false description: Whether to process the image through the input block first schema: type: boolean HealthCheckRequesterParameter: name: requester in: query required: false description: Health check requester schema: type: string OrganizationPipelineIdParameter: name: pipelineId in: path required: true description: Pipeline ID schema: type: integer ThemeIdParameter: name: themeId in: path required: true description: Theme ID schema: type: integer WhitelabelIdParameter: name: whitelabelIdentifier in: path required: true description: Whitelabel ID schema: type: integer UsernameOrEmailParameter: name: usernameOrEmail in: path required: true description: Username or email schema: type: string EmailParameter: name: email in: path required: true description: Email address schema: type: string EmailIdParameter: name: emailId in: path required: true description: Unique identifier for an email verification request schema: type: integer ExcludePipelineTransformationJobsParameter: name: excludePipelineTransformJobs in: query required: false description: Whether to exclude pipeline / transformation jobs schema: type: boolean OnlyRootJobsParameter: name: rootOnly in: query required: false description: Whether to exclude jobs with a parent ID (so jobs started as part of another job) schema: type: boolean FiltersProjectNameParameter: name: project in: query required: false description: Only include projects that contain this string schema: type: string PortalPathParameter: name: path in: query required: true description: Path to file in portal schema: type: string UsernameOrEmailQueryParameter: name: user in: query required: false description: Part of e-mail address or username schema: type: string NameQueryParameter: name: name in: query required: false description: Part of an entity name (could be a project, an org...) schema: type: string FiltersActiveParameter: name: active in: query required: false description: Whether to search for entities (users, orgs) active in the last X days schema: type: integer FiltersIncludeDeletedParameter: name: includeDeleted in: query required: false description: Whether to include deleted entities (users, projects, orgs) schema: type: boolean FiltersTierParameter: name: tier in: query required: false description: Whether to search for free, pro or enterprise entities (users, projects) schema: type: string enum: - free - pro - enterprise FieldsParameter: name: fields in: query required: false description: Comma separated list of fields to fetch in a query schema: type: string example: 'id,name' SortQueryParameter: name: sort in: query required: false description: Fields and order to sort query by schema: type: string description: Comma separated list of fields to sort query by. Prefix with a minus (-) sign to indicate descending order. Default order is ascending example: 'id,-name' IgnoreLastSuccessfulRunQueryParameter: name: ignoreLastSuccessfulRun in: query required: false description: If set then `EI_LAST_SUCCESSFUL_RUN` is not set. You can use this to re-run a pipeline from scratch. schema: type: boolean ListPipelinesProjectIdParameter: name: projectId in: query required: false description: If set, filters on pipelines which are attached to this project. schema: type: integer DomainNameParameter: name: domainName in: path required: true description: Email domain name schema: type: string OrganizationDataCampaignDashboardIdPathParameter: name: campaignDashboardId in: path required: true schema: type: integer OrganizationDataCampaignIdPathParameter: name: campaignId in: path required: true schema: type: integer MigrationIdParameter: name: migrationId in: path required: true description: Data migration ID schema: type: string GetAutoLabelerImageParameter: name: image in: query required: true description: Which image to receive from the auto-labeler schema: type: string PretrainedModelDownloadParameter: name: pretrainedModelDownloadType in: path required: true schema: type: string enum: - tflite_float32 - tflite_int8 - onnx - saved_model EnterpriseTrialIdParameter: name: enterpriseTrialId in: path required: true description: Enterprise trial ID schema: type: integer ExcludeIncludedSamplesParameter: name: excludeIncludedSamples in: query required: false description: Whether to exclude 'includedSamples' in the response (as these can slow down requests significantly). schema: type: boolean FeatureIdParameter: name: featureId in: path required: true description: Feature ID. schema: $ref: '#/components/schemas/Feature' IncludePipelineJobsParameter: name: includePipelineJobs in: query required: false description: If enabled, also includes jobs that are part of a pipeline schema: type: boolean ExcludeEdgeImpulseUsersParameter: name: excludeEdgeImpulseUsers in: query required: false description: Whether to exclude Edge Impulse users when counting enterprise entitlements usage schema: type: boolean ProjectVisibilityParameter: name: projectVisibility in: query required: false description: What project visibility type to include when counting enterprise entitlements usage schema: $ref: '#/components/schemas/ProjectVisibility' DevelopmentBoardIdParameter: name: developmentBoardId in: path required: true description: Development board ID. schema: type: integer TunerCoordinatorJobIdParameter: name: tunerCoordinatorJobId in: path required: true description: Tuner coordinator job ID schema: type: integer UsageReportIdParameter: name: usageReportId in: path required: true description: Usage report ID schema: type: integer CacheKeyParameter: name: cacheKey in: query required: false description: If set, then a long cache header is sent. If this is omitted then a no-cache header is sent. You can use this if you f.e. know the last modified date of a sample. Stick the last modified date in the cache key, so the sample can be stored in browser cache (and will automatically be invalidated if the modified date changes). schema: type: string ExportIdParameter: name: exportId in: path required: true description: Export ID schema: type: integer schemas: GenericApiResponse: type: object required: - success properties: success: type: boolean description: Whether the operation succeeded error: type: string description: Optional error description (set if 'success' was false) CreateSignedUploadLinkResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: url: type: string description: S3 Upload Link ETag: type: string description: S3 File Tag CreateSignedUploadLinkRequest: type: object required: - fileName - fileSize - fileHash properties: fileName: type: string description: file name fileSize: type: integer description: file size in bytes fileHash : type: string description: hash to identify file changes PortalFile: type: object required: - name - path - type properties: name: type: string addedDate: type: string format: date-time example: "2019-07-21T17:32:28Z" size: type: integer ETag: type: string path: type: string type: type: string enum: [ folder, file ] ListPortalFilesInFolderResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - files properties: files: type: array items: $ref: '#/components/schemas/PortalFile' continuationToken: type: string ListPortalFilesInFolderRequest: type: object required: - prefix properties: prefix: type: string description: S3 prefix continuationToken: type: string description: Only one S3 page (1000 items typically) is returned. Pass in the continuationToken on the next request to receive the next page. onlyFetchFolders: type: boolean description: If set, then no files will be returned PreviewDefaultFilesInFolderResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - files properties: files: type: array items: $ref: '#/components/schemas/PortalFile' isTruncated: type: boolean description: True if results are truncated. truncationReason: type: string description: > Explains why results are truncated; only present in the response if isTruncated is true. Results can be truncated if there are too many results (more than 500 matches), or if searching for more results is too expensive (for example, the dataset contains many items but very few match the given wildcard). enum: [ 'too-many-results', 'too-expensive-search' ] PreviewDefaultFilesInFolderRequest: type: object required: - prefix - itemsToList properties: prefix: type: string description: S3 prefix itemsToList: description: Return either files or folders matching the specified prefix type: string enum: - files - folders DeletePortalFileRequest: type: object required: - path properties: path: type: string description: S3 path (within the portal) RenamePortalFileRequest: type: object required: - oldPath - newPath properties: oldPath: type: string description: S3 path (within the portal) newPath: type: string description: S3 path (within the portal) DownloadPortalFileRequest: type: object required: - path properties: path: type: string description: S3 path (within the portal) DownloadPortalFileResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - url properties: url: type: string description: Signed URL to download the file LoginResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - token properties: token: type: string description: JWT token, to be used to log in in the future through JWTAuthentication GetJWTRequest: type: object required: - username - password properties: username: type: string description: Username or e-mail address example: edge-user-01 password: type: string description: Password uuid: type: string description: Evaluation user UUID ssoType: type: string enum: - browser - cli sessionId: type: string description: Session ID totpToken: type: string description: TOTP Token. Required if a user has multi-factor authentication with a TOTP token enabled. If a user has MFA enabled, but no totpToken is submitted; then an error starting with "ERR_TOTP_TOKEN IS REQUIRED" is returned. Use this to then prompt for an MFA token and re-login. GetJWTResponse: example: '`{ "success": true, "token": "A372jdhe.ad3r4gfrg" }`' allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: token: type: string description: JWT token, to be used to log in in the future through JWTAuthentication redirectUrl: type: string description: Redirect URL to follow to complete login ProjectPublicData: type: object required: - id - name - description - created - owner - publicUrl - projectType - pageViewCount - cloneCount - tags properties: id: type: integer example: 1 name: type: string example: Water hammer detection description: type: string created: type: string format: date-time example: "2019-07-21T17:32:28Z" owner: type: string description: User or organization that owns the project ownerAvatar: type: string description: URL to the project owner avatar, if any publicUrl: type: string description: URL of the latest public version of the project, if any example: 'https://studio.edgeimpulse.com/public/40479/latest' projectType: $ref: '#/components/schemas/ProjectType' pageViewCount: type: integer cloneCount: type: integer totalSamplesCount: type: string trainingAccuracy: type: number testAccuracy: type: number readme: type: object description: Present if a readme is set for this project required: - markdown - html properties: markdown: type: string html: type: string tags: type: array items: type: string description: List of project tags example: ["FOMO", "birds"] ProjectPrivateData: type: object required: - metadata - isEnterpriseProject - whitelabelId properties: lastAccessed: type: string format: date-time example: "2019-07-21T17:32:28Z" metadata: type: object description: Metadata about the project dataExplorerScreenshot: type: string isEnterpriseProject: type: boolean description: Whether this is an enterprise project collaborators: type: array items: $ref: '#/components/schemas/ProjectCollaborator' whitelabelId: type: integer nullable: true description: Unique identifier of the white label this project belongs to, if any. Project: type: object required: - id - name - description - created - owner - collaborators - labelingMethod - metadata - isEnterpriseProject - whitelabelId - tier - hasPublicVersion - isPublic - allowsLivePublicAccess - ownerIsDeveloperProfile - indPauseProcessingSamples - publicProjectListed properties: id: type: integer example: 1 name: type: string example: Water hammer detection description: type: string created: type: string format: date-time example: "2019-07-21T17:32:28Z" owner: type: string description: User or organization that owns the project lastAccessed: type: string format: date-time example: "2019-07-21T17:32:28Z" logo: type: string description: Custom logo for this project (not available for all projects) ownerUserId: type: integer ownerOrganizationId: type: integer ownerAvatar: type: string description: URL of the project owner avatar, if any. ownerIsDeveloperProfile: type: boolean developerProfileUserId: type: integer description: User ID of the developer profile, if any. collaborators: type: array items: $ref: '#/components/schemas/ProjectCollaborator' labelingMethod: type: string enum: - single_label - object_detection metadata: type: object description: Metadata about the project dataExplorerScreenshot: type: string isEnterpriseProject: type: boolean description: Whether this is an enterprise project whitelabelId: type: integer nullable: true description: Unique identifier of the white label this project belongs to, if any. tags: type: array items: type: string description: List of project tags example: ["FOMO", "beers"] category: type: string description: Project category example: "Image classification" license: type: string description: Public project license, if any. tier: type: string enum: - free - pro - enterprise hasPublicVersion: type: boolean description: Whether this project has been published or not. isPublic: type: boolean description: > Whether this is a public version of a project. A version is a snapshot of a project at a certain point in time, which can be used to periodically save the state of a project. Versions can be private (just for internal use and reference) or public, available to everyone. A public version can be cloned by anyone, restoring the state of the project at the time into a new, separate project. allowsLivePublicAccess: type: boolean description: > Whether this project allows live, public access. Unlike a public version, a live public project is not fixed in time, and always includes the latest project changes. Similar to public versions, a live public project can be cloned by anyone, creating a new, separate project. indPauseProcessingSamples: type: boolean publicProjectListed: type: boolean description: > If the project allows public access, whether to list it the public projects overview response. If not listed, the project is still accessible via direct link. If the project does not allow public access, this field has no effect. StaffInfo: type: object required: - isStaff - hasSudoRights properties: isStaff: type: boolean hasSudoRights: type: boolean companyName: type: string UtmParameter: type: object additionalProperties: true User: type: object required: - id - username - name - email - created - staffInfo - pending - activated - mfaConfigured properties: id: type: integer example: 1 username: type: string example: janjongboom name: type: string example: "Jan Jongboom" email: type: string example: "quijote@edgeimpulse.com" photo: type: string example: "https://usercdn.edgeimpulse.com/photos/1.jpg" created: type: string format: date-time example: "2019-08-31T17:32:28Z" lastSeen: type: string format: date-time example: "2019-08-31T17:32:28Z" staffInfo: $ref: '#/components/schemas/StaffInfo' pending: type: boolean lastTosAcceptanceDate: type: string format: date-time example: "2019-08-31T17:32:28Z" jobTitle: type: string example: "Software Engineer" permissions: description: List of permissions the user has type: array items: $ref: '#/components/schemas/Permission' companyName: type: string example: "Edge Impulse Inc." activated: type: boolean description: Whether the user has activated their account or not. mfaConfigured: type: boolean description: Whether the user has configured multi-factor authentication UserExperiment: type: object required: - type - title - enabled - showToUser properties: type: type: string title: type: string help: type: string enabled: type: boolean showToUser: type: boolean UserOrganization: type: object required: - id - name - isDeveloperProfile - whitelabelId - isAdmin - created - trialId - trialExpiredDate - trialUpgradedDate - entitlementLimits properties: id: type: integer name: type: string logo: type: string isDeveloperProfile: type: boolean whitelabelId: type: integer nullable: true description: Unique identifier of the white label this project belongs to, if any. isAdmin: type: boolean description: Whether the user is admin of this organization or not. created: type: string format: date-time description: When the organization was created. example: "2019-08-31T17:32:28Z" trialId: type: number nullable: true description: Unique identifier of the trial this organization belongs to, if any. example: 1 trialExpiredDate: type: string format: date-time nullable: true description: Date when the trial expired, if any. A expired trial has a grace period of 30 days before it's associated organization is deleted. example: "2019-08-31T17:32:28Z" trialUpgradedDate: type: string format: date-time nullable: true description: Date when the trial was upgraded to a full enterprise account, if any. example: "2019-08-31T17:32:28Z" entitlementLimits: $ref: '#/components/schemas/EntitlementLimits' AdminApiUser: allOf: - $ref: '#/components/schemas/User' - type: object required: - email - activated - organizations - projects - experiments - administrativeOptions - tier - suspended - trials properties: email: type: string activated: type: boolean organizations: type: array description: Organizations that the user is a member of. Only filled when requesting information about yourself. items: $ref: '#/components/schemas/UserOrganization' projects: type: array items: $ref: '#/components/schemas/Project' experiments: type: array description: Experiments the user has access to. Enabling experiments can only be done through a JWT token. items: $ref: '#/components/schemas/UserExperiment' evaluation: type: boolean description: Whether this is an ephemeral evaluation account. ambassador: type: boolean description: Whether this user is an ambassador. tier: type: string description: The user account tier. enum: - free - pro lastSeen: type: string format: date-time suspended: type: boolean description: Whether the user is suspended. trials: type: array description: Current or past enterprise trials. items: $ref: '#/components/schemas/EnterpriseTrial' AdminApiOrganization: allOf: - $ref: '#/components/schemas/Organization' - type: object required: - projects properties: projects: type: array description: Array with organizational projects items: $ref: '#/components/schemas/Project' ListProjects: type: object required: - projects properties: projects: type: array description: Array with projects items: $ref: '#/components/schemas/Project' ListProjectsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - $ref: '#/components/schemas/ListProjects' ListPublicProjects: type: object required: - projects - totalProjectCount properties: projects: type: array description: Array with public projects items: $ref: '#/components/schemas/ProjectPublicData' totalProjectCount: type: integer ListPublicProjectsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - $ref: '#/components/schemas/ListPublicProjects' DevelopmentKeys: type: object properties: apiKey: type: string description: API Key hmacKey: type: string description: HMAC Key DevelopmentKeysResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - $ref: '#/components/schemas/DevelopmentKeys' CreateDeviceRequest: type: object required: - deviceId - deviceType - ifNotExists properties: deviceId: type: string description: Globally unique device identifier (e.g. MAC address) example: ac:87:a3:0a:2d:1b deviceType: type: string description: Device type, for example the exact model of the device. Should be the same for all similar devices example: DISCO_L475VG_IOT01A ifNotExists: type: boolean description: Whether to throw an error when this device already exists. RenameDeviceRequest: type: object required: - name properties: name: type: string description: New name for this device example: Jan's development board DeviceNameResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: name: type: string description: Device name DatasetRatioData: type: object properties: ratio: type: object properties: training: type: integer description: number of training samples after rebalance testing: type: integer description: number of testing samples after rebalance RawSampleData: type: object required: - sample - payload - totalPayloadLength properties: sample: $ref: '#/components/schemas/Sample' payload: $ref: '#/components/schemas/RawSamplePayload' totalPayloadLength: type: integer description: Total number of payload values ProjectSampleMetadata: type: object description: Project sample metadata required: - metadata properties: metadata: type: array description: Array with all available sample metadata. items: $ref: '#/components/schemas/SampleMetadata' SampleMetadata: type: object required: - id - metadata properties: id: type: integer description: Sample ID metadata: type: object description: Sample free form associated metadata additionalProperties: type: string RawSamplePayload: type: object description: Sensor readings and metadata required: - device_type - sensors - values properties: device_name: type: string description: Unique identifier for this device. **Only** set this when the device has a globally unique identifier (e.g. MAC address). example: ac:87:a3:0a:2d:1b device_type: type: string description: Device type, for example the exact model of the device. Should be the same for all similar devices. example: DISCO-L475VG-IOT01A sensors: type: array description: Array with sensor axes items: $ref: '#/components/schemas/Sensor' values: type: array description: > Array of sensor values. One array item per interval, and as many items in this array as there are sensor axes. This type is returned if there are multiple axes. items: type: array items: type: number cropStart: type: integer description: New start index of the cropped sample example: 0 cropEnd: type: integer description: New end index of the cropped sample example: 128 Sensor: type: object required: - name - units properties: name: type: string description: Name of the axis example: accX units: type: string description: Type of data on this axis. Needs to comply to SenML units (see https://www.iana.org/assignments/senml/senml.xhtml). RenameSampleRequest: type: object required: - name properties: name: type: string description: New name for this sample example: faulty-machine2.A3de EditSampleLabelRequest: type: object required: - label properties: label: type: string description: New label for this sample example: water-hammer CropSampleRequest: type: object required: - cropStart - cropEnd properties: cropStart: type: integer description: New start index of the sample example: 0 cropEnd: type: integer description: New end index of the sample example: 128 SplitSampleInFramesRequest: type: object properties: fps: type: integer description: Frames per second to extract from this video. StoreSegmentLengthRequest: type: object required: - segmentLength properties: segmentLength: type: number description: Last segment length in milliseconds. example: 1000 ClassifySampleResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - classifications - sample - windowSizeMs - windowIncreaseMs - alreadyInDatabase properties: classifications: type: array items: $ref: '#/components/schemas/ClassifySampleResponseClassification' sample: $ref: '#/components/schemas/RawSampleData' windowSizeMs: type: integer description: Size of the sliding window (as set by the impulse) in milliseconds. example: 2996 windowIncreaseMs: type: integer description: Number of milliseconds that the sliding window increased with (as set by the impulse) example: 10 alreadyInDatabase: type: boolean description: Whether this sample is already in the training database warning: type: string AnomalyResult: type: object properties: boxes: type: array description: For visual anomaly detection. An array of bounding box objects, (x, y, width, height, score, label), one per detection in the image. Filtered by the minimum confidence rating of the learn block. items: $ref: '#/components/schemas/BoundingBoxWithScore' scores: type: array description: Raw anomaly scores. For visual anomaly detection, the scores corresponds to each grid cell in the image's spatial matrix. items: type: array items: type: number meanScore: type: number description: Mean value of the scores. maxScore: type: number description: Maximum value of the scores. StructuredClassifyResult: type: object required: - boxes - scores - mAP - f1 - precision - recall properties: boxes: type: array description: For object detection. An array of bounding box arrays, (x, y, width, height), one per detection in the image. items: type: array items: type: number labels: type: array description: For object detection. An array of labels, one per detection in the image. items: type: string scores: type: array description: For object detection. An array of probability scores, one per detection in the image. items: type: number mAP: type: number description: For object detection. A score that indicates accuracy compared to the ground truth, if available. f1: type: number description: For FOMO. A score that combines the precision and recall of a classifier into a single metric, if available. precision: type: number description: A measure of how many of the positive predictions made are correct (true positives). recall: type: number description: A measure of how many of the positive cases the classifier correctly predicted, over all the positive cases. debugInfoJson: type: string description: Debug info in JSON format example: | { "y_trues": [ {"x": 0.854, "y": 0.453125, "label": 1}, {"x": 0.197, "y": 0.53125, "label": 2} ], "y_preds": [ {"x": 0.916, "y": 0.875, "label": 1}, {"x": 0.25, "y": 0.541, "label": 2} ], "assignments": [ {"yp": 1, "yt": 1, "label": 2, "distance": 0.053} ], "normalised_min_distance": 0.2, "all_pairwise_distances": [ [0, 0, 0.426], [1, 1, 0.053] ], "unassigned_y_true_idxs": [0], "unassigned_y_pred_idxs": [0] } ClassifySampleResponseClassification: type: object required: - learnBlock - result - expectedLabels - minimumConfidenceRating properties: learnBlock: $ref: '#/components/schemas/ImpulseLearnBlock' result: type: array description: Classification result, one item per window. example: [ { idle: 0.0002, wave: 0.9998, anomaly: -0.42 } ] items: type: object description: Classification value per label. For a neural network this will be the confidence, for anomalies the anomaly score. additionalProperties: type: number anomalyResult: type: array description: Anomaly scores and computed metrics for GMM anomaly detection, one item per window. items: $ref: '#/components/schemas/AnomalyResult' structuredResult: type: array description: Results of inferencing that returns structured data, such as object detection items: $ref: '#/components/schemas/StructuredClassifyResult' minimumConfidenceRating: type: number description: The minimum confidence rating for this block. For regression, this is the absolute error (which can be larger than 1). details: type: array description: Structured outputs and computed metrics for some model types (e.g. object detection), one item per window. items: $ref: '#/components/schemas/ClassifySampleResponseClassificationDetails' objectDetectionLastLayer: $ref: '#/components/schemas/ObjectDetectionLastLayer' expectedLabels: type: array description: An array with an expected label per window. items: $ref: '#/components/schemas/StructuredLabel' ClassifySampleResponseClassificationDetails: type: object properties: boxes: type: array description: Bounding boxes predicted by localization model items: type: array items: type: number labels: type: array description: Labels predicted by localization model items: type: number scores: type: array description: Scores predicted by localization model items: type: number mAP: type: number description: For object detection, the COCO mAP computed for the predictions on this image f1: type: number description: For FOMO, the F1 score computed for the predictions on this image ClassifyJobResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - result - predictions - accuracy properties: result: type: array items: $ref: '#/components/schemas/ModelResult' predictions: type: array items: $ref: '#/components/schemas/ModelPrediction' accuracy: type: object required: - totalSummary - summaryPerClass - confusionMatrixValues - rows - allLabels properties: totalSummary: type: object required: - good - bad properties: good: type: integer bad: type: integer summaryPerClass: type: object additionalProperties: type: object required: - good - bad properties: good: type: integer bad: type: integer confusionMatrixValues: type: object additionalProperties: type: object additionalProperties: type: number allLabels: type: array items: type: string accuracyScore: type: number mseScore: type: number ClassifyJobResponsePage: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - result - predictions - accuracy properties: result: type: array items: $ref: '#/components/schemas/ModelResult' predictions: type: array items: $ref: '#/components/schemas/ModelPrediction' MetricsAllVariantsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: metrics: type: array items: $ref: '#/components/schemas/MetricsForModelVariant' MetricsForModelVariant: type: object required: - variant properties: variant: description: The model variant $ref: '#/components/schemas/KerasModelVariantEnum' accuracy: description: The overall accuracy for the given model variant type: number EvaluateResultValue: type: object properties: raw: description: The value based on the model alone type: number withAnomaly: description: The value including the result of anomaly detection type: number ModelVariantStats: type: object required: - modelType - learnBlockType - learnBlockId - confusionMatrix - confusionMatrixRowHeaders - confusionMatrixColumnHeaders - accuracy - trainingLabels - classificationLabels properties: modelType: description: The type of model $ref: '#/components/schemas/KerasModelTypeEnum' learnBlockId: description: The learning block this model variant is from type: integer learnBlockType: $ref: '#/components/schemas/LearnBlockType' confusionMatrix: description: A map from actual labels to predicted labels, where actual labels are listed in `trainingLabels` and possible predicted labels are listed in `classificationLabels`. type: object additionalProperties: type: object additionalProperties: type: object $ref: '#/components/schemas/EvaluateResultValue' trainingLabels: description: The labels present in the model's training data. These are all present in the first dimension of the confusion matrix. type: array items: type: string classificationLabels: description: The possible labels resulting from classification. These may be present in the second dimension of the confusion matrix. type: array items: type: string totalWindowCount: description: The total number of windows that were evaluated type: integer totalCorrectWindowCount: description: The total number of windows that the model classified correctly $ref: '#/components/schemas/EvaluateResultValue' accuracy: description: The model's accuracy as a percentage $ref: '#/components/schemas/EvaluateResultValue' EvaluateJobResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - result properties: result: type: array items: $ref: '#/components/schemas/ModelVariantStats' TargetConstraints: type: object required: - targetDevices - applicationBudgets properties: selectedTargetBasedOn: type: string description: A type explaining how the target was chosen. If updating this manually, use the 'user-configured' type enum: [ 'user-configured', 'default', 'default-accepted', 'recent-project', 'connected-device' ] targetDevices: type: array description: The potential targets for the project, where each entry captures hardware attributes that allow target guidance throughout the Studio workflow. The first target in the list is considered as the selected target for the project. items: $ref: '#/components/schemas/TargetConstraintsDevice' applicationBudgets: type: array description: A list of application budgets to be configured based on target device. An application budget enables guidance on performance and resource usage. The first application budget in the list is considered as the selected budget for the project. items: $ref: '#/components/schemas/ApplicationBudget' TargetConstraintsDevice: type: object properties: processors: type: array description: Target processors items: $ref: '#/components/schemas/TargetProcessor' board: type: string description: The exact dev board part number, if available name: type: string description: Display name in Studio latencyDevice: type: string description: MCU identifier, if available example: cortex-m4f-80mhz TargetProcessor: type: object properties: part: type: string description: The exact part number, if available format: type: string description: Processor type, serving as a broad descriptor for the intended use-case example: low-end MCU architecture: type: string description: Processor family, informing about the processor's instruction set and core design example: Cortex-M specificArchitecture: type: string description: Processor architecture, informing about the specific processor, if known example: Cortex-M0+ accelerator: type: string description: Target accelerator, if any example: Arm Cortex-U55 fpu: type: boolean description: Does the target processor have a floating point unit clockRateMhz: description: Clock rate of the processor $ref: '#/components/schemas/ResourceRange' memory: $ref: '#/components/schemas/TargetMemory' ApplicationBudget: type: object description: Specifies limits for your specific application, as available RAM and ROM for the model's operation and the maximum allowed latency. properties: latencyPerInferenceMs: $ref: '#/components/schemas/ResourceRange' energyPerInferenceJoules: $ref: '#/components/schemas/ResourceRange' memoryOverhead: $ref: '#/components/schemas/TargetMemory' ResourceRange: type: object description: Describes range of expected availability for an arbitrary resource properties: minimum: type: number maximum: type: number TargetMemory: type: object description: RAM and ROM specifications of target properties: ram: $ref: '#/components/schemas/MemorySpec' rom: $ref: '#/components/schemas/MemorySpec' MemorySpec: type: object description: Describes performance characteristics of a particular memory type properties: fastBytes: $ref: '#/components/schemas/ResourceRange' slowBytes: $ref: '#/components/schemas/ResourceRange' Impulse: type: object required: - inputBlocks - dspBlocks - learnBlocks properties: inputBlocks: type: array description: Input Blocks that are part of this impulse items: $ref: '#/components/schemas/ImpulseInputBlock' dspBlocks: type: array description: DSP Blocks that are part of this impulse items: $ref: '#/components/schemas/ImpulseDspBlock' learnBlocks: type: array description: Learning Blocks that are part of this impulse items: $ref: '#/components/schemas/ImpulseLearnBlock' ImpulseBlockVersion: type: object properties: id: type: integer description: Identifier for the new block version. Make sure to up this number when creating a new block, and don't re-use identifiers. primaryVersion: type: boolean description: Whether this block is the primary version of its base block. name: type: string description: Block name, will be used in menus. If a block has a baseBlockId, this field is ignored and the base block's name is used instead. example: NN Classifier description: type: string description: A short description of the block version, displayed in the block versioning UI example: Reduced learning rate and more layers dsp: type: array description: (Learn only) DSP dependencies, identified by DSP block ID items: type: integer example: 27 axes: type: array description: (DSP only) Input axes, identified by the name in the name of the axis items: type: string example: accX input: type: integer description: (DSP only) The ID of the Input block a DSP block is connected to example: 1 windowSizeMs: type: integer description: (Input only) Size of the sliding window in milliseconds example: 2004 windowIncreaseMs: type: integer description: (Input only) We use a sliding window to go over the raw data. How many milliseconds to increase the sliding window with for each step. frequencyHz: type: number description: (Input only) Frequency of the input data in Hz example: 60 classificationWindowIncreaseMs: type: integer description: (Input only) We use a sliding window to go over the raw data. How many milliseconds to increase the sliding window with for each step in classification mode. padZeros: type: boolean description: (Input only) Whether to zero pad data when there is not enough data. imageWidth: type: integer description: (Input only) Width all images are resized to before training example: 28 imageHeight: type: integer description: (Input only) Width all images are resized to before training example: 28 resizeMode: type: string description: (Input only) How to resize images before training example: squash enum: - squash - fit-short - fit-long - crop resizeMethod: type: string description: (Input only) Resize method to use when resizing images example: squash enum: - lanczos3 - nearest cropAnchor: type: string description: (Input only) If images are resized using a crop, choose where to anchor the crop example: middle-center enum: - top-left - top-center - top-right - middle-left - middle-center - middle-right - bottom-left - bottom-center - bottom-right CreateBlockVersionResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - id properties: id: type: integer description: ID of the new block ImpulseInputBlock: type: object required: - id - type - name - title - primaryVersion properties: id: type: integer minimum: 1 description: Identifier for this block. Make sure to up this number when creating a new block, and don't re-use identifiers. If the block hasn't changed, keep the ID as-is. ID must be unique across the project and greather than zero (>0). type: type: string description: Block type (either time-series or image) example: time-series enum: - time-series - image name: type: string description: Block name, will be used in menus example: Time series title: type: string description: Block title, used in the impulse UI example: Time series windowSizeMs: type: integer description: Size of the sliding window in milliseconds example: 2004 windowIncreaseMs: type: integer description: We use a sliding window to go over the raw data. How many milliseconds to increase the sliding window with for each step. frequencyHz: type: number description: (Input only) Frequency of the input data in Hz example: 60 classificationWindowIncreaseMs: type: integer description: We use a sliding window to go over the raw data. How many milliseconds to increase the sliding window with for each step in classification mode. padZeros: type: boolean description: Whether to zero pad data when a data item is too short imageWidth: type: integer description: Width all images are resized to before training example: 28 imageHeight: type: integer description: Width all images are resized to before training example: 28 resizeMode: type: string description: How to resize images before training example: squash enum: - squash - fit-short - fit-long - crop resizeMethod: type: string description: Resize method to use when resizing images example: squash enum: - lanczos3 - nearest cropAnchor: type: string description: If images are resized using a crop, choose where to anchor the crop example: middle-center enum: - top-left - top-center - top-right - middle-left - middle-center - middle-right - bottom-left - bottom-center - bottom-right primaryVersion: type: boolean description: Whether this block is the primary version of its base block. baseBlockId: type: integer description: The version number of the original block this version was based on. If this is an original block, will be undefined. tunerBaseBlockId: type: integer description: The version number of the original tuner block this version was based on. If this is an original tuner block, will be undefined tunerTemplateId: type: integer description: The version number of the original tuner template block this version was based on. If this is an original tuner template block, will be undefined tunerPrimary: type: boolean description: Specifies if this block was copied from a tuner block when a tuner model variant was set as primary model clonedFromBlockId: type: integer description: ID of block this block version was cloned from mutated: type: boolean description: Specifies if this block was updated after being cloned/created enabled: type: boolean description: Whether is block is enabled. A block is assumed to be enabled when unset. db: type: boolean description: Whether block is stored in database. description: type: string description: A short description of the block version, displayed in the block versioning UI example: Reduced learning rate and more layers createdBy: type: string description: The system component that created the block version (createImpulse | clone | tuner). Cannot be set via API. example: createImpulse createdAt: type: string format: date-time description: The datetime that the block version was created. Cannot be set via API. ImpulseDspBlock: type: object required: - id - type - name - axes - title - primaryVersion - implementationVersion properties: id: minimum: 1 type: integer description: Identifier for this block. Make sure to up this number when creating a new block, and don't re-use identifiers. If the block hasn't changed, keep the ID as-is. ID must be unique across the project and greather than zero (>0). type: type: string description: Block type example: spectral-analysis name: type: string description: Block name, will be used in menus example: Spectral features axes: type: array description: Input axes, identified by the name in the name of the axis items: type: string example: accX title: type: string description: Block title, used in the impulse UI example: Spectral Analysis valuesPerAxis: type: integer description: Number of features this DSP block outputs per axis. This is only set when the DSP block is configured. example: 11 input: type: integer description: The ID of the Input block a DSP block is connected to example: 1 primaryVersion: type: boolean description: Whether this block is the primary version of its base block. baseBlockId: type: integer description: The version number of the original block this version was based on. If this is an original block, will be undefined. tunerBaseBlockId: type: integer description: The version number of the original tuner block this version was based on. If this is an original tuner block, will be undefined tunerTemplateId: type: integer description: The version number of the original tuner template block this version was based on. If this is an original tuner template block, will be undefined tunerPrimary: type: boolean description: Specifies if this block was copied from a tuner block when a tuner model variant was set as primary model clonedFromBlockId: type: integer description: ID of block this block version was cloned from mutated: type: boolean description: Specifies if this block was updated after being cloned/created enabled: type: boolean description: Whether is block is enabled. A block is assumed to be enabled when unset. db: type: boolean description: Whether block is stored in database. description: type: string description: A short description of the block version, displayed in the block versioning UI example: Reduced learning rate and more layers createdBy: type: string description: The system component that created the block version (createImpulse | clone | tuner). Cannot be set via API. example: createImpulse createdAt: type: string format: date-time description: The datetime that the block version was created. Cannot be set via API. implementationVersion: type: integer description: Implementation version of the block organization: type: object required: - id - dspId properties: id: type: integer dspId: type: integer customUrl: type: string description: Required for type 'custom' ImpulseLearnBlock: type: object required: - id - type - name - dsp - title - primaryVersion properties: id: type: integer minimum: 1 description: Identifier for this block. Make sure to up this number when creating a new block, and don't re-use identifiers. If the block hasn't changed, keep the ID as-is. ID must be unique across the project and greather than zero (>0). type: $ref: '#/components/schemas/LearnBlockType' name: type: string description: Block name, will be used in menus. If a block has a baseBlockId, this field is ignored and the base block's name is used instead. example: NN Classifier dsp: type: array description: DSP dependencies, identified by DSP block ID items: type: integer example: 27 title: type: string description: Block title, used in the impulse UI example: Classification (Keras) primaryVersion: type: boolean description: Whether this block is the primary version of its base block. baseBlockId: type: integer description: The version number of the original block this version was based on. If this is an original block, will be undefined. tunerBaseBlockId: type: integer description: The version number of the original tuner block this version was based on. If this is an original tuner block, will be undefined tunerTemplateId: type: integer description: The version number of the original tuner template block this version was based on. If this is an original tuner template block, will be undefined tunerPrimary: type: boolean description: Specifies if this block was copied from a tuner block when a tuner model variant was set as primary model clonedFromBlockId: type: integer description: ID of block this block version was cloned from mutated: type: boolean description: Specifies if this block was updated after being cloned/created enabled: type: boolean description: Whether is block is enabled. A block is assumed to be enabled when unset. db: type: boolean description: Whether block is stored in database. description: type: string description: A short description of the block version, displayed in the block versioning UI example: Reduced learning rate and more layers createdBy: type: string description: The system component that created the block version (createImpulse | clone | tuner). Cannot be set via API. example: createImpulse createdAt: type: string format: date-time description: The datetime that the block version was created. Cannot be set via API. DspRunRequestWithFeatures: type: object required: - features - params - drawGraphs - requestPerformance properties: features: type: array description: Array of features. If you have multiple axes the data should be interleaved (e.g. [ax0_val0, ax1_val0, ax2_val0, ax0_val1, ax1_val1, ax2_val1]). items: type: integer params: type: object description: DSP parameters with values example: { "scale-axes": "10" } additionalProperties: type: string nullable: true drawGraphs: type: boolean description: Whether to generate graphs (will take longer) requestPerformance: type: boolean description: Whether to request performance info (will take longer unless cached) DspRunRequestWithoutFeatures: type: object required: - params - store properties: params: type: object description: DSP parameters with values example: { "scale-axes": "10" } additionalProperties: type: string nullable: true store: type: boolean description: Whether to store the DSP parameters as the new default parameters. DspRunRequestWithoutFeaturesReadOnly: type: object required: - params properties: params: type: object description: DSP parameters with values example: { "scale-axes": "10" } additionalProperties: type: string nullable: true DspRunResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - features - graphs properties: features: type: array description: Array of processed features. Laid out according to the names in 'labels' items: type: number graphs: type: array description: Graphs to plot to give an insight in how the DSP process ran items: $ref: '#/components/schemas/DspRunGraph' labels: type: array description: Labels of the feature axes items: type: string state_string: type: string description: String representation of the DSP state returned performance: type: object required: - latency - ram properties: latency: type: integer ram: type: integer DspRunResponseWithSample: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - features - graphs - sample - canProfilePerformance properties: features: type: array description: Array of processed features. Laid out according to the names in 'labels' items: type: number graphs: type: array description: Graphs to plot to give an insight in how the DSP process ran items: $ref: '#/components/schemas/DspRunGraph' labels: type: array description: Labels of the feature axes items: type: string state_string: type: string description: String representation of the DSP state returned labelAtEndOfWindow: description: Label for the window (only present for time-series data) type: string sample: $ref: '#/components/schemas/RawSampleData' performance: type: object required: - latency - ram properties: latency: type: integer ram: type: integer canProfilePerformance: type: boolean DspRunGraph: type: object required: - name - type properties: name: type: string description: Name of the graph example: Frequency domain image: type: string description: Base64 encoded image, only present if type is 'image' imageMimeType: type: string description: Mime type of the Base64 encoded image, only present if type is 'image' X: type: object description: Values on the x-axis per plot. Key is the name of the raw feature. Present if type is 'logarithmic' or 'linear'. example: { accX: [ 3, 5, 7 ], accY: [ 2, 1, 5 ] } additionalProperties: type: array items: type: number y: type: array description: Values of the y-axis. Present if type is 'logarithmic' or 'linear'. example: [ 0, 0.5, 1.0 ] items: type: number suggestedXMin: type: number description: Suggested minimum value of x-axis suggestedXMax: type: number description: Suggested maxium value of x-axis suggestedYMin: type: number description: Suggested minimum value of y-axis suggestedYMax: type: number description: Suggested maximum value of y-axis type: type: string description: Type of graph (either `logarithmic`, `linear` or `image`) lineWidth: type: number description: Width of the graph line (if type is `logarithmic` or `linear`). Default 3. smoothing: type: boolean description: Whether to apply smoothing to the graph. axisLabels: type: object description: Labels for the graph x and y axes. required: - X - y properties: X: type: string y: type: string highlights: type: object description: Indices of points to highlight, per axis. additionalProperties: type: array items: type: number DspFeatureLabelsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - labels properties: labels: type: array example: '`[ "accX RMS", "accX Peak 1 Freq" ]`' items: type: string DspTrainedFeaturesResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - totalSampleCount - data - skipFirstFeatures properties: totalSampleCount: type: integer description: Total number of windows in the data set data: type: array items: type: object required: - X - y - yLabel properties: X: type: object description: Data by feature index for this window example: "`{ 0: 9.81, 11: 0.32, 22: 0.79 }`" additionalProperties: type: number y: type: integer description: Training label index yLabel: type: string description: Training label string sample: type: object required: - id - name - startMs - endMs properties: id: type: number name: type: string startMs: type: number endMs: type: number skipFirstFeatures: type: integer description: When showing the processed features, skip the first X features. This is used in dimensionality reduction where artificial features are introduced in the response (on the first few positions). DspSampleFeaturesResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - totalSampleCount - data - skipFirstFeatures properties: totalSampleCount: type: integer description: Total number of windows in the data set data: type: array items: type: object required: - X - y - yLabel properties: X: type: array description: Feature data for this window example: "`{ 9.81, 0.32, 0.79 }`" items: type: number y: type: integer description: Training label index yLabel: type: string description: Training label string sample: type: object required: - id - name - startMs - endMs properties: id: type: integer name: type: string startMs: type: number endMs: type: number skipFirstFeatures: type: integer description: When showing the processed features, skip the first X features. This is used in dimensionality reduction where artificial features are introduced in the response (on the first few positions). GetDataExplorerFeaturesResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - hasFeatures - data properties: hasFeatures: type: boolean data: type: array items: type: object required: - X - y - yLabel properties: X: type: object description: Data by feature index for this window example: "`{ 0: 9.81, 11: 0.32, 22: 0.79 }`" additionalProperties: type: number y: type: integer description: Training label index yLabel: type: string description: Training label string sample: type: object required: - id - name - startMs - endMs properties: id: type: number name: type: string startMs: type: number endMs: type: number inputBlock: $ref: '#/components/schemas/ImpulseInputBlock' HasDataExplorerFeaturesResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - hasFeatures properties: hasFeatures: type: boolean inputBlock: $ref: '#/components/schemas/ImpulseInputBlock' GetDiversityDataResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: data: type: array items: type: object required: - clusterInfos - maxDistance properties: labelId: type: number maxDistance: type: number clusterInfos: type: array items: type: object description: Information about a cluster of samples required: - idx - indexes - windows - vendiScore - vendiRatio - count - distance - leftIdx - rightIdx properties: idx: type: integer description: Unique index of the cluster indexes: type: array items: type: integer description: Indexes of all windows contained in the cluster (for debugging) windows: type: array items: type: array items: type: integer description: The sample ID and window start and end of every window in the cluster samples: type: array items: $ref: '#/components/schemas/Sample' description: Details of every sample in the cluster vendiScore: type: number description: Raw vendi score vendiRatio: type: number description: Vendi score expressed as ratio from 0 to 1 count: type: integer description: The number if windows in the cluster distance: type: number description: The distance of the cluster from the origin leftIdx: type: integer nullable: true description: The cluster id on the left branch of the dendrogram rightIdx: type: integer nullable: true description: The cluster id on the right branch of the dendrogram GetLabelNoiseDataResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - data properties: data: type: object properties: cosineSimilarity: $ref: '#/components/schemas/CosineSimilarityData' neighbors: $ref: '#/components/schemas/NeighborsData' crossValidation: $ref: '#/components/schemas/CrossValidationData' NeighborsData: type: object description: Describes the results of running the nearest neighbors label noise detection method. required: - scoresAndNeighbors - numNeighbors properties: scoresAndNeighbors: type: array items: $ref: '#/components/schemas/NeighborsScore' description: The label noise score and nearest neighbors for each window of data in the project that shows a potential label noise issue. numNeighbors: type: integer description: The number of neighbors used in the nearest neighbors algorithm. NeighborsScore: type: object description: Describes the label noise score and nearest neighbors for a single window of data in the project that shows a potential label noise issue. required: - id - windowStart - windowEnd - score - neighborWindows properties: id: type: integer description: The ID of the sample this window belongs to sample: $ref: '#/components/schemas/Sample' description: Detailed information about the sample this window belongs to windowStart: type: integer description: The start time of this window in milliseconds windowEnd: type: integer description: The end time of this window in milliseconds score: type: number description: The label noise score for this window, from 0 to the total number of windows. neighborWindows: type: array description: Details of the nearest neighbors to this window items: type: object required: - id - windowStart - windowEnd properties: id: type: integer description: The ID of the sample this window belongs to sample: $ref: '#/components/schemas/Sample' description: Detailed information about the sample this window belongs to windowStart: type: integer description: The start time of this window in milliseconds windowEnd: type: integer description: The end time of this window in milliseconds CrossValidationData: type: object description: Describes the results of running the cross validation label noise detection method. required: - scores properties: scores: type: array items: type: object required: - id - windowStart - windowEnd - label - probability - score properties: id: type: integer description: The ID of the sample this window belongs to sample: $ref: '#/components/schemas/Sample' description: Detailed information about the sample this window belongs to windowStart: type: integer description: The start time of this window in milliseconds windowEnd: type: integer description: The end time of this window in milliseconds label: type: integer description: The label of this window, in index form probability: type: number description: The probability of this window being the label it was assigned, as estimated by a classifier trained on the whole dataset. score: type: number description: The z-score of the probability with respect to other class members, so that outliers (i.e. windows whose probability is low) can be easily spotted. This assumes that most correctly labelled class members will have a high probability. CosineSimilarityData: type: object description: Describes the results of running the cosine similarity label noise detection method. required: - similarButDifferentLabel - differentButSameLabel properties: similarButDifferentLabel: type: array description: A list of samples that have windows that are similar to windows of other samples that have a different label. items: $ref: '#/components/schemas/CosineSimilarityIssue' differentButSameLabel: type: array description: A list of samples that have windows that are dissimilar to windows of other samples that have the same label. items: $ref: '#/components/schemas/CosineSimilarityIssue' CosineSimilarityIssue: type: object description: Describes a sample that has potential issues as identified by the cosine similarity label noise detection method. required: - id - label - issues properties: id: type: integer description: The ID of this sample sample: $ref: '#/components/schemas/Sample' description: Detailed information about the sample label: type: integer description: The label of this sample, in index form issues: type: array description: A list of samples that have windows that are symptomatic of this issue. items: type: object required: - id - label - windows properties: id: type: integer description: The ID of this sample sample: $ref: '#/components/schemas/Sample' description: Detailed information about the sample label: type: integer description: The label of this sample, in index form windows: type: array description: The windows in this sample that are symptomatic of this issue. items: type: object required: - windowStart - windowEnd - score properties: windowStart: type: integer description: The start time of this window in milliseconds windowEnd: type: integer description: The end time of this window in milliseconds score: type: number description: The cosine similarity score between this window and a window from the sample in the parent object. KerasModelLayer: type: object required: - input - output properties: input: type: object required: - shape - name - type properties: shape: type: integer description: Input size example: 33 name: type: string description: TensorFlow name example: 'x_input:0' type: type: string description: TensorFlow type example: "" output: type: object required: - shape - name - type properties: shape: type: integer description: Output size example: 20 name: type: string description: TensorFlow name example: 'dense_1/Relu:0' type: type: string description: TensorFlow type example: "" KerasModelMetadataMetrics: type: object required: - type - loss - confusionMatrix - report - onDevicePerformance - visualization - isSupportedOnMcu properties: type: description: The type of model $ref: '#/components/schemas/KerasModelTypeEnum' loss: type: number description: The model's loss on the validation set after training accuracy: type: number description: The model's accuracy on the validation set after training confusionMatrix: type: array example: [ [ 31, 1, 0 ], [ 2, 27, 3 ], [ 1, 0, 39 ] ] items: type: array items: type: number report: type: object description: Precision, recall, F1 and support scores onDevicePerformance: type: array items: type: object required: - mcu - name - isDefault - latency - tflite - eon properties: mcu: type: string name: type: string isDefault: type: boolean latency: type: number tflite: type: object required: - ramRequired - romRequired - arenaSize - modelSize properties: ramRequired: type: integer romRequired: type: integer arenaSize: type: integer modelSize: type: integer eon: type: object required: - ramRequired - romRequired - arenaSize - modelSize properties: ramRequired: type: integer romRequired: type: integer arenaSize: type: integer modelSize: type: integer eon_ram_optimized: type: object required: - ramRequired - romRequired - arenaSize - modelSize properties: ramRequired: type: integer romRequired: type: integer arenaSize: type: integer modelSize: type: integer customMetrics: description: Custom, device-specific performance metrics type: array items: $ref: '#/components/schemas/KerasCustomMetric' predictions: type: array items: $ref: '#/components/schemas/ModelPrediction' visualization: type: string enum: - featureExplorer - dataExplorer - none isSupportedOnMcu: type: boolean mcuSupportError: type: string profilingJobId: description: If this is set, then we're still profiling this model. Subscribe to job updates to see when it's done (afterward the metadata will be updated). type: integer profilingJobFailed: description: If this is set, then the profiling job failed (get the status by getting the job logs for 'profilingJobId'). type: boolean KerasModelMetadata: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - created - layers - classNames - availableModelTypes - recommendedModelType - modelValidationMetrics - hasTrainedModel - mode - imageInputScaling - labels properties: created: type: string format: date-time description: Date when the model was trained layers: type: array description: Layers of the neural network items: $ref: '#/components/schemas/KerasModelLayer' classNames: type: array description: Labels for the output layer items: type: string labels: type: array description: Original labels in the dataset when features were generated, e.g. used to render the feature explorer. items: type: string availableModelTypes: type: array description: The types of model that are available items: $ref: '#/components/schemas/KerasModelTypeEnum' recommendedModelType: description: The model type that is recommended for use $ref: '#/components/schemas/KerasModelTypeEnum' modelValidationMetrics: type: array description: Metrics for each of the available model types items: $ref: '#/components/schemas/KerasModelMetadataMetrics' hasTrainedModel: type: boolean mode: type: string enum: [ 'classification', 'regression', 'object-detection', 'visual-anomaly', 'anomaly-gmm' ] objectDetectionLastLayer: $ref: '#/components/schemas/ObjectDetectionLastLayer' imageInputScaling: $ref: '#/components/schemas/ImageInputScaling' UploadKerasFilesRequest: type: object required: - zip properties: zip: type: string format: binary AddKerasFilesRequest: type: object required: - zip properties: zip: type: string format: binary AnomalyModelMetadata: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - created - scale - mean - clusters - axes properties: created: type: string format: date-time description: Date when the model was trained scale: type: array description: "Scale input for StandardScaler. Values are scaled like this (where `ix` is axis index): `input[ix] = (input[ix] - mean[ix]) / scale[ix];`" items: type: number mean: type: array description: "Mean input for StandardScaler. Values are scaled like this (where `ix` is axis index): `input[ix] = (input[ix] - mean[ix]) / scale[ix];`" items: type: number clusters: type: array description: Trained K-means clusters items: type: object required: - center - maxError properties: center: type: array description: Center of each cluster (one value per axis) items: type: number maxError: type: number description: Size of the cluster axes: type: array description: Which axes were included during training (by index) example: "`[ 0, 11, 22 ]`" items: type: integer defaultMinimumConfidenceRating: type: number description: Default minimum confidence rating required before tagging as anomaly, based on scores of training data (GMM only). # Metadata for profiling used for anomaly GMM model availableModelTypes: type: array description: The types of model that are available items: $ref: '#/components/schemas/KerasModelTypeEnum' recommendedModelType: description: The model type that is recommended for use $ref: '#/components/schemas/KerasModelTypeEnum' modelValidationMetrics: type: array description: Metrics for each of the available model types items: $ref: '#/components/schemas/KerasModelMetadataMetrics' hasTrainedModel: type: boolean AnomalyGmmMetadata: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - means - covariances - weights properties: means: type: array items: type: array items: { type: number } description: '2D array of shape (n, m)' covariances: type: array items: type: array items: type: array items: { type: number } description: '3D array of shape (n, m, m)' weights: type: array items: { type: number } description: '1D array of shape (n,)' AnomalyTrainedFeaturesResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - totalSampleCount - data properties: totalSampleCount: type: integer description: Total number of windows in the data set data: type: array items: type: object required: - X properties: X: type: object description: Data by feature index for this window. Note that this data was scaled by the StandardScaler, use the anomaly metadata to unscale if needed. example: { 0: -2.17, 11: 1.21, 22: 0.79 } additionalProperties: type: number label: type: number description: Label used for datapoint colorscale in anomaly explorer (for gmm only). Is currently the result of the scoring function. GenerateFeaturesRequest: type: object required: - dspId properties: dspId: type: integer description: DSP block ID to generate features for calculateFeatureImportance: type: boolean description: Whether to generate feature importance (only when available) skipFeatureExplorer: type: boolean description: If set, skips feature explorer (used in tests) AutotuneDspRequest: type: object required: - dspId properties: dspId: type: integer description: DSP block ID to autotune parameters of ListModelsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - projectId properties: id: type: integer description: projectId example: 12873488112 StartTrainingRequestAnomaly: type: object required: - axes - minimumConfidenceRating properties: axes: type: array description: Which axes (indexes from DSP script) to include in the training set example: [ 0, 11, 22 ] items: type: integer clusterCount: type: integer description: Number of clusters for K-means, or number of components for GMM example: 32 minimumConfidenceRating: type: number description: Minimum confidence rating required before tagging as anomaly example: 0.3 skipEmbeddingsAndMemory: type: boolean description: If set, skips creating embeddings and measuring memory (used in tests) StartJobResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - id properties: id: type: integer description: Job identifier. Status updates will include this identifier. example: 12873488112 Download: type: object properties: id: type: string example: The ID of the download, if available name: type: string example: Training data type: type: string example: NPY file size: type: string example: "73 items" link: type: string example: "/api/1/raw-data/training/x" Device: type: object required: - id - deviceId - created - lastSeen - name - deviceType - sensors - remote_mgmt_connected - supportsSnapshotStreaming properties: id: type: integer example: 1 deviceId: type: string description: Unique identifier (such as MAC address) for a device example: "38:f9:d3:d7:62:03" created: type: string format: date-time example: "2019-07-21T17:32:28Z" lastSeen: type: string format: date-time example: "2019-08-31T17:32:28Z" description: Last message that was received from the device (ignoring keep-alive) name: type: string example: "m6d.1 desk sensor" deviceType: type: string example: "DISCO-L475VG" sensors: type: array items: type: object required: - name - maxSampleLengthS - frequencies properties: name: type: string example: Built-in accelerometer maxSampleLengthS: type: integer description: Maximum supported sample length in seconds frequencies: type: array description: Supported frequencies for this sensor in Hz. example: [ 62.5, 100 ] items: type: number remote_mgmt_connected: type: boolean description: Whether the device is connected to the remote management interface remote_mgmt_host: type: string description: The remote management host that the device is connected to supportsSnapshotStreaming: type: boolean ProjectDataSummary: type: object required: - totalLengthMs - labels - dataCount properties: totalLengthMs: type: number description: Total length (in ms.) of all data in the training set example: "726336" labels: type: array description: Labels in the training set items: type: string dataCount: type: integer example: Number of files in the training set LatencyDevice: type: object required: - mcu - name - selected - int8Latency - int8ConvLatency - float32Latency - float32ConvLatency - helpText properties: mcu: type: string name: type: string selected: type: boolean int8Latency: type: number int8ConvLatency: type: number float32Latency: type: number float32ConvLatency: type: number helpText: type: string ProjectInfoResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - project - downloads - developmentKeys - impulse - devices - dataSummary - dataSummaryPerCategory - computeTime - acquisitionSettings - collaborators - deploySettings - experiments - latencyDevices - urls - showCreateFirstImpulse - showGettingStartedWizard - performance - trainJobNotificationUids - dspJobNotificationUids - modelTestingJobNotificationUids - autoSegmenterJobNotificationUids - exportJobNotificationUids - hasNewTrainingData - studioUrl - inPretrainedModelFlow - showSensorDataInAcquisitionGraph - notifications properties: project: $ref: '#/components/schemas/Project' developmentKeys: $ref: '#/components/schemas/DevelopmentKeys' impulse: type: object required: - created - configured - complete properties: created: type: boolean description: Whether an impulse was created configured: type: boolean description: Whether an impulse was configured complete: type: boolean description: Whether an impulse was fully trained and configured devices: type: array items: $ref: '#/components/schemas/Device' dataSummary: $ref: '#/components/schemas/ProjectDataSummary' dataSummaryPerCategory: type: object required: - training - testing - anomaly properties: training: $ref: '#/components/schemas/ProjectDataSummary' testing: $ref: '#/components/schemas/ProjectDataSummary' anomaly: $ref: '#/components/schemas/ProjectDataSummary' computeTime: type: object required: - periodStartDate - periodEndDate - timeUsedMs - timeLeftMs properties: periodStartDate: type: string format: date-time description: Start of the current time period. periodEndDate: type: string format: date-time description: End of the current time period. This is the date when the compute time resets again. timeUsedMs: type: integer description: The amount of compute used for the current time period. timeLeftMs: type: integer description: The amount of compute left for the current time period. acquisitionSettings: type: object required: - intervalMs - lengthMs - segmentShift - defaultPageSize - viewType - gridColumnCount - gridColumnCountDetailed properties: intervalMs: type: number description: Interval during the last acquisition, or the recommended interval based on the data set. lengthMs: type: integer description: Length of the last acquisition, or a recommended interval based on the data set. sensor: type: string description: Sensor that was used during the last acquisition. label: type: string description: Label that was used during the last acquisition. segmentLength: type: number description: Length of the last sample segment after segmenting a larger sample. segmentShift: type: boolean description: Whether to auto-shift segments defaultPageSize: type: integer description: Default page size on data acquisition viewType: type: string description: Default view type on data acquisition enum: - list - grid gridColumnCount: type: integer description: Number of grid columns in non-detailed view gridColumnCountDetailed: type: integer description: Number of grid columns in detailed view collaborators: type: array items: $ref: '#/components/schemas/User' deploySettings: type: object required: - eonCompiler - sensor - arduinoLibraryName - tinkergenLibraryName - particleLibraryName properties: eonCompiler: type: boolean sensor: type: string enum: - accelerometer - microphone - camera - positional - environmental - fusion - unknown arduinoLibraryName: type: string tinkergenLibraryName: type: string particleLibraryName: type: string lastDeployModelEngine: type: string $ref: '#/components/schemas/ModelEngineShortEnum' description: Model engine for last deploy experiments: type: array description: Experiments that the project has access to. Enabling experiments can only be done through a JWT token. items: type: object required: - type - title - enabled - showToUser properties: type: type: string title: type: string help: type: string enabled: type: boolean showToUser: type: boolean latencyDevices: type: array items: $ref: '#/components/schemas/LatencyDevice' urls: type: object properties: mobileClient: description: Base URL for the mobile client. If this is undefined then no development API key is set. type: string mobileClientComputer: description: Base URL for collecting data with the mobile client from a computer. If this is undefined then no development API key is set. type: string mobileClientInference: description: Base URL for running inference with the mobile client. If this is undefined then no development API key is set. type: string showCreateFirstImpulse: type: boolean showGettingStartedWizard: type: object required: - showWizard - step properties: showWizard: type: boolean step: type: integer description: Current step of the getting started wizard performance: type: object required: - gpu - jobLimitM - dspFileSizeMb - enterprisePerformance - trainJobRamMb properties: gpu: type: boolean jobLimitM: type: integer description: Compute time limit per job in minutes (applies only to DSP and learning jobs). dspFileSizeMb: type: integer description: Maximum size for DSP file output enterprisePerformance: type: boolean trainJobRamMb: type: integer description: Amount of RAM allocated to training jobs readme: type: object description: Present if a readme is set for this project required: - markdown - html properties: markdown: type: string html: type: string trainJobNotificationUids: type: array description: The IDs of users who should be notified when a Keras or retrain job is finished. items: type: integer dspJobNotificationUids: type: array description: The IDs of users who should be notified when a DSP job is finished. items: type: integer modelTestingJobNotificationUids: type: array description: The IDs of users who should be notified when a model testing job is finished. items: type: integer autoSegmenterJobNotificationUids: type: array description: The IDs of users who should be notified when an auto segmentation job is finished. items: type: integer exportJobNotificationUids: type: array description: The IDs of users who should be notified when an export job is finished. items: type: integer hasNewTrainingData: type: boolean csvImportConfig: type: object description: Config file specifying how to process CSV files. studioUrl: type: string inPretrainedModelFlow: type: boolean dspPageSize: type: integer showSensorDataInAcquisitionGraph: description: Whether to show the actual sensor data in acquisition charts (only applies when you have structured labels) type: boolean targetConstraints: $ref: '#/components/schemas/TargetConstraints' notifications: type: array description: List of notifications to show within the project items: type: string ListDevicesResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: devices: type: array items: $ref: '#/components/schemas/Device' GetDeviceResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: device: $ref: '#/components/schemas/Device' GetNotesResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - notes properties: notes: type: array items: $ref: '#/components/schemas/Note' Note: type: object required: - id - note - created properties: id: type: integer example: 2 note: type: string example: "This is a note" userId: type: integer example: 2 parentId: type: integer description: If the note is a response to a previous note, this value holds the Id of that note example: 1 created: type: string format: date-time description: Timestamp when the note was created userName: type: string description: Name of the user that created the note userPhoto: type: string description: Photo of the user that created the note StructuredLabel: type: object description: "A structured label contains a label, and the range for which this label is valid. `endIndex` is inclusive. E.g. `{ startIndex: 10, endIndex: 13, label: 'running' }` means that the values at index 10, 11, 12, 13 are labeled 'running'. To get time codes you can multiple by the sample's `intervalMs` property." required: - startIndex - endIndex - label properties: startIndex: type: integer description: Start index of the label (e.g. 0) endIndex: type: integer description: "End index of the label (e.g. 3). This value is inclusive, so { startIndex: 0, endIndex: 3 } covers 0, 1, 2, 3." label: type: string description: The label for this section. Sample: type: object required: - id - filename - signatureValidate - created - lastModified - category - coldstorageFilename - label - intervalMs - frequency - originalIntervalMs - originalFrequency - deviceType - sensors - valuesCount - added - boundingBoxes - boundingBoxesType - chartType - isDisabled - isProcessing - processingError - isCropped - projectId - sha256Hash properties: id: type: integer example: 2 filename: type: string example: "idle01.d8Ae" signatureValidate: type: boolean description: Whether signature validation passed example: true signatureMethod: type: string example: HS256 signatureKey: type: string description: Either the shared key or the public key that was used to validate the sample created: type: string format: date-time description: Timestamp when the sample was created on device, or if no accurate time was known on device, the time that the file was processed by the ingestion service. lastModified: type: string format: date-time description: Timestamp when the sample was last modified. category: type: string example: training coldstorageFilename: type: string label: type: string example: healthy-machine intervalMs: type: number description: Interval between two windows (1000 / frequency). If the data was resampled, then this lists the resampled interval. example: 16 frequency: type: number description: Frequency of the sample. If the data was resampled, then this lists the resampled frequency. example: 62.5 originalIntervalMs: type: number description: Interval between two windows (1000 / frequency) in the source data (before resampling). example: 16 originalFrequency: type: number description: Frequency of the sample in the source data (before resampling). example: 62.5 deviceName: type: string deviceType: type: string sensors: type: array items: $ref: '#/components/schemas/Sensor' valuesCount: type: integer description: Number of readings in this file totalLengthMs: type: number description: Total length (in ms.) of this file added: type: string format: date-time description: Timestamp when the sample was added to the current acquisition bucket. boundingBoxes: type: array items: $ref: '#/components/schemas/BoundingBox' boundingBoxesType: type: string enum: - object_detection - constrained_object_detection chartType: type: string enum: - chart - image - video thumbnailVideo: type: string thumbnailVideoFull: type: string isDisabled: type: boolean description: True if the current sample is excluded from use isProcessing: type: boolean description: True if the current sample is still processing (e.g. for video) processingJobId: type: integer description: Set when sample is processing and a job has picked up the request processingError: type: boolean description: Set when processing this sample failed processingErrorString: type: string description: Error (only set when processing this sample failed) isCropped: type: boolean description: Whether the sample is cropped from another sample (and has crop start / end info) metadata: type: object description: Sample free form associated metadata additionalProperties: type: string projectId: type: integer description: Unique identifier of the project this sample belongs to projectOwnerName: type: string description: Name of the owner of the project this sample belongs to projectName: type: string description: Name of the project this sample belongs to projectLabelingMethod: type: string description: What labeling flow the project this sample belongs to uses enum: - single_label - object_detection sha256Hash: type: string description: Data sample SHA 256 hash (including CBOR envelope if applicable) structuredLabels: type: array items: $ref: '#/components/schemas/StructuredLabel' structuredLabelsList: type: array items: type: string GetSampleResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - $ref: '#/components/schemas/RawSampleData' GetSampleMetadataResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - $ref: '#/components/schemas/ProjectSampleMetadata' ListSamplesResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - samples - totalCount properties: samples: type: array items: $ref: '#/components/schemas/Sample' totalCount: type: integer CountSamplesResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - count properties: count: type: integer RebalanceDatasetResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - $ref: '#/components/schemas/DatasetRatioData' DSPGroupItem: type: object required: - name - type - param - defaultValue - readonly - shouldShow properties: name: type: string example: Scale axes value: type: string defaultValue: type: string type: type: string example: text help: type: string example: Divide axes by this number param: type: string example: scale-axes selectOptions: type: array items: type: object properties: value: type: string selected: type: boolean optionLabel: type: string readonly: type: boolean shouldShow: type: boolean showIf: type: object required: - parameter - operator - value properties: parameter: type: string operator: type: string enum: - eq - neq value: type: string invalidText: type: string section: type: string description: Interface section to render parameter in. enum: - advanced - augmentation DSPGroup: type: object required: - group - items properties: group: type: string example: Scaling items: type: array items: $ref: '#/components/schemas/DSPGroupItem' DSPInfo: type: object required: - id - name - windowLength - type - classes - features - expectedWindowCount - inputAxes - canCalculateFeatureImportance - calculateFeatureImportance properties: id: type: integer example: 1 name: type: string example: Spectral features windowLength: type: integer example: 3000 type: type: string example: spectral-analysis classes: type: array items: type: string features: type: object required: - generated properties: generated: type: boolean description: Whether this block has generated features count: type: integer description: Number of generated features labels: type: array description: Names of the features items: type: string classes: type: array description: Classes that the features were generated on items: type: string expectedWindowCount: type: integer description: "Expected number of windows that would be generated" inputAxes: type: array description: Axes that this block depends on. items: type: string performance: type: object required: - latency - ram properties: latency: type: integer ram: type: integer canCalculateFeatureImportance: type: boolean calculateFeatureImportance: type: boolean hasAutoTune: description: Whether this type of DSP block supports autotuning. type: boolean minimumVersionForAutotune: description: For DSP blocks that support autotuning, this value specifies the minimum block implementation version for which autotuning is supported. type: number hasAutotunerResults: description: Whether autotune results exist for this DSP block. type: boolean usesState: description: Whether this DSP block uses state. type: boolean DSPConfigResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: dsp: $ref: '#/components/schemas/DSPInfo' config: type: array items: $ref: '#/components/schemas/DSPGroup' configError: type: string DSPConfigRequest: type: object required: - config properties: config: type: object additionalProperties: type: string GetImpulseResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: impulse: $ref: '#/components/schemas/Impulse' GetTargetConstraintsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: targetConstraints: $ref: '#/components/schemas/TargetConstraints' InputBlock: type: object required: - type - title - author - description - name - recommend - blockType properties: type: type: string enum: - time-series - image title: type: string example: Time series author: type: string example: "Edge Impulse Inc." description: type: string name: type: string example: Time series recommended: type: boolean blockType: $ref: '#/components/schemas/BlockType' DSPBlock: type: object required: - type - title - author - description - name - recommend - experimental - latestImplementationVersion - blockType properties: type: type: string example: spectral-analysis title: type: string example: Spectral features author: type: string example: "Edge Impulse Inc." description: type: string name: type: string example: Spectral analysis recommended: type: boolean experimental: type: boolean latestImplementationVersion: type: integer organizationId: type: integer organizationDspId: type: integer blockType: $ref: '#/components/schemas/BlockType' BlockType: type: string enum: - official - personal - enterprise - community LearnBlock: type: object required: - type - title - author - description - name - recommend - blockType properties: type: type: string example: spectral-analysis title: type: string example: Spectral features author: type: string example: "Edge Impulse Inc." description: type: string name: type: string example: Spectral analysis recommended: type: boolean organizationModelId: type: integer isPublicEnterpriseOnly: type: boolean description: Whether this block is publicly available to Edge Impulse only to enterprise users blockType: $ref: '#/components/schemas/BlockType' displayCategory: $ref: '#/components/schemas/BlockDisplayCategory' GetImpulseBlocksResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - inputBlocks - dspBlocks - learnBlocks properties: inputBlocks: type: array items: $ref: '#/components/schemas/InputBlock' dspBlocks: type: array items: $ref: '#/components/schemas/DSPBlock' learnBlocks: type: array items: $ref: '#/components/schemas/LearnBlock' AnomalyResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - name - axes - trained - dependencies - selectedAxes - minimumConfidenceRating properties: dependencies: $ref: '#/components/schemas/DependencyData' name: type: string axes: type: array description: Selectable axes for the anomaly detection block items: type: object required: - label - selected - favourite properties: label: type: string selected: type: boolean favourite: type: boolean trained: type: boolean description: Whether the block is trained clusterCount: type: integer description: Number of clusters for K-means, or number of components for GMM (in config) selectedAxes: type: array items: type: integer description: Selected clusters (in config) minimumConfidenceRating: type: number description: Minimum confidence rating for this block, scores above this number will be flagged as anomaly. DependencyData: type: object required: - classes - blockNames - featureCount - sampleCount properties: classes: type: array items: type: string blockNames: type: array items: type: string featureCount: type: integer sampleCount: type: integer KerasModelTypeEnum: type: string enum: - int8 - float32 - akida - requiresRetrain ModelEngineShortEnum: type: string enum: - tflite-eon - tflite-eon-ram-optimized - tflite KerasModelVariantEnum: type: string enum: - int8 - float32 - akida JobParentTypeEnum: type: string enum: - project - organization - standalone AugmentationPolicyImageEnum: type: string description: The data augmentation policy to use with image input enum: - none - all AugmentationPolicySpectrogram: type: object required: - enabled properties: enabled: type: boolean description: True if spectrogram augmentation is enabled. Other properties will be ignored if this is false. warping: type: boolean description: True if warping along the time axis is enabled. freqMasking: type: string enum: - none - low - high description: The amount of frequency masking to apply. timeMasking: type: string enum: - none - low - high description: The amount of time masking to apply. gaussianNoise: type: string enum: - none - low - high description: The amount of Gaussian noise to add. AkidaEdgeLearningConfig: type: object required: - enabled properties: enabled: type: boolean description: True if Akida Edge Learning model creation is enabled. Other properties will be ignored if this is false. additionalClasses: type: number description: Number of additional classes that will be added to the Edge Learning model. neuronsPerClass: type: number description: Number of neurons in each class on the last layer in the Edge Learning model. LearnBlockType: type: string description: The type of learning block (anomaly, keras, keras-transfer-image, keras-transfer-kws, keras-object-detection, keras-regression). Each behaves differently. enum: - anomaly - anomaly-gmm - keras - keras-transfer-image - keras-transfer-kws - keras-object-detection - keras-regression - keras-akida - keras-akida-transfer-image - keras-akida-object-detection - keras-visual-anomaly KerasResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - dependencies - trained - name - script - minimumConfidenceRating - selectedModelType - mode - trainingCycles - learningRate - defaultBatchSize - visualLayers - augmentationPolicyImage - transferLearningModels - shape - profileInt8 - skipEmbeddingsAndMemory - showAdvancedTrainingSettings - showAugmentationTrainingSettings properties: dependencies: $ref: '#/components/schemas/DependencyData' trained: type: boolean description: Whether the block is trained name: type: string type: $ref: '#/components/schemas/LearnBlockType' script: type: string description: The Keras script. This script might be empty if the mode is visual. minimumConfidenceRating: type: number description: Minimum confidence rating required for the neural network. Scores below this confidence are tagged as uncertain. selectedModelType: description: The model type that is currently selected. $ref: '#/components/schemas/KerasModelTypeEnum' mode: type: string description: The mode (visual or expert) to use for editing this network. enum: - visual - expert visualLayers: type: array description: The visual layers (if in visual mode) for the neural network. This will be an empty array when in expert mode. items: $ref: '#/components/schemas/KerasVisualLayer' trainingCycles: type: integer description: Number of training cycles. If in expert mode this will be 0. learningRate: type: number description: Learning rate (between 0 and 1). If in expert mode this will be 0. batchSize: type: integer description: The batch size used during training. defaultBatchSize: type: integer description: The default batch size if a value is not configured. shape: type: string description: Python-formatted tuple of input axes trainTestSplit: type: number description: Train/test split (between 0 and 1) autoClassWeights: type: boolean description: Whether to automatically balance class weights, use this for skewed datasets. useLearnedOptimizer: type: boolean description: Use learned optimizer and ignore learning rate. augmentationPolicyImage: $ref: '#/components/schemas/AugmentationPolicyImageEnum' augmentationPolicySpectrogram: $ref: '#/components/schemas/AugmentationPolicySpectrogram' transferLearningModels: type: array items: $ref: '#/components/schemas/TransferLearningModel' profileInt8: type: boolean description: Whether to profile the i8 model (might take a very long time) skipEmbeddingsAndMemory: type: boolean description: If set, skips creating embeddings and measuring memory (used in tests) akidaEdgeLearningConfig: $ref: '#/components/schemas/AkidaEdgeLearningConfig' customValidationMetadataKey: type: string description: This metadata key is used to prevent group data leakage between train and validation datasets. showAdvancedTrainingSettings: type: boolean description: Whether the 'Advanced training settings' UI element should be expanded. showAugmentationTrainingSettings: type: boolean description: Whether the 'Augmentation training settings' UI element should be expanded. customParameters: type: object description: Training parameters, this list depends on the list of parameters that the model exposes. additionalProperties: type: string nullable: true anomalyCapacity: description: Capacity level for visual anomaly detection. Determines which set of default configurations to use. The higher capacity, the higher number of (Gaussian) components, and the more adapted the model becomes to the original distribution $ref: '#/components/schemas/AnomalyCapacity' lastShownModelVariant: $ref: '#/components/schemas/KerasModelVariantEnum' description: Last shown variant on the Keras screen. Used to keep the same view after refreshing. lastShownModelEngine: $ref: '#/components/schemas/ModelEngineShortEnum' description: Last shown model engine on the Keras screen. Used to keep the same view after refreshing. DSPMetadata: type: object required: - created - dspConfig - labels - featureCount - windowCount - includedSamples - windowSizeMs - windowIncreaseMs - padZeros - frequency - outputConfig properties: created: type: string format: date-time description: Date when the features were created dspConfig: type: object additionalProperties: type: string labels: type: array description: Labels in the dataset when generator ran items: type: string featureLabels: type: array description: Names of the generated features. Only set if axes have explicit labels. items: type: string windowCount: type: integer featureCount: type: integer description: Number of features for this DSP block includedSamples: type: array description: The included samples in this DSP block. Note that these are sorted in the same way as the `npy` files are laid out. So with the `windowCount` parameter you can exactly search back to see which file contributed to which windows there. items: type: object required: - id - windowCount properties: id: type: integer windowCount: type: integer windowSizeMs: type: integer description: Length of the sliding window when generating features. windowIncreaseMs: type: integer description: Increase of the sliding window when generating features. padZeros: type: boolean description: Whether data was zero-padded when generating features. frequency: type: number description: Frequency of the original data in Hz. outputConfig: type: object description: Information about the output of the DSP block required: - type - shape properties: type: type: string description: Output type of the DSP block enum: - image - spectrogram - flat shape: type: object description: The shape of the block output required: - width properties: width: description: Available on all types. Denotes the width of an 'image' or 'spectrogram', or the number of features in a 'flat' block. type: integer height: description: Only available for type 'image' and 'spectrogram' type: integer channels: description: Only available for type 'image' type: integer frames: description: Number of frames, only available for type 'image' type: integer fftUsed: type: array items: type: integer resamplingAlgorithmVersion: type: number description: The version number of the resampling algorithm used (for resampled time series data only) DSPMetadataResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - $ref: '#/components/schemas/DSPMetadata' JobDetailsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: jobs: type: array items: $ref: '#/components/schemas/JobDetails' JobDetails: allOf: - $ref: '#/components/schemas/Job' - type: object required: - states properties: childrenIds: type: array description: List of jobs children isd triggered by this job items: type: integer states: type: array description: List of states the job went through items: $ref: '#/components/schemas/JobState' spec: type: object description: Job specification (Kubernetes specification or other underlying engine) JobState: type: object required: - version - timestamp - step properties: version: type: integer description: version number (indicates the order of the state) timestamp: type: string format: date-time description: timestamp when the job transistioned to this new step executionDetails: $ref: '#/components/schemas/JobStateExecutionDetails' step: $ref: '#/components/schemas/JobStep' JobStep: type: object required: - ordinal - name properties: ordinal: type: number description: ordinal number representing the step progress: type: number description: > progress percentage inside the same step example for "scheduled" step, we have the following values: 0%: pod scheduled to some node (but node creation may not be finished yet) 50%: image pulling started 90%: image pulled name: type: string description: short name describing the step attempt: type: integer description: execution attempt (starts at 0) failureDetails: $ref: '#/components/schemas/JobFailureDetails' description: failure details JobFailureDetails: type: object properties: reason: type: string description: "short code describing the reason of the failure" message: type: string description: "full description of the failure" exitCode: type: integer description: "exit code of the failed job process" JobStateExecutionDetails: type: object properties: podName: type: string description: Kubernetes pod name Job: type: object required: - id - key - created - category - jobNotificationUids properties: id: type: integer description: Job id, use this to refer back to the job. The web socket API also uses this ID. category: type: string key: type: string description: > External job identifier, this can be used to categorize jobs, and recover job status. E.g. set this to 'keras-192' for a Keras learning block with ID 192. When a user refreshes the page you can check whether a job is active for this ID and re-attach. created: type: string format: date-time description: When the job was created. started: type: string format: date-time description: When the job was started. finished: type: string format: date-time description: When the job was finished. finishedSuccessful: type: boolean description: Whether the job finished successfully. jobNotificationUids: type: array description: The IDs of users who should be notified when a job is finished. items: type: integer additionalInfo: type: string description: Additional metadata associated with this job. computeTime: type: number description: Job duration time in seconds from start to finished, measured by k8s job watcher. createdByUser: type: object required: - id - name - username properties: id: type: integer name: type: string username: type: string photo: type: string ListJobsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - jobs - totalJobCount properties: jobs: type: array description: Active jobs items: $ref: '#/components/schemas/Job' totalJobCount: type: integer CreateUserRequest: type: object required: - name - username - email - privacyPolicy properties: name: type: string description: "Your name" example: "Jan Jongboom" username: type: string description: "Username, minimum 4 and maximum 30 characters. May contain alphanumeric characters, hyphens, underscores and dots. Validated according to `^(?=.{4,30}$)(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._-]+(? finished) type: boolean trials: type: array items: $ref: '#/components/schemas/TunerTrial' projectDataType: type: string enum: - audio - image - motion - other jobError: type: string workers: type: array items: type: object required: - workerId - status properties: workerId: type: string status: type: string enum: - pending - ready - busy nextRunIndex: type: integer JobStatus: type: string enum: - cancelled - creating - failed - pending - running - success TunerRun: type: object required: - tunerJobId - tunerCoordinatorJobId - index - created - jobStatus properties: tunerJobId: type: integer tunerCoordinatorJobId: type: integer index: type: integer name: type: string created: type: string format: date-time jobStatus: $ref: '#/components/schemas/JobStatus' ListTunerRunsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - runs properties: runs: type: array items: $ref: '#/components/schemas/TunerRun' WindowSettingsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - windowSettings properties: windowSettings: type: array items: type: object required: - windowSizeMs - windowIncreaseMs - windowIncreasePct - zeroPadPercentage - windowCount - balanceScore - valid properties: windowSizeMs: type: number windowIncreaseMs: type: number windowIncreasePct: type: number zeroPadPercentage: type: number windowCount: type: integer balanceScore: type: number valid: type: boolean ScoreTrialResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - latency - ram - rom - score properties: score: type: number latency: type: object required: - dspMips - dspMs - learnMaccs - learnMs properties: dspMips: type: number dspMs: type: number learnMaccs: type: number learnMs: type: number ram: type: object required: - dsp - learn properties: dsp: type: number learn: type: number rom: type: object required: - dsp - learn properties: dsp: type: number learn: type: number SetOptimizeSpaceRequest: allOf: - type: object properties: space: type: object required: - impulse properties: impulse: type: array description: List of impulses specifying the EON Tuner search space items: $ref: '#/components/schemas/TunerSpaceImpulse' TunerSpaceImpulse: type: object required: - inputBlocks - dspBlocks - learnBlocks properties: parameters: type: object description: "Hyperparameters with potential values that can be used in any block in this impulse" inputBlocks: type: array description: Input Blocks that are part of this impulse items: $ref: '#/components/schemas/TunerSpaceInputBlock' dspBlocks: type: array description: DSP Blocks that are part of this impulse items: $ref: '#/components/schemas/TunerSpaceDSPBlock' learnBlocks: type: array description: Learning Blocks that are part of this impulse items: $ref: '#/components/schemas/TunerSpaceLearnBlock' TunerSpaceInputBlock: type: object additionalProperties: true TunerSpaceDSPBlock: type: object additionalProperties: true TunerSpaceLearnBlock: type: object additionalProperties: true TunerCreateTrialImpulse: type: object required: - inputBlock - dspBlock - learnBlock properties: id: type: string experiment: type: string original_trial_id: type: string inputBlocks: type: array items: $ref: '#/components/schemas/TunerCreateTrialInputBlock' dspBlocks: type: array items: $ref: '#/components/schemas/TunerCreateTrialDSPBlock' learnBlocks: type: array items: $ref: '#/components/schemas/TunerCreateTrialLearnBlock' TunerTrialImpulse: type: object required: - inputBlock - dspBlock - learnBlock properties: inputBlocks: type: array items: $ref: '#/components/schemas/TunerCreateTrialInputBlock' dspBlocks: type: array items: $ref: '#/components/schemas/TunerCreateTrialDSPBlock' learnBlocks: type: array items: $ref: '#/components/schemas/TunerCreateTrialLearnBlock' TunerCreateTrialInputBlock: type: object additionalProperties: true TunerCreateTrialDSPBlock: type: object additionalProperties: true TunerCreateTrialLearnBlock: type: object additionalProperties: true UpdateProjectRequest: type: object description: Only fields set in this object will be updated. properties: logo: type: string description: New logo URL, or set to `null` to remove the logo. name: type: string description: New project name. description: type: string projectVisibility: $ref: '#/components/schemas/ProjectVisibility' publicProjectListed: type: boolean description: > If the project allows public access, whether to list it the public projects overview response. If not listed, the project is still accessible via direct link. If the project does not allow public access, this field has no effect. lastDeployEonCompiler: type: boolean description: Call this when clicking the Eon compiler setting lastDeployModelEngine: type: string $ref: '#/components/schemas/ModelEngineShortEnum' description: Model engine for last deploy latencyDevice: type: string description: MCU used for calculating latency experiments: type: array items: type: string showCreateFirstImpulse: type: boolean description: Whether to show the 'Create your first impulse' section on the dashboard labelingMethod: type: string description: What labeling flow to use enum: - single_label - object_detection selectedProjectTypeInWizard: type: string description: Which option was selected in the project type wizard enum: - accelerometer - audio - image_classification - object_detection - something_else gettingStartedStep: type: integer description: The next step in the getting started wizard, or set to -1 to clear the getting started wizard useGpu: type: boolean description: Whether to use GPU for training computeTimeLimitM: type: integer description: Job limit in minutes dspFileSizeMb: type: integer description: DSP file size in MB enterprisePerformance: type: boolean trainJobRamMb: type: integer description: Amount of RAM allocated to training jobs metadata: type: object description: New metadata about the project readme: type: string description: Readme for the project (in Markdown) lastAcquisitionLabel: type: string trainJobNotificationUids: type: array description: The IDs of users who should be notified when a Keras or retrain job is finished. items: type: integer dspJobNotificationUids: type: array description: The IDs of users who should be notified when a DSP job is finished. items: type: integer modelTestingJobNotificationUids: type: array description: The IDs of users who should be notified when a model testing job is finished. items: type: integer autoSegmenterJobNotificationUids: type: array description: The IDs of users who should be notified when an auto segmentation job is finished. items: type: integer exportJobNotificationUids: type: array description: The IDs of users who should be notified when an export job is finished. items: type: integer csvImportConfig: type: object description: Config file specifying how to process CSV files. (set to null to clear the config) inPretrainedModelFlow: type: boolean dspPageSize: description: Set to '0' to disable DSP paging type: integer indPauseProcessingSamples: description: Used in tests, to ensure samples that need to be processed async are not picked up until the flag is set to FALSE again. type: boolean showSensorDataInAcquisitionGraph: description: Whether to show the actual sensor data in acquisition charts (only applies when you have structured labels) type: boolean lastDeploymentTarget: description: Which deployment target was last selected (used to populate this deployment target again the next time you visit the deployment page). Should match the _format_ property of the response from listDeploymentTargetsForProject. type: string dataAcquisitionPageSize: type: integer description: Default page size on data acquisition dataAcquisitionViewType: type: string description: Default view type on data acquisition enum: - list - grid dataAcquisitionGridColumnCount: type: integer description: Number of grid columns in non-detailed view on data acquisition dataAcquisitionGridColumnCountDetailed: type: integer description: Number of grid columns in detailed view on data acquisition BuildOnDeviceModelRequest: type: object required: - engine properties: engine: $ref: '#/components/schemas/DeploymentTargetEngine' modelType: $ref: '#/components/schemas/KerasModelTypeEnum' BuildOrganizationOnDeviceModelRequest: type: object required: - engine - deployBlockId properties: engine: $ref: '#/components/schemas/DeploymentTargetEngine' deployBlockId: type: integer modelType: $ref: '#/components/schemas/KerasModelTypeEnum' AddCollaboratorRequest: type: object required: - usernameOrEmail properties: usernameOrEmail: type: string description: Username or e-mail address RemoveCollaboratorRequest: type: object required: - usernameOrEmail properties: usernameOrEmail: type: string description: Username or e-mail address ListHmacKeysResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - hmacKeys properties: hmacKeys: type: array description: List of HMAC keys items: type: object required: - id - hmacKey - isDevelopmentKey - name - created properties: id: type: integer hmacKey: type: string isDevelopmentKey: type: boolean name: type: string created: type: string format: date-time ListApiKeysResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - apiKeys properties: apiKeys: type: array description: List of API keys. items: type: object required: - id - name - apiKey - isDevelopmentKey - created - role properties: id: type: integer apiKey: type: string isDevelopmentKey: type: boolean name: type: string created: type: string format: date-time role: type: string enum: - admin - readonly - ingestiononly - wladmin AddHmacKeyRequest: type: object required: - name - hmacKey - isDevelopmentKey properties: name: type: string description: Description of the key hmacKey: type: string description: HMAC key. isDevelopmentKey: type: boolean description: Whether this key should be used as a development key. AddApiKeyRequest: type: object required: - name - apiKey properties: name: type: string description: Description of the key apiKey: type: string description: API key. This needs to start with `ei_` and will need to be at least 32 characters long. AddProjectApiKeyRequest: allOf: - $ref: '#/components/schemas/AddApiKeyRequest' - type: object required: - isDevelopmentKey - role properties: isDevelopmentKey: type: boolean description: Whether this key should be used as a development key. role: type: string enum: [ admin, readonly, ingestiononly ] AdminAddProjectApiKeyRequest: allOf: - $ref: '#/components/schemas/AddApiKeyRequest' - type: object properties: ttl: type: integer description: Time to live in seconds. If not set, the key will expire in 1 minute. GetUserResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - $ref: '#/components/schemas/User' - type: object required: - email - activated - organizations - projects - experiments - administrativeOptions - tier - suspended - notifications properties: email: type: string activated: type: boolean organizations: type: array description: Organizations that the user is a member of. Only filled when requesting information about yourself. items: $ref: '#/components/schemas/UserOrganization' projects: type: array items: $ref: '#/components/schemas/Project' experiments: type: array description: Experiments the user has access to. Enabling experiments can only be done through a JWT token. items: $ref: '#/components/schemas/UserExperiment' evaluation: type: boolean description: Whether this is an ephemeral evaluation account. ambassador: type: boolean description: Whether this user is an ambassador. tier: type: string description: The user account tier. enum: - free - pro whitelabels: description: "List of white labels the user is a member of" type: array items: type: object required: - id - domain - name - ownerOrganizationId - isAdmin properties: id: type: number domain: type: string name: type: string ownerOrganizationId: type: number isAdmin: type: boolean description: Whether the user is an admin of the white label. suspended: type: boolean description: Whether the user is suspended. notifications: type: array description: List of notifications to show to the user items: type: string UpdateUserRequest: type: object description: Only fields set in this object will be updated. properties: name: type: string description: New full name example: Jan Jongboom jobTitle: type: string description: New job title example: Embedded Software Engineer companyName: type: string description: New company name example: Edge Impulse Inc. experiments: type: array items: type: string description: List of user experiments ActivateUserOrVerifyEmailRequest: type: object required: - code properties: code: type: string description: Activation or verification code (sent via email) ListEmailResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - emails properties: emails: type: array description: List of emails items: type: object required: - from - to - created - subject - bodyText - bodyHTML - sent - providerResponse properties: userId: type: integer projectId: type: integer from: type: string to: type: string created: type: string format: date-time subject: type: string bodyText: type: string bodyHTML: type: string sent: type: boolean providerResponse: type: string RequestResetPasswordRequest: type: object required: - email properties: email: type: string ResetPasswordRequest: type: object required: - email - code - newPassword properties: email: type: string code: type: string newPassword: type: string VerifyResetPasswordRequest: type: object required: - email - code properties: email: type: string code: type: string SetAnomalyParameterRequest: type: object description: Only fields defined in this object are set properties: minimumConfidenceRating: type: number description: Minimum confidence score, if the anomaly block scores a sample above this threshold it will be flagged as anomaly. SetKerasParameterRequest: type: object description: Only fields defined in this object are set properties: mode: type: string description: Whether to use visual or expert mode. enum: - expert - visual minimumConfidenceRating: type: number description: Minimum confidence score, if the neural network scores a sample below this threshold it will be flagged as uncertain. selectedModelType: description: The model type to select, as described in the model metadata call. $ref: '#/components/schemas/KerasModelTypeEnum' script: type: string description: Raw Keras script (only used in expert mode) visualLayers: type: array description: The visual layers for the neural network (only in visual mode). items: $ref: '#/components/schemas/KerasVisualLayer' trainingCycles: type: integer description: Number of training cycles (only in visual mode). learningRate: type: number description: Learning rate (between 0 and 1) (only in visual mode). batchSize: type: number description: Batch size used during training (only in visual mode). trainTestSplit: type: number description: Train/test split (between 0 and 1) autoClassWeights: type: boolean description: Whether to automatically balance class weights, use this for skewed datasets. useLearnedOptimizer: type: boolean description: Use learned optimizer and ignore learning rate. augmentationPolicyImage: $ref: '#/components/schemas/AugmentationPolicyImageEnum' augmentationPolicySpectrogram: $ref: '#/components/schemas/AugmentationPolicySpectrogram' profileInt8: type: boolean description: Whether to profile the i8 model (might take a very long time) skipEmbeddingsAndMemory: type: boolean description: If set, skips creating embeddings and measuring memory (used in tests) akidaEdgeLearningConfig: $ref: '#/components/schemas/AkidaEdgeLearningConfig' customValidationMetadataKey: type: string description: If the 'custom validation split' experiment is enabled, this metadata key is used to prevent group data leakage between train and validation datasets. showAdvancedTrainingSettings: type: boolean description: Whether the 'Advanced training settings' UI element should be expanded. showAugmentationTrainingSettings: type: boolean description: Whether the 'Augmentation training settings' UI element should be expanded. customParameters: type: object description: Training parameters, this list depends on the list of parameters that the model exposes. additionalProperties: type: string nullable: true anomalyCapacity: description: Capacity level for visual anomaly detection. Determines which set of default configurations to use. The higher capacity, the higher number of (Gaussian) components, and the more adapted the model becomes to the original distribution $ref: '#/components/schemas/AnomalyCapacity' lastShownModelVariant: $ref: '#/components/schemas/KerasModelVariantEnum' description: Last shown variant on the Keras screen. Used to keep the same view after refreshing. lastShownModelEngine: $ref: '#/components/schemas/ModelEngineShortEnum' description: Last shown model engine on the Keras screen. Used to keep the same view after refreshing. MoveRawDataRequest: type: object required: - newCategory properties: newCategory: type: string enum: [ training, testing, anomaly ] UploadUserPhotoRequest: type: object required: - photo properties: photo: type: string format: binary UploadUserPhotoResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - url properties: url: type: string UploadCustomBlockRequest: type: object required: - tar - type - blockId properties: tar: type: string format: binary type: type: string enum: - transform - deploy - dsp - transferLearning blockId: type: integer ChangePasswordRequest: type: object required: - currentPassword - newPassword properties: currentPassword: type: string newPassword: type: string KerasVisualLayerType: type: string enum: - dense - conv1d - conv2d - reshape - flatten - dropout - batchNormalization - transfer_mobilenetv2_a35 - transfer_mobilenetv2_a1 - transfer_mobilenetv2_a05 - transfer_mobilenetv2_160_a1 - transfer_mobilenetv2_160_a75 - transfer_mobilenetv2_160_a5 - transfer_mobilenetv2_160_a35 - transfer_mobilenetv1_a25_d100 - transfer_mobilenetv1_a2_d100 - transfer_mobilenetv1_a1_d100 - transfer_kws_mobilenetv1_a1_d100 - transfer_kws_mobilenetv2_a35_d100 - transfer_kws_syntiant_ndp10x - transfer_kws_conv2d_tiny - object_ssd_mobilenet_v2_fpnlite_320x320 - fomo_mobilenet_v2_a01 - fomo_mobilenet_v2_a35 - transfer_organization - transfer_akidanet_imagenet_160_a100 - transfer_akidanet_imagenet_160_a50 - transfer_akidanet_imagenet_160_a25 - transfer_akidanet_imagenet_224_a100 - transfer_akidanet_imagenet_224_a50 - transfer_akidanet_imagenet_224_a25 - fomo_akidanet_a50 TransferLearningModel: type: object required: - name - shortName - description - hasNeurons - hasDropout - type - author - blockType properties: name: type: string shortName: type: string description: type: string hasNeurons: type: boolean hasDropout: type: boolean defaultNeurons: type: integer defaultDropout: type: number defaultLearningRate: type: number defaultTrainingCycles: type: number hasImageAugmentation: type: boolean type: $ref: '#/components/schemas/KerasVisualLayerType' learnBlockType: $ref: '#/components/schemas/LearnBlockType' organizationModelId: type: integer implementationVersion: type: integer repositoryUrl: type: string description: URL to the source code of this custom learn block. author: type: string blockType: $ref: '#/components/schemas/BlockType' customParameters: type: array items: $ref: '#/components/schemas/DSPGroupItem' displayCategory: $ref: '#/components/schemas/BlockDisplayCategory' BlockDisplayCategory: description: Category to display this block in the UI. type: string enum: - classical - tao KerasVisualLayer: type: object required: - type properties: type: $ref: '#/components/schemas/KerasVisualLayerType' neurons: type: integer description: Number of neurons or filters in this layer (only for dense, conv1d, conv2d) or in the final conv2d layer (only for transfer layers) kernelSize: type: integer description: Kernel size for the convolutional layers (only for conv1d, conv2d) dropoutRate: type: number description: Fraction of input units to drop (only for dropout) or in the final layer dropout (only for transfer layers) columns: type: integer description: Number of columns for the reshape operation (only for reshape) stack: type: integer description: Number of convolutional layers before the pooling layer (only for conv1d, conv2d) enabled: type: boolean organizationModelId: type: integer description: Custom transfer learning model ID (when type is set to transfer_organization) JobSummaryResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - summary properties: summary: type: array items: type: object required: - category - lengthMs properties: category: type: string lengthMs: type: integer description: Length per category in milliseconds GetPerformanceCalibrationStatusResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - available properties: available: type: boolean unsupportedProjectError: type: string description: If the current project is unsupported by performance calibration, this field explains the reason why. Otherwise, it is undefined. options: $ref: '#/components/schemas/StartPerformanceCalibrationRequest' PerformanceCalibrationGroundTruth: type: object required: - type - labelIdx - labelString - start - length properties: type: type: string description: Whether this region is a single sample, a region of background noise, or a region of background noise that contains samples. enum: [ 'sample', 'noise', 'combined_noise' ] labelIdx: type: integer description: Index of the label in the array of all labels labelString: type: string description: String label of the sample start: type: integer description: The start time of the region in milliseconds length: type: integer description: The length of the region in milliseconds samples: type: array description: If the region contains samples, all the samples within this region items: type: object required: - id - start - length - idx properties: id: type: integer description: The ID of the samples in Studio start: type: number description: The start time of the sample in milliseconds length: type: number description: The length of the sample in milliseconds idx: type: integer description: For debugging. The index of the sample in the original Y array. GetPerformanceCalibrationGroundTruthResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - samples properties: samples: type: array items: $ref: '#/components/schemas/PerformanceCalibrationGroundTruth' PerformanceCalibrationRawDetection: type: object required: - start - end - result properties: start: type: integer description: The start time of the detected window in milliseconds end: type: integer description: The end time of the detected window in milliseconds result: type: array items: type: number GetPerformanceCalibrationRawResultResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - detections properties: detections: type: array items: $ref: '#/components/schemas/PerformanceCalibrationRawDetection' PerformanceCalibrationDetection: type: object required: - time - label properties: time: type: integer description: The time of the detection in milliseconds label: type: string description: The label that was detected PerformanceCalibrationFalsePositive: type: object required: - type - detectionTime properties: type: type: string enum: [incorrect, duplicate, spurious] description: The type of false positive. Incorrect is when a detection matches the wrong ground truth. Duplicate is when the same ground truth was detected more than once. The first correct detection is considered a true positive but subsequent detections are considered false positives. Spurious is when the detection was not associated with any ground truth. detectionTime: type: integer description: The time of the detection in milliseconds groundTruthLabel: type: string description: The label of any associated ground truth groundTruthStart: type: number description: The start time of any associated ground truth sampleIds: type: array description: All of the sample IDs in the affected region items: type: integer PerformanceCalibrationParameterSet: type: object required: - detections - isBest - labels - stats - aggregateStats - params - windowSizeMs properties: detections: type: array description: All of the detections using this parameter set items: $ref: '#/components/schemas/PerformanceCalibrationDetection' isBest: type: boolean description: Whether this is considered the best parameter set labels: type: array description: All of the possible labels in the detections array items: type: string aggregateStats: type: object required: - falsePositiveRate - falseNegativeRate properties: falsePositiveRate: type: number falseNegativeRate: type: number stats: type: array items: type: object required: - label - truePositives - falsePositives - falseNegatives - trueNegatives - falsePositiveRate - falseNegativeRate - wrongMatches - falsePositiveTimes - falseNegativeTimes properties: label: type: string truePositives: type: integer falsePositives: type: integer falseNegatives: type: integer trueNegatives: type: integer falsePositiveRate: type: number falseNegativeRate: type: number falsePositiveDetails: type: array description: The details of every false positive detection. items: $ref: '#/components/schemas/PerformanceCalibrationFalsePositive' falseNegativeTimes: type: array description: The times in ms at which false negatives occurred. These correspond to specific items in the ground truth. items: type: number params: $ref: '#/components/schemas/PerformanceCalibrationParameters' windowSizeMs: type: number description: The size of the input block window in milliseconds. GetPerformanceCalibrationParameterSetsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - parameterSets properties: parameterSets: type: array items: $ref: '#/components/schemas/PerformanceCalibrationParameterSet' GetPerformanceCalibrationParametersResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: params: $ref: '#/components/schemas/PerformanceCalibrationParameters' PerformanceCalibrationUploadLabeledAudioRequest: type: object required: - zip properties: zip: type: string format: binary PerformanceCalibrationUploadLabeledAudioResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - uploadKey properties: uploadKey: type: string PerformanceCalibrationSaveParameterSetRequest: type: object required: - params properties: params: $ref: '#/components/schemas/PerformanceCalibrationParameters' PerformanceCalibrationParameters: type: object required: - type - version properties: type: type: string description: The post-processing algorithm type. enum: [ standard ] version: type: integer description: The version number of the post-processing algorithm. example: 1 parametersStandard: $ref: '#/components/schemas/PerformanceCalibrationParametersStandard' PerformanceCalibrationParametersStandard: type: object required: - averageWindowDurationMs - detectionThreshold - suppressionMs properties: averageWindowDurationMs: type: number description: The length of the averaging window in milliseconds. example: 1000 detectionThreshold: type: number description: The minimum threshold for detection, from 0-1. example: 0.8 suppressionMs: type: number description: The amount of time new matches will be ignored after a positive result. example: 500 OrganizationUser: allOf: - $ref: '#/components/schemas/User' - type: object required: - added - role - projectCount - datasets properties: added: type: string format: date-time example: "2019-08-31T17:32:28Z" role: $ref: '#/components/schemas/OrganizationMemberRole' projectCount: type: integer datasets: type: array items: type: string Organization: type: object required: - id - name - users - isDeveloperProfile - whitelabelId - trialId - trialExpiredDate - trialUpgradedDate - created properties: id: type: integer name: type: string description: EdgeImpulse Inc. logo: type: string example: "https://usercdn.edgeimpulse.com/logos/1.jpg" headerImg: type: string example: "https://usercdn.edgeimpulse.com/leaders/1.jpg" users: type: array items: $ref: '#/components/schemas/OrganizationUser' isDeveloperProfile: type: boolean whitelabelId: type: integer nullable: true description: Unique identifier of the white label this organization belongs to, if any. projects: type: array items: $ref: '#/components/schemas/Project' trialId: type: integer nullable: true description: Unique identifier of the trial this organization belongs to, if any. trialExpiredDate: type: string format: date-time nullable: true description: Date when the trial expired, if any. A expired trial has a grace period of 30 days before it's associated organization is deleted. trialUpgradedDate: type: string format: date-time nullable: true description: Date when the trial was upgraded to a full enterprise account, if any. created: type: string format: date-time description: Date when the organization was created. contractStartDate: type: string format: date-time nullable: true description: Date when the current contract started, if any. deletedDate: type: string format: date-time description: The date in which the organization was deleted. If the organization is not deleted, this field is not set. ListOrganizationsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - organizations properties: organizations: type: array description: Array with organizations items: $ref: '#/components/schemas/Organization' OrganizationDatasetBucket: type: object required: - id - bucket - path - fullBucketPathDescription - dataItemNamingLevelsDeep properties: id: description: Bucket ID type: integer bucket: type: string path: description: Path in the bucket type: string fullBucketPathDescription: description: Full bucket path, incl. protocol (e.g. s3://bucket/path) - to be used in the UI type: string dataItemNamingLevelsDeep: description: Number of levels deep for data items, e.g. if you have folder "test/abc", with value 1 "test" will be a data item, with value 2 "test/abc" will be a data item. Only used for "clinical" type. type: integer OrganizationDataset: type: object required: - dataset - lastFileCreated - totalFileSize - totalFileCount - totalItemCount - totalItemCountChecklistOK - totalItemCountChecklistFailed - tags - type properties: dataset: type: string lastFileCreated: type: string format: date-time totalFileSize: type: integer totalFileCount: type: integer totalItemCount: type: integer totalItemCountChecklistOK: type: integer totalItemCountChecklistFailed: type: integer tags: type: array items: type: string category: type: string bucket: $ref: '#/components/schemas/OrganizationDatasetBucket' type: type: string enum: - files - clinical bucketPath: type: string description: Location of the dataset within the bucket OrganizationMetricsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - metrics properties: metrics: type: object required: - totalJobsComputeTime - jobsComputeTimeCurrentYear - jobsComputeTimeCurrentYearSince - cpuComputeTimeCurrentContract - gpuComputeTimeCurrentContract - totalStorage - projectCount - userCount properties: totalJobsComputeTime: type: number description: Total compute time of all organizational jobs since the creation of the organization (including organizational project jobs). Compute time is the amount of computation time spent in jobs, in minutes used by an organization over a 12 month period, calculated as 1 x CPU + 3 x GPU minutes. jobsComputeTimeCurrentYear: type: number description: Total compute time of all organizational jobs in the current contract (including organizational project jobs). Compute time is the amount of computation time spent in jobs, in minutes used by an organization over a 12 month period, calculated as 1 x CPU + 3 x GPU minutes. jobsComputeTimeCurrentYearSince: type: string format: date-time description: The date from which the compute time for the running contract is calculated. cpuComputeTimeCurrentContract: type: number description: CPU compute time of all jobs in the organization in the current contract (including organizational project jobs). gpuComputeTimeCurrentContract: type: number description: GPU compute time of all jobs in the organization in the current contract (including organizational project jobs). totalStorage: type: number description: Total storage used by the organization. projectCount: type: integer description: Total number of projects owned by the organization. userCount: type: integer description: Total number of users in the organization. OrganizationInfoResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - organization - datasets - defaultComputeLimits - experiments - cliLists properties: organization: $ref: '#/components/schemas/Organization' datasets: type: array items: $ref: '#/components/schemas/OrganizationDataset' defaultComputeLimits: type: object required: - requestsCpu - requestsMemory - limitsCpu - limitsMemory properties: requestsCpu: type: number requestsMemory: type: number limitsCpu: type: number limitsMemory: type: number entitlementLimits: $ref: '#/components/schemas/EntitlementLimits' experiments: type: array description: Experiments that the organization has access to. Enabling experiments can only be done through a JWT token. items: type: object required: - type - title - enabled - showToUser properties: type: type: string title: type: string help: type: string enabled: type: boolean showToUser: type: boolean readme: type: object description: Present if a readme is set for this project required: - markdown - html properties: markdown: type: string html: type: string whitelabelId: type: integer cliLists: type: object required: - objectDetectionLastLayerOptions - imageInputScalingOptions properties: objectDetectionLastLayerOptions: type: array items: type: object required: - label - value properties: label: type: string value: $ref: '#/components/schemas/ObjectDetectionLastLayer' imageInputScalingOptions: type: array items: type: object required: - label - value properties: label: type: string value: $ref: '#/components/schemas/ImageInputScaling' UpdateOrganizationRequest: type: object description: Only fields set in this object will be updated. properties: logo: type: string description: New logo URL, or set to `null` to remove the logo. headerImg: type: string description: New leader image URL, or set to `null` to remove the leader. name: type: string description: New organization name. experiments: type: array items: type: string readme: type: string description: Readme for the organization (in Markdown) CreateOrganizationRequest: type: object required: - organizationName properties: organizationName: type: string example: "EdgeImpulse Inc." description: "The name of the organization." WhitelabelAdminCreateOrganizationRequest: type: object required: - organizationName properties: organizationName: type: string example: "EdgeImpulse Inc." description: "The name of the organization." adminId: type: integer example: 1 description: "Unique identifier of the administrator of the new organization." adminEmail: type: string example: jan@edgeimpulse.com description: "Email of the administrator of the new organization." CreateOrganizationResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - id - apiKey properties: id: type: integer description: Organization ID for the new organization apiKey: type: string description: API key for the new organization (this is shown only once) AdminCreateProjectRequest: type: object required: - projectName # - projectVisibility Not required until we are ready to roll this out properly properties: projectName: type: string example: "My project" description: "The name of the project." projectVisibility: $ref: '#/components/schemas/ProjectVisibility' ownerId: type: integer example: 1 description: "Unique identifier of the owner of the new project. Either this parameter or ownerEmail must be set." ownerEmail: type: string example: groucho@marxbros.com description: "Email of the owner of the new project. Either this parameter or ownerId must be set." CreateOrganizationPortalRequest: type: object required: - name - bucketId - bucketPath properties: name: type: string example: "EdgeImpulse Inc." description: "The name of the upload portal." description: type: string example: "EdgeImpulse Inc. Portal description" description: "The purpose and description of the upload portal." bucketId: type: integer example: 1 description: "The S3 bucket id to store the uploaded data. Set to '0' to select a bucket hosted by Edge Impulse." bucketPath: type: string example: "/path/in/bucket" description: "The path in the bucket the upload portal will write to." CreateOrganizationPortalResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - id - url properties: id: type: integer description: Portal ID for the new upload portal url: type: string description: URL to the portal signedUrl: type: string description: pre-signed upload URL. Only set if using a non-built-in bucket. bucketBucket: type: string description: Only set if using a non-built-in bucket. UpdateOrganizationPortalResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - url properties: url: type: string description: URL to the portal signedUrl: type: string description: pre-signed upload URL, only set if not using the Edge Impulse hosted bucket. bucketBucket: type: string description: Only set if not using the Edge Impulse hosted bucket. GetOrganizationPortalResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - id - name - url - token - bucketName - bucketPath properties: id: type: integer description: Portal ID for the new upload portal name: type: string example: "EdgeImpulse Inc." description: "The name of the upload portal." description: type: string example: "EdgeImpulse Inc. Portal description" description: "The purpose and description of the upload portal." url: type: string example: "edgeImpulse" description: "The url postfix of the upload portal." token: type: string example: "SECRET_TOKEN" description: "The token used to validate access to the upload portal." bucketName: type: string example: "my-s3-bucket" description: "The S3 bucket name to store the uploaded data." bucketId: type: integer example: 1 description: "S3 bucket ID. If missing, then this is using the Edge Impulse hosted bucket." bucketPath: type: string example: "/path/to/bucket" description: "The S3 bucket path where uploaded data is stored." bucketUrl: type: string example: "s3://bucketname/path/to/bucket" description: "The full S3 bucket path where uploaded data is stored." ListOrganizationPortalsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - portals properties: portals: type: array items: type: object required: - id - name - url - token - bucketId - bucketName - bucketPath - bucketUrl - created properties: id: type: integer name: type: string description: type: string url: type: string bucketId: type: integer bucketName: type: string bucketPath: type: string bucketUrl: type: string created: type: string format: date-time AddOrganizationApiKeyRequest: allOf: - $ref: '#/components/schemas/AddApiKeyRequest' - type: object required: - role properties: role: type: string enum: [ admin, member ] AdminAddOrganizationApiKeyRequest: allOf: - $ref: '#/components/schemas/AddOrganizationApiKeyRequest' - type: object properties: ttl: type: integer description: Time to live in seconds. If not set, the key will expire in 1 minute. ListOrganizationApiKeysResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - apiKeys properties: apiKeys: type: array description: List of API keys. items: type: object required: - id - name - apiKey - created - role - isTransformationJobKey properties: id: type: integer apiKey: type: string name: type: string created: type: string format: date-time role: type: string enum: [ admin, member ] isTransformationJobKey: type: boolean AddMemberRequest: type: object required: - usernameOrEmail - role - datasets properties: usernameOrEmail: type: string description: Username or e-mail address role: $ref: '#/components/schemas/OrganizationMemberRole' datasets: description: Only used for 'guest' users. Limits the datasets the user has access to. type: array items: type: string InviteOrganizationMemberRequest: type: object required: - email - role - datasets properties: email: type: string description: E-mail address role: $ref: '#/components/schemas/OrganizationMemberRole' datasets: description: Only used for 'guest' users. Limits the datasets the user has access to. type: array items: type: string RemoveMemberRequest: type: object required: - id properties: id: type: integer OrganizationMemberRole: type: string enum: [ admin, member, guest ] SetMemberRoleRequest: type: object required: - role properties: role: $ref: '#/components/schemas/OrganizationMemberRole' SetMemberDatasetsRequest: type: object required: - datasets properties: datasets: type: array items: type: string VerifyOrganizationBucketRequest: type: object required: - accessKey - secretKey - endpoint - bucket - region properties: accessKey: type: string description: S3 access key secretKey: type: string description: S3 secret key bucket: type: string description: S3 bucket endpoint: type: string description: S3 endpoint region: type: string description: S3 region prefix: type: string description: Optional prefix in the bucket. Set this if you don't have access to the full bucket for example. VerifyOrganizationBucketResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - files - hasInfoLabelsFile - signedUrl properties: files: type: array description: 20 random files from the bucket. items: type: object required: - name - size - folderName properties: name: type: string size: type: integer folderName: type: string hasInfoLabelsFile: type: boolean description: Indicates whether there are any info.labels files in this bucket. If so, those are used for category/labels. signedUrl: type: string description: A signed URL that allows you to PUT an item, to check whether CORS headers are set up correctly for this bucket. AddOrganizationBucketRequest: type: object required: - accessKey - secretKey - endpoint - bucket - region properties: accessKey: type: string description: S3 access key secretKey: type: string description: S3 secret key endpoint: type: string description: S3 endpoint bucket: type: string description: S3 bucket region: type: string description: S3 region checkConnectivityPrefix: type: string description: Set this if you don't have access to the root of this bucket. Only used to verify connectivity to this bucket. UpdateOrganizationBucketRequest: type: object properties: accessKey: type: string description: S3 access key secretKey: type: string description: S3 secret key endpoint: type: string description: S3 endpoint bucket: type: string description: S3 bucket region: type: string description: S3 region checkConnectivityPrefix: type: string description: Set this if you don't have access to the root of this bucket. Only used to verify connectivity to this bucket. OrganizationBucket: type: object required: - id - accessKey - endpoint - bucket - region - connected properties: id: type: integer accessKey: type: string description: S3 access key endpoint: type: string description: S3 endpoint bucket: type: string description: S3 bucket region: type: string description: S3 region connected: type: boolean description: Whether we can reach the bucket checkConnectivityPrefix: type: string description: Set this if you don't have access to the root of this bucket. Only used to verify connectivity to this bucket. ListOrganizationBucketsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - buckets properties: buckets: type: array items: $ref: '#/components/schemas/OrganizationBucket' GetOrganizationBucketResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - bucket properties: bucket: $ref: '#/components/schemas/OrganizationBucket' ListOrganizationDataResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: filterParseError: type: string data: type: array items: type: object required: - id - name - bucketId - bucketName - bucketPath - fullBucketPath - dataset - totalFileCount - totalFileSize - created - metadata - metadataStringForCLI properties: id: type: integer name: type: string bucketId: type: integer bucketName: type: string bucketPath: type: string fullBucketPath: type: string dataset: type: string totalFileCount: type: integer totalFileSize: type: integer created: type: string format: date-time metadata: type: object additionalProperties: type: string metadataStringForCLI: type: string description: String that's passed in to a transformation block in `--metadata` (the metadata + a `dataItemInfo` object) totalFileCount: type: integer totalDataItemCount: type: integer OrganizationAddDataItemRequest: type: object required: - name - dataset - metadata - files[] properties: name: type: string bucketId: type: integer bucketName: type: string description: Name of the bucket name (as an Edge Impulse name) dataset: type: string bucketPath: type: string description: Optional path in the bucket to create this data item (files are created under this path). metadata: type: string description: Key-value pair of metadata (in JSON format) files[]: type: array items: type: string format: binary OrganizationDataItem: type: object required: - id - name - bucketId - bucketName - bucketPath - dataset - totalFileCount - totalFileSize - created - metadata - files properties: id: type: integer name: type: string bucketId: type: integer bucketName: type: string bucketPath: type: string dataset: type: string totalFileCount: type: integer totalFileSize: type: integer created: type: string format: date-time metadata: type: object additionalProperties: type: string files: type: array items: type: object required: - name - bucketPath - size properties: name: type: string bucketPath: type: string size: type: integer lastModified: type: string format: date-time GetOrganizationDataItemResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - data properties: data: $ref: '#/components/schemas/OrganizationDataItem' UpdateOrganizationDataItemRequest: type: object properties: name: type: string dataset: type: string metadata: type: object additionalProperties: type: string OrganizationAddDataFileRequest: type: object required: - files[] properties: files[]: type: array items: type: string format: binary OrganizationCreateProjectRequest: type: object description: If uploadType is set to 'project', either projectId, newProjectName or both projectApiKey and projectHmacKey are required. projectId and newProjectName are only available through JWT tokens. If uploadType is set to 'dataset' then outputDatasetName can be set to '' to output in the same dataset, or set to a string to create (or append to) a new dataset. required: - name properties: name: type: string filter: type: string description: Filter in SQL format, used for creating transformation jobs on clinical datasets pathFilters: type: array description: Set of paths to apply the transformation to, used for creating transformation jobs on default datasets. This option is experimental and may change in the future. items: $ref: '#/components/schemas/OrganizationCreateProjectPathFilter' uploadType: type: string enum: [ project, dataset ] projectId: type: integer projectVisibility: $ref: '#/components/schemas/ProjectVisibility' newProjectName: type: string projectApiKey: type: string projectHmacKey: type: string transformationBlockId: type: integer builtinTransformationBlock: type: object category: type: string enum: [ training, testing, split ] outputDatasetName: type: string outputDatasetBucketId: type: integer outputDatasetBucketPath: description: Path of new dataset within the bucket; used only when creating a new dataset. type: string outputPathInDataset: description: Path within the selected dataset to upload transformed files into. Used only when uploading into a default (non-clinical) dataset. type: string outputDatasetPathRule: $ref: '#/components/schemas/OrganizationCreateProjectOutputDatasetPathRule' label: type: string emailRecipientUids: type: array items: type: integer transformationParallel: description: Number of parallel jobs to start type: integer extraCliArguments: description: Optional extra arguments for this transformation block type: string parameters: type: object description: List of custom parameters for this transformation job (see the list of parameters that the block exposes). additionalProperties: type: string OrganizationCreateProjectPathFilter: type: object description: Filter, given as a dataset and path containing wildcards, used for creating transformation jobs required: - dataset - filter properties: dataset: type: string description: Dataset name of files to transform filter: type: string description: Path filter with wildcards, relative to the root of the dataset. For example, /folder/*.json will transform all JSON files in /folder (when operating on files) OrganizationCreateProjectOutputDatasetPathRule: description: Defines the folder structure for writing to the output dataset. Used only when uploading into a default (non-clinical) dataset. type: string enum: [ no-subfolders, subfolder-per-item, use-full-path ] OrganizationCreateProject: type: object required: - id - organizationId - name - status - transformJobStatus - uploadJobStatus - uploadType - category - created - totalDownloadFileCount - totalDownloadFileSize - totalDownloadFileSizeString - totalUploadFileCount - transformationParallel - transformationSummary - inProgress - operatesOn - totalTimeSpentSeconds - totalTimeSpentString properties: id: type: integer organizationId: type: integer name: type: string uploadType: type: string enum: [ dataset, project ] status: $ref: '#/components/schemas/TransformationJobStatusEnum' transformJobStatus: $ref: '#/components/schemas/TransformationJobStatusEnum' uploadJobId: type: integer uploadJobStatus: $ref: '#/components/schemas/TransformationJobStatusEnum' uploadJobFilesUploaded: type: integer projectOwner: type: string projectId: type: integer projectName: type: string transformationBlockId: type: integer builtinTransformationBlock: type: object transformationBlockName: type: string category: type: string enum: [ training, testing, split ] created: type: string format: date-time outputDatasetName: type: string outputDatasetBucketId: type: integer outputDatasetBucketPath: type: string totalDownloadFileCount: type: integer totalDownloadFileSize: type: integer totalDownloadFileSizeString: type: string totalUploadFileCount: type: integer transformationParallel: type: integer description: Number of transformation jobs that can be ran in parallel transformationSummary: type: object required: - startedCount - succeededCount - finishedCount - totalFileCount - totalTimeSpentSeconds properties: startedCount: type: integer succeededCount: type: integer finishedCount: type: integer totalFileCount: type: integer totalTimeSpentSeconds: type: integer description: Total amount of compute used for this job (in seconds) inProgress: type: boolean label: type: string filterQuery: type: string emailRecipientUids: type: array items: type: integer pipelineId: type: integer pipelineName: type: string pipelineRunId: type: integer pipelineStep: type: integer operatesOn: $ref: '#/components/schemas/TransformationJobOperatesOnEnum' totalTimeSpentSeconds: type: integer description: Total amount of compute used for this job (in seconds) totalTimeSpentString: type: string description: Total amount of compute used (friendly string) createdByUser: $ref: '#/components/schemas/CreatedUpdatedByUser' OrganizationCreateProjectWithFiles: allOf: - $ref: '#/components/schemas/OrganizationCreateProject' - type: object required: - files - fileCountForFilter properties: files: type: array items: type: object required: - id - fileName - bucketPath - transformationJobStatus - linkToDataItem - lengthString - sourceDatasetType properties: id: type: integer fileName: type: string bucketPath: type: string transformationJobId: type: integer transformationJobStatus: $ref: '#/components/schemas/TransformationJobStatusEnum' linkToDataItem: type: string lengthString: type: string description: Only set after job was finished sourceDatasetType: type: string enum: - files - clinical fileCountForFilter: type: integer OrganizationCreateProjectResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - createProjectId - apiKey properties: createProjectId: type: integer description: Project ID for the new project apiKey: type: string description: API key for the new project ExportOriginalDataRequest: type: object required: - uploaderFriendlyFilenames - retainCrops properties: uploaderFriendlyFilenames: type: boolean description: Whether to rename the exported file names to an uploader friendly format (e.g. label.filename.cbor) retainCrops: type: boolean description: Whether to retain crops and splits. If this is disabled, then the original files are returned (as they were uploaded). ExportWavDataRequest: type: object required: - retainCrops properties: retainCrops: type: boolean description: Whether to retain crops and splits. If this is disabled, then the original files are returned (as they were uploaded). StartPerformanceCalibrationRequest: type: object required: - backgroundNoiseLabel properties: backgroundNoiseLabel: type: string description: The label used to signify background noise in the impulse otherNoiseLabels: type: array items: type: string description: Any other labels that should be considered equivalent to background noise uploadKey: type: string description: The key of an uploaded sample. If not present, a synthetic sample will be created. sampleLengthMinutes: type: number description: The length of sample to create (required for synthetic samples) VerifyDspBlockUrlRequest: type: object required: - url properties: url: type: string VerifyDspBlockUrlResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: block: type: object required: - title - author - description - name - latestImplementationVersion properties: title: type: string author: type: string description: type: string name: type: string latestImplementationVersion: type: integer SocketTokenResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: token: type: object required: - socketToken - expires properties: socketToken: type: string expires: type: string format: date-time StartSamplingRequest: type: object required: - label - lengthMs - category - intervalMs properties: label: type: string description: Label to be used during sampling. lengthMs: type: integer description: Requested length of the sample (in ms). category: type: string description: Which acquisition category to sample data into. enum: [ training, testing, anomaly ] intervalMs: type: number description: "Interval between samples (can be calculated like `1/hz * 1000`)" sensor: type: string description: The sensor to sample from. StartSamplingResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: id: type: integer ProjectDataAxesSummaryResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - dataAxisSummary properties: dataAxisSummary: type: object description: Summary of the amount of data (in ms.) per sensor axis additionalProperties: type: integer ProjectTrainingDataSummaryResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - dataSummary properties: dataSummary: type: object required: - labels - dataCount properties: labels: type: array description: Labels in the training set items: type: string dataCount: type: integer example: Number of files in the training set ProjectDataIntervalResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - intervalMs properties: intervalMs: type: integer SetProjectComputeTimeRequest: type: object description: Only parameters set on this object will be updated. required: - jobLimitM properties: jobLimitM: type: integer description: New job limit in seconds. SetProjectDspFileSizeRequest: type: object description: Only parameters set on this object will be updated. required: - dspFileSizeMb properties: dspFileSizeMb: type: integer description: DSP File size in MB (default is 4096 MB) OrganizationTransformationBlock: type: object required: - id - name - dockerContainer - dockerContainerManagedByEdgeImpulse - created - description - cliArguments - indMetadata - additionalMountPoints - operatesOn - allowExtraCliArguments - sourceCodeAvailable - showInDataSources - showInCreateTransformationJob - isPublic properties: id: type: integer name: type: string dockerContainer: type: string dockerContainerManagedByEdgeImpulse: type: boolean created: type: string format: date-time createdByUser: $ref: '#/components/schemas/CreatedUpdatedByUser' lastUpdated: type: string format: date-time lastUpdatedByUser: $ref: '#/components/schemas/CreatedUpdatedByUser' userId: type: integer userName: type: string description: type: string cliArguments: description: These arguments are passed into the container type: string indMetadata: type: boolean requestsCpu: type: number requestsMemory: type: integer limitsCpu: type: number limitsMemory: type: integer additionalMountPoints: type: array items: $ref: '#/components/schemas/TransformationBlockAdditionalMountPoint' operatesOn: $ref: '#/components/schemas/TransformationJobOperatesOnEnum' allowExtraCliArguments: type: boolean parameters: description: List of parameters, spec'ed according to https://docs.edgeimpulse.com/docs/tips-and-tricks/adding-parameters-to-custom-blocks type: array items: type: object parametersUI: description: List of parameters to be rendered in the UI type: array items: $ref: '#/components/schemas/DSPGroupItem' maxRunningTimeStr: type: string description: 15m for 15 minutes, 2h for 2 hours, 1d for 1 day. If not set, the default is 8 hours. sourceCodeAvailable: type: boolean repositoryUrl: type: string description: URL to the source code of this custom learn block. isPublic: type: boolean description: Whether this block is publicly available to Edge Impulse users (if false, then only for members of the owning organization) showInDataSources: type: boolean description: Whether to show this block in 'Data sources'. Only applies for standalone blocks. showInCreateTransformationJob: type: boolean description: Whether to show this block in 'Create transformation job'. Only applies for standalone blocks. PublicOrganizationTransformationBlock: type: object required: - id - ownerOrganizationId - ownerOrganizationName - name - created - description - operatesOn - allowExtraCliArguments - showInDataSources - showInCreateTransformationJob properties: id: type: integer ownerOrganizationId: type: integer ownerOrganizationName: type: string name: type: string created: type: string format: date-time lastUpdated: type: string format: date-time description: type: string operatesOn: $ref: '#/components/schemas/TransformationJobOperatesOnEnum' allowExtraCliArguments: type: boolean parameters: description: List of parameters, spec'ed according to https://docs.edgeimpulse.com/docs/tips-and-tricks/adding-parameters-to-custom-blocks type: array items: type: object parametersUI: description: List of parameters to be rendered in the UI type: array items: $ref: '#/components/schemas/DSPGroupItem' repositoryUrl: type: string description: URL to the source code of this custom learn block. showInDataSources: type: boolean description: Whether to show this block in 'Data sources'. Only applies for standalone blocks. showInCreateTransformationJob: type: boolean description: Whether to show this block in 'Create transformation job'. Only applies for standalone blocks. TransformationBlockAdditionalMountPoint: type: object required: - type - mountPoint properties: type: type: string enum: [ bucket, portal ] bucketId: type: integer portalId: type: integer mountPoint: type: string GetOrganizationTransformationBlockResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - transformationBlock properties: transformationBlock: $ref: '#/components/schemas/OrganizationTransformationBlock' ListOrganizationTransformationBlocksResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - transformationBlocks properties: transformationBlocks: type: array items: $ref: '#/components/schemas/OrganizationTransformationBlock' ListPublicOrganizationTransformationBlocksResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - transformationBlocks properties: transformationBlocks: type: array items: $ref: '#/components/schemas/PublicOrganizationTransformationBlock' AddOrganizationTransformationBlockRequest: type: object required: - name - dockerContainer - indMetadata - description - cliArguments - additionalMountPoints - operatesOn properties: name: type: string dockerContainer: type: string indMetadata: description: Whether to pass the `--metadata` parameter to the container. type: boolean description: type: string cliArguments: type: string requestsCpu: type: number requestsMemory: type: integer limitsCpu: type: number limitsMemory: type: integer additionalMountPoints: type: array items: $ref: '#/components/schemas/TransformationBlockAdditionalMountPoint' operatesOn: type: string enum: [ file, directory, dataitem, standalone ] allowExtraCliArguments: type: boolean parameters: description: List of parameters, spec'ed according to https://docs.edgeimpulse.com/docs/tips-and-tricks/adding-parameters-to-custom-blocks type: array items: type: object maxRunningTimeStr: type: string description: 15m for 15 minutes, 2h for 2 hours, 1d for 1 day. If not set, the default is 8 hours. isPublic: type: boolean repositoryUrl: description: URL to the source code of this custom learn block. type: string showInDataSources: type: boolean description: Whether to show this block in 'Data sources'. Only applies for standalone blocks. (defaults to 'true' when not provided) showInCreateTransformationJob: type: boolean description: Whether to show this block in 'Create transformation job'. Only applies for standalone blocks. UpdateOrganizationTransformationBlockRequest: type: object properties: name: type: string dockerContainer: type: string indMetadata: description: Whether to pass the `--metadata` parameter to the container. type: boolean description: type: string cliArguments: type: string requestsCpu: type: number requestsMemory: type: integer limitsCpu: type: number limitsMemory: type: integer additionalMountPoints: type: array items: $ref: '#/components/schemas/TransformationBlockAdditionalMountPoint' operatesOn: $ref: '#/components/schemas/TransformationJobOperatesOnEnum' allowExtraCliArguments: type: boolean parameters: description: List of parameters, spec'ed according to https://docs.edgeimpulse.com/docs/tips-and-tricks/adding-parameters-to-custom-blocks type: array items: type: object maxRunningTimeStr: type: string description: 15m for 15 minutes, 2h for 2 hours, 1d for 1 day. If not set, the default is 8 hours. isPublic: type: boolean repositoryUrl: type: string description: URL to the source code of this custom learn block. showInDataSources: type: boolean description: Whether to show this block in 'Data sources'. Only applies for standalone blocks. showInCreateTransformationJob: type: boolean description: Whether to show this block in 'Create transformation job'. Only applies for standalone blocks. OrganizationDeployBlock: type: object required: - id - name - dockerContainer - dockerContainerManagedByEdgeImpulse - created - description - cliArguments - photo - privileged - mountLearnBlock - supportsEonCompiler - showOptimizations - category - sourceCodeAvailable properties: id: type: integer name: type: string dockerContainer: type: string dockerContainerManagedByEdgeImpulse: type: boolean created: type: string format: date-time createdByUser: $ref: '#/components/schemas/CreatedUpdatedByUser' lastUpdated: type: string format: date-time lastUpdatedByUser: $ref: '#/components/schemas/CreatedUpdatedByUser' userId: type: integer userName: type: string description: type: string cliArguments: description: These arguments are passed into the container type: string requestsCpu: type: number requestsMemory: type: integer limitsCpu: type: number limitsMemory: type: integer photo: type: string integrateUrl: type: string privileged: type: boolean mountLearnBlock: type: boolean supportsEonCompiler: type: boolean showOptimizations: type: boolean category: type: string enum: [ library, firmware ] sourceCodeAvailable: type: boolean GetOrganizationDeployBlockResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - deployBlock properties: deployBlock: $ref: '#/components/schemas/OrganizationDeployBlock' ListOrganizationDeployBlocksResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - deployBlocks properties: deployBlocks: type: array items: $ref: '#/components/schemas/OrganizationDeployBlock' AddOrganizationDeployBlockRequest: type: object required: - name - dockerContainer - description - cliArguments properties: name: type: string dockerContainer: type: string description: type: string cliArguments: type: string requestsCpu: type: number requestsMemory: type: integer limitsCpu: type: number limitsMemory: type: integer photo: type: string format: binary integrateUrl: type: string privileged: type: boolean mountLearnBlock: type: boolean supportsEonCompiler: type: boolean showOptimizations: type: boolean category: type: string enum: [ library, firmware ] UpdateOrganizationDeployBlockRequest: type: object properties: name: type: string dockerContainer: type: string description: type: string cliArguments: type: string requestsCpu: type: number requestsMemory: type: integer limitsCpu: type: number limitsMemory: type: integer photo: type: string format: binary integrateUrl: type: string privileged: type: boolean mountLearnBlock: type: boolean supportsEonCompiler: type: boolean showOptimizations: type: boolean category: type: string enum: [ library, firmware ] OrganizationDspBlock: type: object required: - id - name - dockerContainer - dockerContainerManagedByEdgeImpulse - created - description - port - isConnected - sourceCodeAvailable properties: id: type: integer name: type: string dockerContainer: type: string dockerContainerManagedByEdgeImpulse: type: boolean created: type: string format: date-time createdByUser: $ref: '#/components/schemas/CreatedUpdatedByUser' lastUpdated: type: string format: date-time lastUpdatedByUser: $ref: '#/components/schemas/CreatedUpdatedByUser' userId: type: integer userName: type: string description: type: string requestsCpu: type: number requestsMemory: type: integer limitsCpu: type: number limitsMemory: type: integer port: type: integer isConnected: type: boolean error: type: string sourceCodeAvailable: type: boolean GetOrganizationDspBlockResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - dspBlock properties: dspBlock: $ref: '#/components/schemas/OrganizationDspBlock' ListOrganizationDspBlocksResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - dspBlocks properties: dspBlocks: type: array items: $ref: '#/components/schemas/OrganizationDspBlock' AddOrganizationDspBlockRequest: type: object required: - name - dockerContainer - description - port properties: name: type: string dockerContainer: type: string description: type: string requestsCpu: type: number requestsMemory: type: integer limitsCpu: type: number limitsMemory: type: integer port: type: integer UpdateOrganizationDspBlockRequest: type: object properties: name: type: string dockerContainer: type: string description: type: string requestsCpu: type: number requestsMemory: type: integer limitsCpu: type: number limitsMemory: type: integer port: type: integer OrganizationTransferLearningOperatesOn: type: string enum: - object_detection - audio - image - regression - other OrganizationTransferLearningBlock: type: object required: - id - name - dockerContainer - dockerContainerManagedByEdgeImpulse - created - description - operatesOn - implementationVersion - isPublic - isPublicForDevices - isPublicEnterpriseOnly - parameters - indRequiresGpu - sourceCodeAvailable properties: id: type: integer name: type: string dockerContainer: type: string dockerContainerManagedByEdgeImpulse: type: boolean created: type: string format: date-time createdByUser: $ref: '#/components/schemas/CreatedUpdatedByUser' lastUpdated: type: string format: date-time lastUpdatedByUser: $ref: '#/components/schemas/CreatedUpdatedByUser' description: type: string userId: type: integer userName: type: string operatesOn: $ref: '#/components/schemas/OrganizationTransferLearningOperatesOn' objectDetectionLastLayer: $ref: '#/components/schemas/ObjectDetectionLastLayer' implementationVersion: type: integer isPublic: type: boolean description: Whether this block is publicly available to Edge Impulse users (if false, then only for members of the owning organization) isPublicForDevices: description: If `isPublic` is true, the list of devices (from latencyDevices) for which this model can be shown. type: array items: type: string isPublicEnterpriseOnly: type: boolean description: Whether this block is publicly available to Edge Impulse only to enterprise users enterpriseOnly: type: boolean description: Whether this block is available to Edge Impulse only to enterprise users repositoryUrl: type: string description: URL to the source code of this custom learn block. parameters: description: List of parameters, spec'ed according to https://docs.edgeimpulse.com/docs/tips-and-tricks/adding-parameters-to-custom-blocks type: array items: type: object imageInputScaling: $ref: '#/components/schemas/ImageInputScaling' indRequiresGpu: description: If set, requires this block to be scheduled on GPU. type: boolean sourceCodeAvailable: type: boolean displayCategory: $ref: '#/components/schemas/BlockDisplayCategory' GetOrganizationTransferLearningBlockResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - transferLearningBlock properties: transferLearningBlock: $ref: '#/components/schemas/OrganizationTransferLearningBlock' ListOrganizationTransferLearningBlocksResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - transferLearningBlocks properties: transferLearningBlocks: type: array items: $ref: '#/components/schemas/OrganizationTransferLearningBlock' AddOrganizationTransferLearningBlockRequest: type: object required: - name - dockerContainer - description - operatesOn - implementationVersion properties: name: type: string dockerContainer: type: string description: type: string operatesOn: $ref: '#/components/schemas/OrganizationTransferLearningOperatesOn' objectDetectionLastLayer: $ref: '#/components/schemas/ObjectDetectionLastLayer' implementationVersion: type: integer isPublic: type: boolean description: Whether this block is publicly available to Edge Impulse users (if false, then only for members of the owning organization) isPublicForDevices: description: If `isPublic` is true, the list of devices (from latencyDevices) for which this model can be shown. type: array items: type: string isPublicEnterpriseOnly: type: boolean description: Whether this block is publicly available to Edge Impulse only to enterprise users repositoryUrl: type: string description: URL to the source code of this custom learn block. parameters: description: List of parameters, spec'ed according to https://docs.edgeimpulse.com/docs/tips-and-tricks/adding-parameters-to-custom-blocks type: array items: type: object imageInputScaling: $ref: '#/components/schemas/ImageInputScaling' indRequiresGpu: description: If set, requires this block to be scheduled on GPU. type: boolean UpdateOrganizationTransferLearningBlockRequest: type: object properties: name: type: string dockerContainer: type: string description: type: string operatesOn: $ref: '#/components/schemas/OrganizationTransferLearningOperatesOn' objectDetectionLastLayer: $ref: '#/components/schemas/ObjectDetectionLastLayer' implementationVersion: type: integer isPublic: type: boolean description: Whether this block is publicly available to Edge Impulse users (if false, then only for members of the owning organization) isPublicForDevices: description: If `isPublic` is true, the list of devices (from latencyDevices) for which this model can be shown. type: array items: type: string isPublicEnterpriseOnly: type: boolean description: Whether this block is publicly available to Edge Impulse only to enterprise users repositoryUrl: type: string description: URL to the source code of this custom learn block. parameters: description: List of parameters, spec'ed according to https://docs.edgeimpulse.com/docs/tips-and-tricks/adding-parameters-to-custom-blocks type: array items: type: object imageInputScaling: $ref: '#/components/schemas/ImageInputScaling' indRequiresGpu: description: If set, requires this block to be scheduled on GPU. type: boolean displayCategory: $ref: '#/components/schemas/BlockDisplayCategory' ObjectDetectionLastLayer: type: string enum: - mobilenet-ssd - fomo - yolov2-akida - yolov5 - yolov5v5-drpai - yolox - yolov7 - tao-retinanet - tao-ssd - tao-yolov3 - tao-yolov4 ListOrganizationFilesResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - totalFileSize - totalFileCount - totalDataItemCount - data properties: filterParseError: type: string totalFileSize: type: integer totalFileCount: type: integer totalDataItemCount: type: integer data: type: array items: $ref: '#/components/schemas/OrganizationDataItem' OrganizationCreateProjectStatusResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: status: $ref: '#/components/schemas/OrganizationCreateProjectWithFiles' TransformationJobStatusEnum: type: string enum: [ waiting, created, started, finished, failed ] TransformationJobOperatesOnEnum: type: string enum: [ file, directory, standalone ] OrganizationGetCreateProjectsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - jobs - totalJobCount properties: totalJobCount: type: integer jobs: type: array items: type: object required: - id - name - transformJobStatus - uploadJobStatus - uploadType - category - created - totalDownloadFileCount - totalDownloadFileSize - totalDownloadFileSizeString - totalTimeSpentString properties: id: type: integer organizationId: type: integer name: type: string uploadType: type: string enum: [ dataset, project ] transformJobStatus: $ref: '#/components/schemas/TransformationJobStatusEnum' uploadJobId: type: integer uploadJobStatus: $ref: '#/components/schemas/TransformationJobStatusEnum' projectOwner: type: string projectId: type: integer projectName: type: string transformationBlockId: type: integer builtinTransformationBlock: type: object transformationBlockName: type: string transformationOperatesOn: $ref: '#/components/schemas/TransformationJobOperatesOnEnum' created: type: string format: date-time outputDatasetName: type: string outputDatasetBucketId: type: integer outputDatasetBucketPath: type: string totalDownloadFileCount: type: integer totalDownloadFileSize: type: integer totalDownloadFileSizeString: type: string totalUploadFileCount: type: integer totalTimeSpentSeconds: type: integer description: Total amount of compute used for this job (in seconds) totalTimeSpentString: type: string description: Total amount of compute used (friendly string) createdByUser: $ref: '#/components/schemas/CreatedUpdatedByUser' LogStdoutResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - stdout - totalCount properties: stdout: type: array items: type: object required: - created - data properties: created: type: string format: date-time data: type: string logLevel: type: string enum: [ error, warn, info, debug ] totalCount: type: integer description: Total number of logs (only the last 1000 lines are returned) JobLogsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - logs properties: logs: type: array items: type: object required: - created - data properties: created: type: string format: date-time data: type: string logLevel: type: string enum: [ error, warn, info, debug ] JobMetricsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: cpuUsage: type: array items: $ref: '#/components/schemas/TimeSeriesDataPoint' memoryUsage: type: array items: $ref: '#/components/schemas/TimeSeriesDataPoint' TimeSeriesDataPoint: type: object required: - timestamp - value properties: timestamp: type: string format: date-time value: type: number GetJobResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object properties: job: $ref: '#/components/schemas/Job' UpdateOrganizationCreateProjectRequest: type: object properties: transformationParallel: type: integer description: Number of transformation jobs that can be ran in parallel emailRecipientUids: description: List of user IDs to notify when a Job succeeds type: array items: type: integer UpdateOrganizationCreateEmptyProjectRequest: type: object required: - projectName # - projectVisibility Not required until we are ready to roll this out properly properties: projectName: type: string example: EEG trials description: The name of the project. projectVisibility: $ref: '#/components/schemas/ProjectVisibility' projectOwnerUsernameOrEmail: type: string example: jan@edgeimpulse.com description: The username or email of the owner of the project. This field is mandatory when authenticating via API key. If no email is provided when authenticating via JWT, the user ID attached to the JWT will be user as project owner. UpdateOrganizationAddCollaboratorRequest: type: object required: - projectId - userId properties: projectId: type: integer description: The ID of the project to add the collaborator to. userId: type: integer description: The user ID to add to the project. The user must be an admin of the organization. AdminGetUsersResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - users - total properties: total: type: integer users: type: array items: type: object required: - id - username - email - name - created properties: id: type: integer example: 1 username: type: string example: janjongboom email: type: string example: "jan@edgeimpulse.com" name: type: string example: "Jan Jongboom" photo: type: string example: "https://usercdn.edgeimpulse.com/photos/1.jpg" created: type: string format: date-time example: "2019-08-31T17:32:28Z" lastSeen: type: string format: date-time example: "2019-08-31T17:32:28Z" activated: type: boolean from_evaluation: type: boolean tier: type: string enum: - free - pro - enterprise AdminGetUserResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - user properties: user: $ref: '#/components/schemas/AdminApiUser' AdminGetOrganizationUsageReportsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - reports - totalCount properties: reports: type: array description: List of organization usage reports. items: $ref: '#/components/schemas/OrganizationUsageReport' totalCount: type: integer AdminGetOrganizationUsageReportResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - report properties: report: $ref: '#/components/schemas/OrganizationUsageReport' AdminApiProject: type: object required: - id - name - owner properties: id: type: integer example: 1 name: type: string example: Water hammer detection description: type: string created: type: string format: date-time example: "2019-07-21T17:32:28Z" owner: type: string description: User or organization that owns the project ownerUserId: type: integer ownerOrganizationId: type: integer lastAccessed: type: string format: date-time example: "2019-07-21T17:32:28Z" whitelabelId: type: integer nullable: true description: Unique identifier of the white label this project belongs to, if any. tier: type: string enum: - free - pro - enterprise AdminListProjects: type: object required: - projects - total properties: total: type: integer projects: type: array description: Array with projects items: $ref: '#/components/schemas/AdminApiProject' AdminListProjectsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - $ref: '#/components/schemas/AdminListProjects' AdminGetOrganizationsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - organizations - total properties: total: type: integer organizations: type: array description: Array with organizations items: type: object required: - id - name - created properties: id: type: integer example: 1 name: type: string example: "Edge Impulse Inc." logo: type: string created: type: string format: date-time example: "2019-08-31T17:32:28Z" readme: type: string experiments: type: array items: type: string domain: type: string whitelabelId: type: integer billable: type: boolean entitlementLimits: $ref: '#/components/schemas/EntitlementLimits' AdminCreateOrganizationRequest: type: object required: - organizationName properties: organizationName: type: string example: "EdgeImpulse Inc." description: "The name of the organization." adminId: type: integer example: 1 description: "Unique identifier of the administrator of the new organization." AdminAddUserRequest: type: object properties: usernameOrEmail: type: string example: "janjongboom" description: "Username or email of the user to be added to the project or organization. If no user is provided, the user ID attached to the JWT will be used." AdminAddProjectUserRequest: allOf: - $ref: '#/components/schemas/AdminAddUserRequest' AdminAddOrganizationUserRequest: allOf: - $ref: '#/components/schemas/AdminAddUserRequest' - type: object required: - role - datasets properties: role: $ref: '#/components/schemas/OrganizationMemberRole' datasets: description: Only used for 'guest' users. Limits the datasets the user has access to. type: array items: type: string FindUserResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - users properties: users: type: array items: type: object required: - id - username - name - created - email properties: id: type: integer example: 1 username: type: string example: janjongboom name: type: string example: "Jan Jongboom" photo: type: string example: "https://usercdn.edgeimpulse.com/photos/1.jpg" created: type: string format: date-time example: "2019-08-31T17:32:28Z" email: type: string OrganizationAddDataFolderRequest: type: object required: - dataset - bucketId - bucketPath properties: dataset: type: string bucketId: type: integer bucketPath: type: string metadataDataset: type: string type: type: string enum: - files - clinical OrganizationAddDatasetRequest: type: object required: - dataset - tags - category - type - bucket properties: dataset: type: string tags: type: array items: type: string category: type: string type: type: string enum: - files - clinical bucket: type: object required: - id - path - dataItemNamingLevelsDeep properties: id: description: Bucket ID type: integer path: description: Path in the bucket type: string dataItemNamingLevelsDeep: description: Number of levels deep for data items, e.g. if you have folder "test/abc", with value 1 "test" will be a data item, with value 2 "test/abc" will be a data item. Only used for "clinical" type. type: integer OrganizationProjectsDataBatchRequest: type: object properties: sampleIds: type: array items: type: integer OrganizationAddDataFolderResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - dataItemCount - dataFirstItems properties: dataItemCount: type: integer dataFirstItems: type: array items: type: string ListOrganizationBucketsUserResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - buckets properties: buckets: type: array items: type: object required: - id - organizationId - organizationName - bucket - region - whitelabelId properties: id: type: integer organizationId: type: integer organizationName: type: string bucket: type: string description: S3 bucket region: type: string description: S3 region whitelabelId: type: integer description: The unique identifier of the white label this bucket belongs to, if any ProjectVersionRequest: type: object required: - description - makePublic properties: bucketId: type: integer description: Data bucket ID. Keep empty to store in Edge Impulse hosted storage. description: type: string makePublic: type: boolean description: Whether to make this version available on a public URL. ListVersionsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - nextVersion - versions - customLearnBlocks properties: nextVersion: type: integer versions: type: array items: type: object required: - id - version - description - bucket - created properties: id: type: integer version: type: integer description: type: string bucket: type: object required: - path properties: id: type: integer name: type: string organizationName: type: string path: type: string bucket: type: string created: type: string format: date-time userId: type: integer userName: type: string userPhoto: type: string publicProjectId: type: integer publicProjectUrl: type: string trainingAccuracy: type: number testAccuracy: type: number totalSamplesCount: type: string license: type: string customLearnBlocks: type: array description: If you have any custom learn blocks (e.g. blocks you pushed through Bring Your Own Model), then these are listed here. We use these to show a warning in the UI that these blocks will also be available in a public version. items: type: object required: - author - name properties: author: type: string name: type: string ListPublicVersionsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - versions properties: versions: type: array items: type: object required: - version - publicProjectId - publicProjectUrl properties: version: type: integer publicProjectId: type: integer publicProjectUrl: type: string UpdateVersionRequest: type: object properties: description: type: string RestoreProjectRequest: type: object required: - projectId - projectApiKey - versionId properties: projectId: type: integer description: Source project ID projectApiKey: type: string description: Source project API key versionId: type: integer description: Source project version ID RestoreProjectFromPublicRequest: type: object required: - projectId properties: projectId: type: integer description: Source project ID SegmentSampleRequest: type: object required: - segments properties: segments: type: array items: type: object required: - startMs - endMs properties: startMs: type: integer endMs: type: integer TransferOwnershipOrganizationRequest: type: object required: - organizationId properties: organizationId: type: integer OrganizationProjectsDataBatchEnableResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - count properties: count: type: integer OrganizationProjectsDataBatchDisableResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - count properties: count: type: integer ListOrganizationProjectsDataResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - projects - samples properties: projects: type: array items: type: object required: - id - name - owner - description properties: id: type: integer name: type: string owner: type: string description: type: string samples: type: array items: $ref: '#/components/schemas/Sample' GetOrganizationProjectsDataCountResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - count properties: count: type: integer FindSegmentSampleRequest: type: object required: - shiftSegments - segmentLengthMs properties: shiftSegments: type: boolean description: If set, the segments are automatically shifted randomly, to make the dataset distribution more uniform. segmentLengthMs: type: integer FindSegmentSampleResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - segments properties: segments: type: array items: type: object required: - startMs - endMs properties: startMs: type: integer endMs: type: integer AddOrganizationTransformationBlockResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - id properties: id: type: integer AddOrganizationDeployBlockResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - id properties: id: type: integer AddOrganizationDspBlockResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - id properties: id: type: integer AddOrganizationTransferLearningBlockResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - id properties: id: type: integer OrganizationBulkMetadataRequest: type: object required: - dataset - csvFile properties: dataset: type: string csvFile: type: string format: binary OrganizationProjectsDataBulkMetadataRequest: type: object required: - csvFile properties: projectIds: type: array items: type: integer csvFile: type: string format: binary PortalInfoResponse: type: object required: - id - name - description - organizationId - organizationName - bucketName properties: name: type: string description: type: string organizationId: type: integer organizationName: type: string organizationLogo: type: string bucketName: type: string ObjectDetectionLabelQueueResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - samples properties: samples: type: array items: type: object required: - id properties: id: type: integer ObjectDetectionLabelQueueCountResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - samplesCount properties: samplesCount: type: integer BoundingBox: type: object description: This has the _absolute values_ for x/y/w/h (so 0..x (where x is the w/h of the image)) required: - label - x - y - width - height properties: label: type: string x: type: integer y: type: integer width: type: integer height: type: integer BoundingBoxWithScore: type: object description: This has the _ratio_ for x/y/w/h (so 0..1) required: - label - x - y - width - height - score properties: label: type: string x: type: number y: type: number width: type: number height: type: number score: type: number SampleBoundingBoxesRequest: type: object required: - boundingBoxes properties: boundingBoxes: type: array items: $ref: '#/components/schemas/BoundingBox' TrackObjectsRequest: type: object required: - sourceSampleId - nextSampleId properties: sourceSampleId: type: integer nextSampleId: type: integer TrackObjectsResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - boundingBoxes properties: boundingBoxes: type: array items: $ref: '#/components/schemas/BoundingBox' ExportGetUrlResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - hasExport properties: hasExport: type: boolean created: description: Set if hasExport is true type: string format: date-time url: description: Set if hasExport is true type: string GetSyntiantPosteriorResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - hasPosteriorParameters properties: hasPosteriorParameters: type: boolean parameters: type: object SetSyntiantPosteriorRequest: type: object required: - parameters properties: parameters: type: object FindSyntiantPosteriorRequest: type: object required: - targetWords - referenceSet properties: targetWords: type: array items: type: string referenceSet: type: string enum: [ 600_seconds, full, custom, no_calibration ] wavFile: type: string format: binary metaCsvFile: type: string format: binary deploymentTarget: type: string enum: [ syntiant-ndp101, syntiant-ndp101-lib, syntiant-ndp120-lib, syntiant-ndp120-lib-tdk-v14, syntiant-nicla-ndp120, syntiant-avnet-rasyn ] GetDeploymentResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - hasDeployment properties: hasDeployment: type: boolean version: type: integer GetLastDeploymentBuildResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - hasBuild properties: hasBuild: type: boolean description: Does the deployment build still exist? (Builds are deleted if they are no longer valid for the project) lastBuild: type: object required: - version - deploymentType - engine - created properties: version: type: integer description: The build version, incremented after each deployment build deploymentType: type: string description: Deployment type of the build engine: $ref: '#/components/schemas/DeploymentTargetEngine' modelType: $ref: '#/components/schemas/KerasModelTypeEnum' created: type: string format: date-time description: The time this build was created lastDeploymentTarget: $ref: '#/components/schemas/ProjectDeploymentTarget' ThirdPartyAuth: type: object required: - id - name - description - logo - domains - created properties: id: type: integer name: type: string description: type: string logo: type: string domains: type: array items: type: string created: type: string format: date-time GetThirdPartyAuthResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - auth properties: auth: $ref: '#/components/schemas/ThirdPartyAuth' AuthorizeThirdPartyRequest: type: object required: - nextUrl properties: nextUrl: description: The URL to redirect to after authorization is completed. type: string GetAllThirdPartyAuthResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - auths properties: auths: type: array items: $ref: '#/components/schemas/ThirdPartyAuth' CreateThirdPartyAuthRequest: type: object required: - name - description - logo - domains properties: name: type: string description: type: string logo: type: string domains: type: array items: type: string secretKey: type: string apiKey: type: string CreateThirdPartyAuthResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - id - secretKey - apiKey properties: id: type: integer secretKey: type: string apiKey: type: string UpdateThirdPartyAuthRequest: type: object properties: name: type: string description: type: string logo: type: string domains: type: array items: type: string CreateUserThirdPartyRequest: type: object required: - name - username - email - privacyPolicy properties: name: type: string description: "Your name" example: "Jan Jongboom" username: type: string description: "Username, minimum 4 and maximum 30 characters. May contain alphanumeric characters, hyphens, underscores and dots. Validated according to `^(?=.{4,30}$)(?![_.])(?!.*[_.]{2})[a-zA-Z0-9._-]+(?