---
title: "Modify project shares"
method: POST
path: "/api/manualredaction/{manualRedactionProjectId}/shares/bulk"
tags: ["Guided Redaction Management"]
---

# Modify project shares

`POST /api/manualredaction/{manualRedactionProjectId}/shares/bulk`

Adds or removes user and group permission assignments for the specified manual redaction project in bulk.

## Path parameters

- `manualRedactionProjectId` string, required

## Request body

- ModifyResourcePermissionSetAssignmentsRequestModel — A request to modify the permission assignments for a dataset.
  - `grant` ResourcePermissionAssignmentRequestModel[] — The permission sets to grant access to.
    - `sharedWithUserId` string, nullable — The user that is shared a permission set. This field should be left null if sharing with a group.
    - `sharedWithGroupId` string, nullable — The group that is shared a permission set. This field should be left null if sharing with a user.
    - `permissionSetId` string, required — The ID of the permission set to assign.
  - `revoke` ResourcePermissionAssignmentRequestModel[] — The permission sets to remove access from.
    - `sharedWithUserId` string, nullable — The user that is shared a permission set. This field should be left null if sharing with a group.
    - `sharedWithGroupId` string, nullable — The group that is shared a permission set. This field should be left null if sharing with a user.
    - `permissionSetId` string, required — The ID of the permission set to assign.

## Response `200`

Returns modified permission assignments

- ModifyResourcePermissionSetAssignmentsModel — Response for modifying the permission set assignments of a dataset.
  - `granted` ResourcePermissionSetAssignmentModel[] — The permission set assignments that were granted.
    - `id` string — The ID of the share.
    - `permissionSetId` string — The ID of the permission set that is shared.
    - `sharedWithUser` UserEntityModel — A user entity with basic identity information.
      - `id` string, required — The unique identifier of the user or group.
      - `userName` string, nullable, required — The display name of the user or group.
      - `firstName` string, nullable — The user's first name.
      - `lastName` string, nullable — The user's last name.
    - `sharedWithGroup` GroupEntityModel — A group entity that can be assigned permissions on resources.
      - `id` string, required — The unique identifier of the user or group.
      - `userName` string, nullable, required — The display name of the user or group.
      - `context` 'None' | 'Google' | 'Okta' | 'Azure' | 'OIDC' | 'Keycloak', required — Enum representing the unique context that a Solar.EF.Models.Group belongs to. For example, Organizations may use multiple SSO providers for authentication, and <see cref="T:Solar.EF.Models.Group">Groups</see> are only unique by name within a particular context.
    - `shareableEntityType` 'User' | 'Group' — <p>Possible values:</p> <ul> <li><b>User</b>: A user</li> <li><b>Group</b>: A group</li> </ul>
    - `resourceId` string — The ID of the dataset that is shared.
  - `revoked` ResourcePermissionSetAssignmentModel[] — The permission set assignments that were revoked.
    - `id` string — The ID of the share.
    - `permissionSetId` string — The ID of the permission set that is shared.
    - `sharedWithUser` UserEntityModel — A user entity with basic identity information.
      - `id` string, required — The unique identifier of the user or group.
      - `userName` string, nullable, required — The display name of the user or group.
      - `firstName` string, nullable — The user's first name.
      - `lastName` string, nullable — The user's last name.
    - `sharedWithGroup` GroupEntityModel — A group entity that can be assigned permissions on resources.
      - `id` string, required — The unique identifier of the user or group.
      - `userName` string, nullable, required — The display name of the user or group.
      - `context` 'None' | 'Google' | 'Okta' | 'Azure' | 'OIDC' | 'Keycloak', required — Enum representing the unique context that a Solar.EF.Models.Group belongs to. For example, Organizations may use multiple SSO providers for authentication, and <see cref="T:Solar.EF.Models.Group">Groups</see> are only unique by name within a particular context.
    - `shareableEntityType` 'User' | 'Group' — <p>Possible values:</p> <ul> <li><b>User</b>: A user</li> <li><b>Group</b>: A group</li> </ul>
    - `resourceId` string — The ID of the dataset that is shared.

## Other responses

- `400` — Invalid request body or model validation failed
- `404` — Project not found

---

[API](https://skmtc.net/tonic/apis/textual-api.md) · [All operations](https://skmtc.net/tonic/apis/textual-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/tonic/textual-api/revisions/41da8739a690/schema)
