Power BI · OpenAPI Overlay 1.0.0
API Evangelist conversational phrasing for Power BI REST Groups API
13 actions
13 updates
phrasing
extends
openapi/power-bi-groups-api-openapi.yml
Generated by API Evangelist
Written by API Evangelist tooling for Power BI's API. It is a proposal applied on top of the contract, not a document Power BI publishes.
What the actions change
x-apievangelist-phrasing
Targets 13
$.info
$.paths['/groups'].get
$.paths['/groups'].post
$.paths['/groups/{groupId}'].delete
$.paths['/groups/{groupId}/users'].get
$.paths['/groups/{groupId}/users'].post
$.paths['/groups/{groupId}/users/{userId}'].put
$.paths['/groups/{groupId}/users/{userId}'].delete
$.paths['/groups/{groupId}/datasets'].get
$.paths['/groups/{groupId}/reports'].get
$.paths['/groups/{groupId}/dashboards'].get
$.paths['/groups/{groupId}/imports'].get
$.paths['/groups/{groupId}/imports'].post
OpenAPI Overlay
# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand.
overlay: 1.0.0
info:
title: API Evangelist conversational phrasing for Power BI REST Groups API
version: 1.0.0
extends: openapi/power-bi-groups-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['/groups'].get
update:
x-apievangelist-phrasing:
intent: List workspaces I can access
effect: read
questions:
- Which Power BI workspaces do I have access to?
- Can I filter workspaces by name or page through a long list?
- Which of my workspaces run on a dedicated capacity?
instructions:
- text: List all my workspaces.
- text: List workspaces matching {filter}.
slots:
filter: query.$filter
- text: Show the first {top} workspaces, skipping {skip}.
slots:
top: query.$top
skip: query.$skip
method: generated
generated: '2026-10-01'
- target: $.paths['/groups'].post
update:
x-apievangelist-phrasing:
intent: Create a workspace
effect: write
questions:
- How do I create a new workspace for my team?
- Can I set up a fresh workspace just by giving it a name?
instructions:
- text: Create a workspace named {name}.
slots:
name: requestBody.name
- text: Set up a new team workspace called {name}.
slots:
name: requestBody.name
method: generated
generated: '2026-10-01'
- target: $.paths['/groups/{groupId}'].delete
update:
x-apievangelist-phrasing:
intent: Delete a workspace
effect: destructive
questions:
- How do I delete a workspace I no longer need?
- Does deleting a workspace permanently remove its reports, dashboards and datasets?
instructions:
- text: Delete workspace {groupId}.
slots:
groupId: path.groupId
- text: Permanently remove workspace {groupId} and everything in it.
slots:
groupId: path.groupId
method: generated
generated: '2026-10-01'
- target: $.paths['/groups/{groupId}/users'].get
update:
x-apievangelist-phrasing:
intent: List a workspace's members
effect: read
questions:
- Who has access to a particular workspace?
- What access rights does each member of a workspace have?
instructions:
- text: List the users of workspace {groupId}.
slots:
groupId: path.groupId
- text: Show who can access workspace {groupId} and their roles.
slots:
groupId: path.groupId
method: generated
generated: '2026-10-01'
- target: $.paths['/groups/{groupId}/users'].post
update:
x-apievangelist-phrasing:
intent: Add a user to a workspace
effect: write
questions:
- How do I give a colleague access to a workspace?
- Can I add someone to a workspace as a Viewer instead of a Member?
instructions:
- text: Add {emailAddress} to workspace {groupId} as {groupUserAccessRight}.
slots:
emailAddress: requestBody.emailAddress
groupId: path.groupId
groupUserAccessRight: requestBody.groupUserAccessRight
- text: Give {emailAddress} {groupUserAccessRight} rights in the {groupId} workspace.
slots:
emailAddress: requestBody.emailAddress
groupId: path.groupId
groupUserAccessRight: requestBody.groupUserAccessRight
method: generated
generated: '2026-10-01'
- target: $.paths['/groups/{groupId}/users/{userId}'].put
update:
x-apievangelist-phrasing:
intent: Change a workspace member's access right
effect: write
questions:
- How do I promote an existing workspace member from Contributor to Admin?
- Can I change the role of someone already in a workspace?
instructions:
- text: Change {userId} ({emailAddress}) in workspace {groupId} to {groupUserAccessRight}.
slots:
userId: path.userId
groupId: path.groupId
groupUserAccessRight: requestBody.groupUserAccessRight
emailAddress: requestBody.emailAddress
- text: Update existing member {emailAddress} in workspace {groupId} to access right {groupUserAccessRight}, user ID {userId}.
slots:
emailAddress: requestBody.emailAddress
groupId: path.groupId
groupUserAccessRight: requestBody.groupUserAccessRight
userId: path.userId
method: generated
generated: '2026-10-01'
- target: $.paths['/groups/{groupId}/users/{userId}'].delete
update:
x-apievangelist-phrasing:
intent: Remove a user from a workspace
effect: destructive
questions:
- How do I revoke someone's access to a workspace?
- Can I remove a former teammate from a workspace?
instructions:
- text: Remove {userId} from workspace {groupId}.
slots:
userId: path.userId
groupId: path.groupId
- text: Revoke all of {userId}'s access to workspace {groupId}.
slots:
userId: path.userId
groupId: path.groupId
method: generated
generated: '2026-10-01'
- target: $.paths['/groups/{groupId}/datasets'].get
update:
x-apievangelist-phrasing:
intent: List datasets in a workspace
effect: read
questions:
- Which datasets are in a shared team workspace?
- Can I list datasets for a workspace other than My Workspace?
instructions:
- text: List the datasets in workspace {groupId}.
slots:
groupId: path.groupId
- text: Show all datasets inside the {groupId} workspace.
slots:
groupId: path.groupId
method: generated
generated: '2026-10-01'
- target: $.paths['/groups/{groupId}/reports'].get
update:
x-apievangelist-phrasing:
intent: List reports in a workspace
effect: read
questions:
- Which reports are in a shared team workspace?
- Can I get embed info for every report in one workspace?
instructions:
- text: List the reports in workspace {groupId}.
slots:
groupId: path.groupId
- text: Show all reports inside the {groupId} workspace.
slots:
groupId: path.groupId
method: generated
generated: '2026-10-01'
- target: $.paths['/groups/{groupId}/dashboards'].get
update:
x-apievangelist-phrasing:
intent: List dashboards in a workspace
effect: read
questions:
- Which dashboards live in a shared workspace rather than My Workspace?
- Can I list the dashboards of one team workspace?
instructions:
- text: List the dashboards in workspace {groupId}.
slots:
groupId: path.groupId
- text: Show all dashboards inside the {groupId} workspace.
slots:
groupId: path.groupId
method: generated
generated: '2026-10-01'
- target: $.paths['/groups/{groupId}/imports'].get
update:
x-apievangelist-phrasing:
intent: List imports in a workspace
effect: read
questions:
- Did my PBIX upload to a workspace finish importing?
- What content has been imported into a workspace, and with what status?
instructions:
- text: List the imports in workspace {groupId}.
slots:
groupId: path.groupId
- text: Show the status of recent imports into workspace {groupId}.
slots:
groupId: path.groupId
method: generated
generated: '2026-10-01'
- target: $.paths['/groups/{groupId}/imports'].post
update:
x-apievangelist-phrasing:
intent: Import a PBIX or Excel file into a workspace
effect: write
questions:
- How do I upload a PBIX file into a workspace?
- Can I import an Excel workbook and decide what happens if the dataset name already exists?
instructions:
- text: Import {file} into workspace {groupId} as dataset {datasetDisplayName}.
slots:
file: requestBody.file
groupId: path.groupId
datasetDisplayName: query.datasetDisplayName
- text: Upload {file} to workspace {groupId} named {datasetDisplayName}, using {nameConflict} on a name clash.
slots:
file: requestBody.file
groupId: path.groupId
datasetDisplayName: query.datasetDisplayName
nameConflict: query.nameConflict
method: generated
generated: '2026-10-01'