Microsoft Entra ID (formerly Azure AD) · OpenAPI Overlay 1.0.0

API Evangelist conversational phrasing for Users.user API

10 actions 10 updates phrasing extends openapi/azure-ad-users-user-api-openapi.yml
Generated by API Evangelist Written by API Evangelist tooling for Microsoft Entra ID (formerly Azure AD)'s API. It is a proposal applied on top of the contract, not a document Microsoft Entra ID (formerly Azure AD) publishes.
View Overlay File View on GitHub Overlay Specification

What the actions change

x-apievangelist-phrasing

Targets 10

$.info
$.paths['/users'].get
$.paths['/users'].post
$.paths['/users/{user-id}'].get
$.paths['/users/{user-id}'].delete
$.paths['/users/{user-id}'].patch
$.paths['/users(userPrincipalName=\'{userPrincipalName}\')'].get
$.paths['/users(userPrincipalName=\'{userPrincipalName}\')'].delete
$.paths['/users(userPrincipalName=\'{userPrincipalName}\')'].patch
$.paths['/users/$count'].get

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 Users.user API
  version: 1.0.0
extends: openapi/azure-ad-users-user-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: 9
- target: $.paths['/users'].get
  update:
    x-apievangelist-phrasing:
      intent: List users in the directory
      effect: read
      questions:
      - How do I pull a list of every user account in my Entra ID tenant?
      - Can I search users by display name, and does that need the ConsistencyLevel header?
      - Which users are in the Sales department?
      instructions:
      - text: List the users in my directory.
      - text: Find users whose name matches {search}, sending ConsistencyLevel {consistency}.
        slots:
          search: query.$search
          consistency: header.ConsistencyLevel
      - text: List users filtered by {filter}, sorted by {orderby}.
        slots:
          filter: query.$filter
          orderby: query.$orderby
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users'].post
  update:
    x-apievangelist-phrasing:
      intent: Create a new user account
      effect: write
      questions:
      - What's the minimum I need to supply to create a new employee account?
      - Can I set an initial password and force a change at first sign-in when I add a user?
      instructions:
      - text: Create user {display_name} with sign-in name {upn} and mail nickname {mail_nickname}.
        slots:
          display_name: requestBody.displayName
          upn: requestBody.userPrincipalName
          mail_nickname: requestBody.mailNickname
      - text: Add a new enabled account for {display_name} as {upn} with password profile {password_profile}.
        slots:
          display_name: requestBody.displayName
          upn: requestBody.userPrincipalName
          password_profile: requestBody.passwordProfile
      - text: Onboard a new hire named {display_name}, job title {job_title}, in department {department}, sign-in {upn}.
        slots:
          display_name: requestBody.displayName
          job_title: requestBody.jobTitle
          department: requestBody.department
          upn: requestBody.userPrincipalName
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users/{user-id}'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user by object id
      effect: read
      questions:
      - How do I look up a single user's properties from their object id?
      - Why aren't all user properties returned by default, and how do I request extra ones?
      instructions:
      - text: Get user {user_id} by object id.
        slots:
          user_id: path.user-id
      - text: Show {fields} for the user with id {user_id}.
        slots:
          fields: query.$select
          user_id: path.user-id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users/{user-id}'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a user by object id
      effect: destructive
      questions:
      - What happens to a user's mailbox and licenses when I delete their account?
      - Can a deleted user still be restored within 30 days?
      instructions:
      - text: Delete the user whose object id is {user_id}.
        slots:
          user_id: path.user-id
      - text: Offboard user id {user_id} by deleting the account.
        slots:
          user_id: path.user-id
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users/{user-id}'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a user by object id
      effect: write
      questions:
      - How do I change a user's job title or department using their object id?
      - Can I disable sign-in for an account without deleting it?
      instructions:
      - text: Set the job title of user id {user_id} to {job_title}.
        slots:
          user_id: path.user-id
          job_title: requestBody.jobTitle
      - text: Disable sign-in for user id {user_id} by setting accountEnabled to {enabled}.
        slots:
          user_id: path.user-id
          enabled: requestBody.accountEnabled
      - text: Move user id {user_id} to department {department} and office {office}.
        slots:
          user_id: path.user-id
          department: requestBody.department
          office: requestBody.officeLocation
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users(userPrincipalName=\'{userPrincipalName}\')'].get
  update:
    x-apievangelist-phrasing:
      intent: Get a user by sign-in name
      effect: read
      questions:
      - Can I fetch a user directly by their userPrincipalName instead of the object id?
      - What's the way to look up someone when all I know is their sign-in email address?
      instructions:
      - text: Get the user whose sign-in name is {upn}.
        slots:
          upn: path.userPrincipalName
      - text: Look up {upn} by user principal name and show {fields}.
        slots:
          upn: path.userPrincipalName
          fields: query.$select
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users(userPrincipalName=\'{userPrincipalName}\')'].delete
  update:
    x-apievangelist-phrasing:
      intent: Delete a user by sign-in name
      effect: destructive
      questions:
      - Is it possible to delete an account addressed by userPrincipalName rather than id?
      - If I remove a user by their sign-in name, are they still recoverable for a month?
      instructions:
      - text: Delete the account with user principal name {upn}.
        slots:
          upn: path.userPrincipalName
      - text: Remove {upn} from the directory using their sign-in name.
        slots:
          upn: path.userPrincipalName
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users(userPrincipalName=\'{userPrincipalName}\')'].patch
  update:
    x-apievangelist-phrasing:
      intent: Update a user by sign-in name
      effect: write
      questions:
      - Can I patch a user's profile when I only have their userPrincipalName?
      - How do I change someone's mobile number addressing them by sign-in name?
      instructions:
      - text: Set the mobile phone for {upn} to {mobile}, addressing them by user principal name.
        slots:
          upn: path.userPrincipalName
          mobile: requestBody.mobilePhone
      - text: Update the display name of sign-in name {upn} to {display_name}.
        slots:
          upn: path.userPrincipalName
          display_name: requestBody.displayName
      method: generated
      generated: '2026-10-01'
- target: $.paths['/users/$count'].get
  update:
    x-apievangelist-phrasing:
      intent: Count users in the directory
      effect: read
      questions:
      - How many user accounts does my tenant have?
      - What's the count of guest users, and is the ConsistencyLevel header needed for it?
      instructions:
      - text: Count all users in the directory.
      - text: Count users matching {filter} with ConsistencyLevel {consistency}.
        slots:
          filter: query.$filter
          consistency: header.ConsistencyLevel
      method: generated
      generated: '2026-10-01'