Pulumi · Capability

Pulumi APIs — AI Agents

Pulumi APIs — AI Agents. 8 operations. Lead operation: ListTasks. Self-contained Naftiko capability covering one Pulumi business surface.

Run with Naftiko PulumiAI Agents

What You Can Do

GET
Listtasks — ListTasks
/v1/agents/{orgname}/tasks
POST
Createtasks — CreateTasks
/v1/agents/{orgname}/tasks
GET
Gettask — GetTask
/v1/agents/{orgname}/tasks/{taskid}
PATCH
Updatetask — UpdateTask
/v1/agents/{orgname}/tasks/{taskid}
POST
Respondtotask — RespondToTask
/v1/agents/{orgname}/tasks/{taskid}
POST
Canceltask — CancelTask
/v1/agents/{orgname}/tasks/{taskid}/cancel
GET
Gettaskevents — GetTaskEvents
/v1/agents/{orgname}/tasks/{taskid}/events
GET
Streamtaskevents — StreamTaskEvents
/v1/agents/{orgname}/tasks/{taskid}/events/stream

MCP Tools

listtasks

ListTasks

read-only idempotent
createtasks

CreateTasks

gettask

GetTask

read-only idempotent
updatetask

UpdateTask

idempotent
respondtotask

RespondToTask

canceltask

CancelTask

gettaskevents

GetTaskEvents

read-only idempotent
streamtaskevents

StreamTaskEvents

read-only idempotent

Capability Spec

pulumi-ai-agents.yaml Raw ↑
naftiko: 1.0.0-alpha2
info:
  label: Pulumi APIs — AI Agents
  description: 'Pulumi APIs — AI Agents. 8 operations. Lead operation: ListTasks. Self-contained Naftiko capability covering
    one Pulumi business surface.'
  tags:
  - Pulumi
  - AI Agents
  created: '2026-05-19'
  modified: '2026-05-19'
binds:
- namespace: env
  keys:
    PULUMI_API_KEY: PULUMI_API_KEY
capability:
  consumes:
  - type: http
    namespace: pulumi-ai-agents
    baseUri: ''
    description: Pulumi APIs — AI Agents business capability. Self-contained, no shared references.
    resources:
    - name: api-preview-agents-orgName-tasks
      path: /api/preview/agents/{orgName}/tasks
      operations:
      - name: listtasks
        method: GET
        description: ListTasks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgName
          in: path
          type: string
          description: The organization name
          required: true
        - name: continuationToken
          in: query
          type: string
          description: Token for retrieving the next page of results
        - name: pageSize
          in: query
          type: integer
          description: Number of results per page
        - name: sortBy
          in: query
          type: string
          description: Field to sort the results by. Defaults to lastEvent.
        - name: sortDirection
          in: query
          type: string
          description: Direction to sort the results in. Defaults to desc.
        - name: taskType
          in: query
          type: string
          description: Task type to filter by
      - name: createtasks
        method: POST
        description: CreateTasks
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgName
          in: path
          type: string
          description: The organization name
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-preview-agents-orgName-tasks-taskID
      path: /api/preview/agents/{orgName}/tasks/{taskID}
      operations:
      - name: gettask
        method: GET
        description: GetTask
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgName
          in: path
          type: string
          description: The organization name
          required: true
        - name: taskID
          in: path
          type: string
          description: The agent task identifier
          required: true
      - name: updatetask
        method: PATCH
        description: UpdateTask
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgName
          in: path
          type: string
          description: The organization name
          required: true
        - name: taskID
          in: path
          type: string
          description: The agent task identifier
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
      - name: respondtotask
        method: POST
        description: RespondToTask
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgName
          in: path
          type: string
          description: The organization name
          required: true
        - name: taskID
          in: path
          type: string
          description: The agent task identifier
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-preview-agents-orgName-tasks-taskID-cancel
      path: /api/preview/agents/{orgName}/tasks/{taskID}/cancel
      operations:
      - name: canceltask
        method: POST
        description: CancelTask
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgName
          in: path
          type: string
          description: The organization name
          required: true
        - name: taskID
          in: path
          type: string
          description: The agent task identifier
          required: true
        - name: body
          in: body
          type: object
          description: Request body (JSON).
          required: false
    - name: api-preview-agents-orgName-tasks-taskID-events
      path: /api/preview/agents/{orgName}/tasks/{taskID}/events
      operations:
      - name: gettaskevents
        method: GET
        description: GetTaskEvents
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgName
          in: path
          type: string
          description: The organization name
          required: true
        - name: taskID
          in: path
          type: string
          description: The agent task identifier
          required: true
        - name: continuationToken
          in: query
          type: string
          description: Token for retrieving the next page of results
        - name: pageSize
          in: query
          type: integer
          description: Number of results per page
    - name: api-preview-agents-orgName-tasks-taskID-events-stream
      path: /api/preview/agents/{orgName}/tasks/{taskID}/events/stream
      operations:
      - name: streamtaskevents
        method: GET
        description: StreamTaskEvents
        outputRawFormat: json
        outputParameters:
        - name: result
          type: object
          value: $.
        inputParameters:
        - name: orgName
          in: path
          type: string
          description: The organization name
          required: true
        - name: taskID
          in: path
          type: string
          description: The agent task identifier
          required: true
  exposes:
  - type: rest
    namespace: pulumi-ai-agents-rest
    port: 8080
    description: REST adapter for Pulumi APIs — AI Agents. One Spectral-compliant resource per consumed operation, prefixed
      with /v1.
    resources:
    - path: /v1/agents/{orgname}/tasks
      name: api-preview-agents-orgname-tasks
      description: REST surface for api-preview-agents-orgName-tasks.
      operations:
      - method: GET
        name: listtasks
        description: ListTasks
        call: pulumi-ai-agents.listtasks
        with:
          orgName: rest.orgName
          continuationToken: rest.continuationToken
          pageSize: rest.pageSize
          sortBy: rest.sortBy
          sortDirection: rest.sortDirection
          taskType: rest.taskType
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: createtasks
        description: CreateTasks
        call: pulumi-ai-agents.createtasks
        with:
          orgName: rest.orgName
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/agents/{orgname}/tasks/{taskid}
      name: api-preview-agents-orgname-tasks-taskid
      description: REST surface for api-preview-agents-orgName-tasks-taskID.
      operations:
      - method: GET
        name: gettask
        description: GetTask
        call: pulumi-ai-agents.gettask
        with:
          orgName: rest.orgName
          taskID: rest.taskID
        outputParameters:
        - type: object
          mapping: $.
      - method: PATCH
        name: updatetask
        description: UpdateTask
        call: pulumi-ai-agents.updatetask
        with:
          orgName: rest.orgName
          taskID: rest.taskID
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
      - method: POST
        name: respondtotask
        description: RespondToTask
        call: pulumi-ai-agents.respondtotask
        with:
          orgName: rest.orgName
          taskID: rest.taskID
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/agents/{orgname}/tasks/{taskid}/cancel
      name: api-preview-agents-orgname-tasks-taskid-cancel
      description: REST surface for api-preview-agents-orgName-tasks-taskID-cancel.
      operations:
      - method: POST
        name: canceltask
        description: CancelTask
        call: pulumi-ai-agents.canceltask
        with:
          orgName: rest.orgName
          taskID: rest.taskID
          body: rest.body
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/agents/{orgname}/tasks/{taskid}/events
      name: api-preview-agents-orgname-tasks-taskid-events
      description: REST surface for api-preview-agents-orgName-tasks-taskID-events.
      operations:
      - method: GET
        name: gettaskevents
        description: GetTaskEvents
        call: pulumi-ai-agents.gettaskevents
        with:
          orgName: rest.orgName
          taskID: rest.taskID
          continuationToken: rest.continuationToken
          pageSize: rest.pageSize
        outputParameters:
        - type: object
          mapping: $.
    - path: /v1/agents/{orgname}/tasks/{taskid}/events/stream
      name: api-preview-agents-orgname-tasks-taskid-events-stream
      description: REST surface for api-preview-agents-orgName-tasks-taskID-events-stream.
      operations:
      - method: GET
        name: streamtaskevents
        description: StreamTaskEvents
        call: pulumi-ai-agents.streamtaskevents
        with:
          orgName: rest.orgName
          taskID: rest.taskID
        outputParameters:
        - type: object
          mapping: $.
  - type: mcp
    namespace: pulumi-ai-agents-mcp
    port: 9090
    transport: http
    description: MCP adapter for Pulumi APIs — AI Agents. One tool per consumed operation, routed inline through this capability's
      consumes block.
    tools:
    - name: listtasks
      description: ListTasks
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pulumi-ai-agents.listtasks
      with:
        orgName: tools.orgName
        continuationToken: tools.continuationToken
        pageSize: tools.pageSize
        sortBy: tools.sortBy
        sortDirection: tools.sortDirection
        taskType: tools.taskType
      outputParameters:
      - type: object
        mapping: $.
    - name: createtasks
      description: CreateTasks
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: pulumi-ai-agents.createtasks
      with:
        orgName: tools.orgName
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: gettask
      description: GetTask
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pulumi-ai-agents.gettask
      with:
        orgName: tools.orgName
        taskID: tools.taskID
      outputParameters:
      - type: object
        mapping: $.
    - name: updatetask
      description: UpdateTask
      hints:
        readOnly: false
        destructive: false
        idempotent: true
      call: pulumi-ai-agents.updatetask
      with:
        orgName: tools.orgName
        taskID: tools.taskID
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: respondtotask
      description: RespondToTask
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: pulumi-ai-agents.respondtotask
      with:
        orgName: tools.orgName
        taskID: tools.taskID
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: canceltask
      description: CancelTask
      hints:
        readOnly: false
        destructive: false
        idempotent: false
      call: pulumi-ai-agents.canceltask
      with:
        orgName: tools.orgName
        taskID: tools.taskID
        body: tools.body
      outputParameters:
      - type: object
        mapping: $.
    - name: gettaskevents
      description: GetTaskEvents
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pulumi-ai-agents.gettaskevents
      with:
        orgName: tools.orgName
        taskID: tools.taskID
        continuationToken: tools.continuationToken
        pageSize: tools.pageSize
      outputParameters:
      - type: object
        mapping: $.
    - name: streamtaskevents
      description: StreamTaskEvents
      hints:
        readOnly: true
        destructive: false
        idempotent: true
      call: pulumi-ai-agents.streamtaskevents
      with:
        orgName: tools.orgName
        taskID: tools.taskID
      outputParameters:
      - type: object
        mapping: $.