# Generated by API Evangelist (build-phrasing.py). Our phrasing, not observed demand. overlay: 1.0.0 info: title: API Evangelist conversational phrasing for Identity.Governance Identity Governance.app Consent… version: 1.0.0 extends: openapi/azure-ad-identitygovernance-appconsentapprovalroute-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: 26 - target: $.paths['/identityGovernance/appConsent'].get update: x-apievangelist-phrasing: intent: Get the app consent approval container effect: read questions: - What sits under the app consent section of identity governance? - Can I read the admin consent workflow root object in one call? instructions: - text: Show the identity governance appConsent object. - text: Get the app consent approval route root. method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent'].delete update: x-apievangelist-phrasing: intent: Delete the app consent approval container effect: destructive questions: - Is it possible to remove the whole appConsent navigation property from identity governance? - Can I delete the app consent root only if its etag still matches? instructions: - text: Delete the appConsent property from identity governance. - text: Remove the app consent root with etag {etag}. slots: etag: header.If-Match method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent'].patch update: x-apievangelist-phrasing: intent: Update the app consent approval container effect: write questions: - How do I patch the appConsent root under identity governance? - Can I replace the set of consent requests held on the appConsent object? instructions: - text: Update the identity governance appConsent root with requests {requests}. slots: requests: requestBody.appConsentRequests - text: Patch the app consent approval container. method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests'].get update: x-apievangelist-phrasing: intent: List admin consent requests for apps effect: read questions: - Which apps have users asked an admin to approve access for? - Can I filter the pending admin consent requests by app name? - What admin consent requests exist across the tenant right now? instructions: - text: List all app consent requests in the tenant. - text: Find app consent requests matching {filter}. slots: filter: query.$filter method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests'].post update: x-apievangelist-phrasing: intent: Create an app consent request effect: write questions: - How do I open a new admin consent request for an app? - Can I record which scopes are still pending when creating a consent request? instructions: - text: Create a consent request for app {app_id} named {app_name}. slots: app_id: requestBody.appId app_name: requestBody.appDisplayName - text: Open an app consent request for {app_id} with pending scopes {scopes}. slots: app_id: requestBody.appId scopes: requestBody.pendingScopes method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}'].get update: x-apievangelist-phrasing: intent: Get an app consent request effect: read questions: - Which scopes are pending on one specific app consent request? - Can I read a single admin consent request by its ID? instructions: - text: Show app consent request {request_id}. slots: request_id: path.appConsentRequest-id - text: Get the app and pending scopes on consent request {request_id}. slots: request_id: path.appConsentRequest-id method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}'].delete update: x-apievangelist-phrasing: intent: Delete an app consent request effect: destructive questions: - How do I get rid of an app consent request that's no longer needed? - Can I delete a consent request only if nobody changed it since I read it? instructions: - text: Delete app consent request {request_id}. slots: request_id: path.appConsentRequest-id - text: Remove consent request {request_id} if its etag is {etag}. slots: request_id: path.appConsentRequest-id etag: header.If-Match method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}'].patch update: x-apievangelist-phrasing: intent: Update an app consent request effect: write questions: - How do I change the pending scopes on an existing app consent request? - Can I rename the app shown on a consent request that's already open? instructions: - text: Set the pending scopes on consent request {request_id} to {scopes}. slots: request_id: path.appConsentRequest-id scopes: requestBody.pendingScopes - text: Change the app display name on consent request {request_id} to {app_name}. slots: request_id: path.appConsentRequest-id app_name: requestBody.appDisplayName method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests'].get update: x-apievangelist-phrasing: intent: List user requests under an app consent request effect: read questions: - Who asked for consent to a particular app, and why? - Can I filter the individual user requests on an app consent request by status? instructions: - text: List the user consent requests for app consent request {request_id}. slots: request_id: path.appConsentRequest-id - text: Show user requests on {request_id} matching {filter}. slots: request_id: path.appConsentRequest-id filter: query.$filter method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests'].post update: x-apievangelist-phrasing: intent: Add a user's request to an app consent request effect: write questions: - How do I file a user's request for access to an app with a justification? - Can I attach a reason when adding a user consent request? instructions: - text: Add a user consent request to {request_id} with reason {reason}. slots: request_id: path.appConsentRequest-id reason: requestBody.reason - text: Create a new user request under app consent request {request_id}. slots: request_id: path.appConsentRequest-id method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/{userConsentRequest-id}'].get update: x-apievangelist-phrasing: intent: Get one user's consent request effect: read questions: - What reason did a user give when requesting consent for an app? - Can I read one user consent request and its status by ID? instructions: - text: Show user consent request {user_request_id} on app request {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id - text: Get the reason and status of user request {user_request_id} under {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/{userConsentRequest-id}'].delete update: x-apievangelist-phrasing: intent: Delete a user's consent request effect: destructive questions: - How do I withdraw one person's request for app consent? - Can I delete a single user request without deleting the whole app consent request? instructions: - text: Delete user consent request {user_request_id} from app request {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id - text: Remove user request {user_request_id} under {request_id} if the etag is {etag}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id etag: header.If-Match method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/{userConsentRequest-id}'].patch update: x-apievangelist-phrasing: intent: Update a user's consent request effect: write questions: - How do I change the justification on a user's consent request? - Can I edit a user consent request after it was submitted? instructions: - text: Change the reason on user request {user_request_id} under {request_id} to {reason}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id reason: requestBody.reason - text: Update user consent request {user_request_id} on app request {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/{userConsentRequest-id}/approval'].get update: x-apievangelist-phrasing: intent: Get the approval decision on a user consent request effect: read questions: - Was a user's app consent request approved or denied? - Can I see the approval object behind a single user consent request? instructions: - text: Show the approval for user request {user_request_id} on {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id - text: Get the approval decision attached to consent request {user_request_id} in {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/{userConsentRequest-id}/approval'].delete update: x-apievangelist-phrasing: intent: Delete the approval on a user consent request effect: destructive questions: - How do I clear the approval object from a user's consent request? - Can I delete an approval record while keeping the user request itself? instructions: - text: Delete the approval on user request {user_request_id} under {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id - text: Remove approval from {user_request_id} in app request {request_id} with etag {etag}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id etag: header.If-Match method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/{userConsentRequest-id}/approval'].patch update: x-apievangelist-phrasing: intent: Update the approval on a user consent request effect: write questions: - How do I change the stages defined on a consent approval? - Can I patch the approval object for one user's app consent request? instructions: - text: Update the approval stages for user request {user_request_id} on {request_id} to {stages}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id stages: requestBody.stages - text: Patch the approval on consent request {user_request_id} under {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/{userConsentRequest-id}/approval/stages'].get update: x-apievangelist-phrasing: intent: List the stages of a consent approval effect: read questions: - What review stages does a user's consent approval go through? - Can I see which approval stages are still in progress for a request? instructions: - text: List approval stages for user request {user_request_id} on {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id - text: Show stages of the approval on {user_request_id} in {request_id} matching {filter}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id filter: query.$filter method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/{userConsentRequest-id}/approval/stages'].post update: x-apievangelist-phrasing: intent: Add a stage to a consent approval effect: write questions: - How do I add a review stage to a consent approval? - Can I record a reviewer's result and justification when creating a stage? instructions: - text: Add an approval stage named {name} to user request {user_request_id} on {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id name: requestBody.displayName - text: Create a stage on {user_request_id} in {request_id} with result {result} and justification {justification}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id result: requestBody.reviewResult justification: requestBody.justification method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/{userConsentRequest-id}/approval/stages/{approvalStage-id}'].get update: x-apievangelist-phrasing: intent: Get one stage of a consent approval effect: read questions: - Who reviewed a particular approval stage and when? - Can I read the status of a single stage in a consent approval? instructions: - text: Show approval stage {stage_id} on user request {user_request_id} in {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id stage_id: path.approvalStage-id - text: Get reviewer and result for stage {stage_id} of {user_request_id} under {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id stage_id: path.approvalStage-id method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/{userConsentRequest-id}/approval/stages/{approvalStage-id}'].delete update: x-apievangelist-phrasing: intent: Delete a stage from a consent approval effect: destructive questions: - How do I remove a review stage from a user's consent approval? - Can I delete an approval stage guarded by an etag check? instructions: - text: Delete approval stage {stage_id} from user request {user_request_id} on {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id stage_id: path.approvalStage-id - text: Remove stage {stage_id} of {user_request_id} in {request_id} if its etag is {etag}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id stage_id: path.approvalStage-id etag: header.If-Match method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/{userConsentRequest-id}/approval/stages/{approvalStage-id}'].patch update: x-apievangelist-phrasing: intent: Record a decision on a consent approval stage effect: write questions: - How do I approve or deny a stage of a user's app consent request? - Can I add a justification when I record my review decision on a stage? instructions: - text: Set review result {result} on stage {stage_id} of {user_request_id} in {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id stage_id: path.approvalStage-id result: requestBody.reviewResult - text: Update stage {stage_id} on {user_request_id} under {request_id} with justification {justification}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id stage_id: path.approvalStage-id justification: requestBody.justification method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/{userConsentRequest-id}/approval/stages/$count'].get update: x-apievangelist-phrasing: intent: Count stages in a consent approval effect: read questions: - How many review stages does one consent approval have? - What's the number of approval stages matching a filter for a user request? instructions: - text: Count approval stages for user request {user_request_id} on {request_id}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id - text: Count stages on {user_request_id} in {request_id} that match {filter}. slots: request_id: path.appConsentRequest-id user_request_id: path.userConsentRequest-id filter: query.$filter method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/$count'].get update: x-apievangelist-phrasing: intent: Count user requests on an app consent request effect: read questions: - How many users have requested consent for a given app? - What number of user consent requests on an app match a filter? instructions: - text: Count user consent requests under app request {request_id}. slots: request_id: path.appConsentRequest-id - text: Count user requests on {request_id} matching {filter}. slots: request_id: path.appConsentRequest-id filter: query.$filter method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/{appConsentRequest-id}/userConsentRequests/microsoft.graph.filterByCurrentUser(on=\'{on}\')'].get update: x-apievangelist-phrasing: intent: List user consent requests I review for an app effect: read questions: - Which user requests for one app am I the reviewer on? - Can I see only the user consent requests assigned to me for a specific app? instructions: - text: List user requests on app consent request {request_id} where I am the {on}. slots: request_id: path.appConsentRequest-id 'on': path.on - text: Show consent requests for {request_id} filtered to the current user as {on}. slots: request_id: path.appConsentRequest-id 'on': path.on method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/$count'].get update: x-apievangelist-phrasing: intent: Count app consent requests effect: read questions: - How many admin consent requests for apps are there in total? - What's the count of app consent requests matching a search? instructions: - text: Count all app consent requests. - text: Count app consent requests that match {term}. slots: term: query.$search method: generated generated: '2026-10-01' - target: $.paths['/identityGovernance/appConsent/appConsentRequests/microsoft.graph.filterByCurrentUser(on=\'{on}\')'].get update: x-apievangelist-phrasing: intent: List in-progress app consent requests I review effect: read questions: - Which app consent requests are waiting on me as reviewer? - Can I list only the apps whose consent requests are in progress and assigned to me? instructions: - text: List app consent requests where I am the {on} and the review is in progress. slots: 'on': path.on - text: Show apps awaiting my consent decision as {on}. slots: 'on': path.on method: generated generated: '2026-10-01'