Class BinderRoleRequest

java.lang.Object
com.veeva.vault.vapil.api.request.VaultRequest<BinderRoleRequest>
com.veeva.vault.vapil.api.request.BinderRoleRequest

public class BinderRoleRequest extends VaultRequest<BinderRoleRequest>
Binder Role Requests
Vault API Coverage:
https://developer.veevavault.com/api/25.1/#binder-roles
  • Method Details

    • retrieveAllBinderRoles

      public BinderRoleRetrieveResponse retrieveAllBinderRoles(int id)
      Retrieve All Binder Roles

      Retrieve all available roles on a binder and the users and groups assigned to them.

      Parameters:
      id - The Document id
      Returns:
      BinderRoleRetrieveResponse
      Vault API Endpoint:
       GET /api/{version}/objects/binders/{binder_id}/roles
      Vault API Help Link:
      https://developer.veevavault.com/api/25.1/#retrieve-all-binder-roles
      Example Request:
       BinderRoleRetrieveResponse response = vaultClient.newRequest(BinderRoleRequest.class)
                      .retrieveAllBinderRoles(binderId);
       
      Example Response:
       for (RoleRetrieveResponse.Role role : response.getRoles()) {
                      System.out.println("---------Binder Role---------");
                      System.out.println("Name: " + role.getName());
                      System.out.println("Label: " + role.getLabel());
                      System.out.println("Available Users: " + role.getAvailableUsers());
                      System.out.println("Available Groups: " + role.getAvailableGroups());
       }
       
    • retrieveBinderRole

      public BinderRoleRetrieveResponse retrieveBinderRole(int id, String roleName)
      Retrieve Binder Role

      Retrieve a specific role on a binder and the users and groups assigned to it.

      Parameters:
      id - The Binder id
      roleName - Name of the Role to retrieve
      Returns:
      BinderRoleRetrieveResponse
      Vault API Endpoint:
       GET /api/{version}/objects/binders/{binder_id}/roles/{role_name}
      Vault API Help Link:
      https://developer.veevavault.com/api/25.1/#retrieve-binder-role
      Example Request:
       BinderRoleRetrieveResponse response = vaultClient.newRequest(BinderRoleRequest.class)
                      .retrieveBinderRole(binderId, "owner__v");
       
      Example Response:
       System.out.println("Name: " + response.getRoles().get(0).getName());
       System.out.println("Label: " + response.getRoles().get(0).getLabel());
       System.out.println("Available Users: " + response.getRoles().get(0).getAvailableUsers());
       System.out.println("Available Groups: " + response.getRoles().get(0).getAvailableGroups());
       
    • assignUsersAndGroupsToRolesOnASingleBinder

      public BinderRoleChangeResponse assignUsersAndGroupsToRolesOnASingleBinder(int id)
      Assign Users and Groups to Roles on a Single Binder
      Parameters:
      id - The Binder id
      Returns:
      BinderRoleChangeResponse
      Vault API Endpoint:
       POST /api/{version}/objects/binders/{binder_id}/roles
      Vault API Help Link:
      https://developer.veevavault.com/api/25.1/#assign-users-amp-groups-to-roles-on-a-single-binder
      Example Request:
       BinderRoleChangeResponse response = vaultClient.newRequest(BinderRoleRequest.class)
                      .setBodyParams(Collections.singletonMap("editor__v.users", userId))
                      .assignUsersAndGroupsToRolesOnASingleBinder(binderId);
       
      Example Response:
       System.out.println("-----Users added to Editor role-----");
       for (Long userId : response.getUpdatedRoles().get("editor__v").get("users")) {
                      System.out.println("User ID: " + userId);
       }
       
    • assignUsersAndGroupsToRolesOnMultipleBinders

      public BinderRoleChangeBulkResponse assignUsersAndGroupsToRolesOnMultipleBinders()
      Assign Users & Groups to Roles on Multiple Binders

      The maximum CSV input file size is 1GB. The values in the input must be UTF-8 encoded. CSVs must follow the standard format. The maximum batch size is 1000.

      Returns:
      BinderRoleChangeBulkResponse
      See Also:
      Vault API Endpoint:
       POST /api/{version}/objects/documents/roles/batch
      Vault API Help Link:
      https://developer.veevavault.com/api/25.1/#assign-users-amp-groups-to-roles-on-multiple-documents-amp-binders
      Example Request:
       BinderRoleChangeBulkResponse response = vaultClient.newRequest(BinderRoleRequest.class)
                      .setContentTypeCsv()
                      .setInputPath(inputPath)
                      .assignUsersAndGroupsToRolesOnMultipleBinders();
       
      Example Response:
       for (RoleChangeBulkResponse.RoleChange binderResponse : response.getData()) {
                      System.out.println("Binder ID: " + binderResponse.getId());
                      System.out.println("Response Status: " + binderResponse.getResponseStatus());
                      System.out.println("-----Users added to Editor role-----");
                      for (int userId : binderResponse.getListInteger("editor__v.users")) {
                              System.out.println("User ID: " + userId);
                      }
                      System.out.println();
       }
       
    • removeUsersAndGroupsFromRolesOnMultipleBinders

      public BinderRoleChangeBulkResponse removeUsersAndGroupsFromRolesOnMultipleBinders()
      Remove Users and Groups from Roles on Multiple Binders

      The maximum CSV input file size is 1GB. The values in the input must be UTF-8 encoded. CSVs must follow the standard format. The maximum batch size is 1000.

      Returns:
      BinderRoleChangeBulkResponse
      See Also:
      Vault API Endpoint:
       DELETE /api/{version}/objects/documents/roles/batch
      Vault API Help Link:
      https://developer.veevavault.com/api/25.1/#remove-users-amp-groups-from-roles-on-multiple-documents-amp-binders
      Example Request:
       BinderRoleChangeBulkResponse response = vaultClient.newRequest(BinderRoleRequest.class)
                      .setContentTypeCsv()
                      .setInputPath(inputPath)
                      .removeUsersAndGroupsFromRolesOnMultipleBinders();
       
      Example Response:
       for (RoleChangeBulkResponse.RoleChange binderResponse : response.getData()) {
                      System.out.println("Binder ID: " + binderResponse.getId());
                      System.out.println("Response Status: " + binderResponse.getResponseStatus());
                      System.out.println("-----Users removed from Editor role-----");
                      for (int userId : binderResponse.getListInteger("editor__v.users")) {
                              System.out.println("User ID: " + userId);
                      }
                      System.out.println();
       }
       
    • removeUsersAndGroupsFromRolesOnASingleBinder

      public BinderRoleChangeResponse removeUsersAndGroupsFromRolesOnASingleBinder(int binderId, String roleName, BinderRoleRequest.MemberType memberType, long id)
      Remove Users and Groups from Roles on a Single Binder

      Use bulk API for multiple binders

      Parameters:
      binderId - The Binder id
      roleName - Name of the Role to modify
      memberType - User or Group
      id - User or Group id to remove
      Returns:
      BinderRoleChangeResponse
      Vault API Endpoint:
       DELETE /api/{version}/objects/binders/{binder_id}/roles/{role_name_and_user_or_group}/{id}
      Vault API Help Link:
      https://developer.veevavault.com/api/25.1/#remove-users-amp-groups-from-roles-on-a-single-binder
      Example Request:
       BinderRoleChangeResponse response = vaultClient.newRequest(BinderRoleRequest.class)
                      .removeUsersAndGroupsFromRolesOnASingleBinder(binderId,
                              "editor__v",
                              BinderRoleRequest.MemberType.USER,
                              userIdToRemove);
       
      Example Response:
       System.out.println("-----Users added to Editor role-----");
                      for (Long userId : response.getUpdatedRoles().get("editor__v").get("users")) {
                              System.out.println("User ID: " + userId);
                      }
       
    • setContentTypeCsv

      public BinderRoleRequest setContentTypeCsv()
      Set the Header Content Type to CSV
      Returns:
      The Request
    • setContentTypeXForm

      public BinderRoleRequest setContentTypeXForm()
      Set the Header Content Type to x-www-form-urlencoded
      Returns:
      The Request
    • setBinaryFile

      public BinderRoleRequest setBinaryFile(String filename, byte[] binaryContent)
      Specify source data in an input file
      Parameters:
      filename - file name (no path)
      binaryContent - byte array of the file content
      Returns:
      The Request
    • setBodyParams

      public BinderRoleRequest setBodyParams(Map<String,Object> bodyParams)
      Single form add/remove request with name/value body parameters
      Can be used on single Document endpoint, or for performing single Document operations, using the bulk endpoint.
      Parameters:
      bodyParams - map of body params
      Returns:
      The Request
    • setInputPath

      public BinderRoleRequest setInputPath(String inputPath)
      Specify source data in an input file
      Parameters:
      inputPath - Absolute path to the file for the request
      Returns:
      The Request
    • setRequestString

      public BinderRoleRequest setRequestString(String requestString)
      Specify source data in an input string, such as a JSON request
      Parameters:
      requestString - The source request as a string
      Returns:
      The Request