Edge Impulse OrganizationPipelines API

The OrganizationPipelines API from Edge Impulse — 5 operation(s) for organizationpipelines.

OpenAPI Specification

edge-impulse-organizationpipelines-api-openapi.yml Raw ↑
openapi: 3.0.0
info:
  title: Edge Impulse OrganizationPipelines API
  version: 1.0.0
servers:
- url: https://studio.edgeimpulse.com/v1
security:
- ApiKeyAuthentication: []
- JWTAuthentication: []
- JWTHttpHeaderAuthentication: []
tags:
- name: OrganizationPipelines
paths:
  /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/EntityCreatedResponse'
  /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'
components:
  parameters:
    OrganizationPipelineIdParameter:
      name: pipelineId
      in: path
      required: true
      description: Pipeline ID
      schema:
        type: integer
    ListPipelinesProjectIdParameter:
      name: projectId
      in: query
      required: false
      description: If set, filters on pipelines which are attached to this project.
      schema:
        type: integer
    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
    OrganizationIdParameter:
      name: organizationId
      in: path
      required: true
      description: Organization ID
      schema:
        type: integer
  schemas:
    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'
    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
    TransformationJobOperatesOnEnum:
      type: string
      enum:
      - file
      - directory
      - standalone
    ListOrganizationPipelinesResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - pipelines
        properties:
          pipelines:
            type: array
            items:
              $ref: '#/components/schemas/OrganizationPipeline'
    OrganizationPipelineRun:
      type: object
      required:
      - id
      - steps
      - created
      properties:
        id:
          type: integer
        steps:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationPipelineRunStep'
        created:
          type: string
          format: date-time
        finished:
          type: string
          format: date-time
        itemCountBefore:
          description: Item count before the pipeline ran, only set when the pipeline has a dataset attached.
          $ref: '#/components/schemas/OrganizationPipelineItemCount'
        itemCountAfter:
          description: Item count after the pipeline ran, only set when the pipeline has a dataset attached.
          $ref: '#/components/schemas/OrganizationPipelineItemCount'
        itemCountImportIntoProjectFailed:
          description: Number of data items that failed to import into a project (through the s3-to-project, portal-to-project or dataset-to-project) transform blocks
          type: integer
    GetOrganizationPipelinesResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - pipeline
        properties:
          pipeline:
            $ref: '#/components/schemas/OrganizationPipeline'
    OrganizationDatasetTypeEnum:
      type: string
      enum:
      - clinical
      - files
    RunOrganizationPipelineResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - pipelineRun
        properties:
          pipelineRun:
            $ref: '#/components/schemas/OrganizationPipelineRun'
    OrganizationPipelineItemCount:
      type: object
      required:
      - itemCount
      - itemCountChecklistOK
      - itemCountChecklistFailed
      properties:
        itemCount:
          type: integer
        itemCountChecklistOK:
          type: integer
        itemCountChecklistFailed:
          type: integer
    OrganizationPipeline:
      type: object
      required:
      - id
      - name
      - description
      - steps
      - created
      - emailRecipientUids
      - whenToEmail
      properties:
        id:
          type: integer
        name:
          type: string
        description:
          type: string
        intervalStr:
          type: string
          description: 15m for every 15 minutes, 2h for every 2 hours, 1d for every 1 day
        steps:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationPipelineStep'
        nextRun:
          type: string
          format: date-time
        created:
          type: string
          format: date-time
        currentRun:
          $ref: '#/components/schemas/OrganizationPipelineRun'
        lastRun:
          $ref: '#/components/schemas/OrganizationPipelineRun'
        feedingIntoDataset:
          type: object
          required:
          - dataset
          - datasetLink
          - itemCount
          - itemCountChecklistOK
          - itemCountChecklistError
          properties:
            dataset:
              type: string
            datasetLink:
              type: string
            itemCount:
              type: integer
            itemCountChecklistOK:
              type: integer
            itemCountChecklistError:
              type: integer
            datasetType:
              $ref: '#/components/schemas/OrganizationDatasetTypeEnum'
        feedingIntoProject:
          type: object
          required:
          - id
          - name
          - projectLink
          - itemCount
          properties:
            id:
              type: integer
            name:
              type: string
            projectLink:
              type: string
            itemCount:
              type: integer
        emailRecipientUids:
          type: array
          items:
            type: integer
        lastRunStartError:
          type: string
        notificationWebhook:
          type: string
        whenToEmail:
          type: string
          enum:
          - always
          - on_new_data
          - never
    CreatedUpdatedByUser:
      type: object
      required:
      - id
      - name
      - username
      properties:
        id:
          type: integer
        name:
          type: string
        username:
          type: string
        photo:
          type: string
    OrganizationUpdatePipelineBody:
      type: object
      required:
      - name
      - description
      - steps
      - emailRecipientUids
      - whenToEmail
      properties:
        name:
          type: string
        description:
          type: string
        intervalStr:
          type: string
          description: 15m for every 15 minutes, 2h for every 2 hours, 1d for every 1 day
        steps:
          type: array
          items:
            $ref: '#/components/schemas/OrganizationPipelineStep'
        dataset:
          type: string
        projectId:
          type: integer
        emailRecipientUids:
          type: array
          items:
            type: integer
        notificationWebhook:
          type: string
        whenToEmail:
          type: string
          enum:
          - always
          - on_new_data
          - never
        archived:
          type: boolean
    OrganizationPipelineStep:
      type: object
      required:
      - name
      properties:
        name:
          type: string
        filter:
          type: string
        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
        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:
          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
        transformationParallel:
          type: integer
        extraCliArguments:
          type: string
        parameters:
          type: object
          additionalProperties:
            type: string
    TransformationJobStatusEnum:
      type: string
      enum:
      - waiting
      - created
      - started
      - finished
      - failed
    EntityCreatedResponse:
      allOf:
      - $ref: '#/components/schemas/GenericApiResponse'
      - type: object
        required:
        - id
        properties:
          id:
            type: integer
            description: Unique identifier of the created entity.
    OrganizationPipelineRunStep:
      type: object
      required:
      - name
      - status
      properties:
        name:
          type: string
        transformationJob:
          $ref: '#/components/schemas/OrganizationCreateProject'
        filter:
          type: string
        uploadType:
          type: string
          enum:
          - project
          - dataset
        projectId:
          type: integer
        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:
          type: string
        label:
          type: string
        extraCliArguments:
          type: string
        parameters:
          type: object
          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)
    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)
  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