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 sourceDescriptions: - name: graphIdentityApi url: ../openapi/microsoft-entra-graph-identity-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