Class DocumentRoleRequest

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

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

    • retrieveAllDocumentRoles

      public DocumentRoleRetrieveResponse retrieveAllDocumentRoles(int id)
      Retrieve All Document Roles

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

      Parameters:
      id - The Document id
      Returns:
      DocumentRoleRetrieveResponse
      Vault API Endpoint:
       GET /api/{version}/objects/documents/{doc_id}/roles
      Vault API Help Link:
      https://developer.veevavault.com/api/25.1/#retrieve-all-document-roles
      Example Request:
       DocumentRoleRetrieveResponse response = vaultClient.newRequest(DocumentRoleRequest.class)
                      .retrieveAllDocumentRoles(docId);
       
      Example Response:
       for (RoleRetrieveResponse.Role role : response.getRoles()) {
                      System.out.println("---------Document 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());
       }
       
    • retrieveDocumentRole

      public DocumentRoleRetrieveResponse retrieveDocumentRole(int id, String roleName)
      Retrieve Document Role

      Retrieve Document Role

      Parameters:
      id - The Document id
      roleName - The Role name to retrieve
      Returns:
      DocumentRoleRetrieveResponse
      Vault API Endpoint:
       GET /api/{version}/objects/documents/{doc_id}/roles/{role_name}
      Vault API Help Link:
      https://developer.veevavault.com/api/25.1/#retrieve-document-role
      Example Request:
       DocumentRoleRetrieveResponse response = vaultClient.newRequest(DocumentRoleRequest.class)
                      .retrieveDocumentRole(docId, "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());
       
    • assignUsersAndGroupsToRolesOnASingleDocument

      public DocumentRoleChangeResponse assignUsersAndGroupsToRolesOnASingleDocument(int id)
      Assign Users and Groups to Roles on a Single Document
      Parameters:
      id - The Document id
      Returns:
      DocumentRoleChangeResponse
      Vault API Endpoint:
       POST /api/{version}/objects/documents/{id}/roles
      Vault API Help Link:
      https://developer.veevavault.com/api/25.1/#assign-users-amp-groups-to-roles-on-a-single-document
      Example Request:
       DocumentRoleChangeResponse response = vaultClient.newRequest(DocumentRoleRequest.class)
                      .setBodyParams(Collections.singletonMap("editor__v.users", userId))
                      .assignUsersAndGroupsToRolesOnASingleDocument(docId);
       
      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);
       }
       
    • assignUsersAndGroupsToRolesOnMultipleDocuments

      public DocumentRoleChangeBulkResponse assignUsersAndGroupsToRolesOnMultipleDocuments()
      Assign Users & Groups to Roles on Multiple Documents

      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:
      DocumentRoleUpdateBulkResponse
      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:
       DocumentRoleChangeBulkResponse response = vaultClient.newRequest(DocumentRoleRequest.class)
                      .setContentTypeCsv()
                      .setInputPath(inputPath)
                      .assignUsersAndGroupsToRolesOnMultipleDocuments();
       
      Example Response:
       for (RoleChangeBulkResponse.RoleChange docResponse : response.getData()) {
                      System.out.println("Document ID: " + docResponse.getId());
                      System.out.println("Response Status: " + docResponse.getResponseStatus());
                      System.out.println("-----Users added to Editor role-----");
                      for (int userId : docResponse.getListInteger("editor__v.users")) {
                              System.out.println("User ID: " + userId);
                      }
                      System.out.println();
       }
       
    • removeUsersAndGroupsFromRolesOnMultipleDocuments

      public DocumentRoleChangeBulkResponse removeUsersAndGroupsFromRolesOnMultipleDocuments()
      Remove Users and Groups from Roles on Multiple Documents

      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:
      DocumentRoleChangeBulkResponse
      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:
       DocumentRoleChangeBulkResponse response = vaultClient.newRequest(DocumentRoleRequest.class)
                      .setContentTypeCsv()
                      .setInputPath(inputPath)
                      .removeUsersAndGroupsFromRolesOnMultipleDocuments();
       
      Example Response:
       for (RoleChangeBulkResponse.RoleChange docResponse : response.getData()) {
                      System.out.println("Document ID: " + docResponse.getId());
                      System.out.println("Response Status: " + docResponse.getResponseStatus());
                      System.out.println("-----Users removed from Editor role-----");
                      for (int userId : docResponse.getListInteger("editor__v.users")) {
                              System.out.println("User ID: " + userId);
                      }
                      System.out.println();
       }
       
    • removeUsersAndGroupsFromRolesOnASingleDocument

      public DocumentRoleChangeResponse removeUsersAndGroupsFromRolesOnASingleDocument(int docId, String roleName, DocumentRoleRequest.MemberType memberType, long id)
      Remove Users and Groups from Roles on a Single Document

      Use bulk API for multiple documents

      Parameters:
      docId - The Document id
      roleName - Name of the Role to modify
      memberType - User or Group
      id - User or Group id to remove
      Returns:
      DocumentRoleChangeResponse
      Vault API Endpoint:
       DELETE /api/{version}/objects/documents/{doc_id}/roles/{role_name}.{user_or_group}/{id}
      Vault API Help Link:
      https://developer.veevavault.com/api/25.1/#remove-users-amp-groups-from-roles-on-a-single-document
      Example Request:
       DocumentRoleChangeResponse response = vaultClient.newRequest(DocumentRoleRequest.class)
                      .removeUsersAndGroupsFromRolesOnASingleDocument(docId,
                              "editor__v",
                              DocumentRoleRequest.MemberType.USER,
                              userIdToRemove);
       
      Example Response:
       System.out.println("-----Users removed from Editor role-----");
       for (Long userId : response.getUpdatedRoles().get("editor__v").get("users")) {
              System.out.println("User ID: " + userId);
       }
       
    • setContentTypeCsv

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

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

      public DocumentRoleRequest 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 DocumentRoleRequest 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 DocumentRoleRequest 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 DocumentRoleRequest 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