Pulumi Neo API

The Neo API from Pulumi — 4 operation(s) for neo.

OpenAPI Specification

pulumi-neo-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  description: APIs and Definitions for the Pulumi Cloud product.
  title: Pulumi APIs AccessTokens Neo API
  version: 1.0.0
tags:
- name: Neo
paths:
  /api/preview/agents/{orgName}/tasks:
    get:
      description: Lists all agent tasks for the specified organization. Supports pagination via continuationToken with a configurable pageSize (1-1000, default 100). Returns task metadata including ID, name, status, and creation timestamp.
      operationId: ListTasks
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      - description: Token for retrieving the next page of results
        in: query
        name: continuationToken
        schema:
          type: string
      - description: Number of results per page
        in: query
        name: pageSize
        schema:
          format: int64
          type: integer
      - description: Field to sort the results by. Defaults to lastEvent.
        in: query
        name: sortBy
        schema:
          enum:
          - lastEvent
          - created
          - status
          - name
          type: string
          x-pulumi-model-property:
            enumComments: The field used to sort Neo agent tasks in list results.
            enumFieldComments:
            - Sort by the time of the most recent event on the task.
            - Sort by when the task was created.
            - Sort by task status, with running ordered before idle when ascending.
            - Sort by task name.
            enumTypeName: AgentTaskSortField
      - description: Direction to sort the results in. Defaults to desc.
        in: query
        name: sortDirection
        schema:
          enum:
          - asc
          - desc
          type: string
          x-pulumi-model-property:
            enumComments: The direction used when sorting Neo agent tasks.
            enumFieldComments:
            - Sort in ascending order.
            - Sort in descending order.
            enumTypeName: AgentTaskSortDirection
      - description: Task type to filter by
        in: query
        name: taskType
        schema:
          enum:
          - sync
          - async
          type: string
          x-pulumi-model-property:
            enumComments: The origin category for a Neo agent task.
            enumFieldComments:
            - A task started directly by a user in an interactive flow.
            - A task started asynchronously by background signal infrastructure.
            enumTypeName: AgentTaskType
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAgentTasksResponse'
          description: OK
        '400':
          description: pageSize must be between 1 and 1000
      summary: ListTasks
      tags:
      - Neo
      x-pulumi-route-property:
        Visibility: Preview
    post:
      description: Creates a new agent task for the specified organization. The request must include a prompt (the user event message) that initiates the task. Set the 'permissionMode' field in the request body to restrict the agent to read-only operations. Returns the created task details including task ID, name, status, and timestamp.
      operationId: CreateTasks
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAgentTaskRequest'
        x-originalParamName: body
      responses:
        '201':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAgentTaskResponse'
          description: Created
        '400':
          description: prompt is required
      summary: CreateTasks
      tags:
      - Neo
      x-pulumi-route-property:
        Visibility: Preview
  /api/preview/agents/{orgName}/tasks/{taskID}:
    get:
      description: Retrieves metadata for a specific agent task, including its ID, name, status, creation timestamp, and associated entities. Returns 404 if the task does not exist.
      operationId: GetTask
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      - description: The agent task identifier
        in: path
        name: taskID
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentTask'
          description: OK
        '404':
          description: task
      summary: GetTask
      tags:
      - Neo
      x-pulumi-route-property:
        Visibility: Preview
    patch:
      description: Updates the settings or metadata of an agent task. Only the user who created the task can modify it.
      operationId: UpdateTask
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      - description: The agent task identifier
        in: path
        name: taskID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateTaskRequest'
        x-originalParamName: body
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AgentTask'
          description: OK
        '403':
          description: feature not enabled for organization
        '404':
          description: task not found or not owned by user
      summary: UpdateTask
      tags:
      - Neo
      x-pulumi-route-property:
        Visibility: Preview
    post:
      description: Sends a response to an ongoing agent task. Supported event types include user_message, user_confirmation, and user_cancel. Returns 409 if the task already has a pending request that has not completed.
      operationId: RespondToTask
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      - description: The agent task identifier
        in: path
        name: taskID
        required: true
        schema:
          type: string
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AgentRespondToTaskRequest'
        x-originalParamName: body
      responses:
        '202':
          description: Accepted
        '400':
          description: event field is required
        '404':
          description: task
        '409':
          description: cannot respond while a request is still ongoing
      summary: RespondToTask
      tags:
      - Neo
      x-pulumi-route-property:
        Visibility: Preview
  /api/preview/agents/{orgName}/tasks/{taskID}/events:
    get:
      description: Retrieves the event stream for a specific agent task. Events include agent messages, tool calls, status changes, and user interactions. Supports pagination via continuationToken with a configurable pageSize (1-1000).
      operationId: GetTaskEvents
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      - description: The agent task identifier
        in: path
        name: taskID
        required: true
        schema:
          type: string
      - description: Token for retrieving the next page of results
        in: query
        name: continuationToken
        schema:
          type: string
      - description: Number of results per page
        in: query
        name: pageSize
        schema:
          format: int64
          type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListAgentTaskEventsResponse'
          description: OK
        '400':
          description: pageSize must be between 1 and 1000
        '404':
          description: task
      summary: GetTaskEvents
      tags:
      - Neo
      x-pulumi-route-property:
        Visibility: Preview
  /api/preview/agents/{orgName}/tasks/{taskID}/events/stream:
    get:
      description: Streams events for a specific agent task as Server-Sent Events. Each SSE data frame contains a JSON-encoded AgentConsoleEvent. The stream delivers existing events immediately, then keeps the connection open to deliver new events in real time until the task completes.
      operationId: StreamTaskEvents
      parameters:
      - description: The organization name
        in: path
        name: orgName
        required: true
        schema:
          type: string
      - description: The agent task identifier
        in: path
        name: taskID
        required: true
        schema:
          type: string
      responses:
        '200':
          content:
            text/event-stream:
              schema:
                $ref: '#/components/schemas/AgentConsoleEvent'
          description: OK
        '404':
          description: task
      summary: StreamTaskEvents
      tags:
      - Neo
      x-pulumi-route-property:
        Visibility: Preview
components:
  schemas:
    AgentEntityDiff:
      description: Represents agent entity diff.
      properties:
        add:
          description: 'Entities to add to the Agent''s context.

            Entities must be valid, and will be automatically deleted if they are invalid.'
          items:
            $ref: '#/components/schemas/AgentEntity'
          type: array
          x-order: 1
        remove:
          description: Entities to remove from the Agent's context.
          items:
            $ref: '#/components/schemas/AgentEntity'
          type: array
          x-order: 2
      type: object
    ListAgentTasksResponse:
      description: Response containing a paginated list of agent tasks.
      properties:
        continuationToken:
          description: 'ContinuationToken can be used to fetch the next page of results.

            If null, there are no more results available.'
          type: string
          x-order: 2
        tasks:
          description: Tasks contains the list of tasks for this page.
          items:
            $ref: '#/components/schemas/AgentTask'
          type: array
          x-order: 1
      required:
      - tasks
      type: object
    AgentUserEvent:
      description: Represents an agent user event.
      discriminator:
        mapping:
          exec_tool_call: '#/components/schemas/AgentUserEventExecToolCall'
          tool_result: '#/components/schemas/AgentUserEventToolResult'
          user_cancel: '#/components/schemas/AgentUserEventCancel'
          user_confirmation: '#/components/schemas/AgentUserEventConfirmation'
          user_message: '#/components/schemas/AgentUserEventMessage'
        propertyName: type
      properties:
        entity_diff:
          $ref: '#/components/schemas/AgentEntityDiff'
          description: Entities to add or remove from the agent.
          x-order: 1
        timestamp:
          description: When the event occurred.
          format: date-time
          type: string
        type:
          type: string
      required:
      - timestamp
      - type
      type: object
    UpdateTaskRequest:
      description: Request to update a task.
      properties:
        approvalMode:
          description: 'Approval mode for this task. Null means no change. Valid values: ''manual'', ''auto'', ''balanced''.'
          enum:
          - manual
          - auto
          - balanced
          type: string
          x-order: 3
          x-pulumi-model-property:
            enumTypeName: NeoApprovalMode
            enumComments: NeoApprovalMode represents the default approval mode for Neo AI agent tasks in an organization
        isShared:
          description: Whether to share the task with other org members. Null means no change.
          type: boolean
          x-order: 2
        name:
          description: A new display name for the task. Null means no change. Must be between 1 and 255 characters after trimming whitespace.
          type: string
          x-order: 1
        permissionMode:
          description: The permission scope for the task. Null means no change.
          enum:
          - default
          - read-only
          type: string
          x-order: 4
          x-pulumi-model-property:
            enumTypeName: NeoPermissionMode
            enumComments: Permission scope for a Neo agent task. Controls the level of access the agent has when acting on behalf of the user.
            enumFieldNames:
            - Default
            - ReadOnly
      type: object
    ListAgentTaskEventsResponse:
      description: 'TODO: add polling support (via lastSeen)'
      properties:
        continuationToken:
          description: 'ContinuationToken can be used to fetch the next page of results.

            If null, there are no more results available.'
          type: string
          x-order: 2
        events:
          description: Events contains the list of events for this page.
          items:
            $ref: '#/components/schemas/AgentConsoleEvent'
          type: array
          x-order: 1
      required:
      - events
      type: object
    AgentConsoleEvent:
      description: A console event in an agent task conversation, either a user input or an agent response.
      discriminator:
        mapping:
          agentResponse: '#/components/schemas/AgentConsoleEventAgentResponse'
          userInput: '#/components/schemas/AgentConsoleEventUserInput'
        propertyName: type
      properties:
        id:
          description: The UUID of the event
          type: string
          x-order: 1
        isSynthetic:
          description: True when the event was synthesized by the backend rather than submitted directly by the user or agent runtime.
          type: boolean
          x-order: 2
        type:
          type: string
      required:
      - id
      - isSynthetic
      - type
      type: object
    AgentUserEventMessage:
      allOf:
      - $ref: '#/components/schemas/AgentUserEvent'
      - description: Represents an agent user event.
        properties:
          commands:
            additionalProperties:
              $ref: '#/components/schemas/AgentSlashCommand'
            description: Slash Commands the user selected when creating their message.
            type: object
            x-order: 2
          content:
            description: The exact natural language instruction from the user.
            type: string
            x-order: 1
        required:
        - content
        type: object
    AgentSlashCommand:
      description: An agent slash command.
      properties:
        builtIn:
          description: Whether this is a built-in system command (true) or user-created (false).
          type: boolean
          x-order: 4
        description:
          description: Human-readable description shown to users in the command palette.
          type: string
          x-order: 3
        modifiedAt:
          description: When the command was last modified, in ISO 8601 format.
          format: date-time
          type: string
          x-order: 5
        name:
          description: The slash command name (e.g. '/fix', '/explain'). Used to invoke the command.
          type: string
          x-order: 1
        prompt:
          description: The system prompt text sent to the AI when this command is invoked.
          type: string
          x-order: 2
        tag:
          description: Version tag for optimistic concurrency control.
          type: string
          x-order: 6
      required:
      - builtIn
      - description
      - modifiedAt
      - name
      - prompt
      - tag
      type: object
    AgentEntity:
      description: Represents agent entity.
      discriminator:
        mapping:
          policy_issue: '#/components/schemas/AgentEntityPolicyIssue'
          pull_request: '#/components/schemas/AgentEntityPR'
          repository: '#/components/schemas/AgentEntityRepository'
          stack: '#/components/schemas/AgentEntityStack'
        propertyName: type
      properties:
        type:
          type: string
      required:
      - type
      type: object
    AgentRespondToTaskRequest:
      description: The API payload for users responding to an existing agent task.
      properties:
        event:
          $ref: '#/components/schemas/AgentUserEvent'
          description: The event
          x-order: 1
      type: object
    CreateAgentTaskResponse:
      description: Response body for creating an agent task.
      properties:
        taskId:
          description: The task identifier
          type: string
          x-order: 1
      required:
      - taskId
      type: object
    UserInfo:
      description: 'UserInfo contains just the display information for a user.  This information may be returned from public APIs,

        and as such this structure must not contain sensitive information.  Please refer to User for this sort of thing.'
      properties:
        avatarUrl:
          description: The URL of the user's avatar image.
          type: string
          x-order: 3
        email:
          description: 'IMPORTANT: The email address of the user is only included on a few admin-only APIs.

            For nearly all APIs that return a UserInfo object, this will not be provided.

            considered sensitive information.'
          type: string
          x-order: 4
        githubLogin:
          description: The user's login name.
          type: string
          x-order: 2
        name:
          description: The user's display name.
          type: string
          x-order: 1
      required:
      - avatarUrl
      - githubLogin
      - name
      type: object
    AgentTask:
      description: A Pulumi Copilot agent task representing a conversation and its associated context.
      properties:
        approvalMode:
          description: 'Approval mode for this task. Valid values: ''manual'', ''auto'', ''balanced''.'
          enum:
          - manual
          - auto
          - balanced
          type: string
          x-order: 7
          x-pulumi-model-property:
            enumTypeName: NeoApprovalMode
            enumComments: NeoApprovalMode represents the default approval mode for Neo AI agent tasks in an organization
        asyncTriggerType:
          description: The async trigger source for this task. Null for sync tasks.
          enum:
          - scheduled
          - external_signal
          type: string
          x-order: 4
          x-pulumi-model-property:
            enumTypeName: AgentAsyncTriggerType
            enumComments: The async trigger source for a Neo agent task.
            enumFieldNames:
            - Scheduled
            - ExternalSignal
            enumFieldComments:
            - The task was started by a cron-driven scheduled signal.
            - The task was started in reaction to an external signal payload.
        contextUsedTokens:
          description: Total input tokens consumed across all model invocations for this task. Approximate context window usage.
          format: int32
          type: integer
          x-order: 16
        contextWindowTokens:
          description: Maximum context window size in tokens for the primary model used by this task.
          format: int32
          type: integer
          x-order: 17
        createdAt:
          description: When the task was created, in ISO 8601 format.
          format: date-time
          type: string
          x-order: 6
        createdBy:
          $ref: '#/components/schemas/UserInfo'
          description: Information about the user who created this task.
          x-order: 12
        entities:
          description: Pulumi entities (stacks, projects, etc.) that provide context for the agent.
          items:
            $ref: '#/components/schemas/AgentEntity'
          type: array
          x-order: 8
        id:
          description: Unique identifier for the task.
          type: string
          x-order: 1
        isShared:
          description: Whether this task is shared with other org members.
          type: boolean
          x-order: 10
        lastHeartbeat:
          description: When the task runtime last reported a heartbeat. Null if the runtime has never checked in.
          format: date-time
          type: string
          x-order: 15
        name:
          description: Display name for the task, typically auto-generated from the initial user message.
          type: string
          x-order: 2
        permissionMode:
          description: The permission scope for the task.
          enum:
          - default
          - read-only
          type: string
          x-order: 13
          x-pulumi-model-property:
            enumTypeName: NeoPermissionMode
            enumComments: Permission scope for a Neo agent task. Controls the level of access the agent has when acting on behalf of the user.
            enumFieldNames:
            - Default
            - ReadOnly
        planMode:
          description: Whether the task is in plan mode. Set based on the first user message.
          type: boolean
          x-order: 9
        runtimePhase:
          description: The current runtime phase for this task. Null until the runtime checks in.
          enum:
          - booting
          - ready
          - running
          type: string
          x-order: 14
          x-pulumi-model-property:
            enumTypeName: AgentTaskRuntimePhase
            enumComments: Runtime lifecycle phase for a Neo agent task runtime.
        sharedAt:
          description: When the task was first shared. Null if never shared.
          format: date-time
          type: string
          x-order: 11
        source:
          description: 'The origin that triggered this task. Valid values: ''console'', ''cli'', ''slack'', ''schedule'', ''api'', ''github''.'
          enum:
          - api
          - console
          - cli
          - slack
          - schedule
          - github
          type: string
          x-order: 20
          x-pulumi-model-property:
            enumTypeName: AgentTaskSource
            enumComments: Identifies the origin that triggered a Neo agent task.
            enumFieldComments:
            - Task created via the REST API without a more specific origin.
            - Task created from the Pulumi Cloud web console.
            - Task created from the Pulumi CLI.
            - Task created from the Slack integration.
            - Task created by a scheduled automation.
            - Task triggered from a GitHub integration.
        sourceAutomationID:
          description: The automation that spawned this task, if the task was created by an automation run.
          type: string
          x-order: 19
        status:
          description: Current execution status of the task.
          enum:
          - running
          - idle
          type: string
          x-order: 5
          x-pulumi-model-property:
            enumTypeName: AgentTaskStatus
            enumComments: 'Execution status of an agent task. Valid values: ''running'', ''idle''.'
        taskType:
          description: Whether the task was started synchronously by a user or asynchronously by background automation.
          enum:
          - sync
          - async
          type: string
          x-order: 3
          x-pulumi-model-property:
            enumTypeName: AgentTaskType
            enumComments: The origin category for a Neo agent task.
            enumFieldComments:
            - A task started directly by a user in an interactive flow.
            - A task started asynchronously by background signal infrastructure.
        toolExecutionMode:
          description: 'Where tools are executed for this task. Valid values: ''cloud'', ''cli''.'
          enum:
          - cloud
          - cli
          type: string
          x-order: 18
          x-pulumi-model-property:
            enumTypeName: ToolExecutionMode
            enumComments: Where tools are executed for an agent task.
      required:
      - approvalMode
      - createdAt
      - createdBy
      - entities
      - id
      - isShared
      - name
      - planMode
      - status
      - taskType
      type: object
    AgentTaskIntegrationRef:
      description: A reference to an integration enabled for an agent task. Structured as an object (rather than a bare string) so additional fields like instance name or scope can be added later without breaking the wire format.
      properties:
        id:
          description: The catalog integration ID (e.g. 'honeycomb', 'datadog').
          type: string
          x-order: 1
      required:
      - id
      type: object
    CreateAgentTaskRequest:
      description: Create a new task by sending the first event in the conversation.
      properties:
        approvalMode:
          description: Optional approval mode override for this task. If omitted, org default is used.
          enum:
          - manual
          - auto
          - balanced
          type: string
          x-order: 2
          x-pulumi-model-property:
            enumTypeName: NeoApprovalMode
            enumComments: NeoApprovalMode represents the default approval mode for Neo AI agent tasks in an organization
        enabledIntegrations:
          description: 'Optional list of integrations to enable for this task. Semantics: omitted/null → inherit all org-enabled integrations; empty list → explicit opt-out (no integration credentials for this task); populated list → whitelist of specific integrations by ID. Modeled as an object array rather than a bare string array so multi-instance support (instance_name, scope, etc.) can be added later without a wire break.'
          items:
            $ref: '#/components/schemas/AgentTaskIntegrationRef'
          type: array
          x-order: 6
        message:
          $ref: '#/components/schemas/AgentUserEventMessage'
          description: The message content
          x-order: 1
        permissionMode:
          description: Controls the permission scope for the task. When omitted, defaults to 'default' (the agent uses the creating user's full permissions).
          enum:
          - default
          - read-only
          type: string
          x-order: 4
          x-pulumi-model-property:
            enumTypeName: NeoPermissionMode
            enumComments: Permission scope for a Neo agent task. Controls the level of access the agent has when acting on behalf of the user.
            enumFieldNames:
            - Default
            - ReadOnly
        planMode:
          description: Whether to enable plan mode for this task.
          type: boolean
          x-order: 3
        source:
          description: The origin that triggered this task. Defaults to 'api' if omitted.
          enum:
          - api
          - console
          - cli
          - slack
          - schedule
          - github
          type: string
          x-order: 7
          x-pulumi-model-property:
            enumTypeName: AgentTaskSource
            enumComments: Identifies the origin that triggered a Neo agent task.
            enumFieldComments:
            - Task created via the REST API without a more specific origin.
            - Task created from the Pulumi Cloud web console.
            - Task created from the Pulumi CLI.
            - Task created from the Slack integration.
            - Task created by a scheduled automation.
            - Task triggered from a GitHub integration.
        toolExecutionMode:
          description: Where tools should be executed. Defaults to 'cloud' if omitted.
          enum:
          - cloud
          - cli
          type: string
          x-order: 5
          x-pulumi-model-property:
            enumTypeName: ToolExecutionMode
            enumComments: Where tools are executed for an agent task.
      type: object