Edge Impulse Impulse API

The Impulse API from Edge Impulse — 13 operation(s) for impulse.

OpenAPI Specification

edge-impulse-impulse-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Edge Impulse API
  version: 1.0.0
servers:
- url: https://studio.edgeimpulse.com/v1
security:
- ApiKeyAuthentication: []
- JWTAuthentication: []
- JWTHttpHeaderAuthentication: []
tags:
- name: Impulse
paths:
  /api/{projectId}/impulse:
    get:
      summary: Get impulse
      description: Retrieve the impulse for this project. If you specify `impulseId` then that impulse is returned, otherwise the default impulse is returned.
      operationId: getImpulse
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetImpulseResponse'
    post:
      summary: Create impulse
      description: Sets the impulse for this project.  If you specify `impulseId` then that impulse is created/updated, otherwise the default impulse is created/updated.
      operationId: createImpulse
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateImpulseRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateImpulseResponse'
    delete:
      summary: Delete impulse
      description: Clears the impulse and all associated blocks for this project.  If you specify `impulseId` then that impulse is cleared, otherwise the default impulse is cleared.
      operationId: deleteImpulse
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/impulse/new:
    post:
      summary: Create new empty impulse
      description: Create a new empty impulse, and return the ID.
      operationId: createNewEmptyImpulse
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateNewEmptyImpulseResponse'
  /api/{projectId}/impulse/update:
    post:
      summary: Update impulse
      description: Update the impulse for this project.  If you specify `impulseId` then that impulse is created/updated, otherwise the default impulse is created/updated.
      operationId: updateImpulse
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateImpulseRequest'
      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. If you specify `impulseId` then that impulse is returned, otherwise the default impulse is returned.
      operationId: getImpulseAll
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/OptionalImpulseIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetImpulseResponse'
  /api/{projectId}/impulse/get-new-block-id:
    post:
      summary: Get new block ID
      description: Returns an unused block ID. Use this function to determine new block IDs when you construct an impulse; so you won't accidentally re-use block IDs.
      operationId: getNewBlockId
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetNewBlockIdResponse'
  /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'
  /api/{projectId}/impulses:
    get:
      summary: Get all impulses
      description: Retrieve all impulse for a project
      operationId: getAllImpulses
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllImpulsesResponse'
  /api/{projectId}/impulses-detailed:
    get:
      summary: Get all impulses (incl. metrics)
      description: Retrieve all impulse for a project, including accuracy and performance metrics.
      operationId: getAllDetailedImpulses
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetAllDetailedImpulsesResponse'
  /api/{projectId}/download-impulses-detailed:
    get:
      summary: Download all impulses (incl. metrics), as JSON or CSV.
      description: Download all impulse for a project, including accuracy and performance metrics, as JSON or CSV.
      operationId: downloadDetailedImpulses
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/DetailedImpulsesFormatParameter'
      responses:
        '200':
          description: File
          content:
            application/octet-stream:
              schema:
                type: string
                format: binary
  /api/{projectId}/impulse/legacy-set-impulse:
    post:
      summary: Set legacy impulse
      description: Set the complete impulse state for a project, writing impulses in the old (pre-impulse experiments) format. This completely clears out all files on FSx for this project. This is an internal API.
      x-internal-api: true
      security:
      - permissions:
        - projects:training:keras:write
      operationId: setLegacyImpulseStateInternal
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      requestBody:
        required: true
        content:
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/SetLegacyImpulseStateInternalRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GenericApiResponse'
  /api/{projectId}/impulse/{impulseId}/clone/structure:
    post:
      summary: Clone impulse (structure)
      description: Clones the complete structure (incl. config) of an impulse. Does not copy data.
      operationId: cloneImpulseStructure
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/ImpulseIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloneImpulseRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateImpulseResponse'
  /api/{projectId}/impulse/{impulseId}/clone/complete:
    post:
      summary: Clone impulse (complete)
      description: Clones the complete impulse (incl. config and data) of an existing impulse.
      operationId: cloneImpulseComplete
      tags:
      - Impulse
      parameters:
      - $ref: '#/components/parameters/ProjectIdParameter'
      - $ref: '#/components/parameters/ImpulseIdParameter'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CloneImpulseRequest'
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StartJobResponse'
components:
  schemas:
    VerifyDspBlockUrlRequest:
      type: object
      required:
      - url
      properties:
        url:
          type: string
    BlockDisplayCategory:
      description: Category to display this block in the UI.
      type: string
      enum:
      - classical
      - tao
    KerasModelVariantEnum:
      type: string
      enum:
      - int8
      - float32
      - akida
    AnomalyGmmMetadata:
      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,)
    BlockType:
      type: string
      enum:
      - official
      - personal
      - enterprise
      - pro-or-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
        publicProjectTierAvailability:
          $ref: '#/components/schemas/PublicProjectTierAvailability'
        isPublicEnterpriseOnly:
          type: boolean
          description: Whether this block is publicly available to only enterprise users
        blockType:
          $ref: '#/components/schemas/BlockType'
        displayCategory:
          $ref: '#/components/schemas/BlockDisplayCategory'
    SetLegacyImpulseStateInternalRequest:
      type: object
      required:
      - zip
      - impulse
      - config
      properties:
        zip:
          type: string
          format: binary
        impulse:
          type: string
          format: binary
        config:
          type: string
          format: binary
    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
    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, image or features)
          example: time-series
          enum:
          - time-series
          - image
          - features
        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
        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.
        datasetSubset:
          type: object
          description: Only generate features for samples where (sample_id + datasetSubsetSeed) % datasetSubset) == 0
          required:
          - datasetSubset
          - datasetSubsetSeed
          properties:
            subsetModulo:
              type: number
            subsetSeed:
              type: number
    DetailedImpulse:
      type: object
      required:
      - impulse
      - metrics
      - dspBlockConfigs
      - learnBlockKerasConfigs
      - learnBlockAnomalyConfigs
      - isStale
      - tags
      properties:
        impulse:
          $ref: '#/components/schemas/Impulse'
        metrics:
          type: array
          items:
            $ref: '#/components/schemas/DetailedImpulseMetric'
        dspBlockConfigs:
          type: array
          items:
            type: object
            required:
            - blockId
            - config
            properties:
              blockId:
                type: integer
              config:
                description: This returns a DSPConfig object, but "dsp.classes" and "dsp.features.classes" will be set to an empty array (use getDspConfig to retrieve these).
                $ref: '#/components/schemas/DSPConfig'
              metadata:
                description: This returns a DSPMetadata object, but "labels" will be set to an empty array (use getDspMetadata to retrieve these).
                $ref: '#/components/schemas/DSPMetadata'
        learnBlockKerasConfigs:
          items:
            type: object
            required:
            - blockId
            - config
            properties:
              blockId:
                type: integer
              config:
                description: This returns a KerasConfig object, but "transferLearningModels" and "dependencies.classes" will be set to an empty array (use getKeras to retrieve these).
                $ref: '#/components/schemas/KerasConfig'
              metadata:
                description: This returns a KerasModelMetadata object, but 1) non-default "onDevicePerformance", 2) "predictions", 3) "labels"; are omitted (use getKerasMetadata to retrieve these).
                $ref: '#/components/schemas/KerasModelMetadata'
        learnBlockAnomalyConfigs:
          items:
            type: object
            required:
            - blockId
            - config
            properties:
              blockId:
                type: integer
              config:
                $ref: '#/components/schemas/AnomalyConfig'
              metadata:
                description: This returns a AnomalyModelMetadata object, but 1) non-default "onDevicePerformance", 2) "predictions" are omitted (use getAnomalyMetadata to retrieve these).
                $ref: '#/components/schemas/AnomalyModelMetadata'
              gmmMetadata:
                $ref: '#/components/schemas/AnomalyGmmMetadata'
        pretrainedModelInfo:
          type: object
          required:
          - fileName
          properties:
            fileName:
              type: string
        isStale:
          type: boolean
          description: Whether this impulse contains blocks with "stale" features (i.e. the dataset has changed since features were generated)
        tags:
          type: array
          items:
            type: string
          description: Tags associated with this impulse
        createdFromTunerTrialId:
          type: number
          description: The source EON Tuner trial ID for impulses created from the EON Tuner
    AnomalyConfig:
      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.
    Impulse:
      type: object
      required:
      - id
      - name
      - inputBlocks
      - dspBlocks
      - learnBlocks
      properties:
        id:
          type: integer
          description: ID for this impulse.
        name:
          type: string
          description: Name for this impulse.
        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'
    BlockParameters:
      description: Training parameters specific to the type of the learn block. Parameters may be adjusted depending on the model defined in the visual layers. Used for our built-in blocks.
      oneOf:
      - $ref: '#/components/schemas/BlockParamsVisualAnomalyPatchcore'
      - $ref: '#/components/schemas/BlockParamsVisualAnomalyGmm'
    DetailedImpulseMetricCategory:
      type: string
      enum:
      - impulseMetrics
      - inputBlockConfig
      - dspBlockConfig
      - learnBlockConfig
      - learnBlockMetrics
    AnomalyCapacity:
      type: string
      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
      enum:
      - low
      - medium
      - high
    DSPConfig:
      type: object
      required:
      - dsp
      properties:
        dsp:
          $ref: '#/components/schemas/DSPInfo'
        config:
          type: array
          items:
            $ref: '#/components/schemas/DSPGroup'
        configError:
          type: string
    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)
    GetNewBlockIdResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - blockId
        properties:
          blockId:
            type: integer
    KerasCustomMetric:
      type: object
      required:
      - name
      - value
      properties:
        name:
          description: The name of the metric
          type: string
        value:
          description: The value of this metric for this model type
          type: string
    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
        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'
        namedAxes:
          type: array
          description: Named axes for the block
          items:
            type: object
            required:
            - name
            properties:
              name:
                type: string
                description: Name of the axis
              description:
                type: string
                description: Description of the axis
              required:
                type: boolean
                description: Whether the axis is required
              selectedAxis:
                type: string
                description: The selected axis for the block
    AdditionalMetric:
      type: object
      required:
      - name
      - value
      - fullPrecisionValue
      properties:
        name:
          type: string
        value:
          type: string
        fullPrecisionValue:
          type: number
        tooltipText:
          type: string
        link:
          type: string
    PublicProjectTierAvailability:
      description: For public blocks, this indicates the project tiers for which this block is available.
      type: string
      enum:
      - enterprise-only
      - pro-or-enterprise
      - all-projects
    CreateNewEmptyImpulseResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - id
        - redirectUrl
        properties:
          id:
            type: integer
            description: ID of the new impulse
          redirectUrl:
            type: string
            description: Link to redirect the user to afterwards
    DetailedImpulseMetric:
      type: object
      required:
      - name
      - type
      - category
      - description
      - value
      properties:
        name:
          type: string
        type:
          type: string
          enum:
          - core
          - additional
        filteringType:
          $ref: '#/components/schemas/DetailedImpulseMetricFilteringType'
        category:
          $ref: '#/components/schemas/DetailedImpulseMetricCategory'
        description:
          type: string
        value:
          oneOf:
          - type: string
          - type: boolean
        title:
          type: string
        valueForSorting:
          type: integer
        valueHint:
          type: string
          description: Additional help explaining the value for this metric
    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.
        

# --- truncated at 32 KB (69 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/edge-impulse/refs/heads/main/openapi/edge-impulse-impulse-api-openapi.yml