# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Adobe Workfront Portfolio API version: 1.0.0 extends: openapi/adobe-suite-portfolio-api-openapi.yml actions: - target: $.info update: x-apievangelist-phrasing: method: generated generated: '2026-09-26' generator: build-phrasing.py label: Generated by API Evangelist operations: 21 - target: $.paths['/portfolio/{id}'].get update: x-apievangelist-phrasing: intent: Look up one portfolio effect: read questions: - What's the call to pull up a single Workfront portfolio by its ID? - Can I limit which fields come back when I open one portfolio? instructions: - text: Show portfolio {id}. slots: id: path.id - text: Open portfolio {id} and return only {fields}. slots: id: path.id fields: query.fields method: generated generated: '2026-09-26' - target: $.paths['/portfolio/{id}'].put update: x-apievangelist-phrasing: intent: Update one portfolio effect: write questions: - How do I change the details of an existing portfolio? - Can I edit a single portfolio and get specific fields back afterward? instructions: - text: Edit portfolio {id} with the changes I give you. slots: id: path.id - text: Update portfolio {id} and return {fields} after saving. slots: id: path.id fields: query.fields method: generated generated: '2026-09-26' - target: $.paths['/portfolio/{id}'].delete update: x-apievangelist-phrasing: intent: Delete one portfolio effect: destructive questions: - Can I remove a single portfolio I no longer need? - Is there a force option when deleting one portfolio? instructions: - text: Delete portfolio {id}. slots: id: path.id - text: Force-delete portfolio {id} with force set to {force}. slots: id: path.id force: query.force method: generated generated: '2026-09-26' - target: $.paths['/portfolio'].get update: x-apievangelist-phrasing: intent: Fetch several portfolios by ID effect: read questions: - Can I retrieve a batch of portfolios in one call when I know their IDs? - Which call returns multiple known portfolios at once? instructions: - text: Fetch portfolios {id}. slots: id: query.id - text: Get the portfolios with IDs {id}, showing just {fields}. slots: id: query.id fields: query.fields method: generated generated: '2026-09-26' - target: $.paths['/portfolio'].put update: x-apievangelist-phrasing: intent: Update many portfolios at once effect: write questions: - How do I bulk edit several portfolios in a single request? - Can I push the same change across multiple portfolios together? instructions: - text: Apply these edits to all the portfolios I list. - text: Bulk update the portfolios and return {fields} for each. slots: fields: query.fields method: generated generated: '2026-09-26' - target: $.paths['/portfolio'].post update: x-apievangelist-phrasing: intent: Create a portfolio effect: write questions: - How do I set up a new portfolio to group my programs and projects? - What do I send to create a portfolio in Workfront? instructions: - text: Create a new portfolio with the name and details I provide. - text: Add a portfolio and return {fields} once it exists. slots: fields: query.fields method: generated generated: '2026-09-26' - target: $.paths['/portfolio'].delete update: x-apievangelist-phrasing: intent: Delete many portfolios at once effect: destructive questions: - Can I bulk delete several portfolios by listing their IDs? - Is there a way to clear out a batch of old portfolios in one go? instructions: - text: Bulk delete portfolios {id}. slots: id: query.id - text: Remove every portfolio in {id} using force {force}. slots: id: query.id force: query.force method: generated generated: '2026-09-26' - target: $.paths['/portfolio/count'].get update: x-apievangelist-phrasing: intent: Count portfolios effect: read questions: - How many portfolios match a given filter? - Can I get just the total number of portfolios without the records? instructions: - text: Count portfolios where {filters}. slots: filters: query.filters - text: Tell me how many portfolios we have. method: generated generated: '2026-09-26' - target: $.paths['/portfolio/search'].get update: x-apievangelist-phrasing: intent: Search portfolios effect: read questions: - What's the way to find portfolios by owner, status or other criteria? - Can I search portfolios with paging and sort options? instructions: - text: Search portfolios matching {filters}. slots: filters: query.filters - text: Find portfolios where {filters} and list {fields} for each. slots: filters: query.filters fields: query.fields method: generated generated: '2026-09-26' - target: $.paths['/portfolio/report'].get update: x-apievangelist-phrasing: intent: Run an aggregate report on portfolios effect: read questions: - Can I get grouped totals across portfolios as a report? - Which call gives a report-style summary of portfolios? instructions: - text: Run a portfolio report filtered by {filters}. slots: filters: query.filters - text: Summarize portfolios as a report using {listOptions}. slots: listOptions: query.listOptions method: generated generated: '2026-09-26' - target: $.paths['/portfolio/{id}/share'].put update: x-apievangelist-phrasing: intent: Share one portfolio with a user or team effect: write questions: - How do I give a colleague or team access to one of my portfolios? - Can I grant view-only access to a portfolio and forbid certain actions? instructions: - text: Share portfolio {id} with {accessorObjCode} {accessorID} at {coreAction} access. slots: id: path.id accessorObjCode: query.accessorObjCode accessorID: query.accessorID coreAction: query.coreAction - text: Grant {accessorID} {coreAction} on portfolio {id} but forbid {forbiddenActions}. slots: accessorID: query.accessorID coreAction: query.coreAction id: path.id forbiddenActions: query.forbiddenActions method: generated generated: '2026-09-26' - target: $.paths['/portfolio/share'].put update: x-apievangelist-phrasing: intent: Share several portfolios at once effect: write questions: - Can I share a whole set of portfolios with the same person in one request? - Is there a batch call to grant access to multiple portfolios? instructions: - text: Share portfolios {id} with {accessorObjCode} {accessorID} as {coreAction}. slots: id: query.id accessorObjCode: query.accessorObjCode accessorID: query.accessorID coreAction: query.coreAction - text: Batch share portfolios {id} to user {accessorID} with {coreAction} rights. slots: id: query.id accessorID: query.accessorID coreAction: query.coreAction method: generated generated: '2026-09-26' - target: $.paths['/portfolio/{id}/unshare'].put update: x-apievangelist-phrasing: intent: Remove someone's access to one portfolio effect: destructive questions: - How do I stop sharing a portfolio with a particular user? - Can I revoke a team's access to a single portfolio? instructions: - text: Unshare portfolio {id} from {accessorObjCode} {accessorID}. slots: id: path.id accessorObjCode: query.accessorObjCode accessorID: query.accessorID - text: Revoke {accessorID}'s access to portfolio {id}. slots: accessorID: query.accessorID id: path.id method: generated generated: '2026-09-26' - target: $.paths['/portfolio/unshare'].put update: x-apievangelist-phrasing: intent: Remove access to several portfolios at once effect: destructive questions: - Can I pull one user's access from many portfolios in a single call? - How do I batch-revoke sharing across a list of portfolios? instructions: - text: Unshare portfolios {id} from {accessorObjCode} {accessorID}. slots: id: query.id accessorObjCode: query.accessorObjCode accessorID: query.accessorID - text: Batch revoke {accessorID} from every portfolio in {id}. slots: accessorID: query.accessorID id: query.id method: generated generated: '2026-09-26' - target: $.paths['/portfolio/{id}/sharePublic'].put update: x-apievangelist-phrasing: intent: Make one portfolio publicly shared effect: write questions: - Can I publish a portfolio so anyone in the organization can see it? - Can I set a public share on a portfolio with restricted actions? instructions: - text: Share portfolio {id} publicly with {coreAction} access. slots: id: path.id coreAction: query.coreAction - text: Make portfolio {id} public as {coreAction}, forbidding {forbiddenActions}. slots: id: path.id coreAction: query.coreAction forbiddenActions: query.forbiddenActions method: generated generated: '2026-09-26' - target: $.paths['/portfolio/sharePublic'].put update: x-apievangelist-phrasing: intent: Make several portfolios publicly shared effect: write questions: - Can I make a group of portfolios public in one request? - What's the batch call for publicly sharing many portfolios? instructions: - text: Publicly share portfolios {id} with {coreAction} access. slots: id: query.id coreAction: query.coreAction - text: Batch publish portfolios {id} as {coreAction} but block {forbiddenActions}. slots: id: query.id coreAction: query.coreAction forbiddenActions: query.forbiddenActions method: generated generated: '2026-09-26' - target: $.paths['/portfolio/{id}/unsharePublic'].put update: x-apievangelist-phrasing: intent: Remove the public share from one portfolio effect: destructive questions: - What takes a portfolio out of public view again? - Can I turn off public sharing on just one portfolio? instructions: - text: Remove the public share from portfolio {id}. slots: id: path.id - text: Make portfolio {id} private again. slots: id: path.id method: generated generated: '2026-09-26' - target: $.paths['/portfolio/unsharePublic'].put update: x-apievangelist-phrasing: intent: Remove public shares from several portfolios effect: destructive questions: - Can I switch off public sharing for many portfolios at once? - Which call batch-removes public access from a list of portfolios? instructions: - text: Remove public sharing from portfolios {id}. slots: id: query.id - text: Take portfolios {id} out of public view in one batch. slots: id: query.id method: generated generated: '2026-09-26' - target: $.paths['/portfolio/calculateDataExtension'].put update: x-apievangelist-phrasing: intent: Recalculate a portfolio's custom data effect: write questions: - How do I refresh calculated custom fields on a portfolio? - Can I force the data extension values on a portfolio to recompute? instructions: - text: Recalculate the custom data extension fields on portfolio {ID}. slots: ID: query.ID - text: Refresh calculated custom form values for portfolio {ID}. slots: ID: query.ID method: generated generated: '2026-09-26' - target: $.paths['/portfolio/linkExternalObject'].put update: x-apievangelist-phrasing: intent: Link a portfolio to an external object effect: write questions: - How do I connect a portfolio to a record in an integrated external system? - Can I attach an external object URL to a portfolio by integration type? instructions: - text: Link portfolio {objID} to external object {linkedObjectID} via {integrationType}. slots: objID: query.objID linkedObjectID: query.linkedObjectID integrationType: query.integrationType - text: Attach external item {linkedObjectID} at {URL} to portfolio {objID}. slots: linkedObjectID: query.linkedObjectID URL: query.URL objID: query.objID method: generated generated: '2026-09-26' - target: $.paths['/portfolio/unlinkExternalObject'].put update: x-apievangelist-phrasing: intent: Unlink an external object from a portfolio effect: destructive questions: - Is it possible to disconnect a portfolio from an external system record? - Can I remove the integration link between a portfolio and an outside object? instructions: - text: Unlink external object {linkedObjectID} from portfolio {objID}. slots: linkedObjectID: query.linkedObjectID objID: query.objID - text: Remove the {integrationType} link on portfolio {objID}. slots: integrationType: query.integrationType objID: query.objID method: generated generated: '2026-09-26'