Asana · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Asana Portfolios API

13 actions 13 updates phrasing extends openapi/asana-portfolios-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Asana's API. It is a proposal applied on top of the contract, not a document Asana publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 13

$.info
$.paths['/portfolios'].get
$.paths['/portfolios'].post
$.paths['/portfolios/{portfolio_gid}'].get
$.paths['/portfolios/{portfolio_gid}'].put
$.paths['/portfolios/{portfolio_gid}'].delete
$.paths['/portfolios/{portfolio_gid}/items'].get
$.paths['/portfolios/{portfolio_gid}/addItem'].post
$.paths['/portfolios/{portfolio_gid}/removeItem'].post
$.paths['/portfolios/{portfolio_gid}/addCustomFieldSetting'].post
$.paths['/portfolios/{portfolio_gid}/removeCustomFieldSetting'].post
$.paths['/portfolios/{portfolio_gid}/addMembers'].post
$.paths['/portfolios/{portfolio_gid}/removeMembers'].post

OpenAPI Overlay

Raw ↑
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
  title: API Evangelist conversational phrasing for Asana Portfolios API
  version: 1.0.0
extends: openapi/asana-portfolios-api-openapi.yml
actions:
- target: $.info
  update:
    x-apievangelist-phrasing:
      method: generated
      generated: '2026-10-01'
      generator: build-phrasing.py
      label: Generated by API Evangelist
      operations: 12
- target: $.paths['/portfolios'].get
  update:
    x-apievangelist-phrasing:
      intent: List portfolios I own in a workspace
      effect: read
      questions:
      - Which portfolios do I own in a workspace?
      - Can I list portfolios for a specific owner?
      instructions:
      - text: List my portfolios in workspace {workspace}.
        slots:
          workspace: query.workspace
      - text: Show portfolios in workspace {workspace} owned by {owner}.
        slots:
          workspace: query.workspace
          owner: query.owner
      method: generated
      generated: '2026-10-01'
- target: $.paths['/portfolios'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a portfolio
      effect: write
      questions:
      - How do I create a portfolio in Asana?
      - Do portfolios made through the API get the same default views as ones made in the UI?
      instructions:
      - text: Create a portfolio named {portfolio} in my workspace.
        slots:
          portfolio: requestBody.data
      - text: Set up a new portfolio with {fields}.
        slots:
          fields: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/portfolios/{portfolio_gid}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a portfolio's details
      effect: read
      questions:
      - What's in the full record of a portfolio?
      - Can I look up a portfolio's owner and color by ID?
      instructions:
      - text: Show the details of portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
      - text: Fetch portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/portfolios/{portfolio_gid}'].put
  update:
    x-apievangelist-phrasing:
      intent: Update a portfolio
      effect: write
      questions:
      - Can I rename a portfolio or change its color?
      - Which portfolio fields stay unchanged when I send a partial update?
      instructions:
      - text: Rename portfolio {portfolio} to {name}.
        slots:
          portfolio: path.portfolio_gid
          name: requestBody.data
      - text: Update portfolio {portfolio} with {changes}.
        slots:
          portfolio: path.portfolio_gid
          changes: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/portfolios/{portfolio_gid}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a portfolio
      effect: destructive
      questions:
      - Can I delete a portfolio I no longer use?
      - What does deleting a portfolio return?
      instructions:
      - text: Delete portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
      - text: Remove portfolio {portfolio} permanently.
        slots:
          portfolio: path.portfolio_gid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/portfolios/{portfolio_gid}/items'].get
  update:
    x-apievangelist-phrasing:
      intent: List the projects in a portfolio
      effect: read
      questions:
      - Which projects are inside a portfolio?
      - Can I page through a portfolio's items?
      instructions:
      - text: List the items in portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
      - text: Show the projects tracked by portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
      method: generated
      generated: '2026-10-01'
- target: $.paths['/portfolios/{portfolio_gid}/addItem'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a project to a portfolio
      effect: write
      questions:
      - How do I put a project into a portfolio?
      - Can I control where an item lands in a portfolio's order?
      instructions:
      - text: Add project {item} to portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
          item: requestBody.data
      - text: Track item {item} in portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
          item: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/portfolios/{portfolio_gid}/removeItem'].post
  update:
    x-apievangelist-phrasing:
      intent: Remove a project from a portfolio
      effect: write
      questions:
      - Can I take a project out of a portfolio without deleting it?
      - How do I stop tracking an item in a portfolio?
      instructions:
      - text: Remove item {item} from portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
          item: requestBody.data
      - text: Take project {item} out of portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
          item: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/portfolios/{portfolio_gid}/addCustomFieldSetting'].post
  update:
    x-apievangelist-phrasing:
      intent: Add a custom field to a portfolio
      effect: write
      questions:
      - How do I add a custom field column to a portfolio?
      - Can portfolios have their own custom fields?
      instructions:
      - text: Add custom field {custom_field} to portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
          custom_field: requestBody.data
      - text: Attach field {custom_field} to portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
          custom_field: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/portfolios/{portfolio_gid}/removeCustomFieldSetting'].post
  update:
    x-apievangelist-phrasing:
      intent: Remove a custom field from a portfolio
      effect: write
      questions:
      - Can I detach a custom field from a portfolio?
      - What's the way to drop a field column from a portfolio?
      instructions:
      - text: Remove custom field {custom_field} from portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
          custom_field: requestBody.data
      - text: Detach field {custom_field} from portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
          custom_field: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/portfolios/{portfolio_gid}/addMembers'].post
  update:
    x-apievangelist-phrasing:
      intent: Add users to a portfolio
      effect: write
      questions:
      - How do I share a portfolio with teammates?
      - Can I add several users to a portfolio at once?
      instructions:
      - text: Add users {users} to portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
          users: requestBody.data
      - text: Share portfolio {portfolio} with members {users}.
        slots:
          portfolio: path.portfolio_gid
          users: requestBody.data
      method: generated
      generated: '2026-10-01'
- target: $.paths['/portfolios/{portfolio_gid}/removeMembers'].post
  update:
    x-apievangelist-phrasing:
      intent: Remove users from a portfolio
      effect: write
      questions:
      - Can I revoke someone's access to a portfolio?
      - What's returned after users are removed from a portfolio?
      instructions:
      - text: Remove users {users} from portfolio {portfolio}.
        slots:
          portfolio: path.portfolio_gid
          users: requestBody.data
      - text: Revoke portfolio {portfolio} access for {users}.
        slots:
          portfolio: path.portfolio_gid
          users: requestBody.data
      method: generated
      generated: '2026-10-01'