openapi: 3.2.0 info: title: Edge Impulse Third Party Auth API version: 1.0.0 servers: - url: https://studio.edgeimpulse.com/v1 security: - ApiKeyAuthentication: [] - JWTAuthentication: [] - JWTHttpHeaderAuthentication: [] tags: - name: Third Party Auth paths: /api/third-party-auth: get: summary: Get all third party auth description: Get information about all third party authentication partners operationId: getAllThirdPartyAuth x-internal-api: true security: - permissions: - thirdpartyauth:read tags: - Third Party Auth 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 x-internal-api: true security: - permissions: - thirdpartyauth:write tags: - Third Party Auth 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 x-internal-api: true security: - permissions: - thirdpartyauth:read tags: - Third Party Auth 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 x-internal-api: true security: - permissions: - thirdpartyauth:write tags: - Third Party Auth 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 x-internal-api: true security: - permissions: - thirdpartyauth:write tags: - Third Party Auth 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 x-internal-api: true tags: - Third Party Auth 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: - Third Party Auth x-middleware: - RequiresThirdPartyAuthApiKey parameters: - $ref: '#/components/parameters/AuthIdParameter' operationId: createUserThirdParty x-internal-api: true requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/CreateUserThirdPartyRequest' responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/CreateUserThirdPartyResponse' components: schemas: CreateUserThirdPartyResponse: allOf: - $ref: '#/components/schemas/GenericApiResponse' - type: object required: - status properties: status: type: string enum: - userWasCreated - userNotManagedByThirdParty - userAlreadyExists jwtToken: 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._-]+(?