Edge Impulse OrganizationBlocks API
The OrganizationBlocks API from Edge Impulse — 17 operation(s) for organizationblocks.
The OrganizationBlocks API from Edge Impulse — 17 operation(s) for organizationblocks.
openapi: 3.0.0
info:
title: Edge Impulse OrganizationBlocks API
version: 1.0.0
servers:
- url: https://studio.edgeimpulse.com/v1
security:
- ApiKeyAuthentication: []
- JWTAuthentication: []
- JWTHttpHeaderAuthentication: []
tags:
- name: OrganizationBlocks
paths:
/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/EntityCreatedResponse'
/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/public/{transformationId}:
get:
summary: Get public transformation block
description: Retrieve a transformation blocks published by other organizations, available for all organizations.
tags:
- OrganizationBlocks
parameters:
- $ref: '#/components/parameters/OrganizationIdParameter'
- $ref: '#/components/parameters/TransformationIdParameter'
operationId: getPublicOrganizationTransformationBlock
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GetPublicOrganizationTransformationBlockResponse'
/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}/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/EntityCreatedResponse'
/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/EntityCreatedResponse'
/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/EntityCreatedResponse'
/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
x-middleware:
- OrganizationAllowDeveloperProfile
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
x-middleware:
- OrganizationAllowDeveloperProfile
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/EntityCreatedResponse'
/api/organizations/{organizationId}/secrets/{secretId}:
delete:
summary: Delete secret
description: Deletes a secret
tags:
- OrganizationBlocks
x-middleware:
- OrganizationAllowDeveloperProfile
parameters:
- $ref: '#/components/parameters/OrganizationIdParameter'
- $ref: '#/components/parameters/SecretIdParameter'
operationId: deleteOrganizationSecret
responses:
'200':
description: OK
content:
application/json:
schema:
$ref: '#/components/schemas/GenericApiResponse'
components:
schemas:
GetOrganizationTransformationBlockResponse:
allOf:
- $ref: '#/components/schemas/GenericApiResponse'
- type: object
required:
- transformationBlock
properties:
transformationBlock:
$ref: '#/components/schemas/OrganizationTransformationBlock'
BlockDisplayCategory:
description: Category to display this block in the UI.
type: string
enum:
- classical
- tao
PublicOrganizationTransformationBlock:
type: object
required:
- id
- ownerOrganizationId
- ownerOrganizationName
- name
- created
- description
- operatesOn
- allowExtraCliArguments
- showInDataSources
- showInCreateTransformationJob
- showInSyntheticData
- showInAIActions
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.
showInSyntheticData:
type: boolean
description: Whether to show this block in 'Synthetic data'. Only applies for standalone blocks.
showInAIActions:
type: boolean
description: Whether to show this block in 'AI Labeling'. Only applies for standalone blocks.
aiActionsOperatesOn:
type: array
description: For AI labeling blocks, this lists the data types that the block supports. If this field is empty then there's no information about supported data types.
items:
$ref: '#/components/schemas/AIActionsOperatesOn'
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
AIActionsOperatesOn:
type: string
enum:
- images_object_detection
- images_single_label
- audio
- other
TransformationJobOperatesOnEnum:
type: string
enum:
- file
- directory
- standalone
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
TransformationBlockAdditionalMountPoint:
type: object
required:
- type
- mountPoint
properties:
type:
type: string
enum:
- bucket
- portal
bucketId:
type: integer
portalId:
type: integer
mountPoint:
type: string
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
publicProjectTierAvailability:
$ref: '#/components/schemas/PublicProjectTierAvailability'
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
customModelVariants:
description: List of custom model variants produced when this block is trained. This is experimental and may change in the future.
type: array
items:
$ref: '#/components/schemas/OrganizationTransferLearningBlockCustomVariant'
displayCategory:
$ref: '#/components/schemas/BlockDisplayCategory'
ListOrganizationDeployBlocksResponse:
allOf:
- $ref: '#/components/schemas/GenericApiResponse'
- type: object
required:
- deployBlocks
properties:
deployBlocks:
type: array
items:
$ref: '#/components/schemas/OrganizationDeployBlock'
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
publicProjectTierAvailability:
$ref: '#/components/schemas/PublicProjectTierAvailability'
isPublicEnterpriseOnly:
type: boolean
description: Whether this block is publicly available to only enterprise users
enterpriseOnly:
type: boolean
description: Whether this block is available to only 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'
customModelVariants:
description: List of custom model variants produced when this block is trained. This is experimental and may change in the future.
type: array
items:
$ref: '#/components/schemas/OrganizationTransferLearningBlockCustomVariant'
GetOrganizationDspBlockResponse:
allOf:
- $ref: '#/components/schemas/GenericApiResponse'
- type: object
required:
- dspBlock
properties:
dspBlock:
$ref: '#/components/schemas/OrganizationDspBlock'
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
GetOrganizationTransferLearningBlockResponse:
allOf:
- $ref: '#/components/schemas/GenericApiResponse'
- type: object
required:
- transferLearningBlock
properties:
transferLearningBlock:
$ref: '#/components/schemas/OrganizationTransferLearningBlock'
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
OrganizationTransferLearningBlockModelFile:
type: object
required:
- id
- name
- type
- description
properties:
id:
type: string
description: Output artifact unique file ID, in kebab case
name:
type: string
description: Output artifact file name
type:
type: string
description: Output artifact file type
enum:
- binary
- json
- text
description:
type: string
description
# --- truncated at 32 KB (54 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/edge-impulse/refs/heads/main/openapi/edge-impulse-organizationblocks-api-openapi.yml