Netter steps API

The steps API from Netter — 16 operation(s) for steps.

OpenAPI Specification

netter-steps-api-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: DMI Backend actions steps API
  version: 0.1.0
tags:
- name: steps
paths:
  /api/v1/steps/:
    get:
      tags:
      - steps
      summary: List Steps
      description: List steps, optionally filtered by project.
      operationId: list_steps_api_v1_steps__get
      parameters:
      - name: project_id
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Project Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StepRead'
                title: Response List Steps Api V1 Steps  Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    post:
      tags:
      - steps
      summary: Create Step
      operationId: create_step_api_v1_steps__post
      parameters:
      - name: project_id
        in: query
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StepCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StepRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}:
    get:
      tags:
      - steps
      summary: Get Step
      operationId: get_step_api_v1_steps__step_id__get
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StepRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - steps
      summary: Update Step
      operationId: update_step_api_v1_steps__step_id__patch
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StepUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StepRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - steps
      summary: Delete Step
      operationId: delete_step_api_v1_steps__step_id__delete
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}/code:
    get:
      tags:
      - steps
      summary: Get Step Code
      description: Serve step code from S3.
      operationId: get_step_code_api_v1_steps__step_id__code_get
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Get Step Code Api V1 Steps  Step Id  Code Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    put:
      tags:
      - steps
      summary: Update Step Code
      description: Verbatim-save a custom_code step's Python source to S3.
      operationId: update_step_code_api_v1_steps__step_id__code_put
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StepCodeUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Update Step Code Api V1 Steps  Step Id  Code Put
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}/suppress:
    post:
      tags:
      - steps
      summary: Suppress Step
      description: Soft-delete a step. Deactivates its trigger if any.
      operationId: suppress_step_api_v1_steps__step_id__suppress_post
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StepRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/project/{project_id}/batch:
    put:
      tags:
      - steps
      summary: Batch Replace Steps
      description: Replace all steps in a project (deploy-time).
      operationId: batch_replace_steps_api_v1_steps_project__project_id__batch_put
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/StepBatchReplace'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/StepRead'
                title: Response Batch Replace Steps Api V1 Steps Project  Project Id  Batch Put
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/project/{project_id}/validate:
    post:
      tags:
      - steps
      summary: Validate Project Dag
      description: Validate the current step DAG for a project.
      operationId: validate_project_dag_api_v1_steps_project__project_id__validate_post
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Validate Project Dag Api V1 Steps Project  Project Id  Validate Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}/swap-candidates:
    get:
      tags:
      - steps
      summary: Get Swap Candidates
      operationId: get_swap_candidates_api_v1_steps__step_id__swap_candidates_get
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwapCandidateList'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}/swap-input:
    post:
      tags:
      - steps
      summary: Post Swap Input
      operationId: post_swap_input_api_v1_steps__step_id__swap_input_post
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SwapInputRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SwapInputResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}/trigger:
    post:
      tags:
      - steps
      summary: Create Trigger
      operationId: create_trigger_api_v1_steps__step_id__trigger_post
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TriggerRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    patch:
      tags:
      - steps
      summary: Update Trigger
      operationId: update_trigger_api_v1_steps__step_id__trigger_patch
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TriggerUpdate'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TriggerRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
    delete:
      tags:
      - steps
      summary: Delete Trigger
      operationId: delete_trigger_api_v1_steps__step_id__trigger_delete
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '204':
          description: Successful Response
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/project/{project_id}/run:
    post:
      tags:
      - steps
      summary: Trigger Run
      description: "Trigger a new run for a project.\n\n- root_step_id=None → run all active steps (Run All).\n- root_step_id=<id> → refresh that output: runs its ancestor closure back to roots.\n  The target must be a ``database`` step."
      operationId: trigger_run_api_v1_steps_project__project_id__run_post
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RunCreate'
      responses:
        '201':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app__steps__schemas__RunRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/project/{project_id}/runs:
    get:
      tags:
      - steps
      summary: List Runs
      description: List recent runs for a project.
      operationId: list_runs_api_v1_steps_project__project_id__runs_get
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          default: 20
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/app__steps__schemas__RunRead'
                title: Response List Runs Api V1 Steps Project  Project Id  Runs Get
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/run/{run_id}:
    get:
      tags:
      - steps
      summary: Get Run
      description: 'Get run details including step runs.


        ``auth`` is declared to enforce authentication via FastAPI''s dependency

        system; the project-perm check is resolved against the run''s own company

        so multi-company users polling a run (e.g. dashboard InputForm) are not

        404''d when their selected ``X-Company-ID`` differs from ``run.company_id``.'
      operationId: get_run_api_v1_steps_run__run_id__get
      parameters:
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Run Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/app__steps__schemas__RunRead'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/run/{run_id}/cancel:
    post:
      tags:
      - steps
      summary: Cancel Run
      description: Cancel a running DAG execution.
      operationId: cancel_run_api_v1_steps_run__run_id__cancel_post
      parameters:
      - name: run_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Run Id
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties: true
                title: Response Cancel Run Api V1 Steps Run  Run Id  Cancel Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/steps/{step_id}/auto-fix:
    post:
      tags:
      - steps
      summary: Auto Fix Step
      description: 'Dispatch an auto-fix job for a failed step.


        Finds the most recent failed StepRun and sends error context to the agent

        for automatic code repair.'
      operationId: auto_fix_step_api_v1_steps__step_id__auto_fix_post
      parameters:
      - name: step_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Step Id
      responses:
        '202':
          description: Successful Response
          content:
            application/json:
              schema: {}
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/projects/{project_id}/changes:
    get:
      tags:
      - steps
      summary: List Changes
      operationId: list_changes_api_v1_projects__project_id__changes_get
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      - name: since
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Since
      - name: until
        in: query
        required: false
        schema:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Until
      - name: actor_type
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Actor Type
      - name: action
        in: query
        required: false
        schema:
          anyOf:
          - type: string
          - type: 'null'
          title: Action
      - name: include_orphans
        in: query
        required: false
        schema:
          type: boolean
          default: false
          title: Include Orphans
      - name: limit
        in: query
        required: false
        schema:
          type: integer
          maximum: 500
          default: 200
          title: Limit
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChangesListResponse'
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
  /api/v1/projects/{project_id}/changes/goto:
    post:
      tags:
      - steps
      summary: Goto Change
      description: 'Move the project''s timeline head to ``body.event_id``.


        Browser-style: replays events forward or applies inverses backward

        until the live DAG matches the state at the target event. No new

        events are emitted. Subsequent edits truncate any ''future'' events

        relative to the new head. ``event_id=None`` rewinds to the initial

        state (pre-log).'
      operationId: goto_change_api_v1_projects__project_id__changes_goto_post
      parameters:
      - name: project_id
        in: path
        required: true
        schema:
          type: string
          format: uuid
          title: Project Id
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/GotoRequest'
      responses:
        '200':
          description: Successful Response
          content:
            application/json:
              schema:
                type: object
                additionalProperties:
                  anyOf:
                  - type: string
                  - type: 'null'
                title: Response Goto Change Api V1 Projects  Project Id  Changes Goto Post
        '422':
          description: Validation Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/HTTPValidationError'
components:
  schemas:
    CodeType:
      type: string
      enum:
      - python
      - sql
      title: CodeType
      description: Runtime language for the step code.
    StepBatchReplace:
      properties:
        steps:
          items:
            $ref: '#/components/schemas/StepBatchItem'
          type: array
          title: Steps
      type: object
      required:
      - steps
      title: StepBatchReplace
      description: Replace all steps in a project (used at deploy time).
    TriggerRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        step_id:
          type: string
          format: uuid
          title: Step Id
        trigger_type:
          $ref: '#/components/schemas/TriggerType'
        trigger_config:
          additionalProperties: true
          type: object
          title: Trigger Config
        is_active:
          type: boolean
          title: Is Active
        last_triggered_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Last Triggered At
        created_at:
          type: string
          format: date-time
          title: Created At
      type: object
      required:
      - id
      - step_id
      - trigger_type
      - trigger_config
      - is_active
      - last_triggered_at
      - created_at
      title: TriggerRead
      description: Trigger response.
    TriggerType:
      type: string
      enum:
      - on_click
      - schedule
      title: TriggerType
      description: 'How a root step can be triggered.


        EVENT (polling) was deprecated in commit c523d2be (2026-05-02) and

        deleted entirely in Phase 5: cross-dataset reactive updates use the

        cascade model (database_dep) instead. ON_CLICK is implicit (every

        dataset can be refreshed manually via the UI, no row needed) and is

        only kept here for the rejection branch in CreateTrigger.'
    Severity:
      type: string
      enum:
      - compatible
      - partial
      - risky
      - no_match
      title: Severity
    TriggerCreate:
      properties:
        trigger_type:
          $ref: '#/components/schemas/TriggerType'
        trigger_config:
          additionalProperties: true
          type: object
          title: Trigger Config
          default: {}
      type: object
      required:
      - trigger_type
      title: TriggerCreate
      description: Attach a trigger to a root step.
    StepRunRead:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        run_id:
          type: string
          format: uuid
          title: Run Id
        step_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Step Id
        status:
          type: string
          title: Status
        error:
          anyOf:
          - type: string
          - type: 'null'
          title: Error
        logs:
          anyOf:
          - type: string
          - type: 'null'
          title: Logs
        started_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Started At
        finished_at:
          anyOf:
          - type: string
            format: date-time
          - type: 'null'
          title: Finished At
        rows_processed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rows Processed
        output_row_count:
          anyOf:
          - type: integer
          - type: 'null'
          title: Output Row Count
        rows_new:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rows New
        rows_changed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rows Changed
        rows_removed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Rows Removed
        ai_rows_cached:
          anyOf:
          - type: integer
          - type: 'null'
          title: Ai Rows Cached
        ai_rows_processed:
          anyOf:
          - type: integer
          - type: 'null'
          title: Ai Rows Processed
      type: object
      required:
      - id
      - run_id
      - step_id
      - status
      - error
      - logs
      - started_at
      - finished_at
      title: StepRunRead
      description: StepRun response.
    StepUpdate:
      properties:
        slug:
          anyOf:
          - type: string
          - type: 'null'
          title: Slug
        title:
          anyOf:
          - type: string
          - type: 'null'
          title: Title
        description:
          anyOf:
          - type: string
          - type: 'null'
          title: Description
        step_type:
          anyOf:
          - $ref: '#/components/schemas/StepType'
          - type: 'null'
        code_type:
          anyOf:
          - $ref: '#/components/schemas/CodeType'
          - type: 'null'
        sink_target:
          anyOf:
          - $ref: '#/components/schemas/SinkTarget'
          - type: 'null'
        provider_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Provider Id
        parent_step_ids:
          anyOf:
          - items:
              type: string
              format: uuid
            type: array
          - type: 'null'
          title: Parent Step Ids
        in_format:
          anyOf:
          - type: string
          - type: 'null'
          title: In Format
        out_format:
          anyOf:
          - type: string
          - type: 'null'
          title: Out Format
        status:
          anyOf:
          - type: string
          - type: 'null'
          title: Status
        input_schema:
          anyOf:
          - items:
              additionalProperties: true
              type: object
            type: array
          - type: 'null'
          title: Input Schema
        operator_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Operator Type
        operator_config:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Operator Config
      type: object
      title: StepUpdate
      description: Patch a step (all fields optional).
    SwapColumnDiff:
      properties:
        matching:
          items:
            type: string
          type: array
          title: Matching
        missing_in_candidate:
          items:
            type: string
          type: array
          title: Missing In Candidate
        extra_in_candidate:
          items:
            type: string
          type: array
          title: Extra In Candidate
        retyped:
          items:
            $ref: '#/components/schemas/SwapRetyped'
          type: array
          title: Retyped
      type: object
      required:
      - matching
      - missing_in_candidate
      - extra_in_candidate
      - retyped
      title: SwapColumnDiff
    RunCreate:
      properties:
        root_step_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Root Step Id
        force_full:
          type: boolean
          title: Force Full
          default: false
      type: object
      title: RunCreate
      description: 'Trigger a new run.


        ``root_step_id`` is the target output (a database step).

        Null ``root_step_id`` means Run All — run every active step in the project.


        ``force_full`` bypasses the AI Lambda''s content-addressed cache / the

        custom Lambda''s api_action ledger for this run only — used for manual

        replays after schema changes or bug fixes. Cascade-created runs leave

        this False (see spec §7d — force_full does not propagate through

        cascade).'
    StepCodeUpdate:
      properties:
        code:
          type: string
          title: Code
      type: object
      required:
      - code
      title: StepCodeUpdate
      description: Verbatim replacement of a custom_code step's Python source.
    TriggerUpdate:
      properties:
        trigger_type:
          anyOf:
          - $ref: '#/components/schemas/TriggerType'
          - type: 'null'
        trigger_config:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Trigger Config
      type: object
      title: TriggerUpdate
      description: Patch a trigger.
    SwapCandidate:
      properties:
        id:
          type: string
          format: uuid
          title: Id
        name:
          type: string
          title: Name
        type:
          type: string
          enum:
          - database
          - user_file
          title: Type
        owner_project_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Owner Project Id
        owner_project_name:
          anyOf:
          - type: string
          - type: 'null'
          title: Owner Project Name
        is_shared:
          type: boolean
          title: Is Shared
        similarity_score:
          type: number
          title: Similarity Score
        severity:
          $ref: '#/components/schemas/Severity'
        diff:
          $ref: '#/components/schemas/SwapColumnDiff'
      type: object
      required:
      - id
      - name
      - type
      - owner_project_id
      - owner_project_name
      - is_shared
      - similarity_score
      - severity
      - diff
      title: SwapCandidate
    StepCreate:
      properties:
        slug:
          type: string
          title: Slug
        title:
          type: string
          title: Title
          default: ''
        description:
          type: string
          title: Description
          default: ''
        step_type:
          $ref: '#/components/schemas/StepType'
        code_type:
          $ref: '#/components/schemas/CodeType'
          default: python
        sink_target:
          anyOf:
          - $ref: '#/components/schemas/SinkTarget'
          - type: 'null'
        provider_id:
          anyOf:
          - type: string
            format: uuid
          - type: 'null'
          title: Provider Id
        parent_step_ids:
          items:
            type: string
            format: uuid
          type: array
          title: Parent Step Ids
          default: []
        in_format:
          type: string
          title: In Format
          default: ''
        out_format:
          type: string
          title: Out Format
          default: ''
        input_schema:
          anyOf:
          - items:
              additionalProperties: true
              type: object
            type: array
          - type: 'null'
          title: Input Schema
        operator_type:
          anyOf:
          - type: string
          - type: 'null'
          title: Operator Type
        operator_config:
          anyOf:
          - additionalProperties: true
            type: object
          - type: 'null'
          title: Operator Config
      type: object
      required:
      - slug
      - step_type
      title: StepCreate
      description: Create a new step in a project DAG.
    StepBatchItem:
      properties:
        slug:
          type: string
          title: Slug
        title:
          type: string
          title: Title
          defaul

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