arazzo: 1.0.1
info:
title: Microsoft Entra Find And Update Group
summary: Find a group by display name, update it, and read it back.
description: >-
Locates a group in Microsoft Entra ID by filtering the groups collection on
displayName, patches its description (and optionally visibility), and reads
the group back to confirm the change. Because Graph update operations
return 204 with no body, the final get retrieves the refreshed object.
Every request is inlined so the chain reads end to end.
version: 1.0.0
x-realizes-capability-ids:
- BC-620.20
x-capability-derivation:
method: 'deterministic join: sourceDescriptions -> per-tag OpenAPI -> tag/capability edge. No classification at this step.'
min_confidence: 0.7
sources:
- capability_id: BC-620.20
capability_name: Identity & Access Management
spec: microsoft-entra-groups-api-openapi.yml
confidence: 0.85
model: Turbo EA Capabilities by Vincent Verdet — Turbo EA, https://github.com/vincentmakes/turbo-ea-capabilities, CC BY 4.0
sourceDescriptions:
- name: groupsApi
url: ../openapi/microsoft-entra-groups-api-openapi.yml
type: openapi
workflows:
- workflowId: find-and-update-group
summary: Filter groups by displayName, patch the match, then re-read it.
description: >-
Searches for a group by display name, updates its description, and fetches
the updated group object.
inputs:
type: object
required:
- accessToken
- displayName
- description
properties:
accessToken:
type: string
description: OAuth 2.0 bearer token with Group.ReadWrite.All.
displayName:
type: string
description: Display name of the group to locate.
description:
type: string
description: New description to set on the matched group.
steps:
- stepId: findGroup
description: >-
Filter the groups collection on displayName to locate the target group
and capture its object id.
operationId: listGroups
parameters:
- name: Authorization
in: header
value: "Bearer $inputs.accessToken"
- name: $filter
in: query
value: "displayName eq '$inputs.displayName'"
- name: $top
in: query
value: 1
successCriteria:
- condition: $statusCode == 200
outputs:
matchedGroupId: $response.body#/value/0/id
onSuccess:
- name: groupFound
type: goto
stepId: updateGroup
criteria:
- context: $response.body
condition: $.value.length > 0
type: jsonpath
- stepId: updateGroup
description: >-
Patch the matched group with the new description. Returns 204 with no
body.
operationId: updateGroup
parameters:
- name: Authorization
in: header
value: "Bearer $inputs.accessToken"
- name: group-id
in: path
value: $steps.findGroup.outputs.matchedGroupId
requestBody:
contentType: application/json
payload:
description: $inputs.description
successCriteria:
- condition: $statusCode == 204
outputs:
updateStatus: $statusCode
- stepId: getGroup
description: Read the updated group back to confirm the new description.
operationId: getGroup
parameters:
- name: Authorization
in: header
value: "Bearer $inputs.accessToken"
- name: group-id
in: path
value: $steps.findGroup.outputs.matchedGroupId
successCriteria:
- condition: $statusCode == 200
outputs:
description: $response.body#/description
outputs:
groupId: $steps.findGroup.outputs.matchedGroupId
description: $steps.getGroup.outputs.description
Discovery needs no key. Ratings and market analysis are Pro.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we
store it to create your key and to recognise you if you sign in with another
provider. See our Privacy Policy and
Terms.