A matter is a container for all of the data related to a specific topic, such as a litigation case or an investigation. A matter includes:
- Saved search queries
- Holds
- Accounts with which the matter is shared
- Export sets
- Audit trail
To work with Vault resources, the account must have the required Vault privileges and access to the matter. To access a matter, the account must have created the matter, have the matter shared with them, or have the View All Mattersprivilege.
A matter has the following states:
| State | Description | 
|---|---|
| Open | The matter is active, and you can create holds, run searches, and export data within it. | 
| Closed | Usually when an investigation is complete, the matter is closed. Closed matters can be reopened at any time. 
 | 
| Deleted | A matter can be deleted so that it becomes completely unavailable. A deleted matter will remain in Trash for approximately 30 days, during which time it can be restored. After that period, the matter is permanently purged. 
 | 

Create a matter
The following example creates a new matter with the specified name and description.
Java
Matter matter = new Matter (); matter . setName ( "Matter Name" ); matter . setDescription ( "Matter Description" ); Matter createdMatter = client . matters (). create ( matter ). execute ();
Python
def create_matter ( service ): matter_content = { 'name' : 'Matter Name' , 'description' : 'Matter Description' , } matter = service . matters () . create ( body = matter_content ) . execute () return matter
Get a matter
There are two views of a matter: BASIC (default) and FULL. The FULL view adds matter permissions to the BASIC view.
The following example retrieves the specified matter.
Java
client . matters (). get ( matterId ). execute (); // Returns BASIC view. client . matters (). get ( matterId ). setView ( "BASIC" ). execute (); client . matters (). get ( matterId ). setView ( "FULL" ). execute ();
Python
matter_id = getMatterId () service . matters () . get ( matterId = matter_id ) . execute (); // Returns BASIC view . service . matters () . get ( matterId = matter_id , view = 'BASIC' ) . execute (); service . matters () . get ( matterId = matter_id , view = 'FULL' ) . execute ();
List matters
The following example shows how to list all open, closed, and deleted matters (up to the default 100 per request).
Java
ListmattersList = client . matters (). list (). execute (). getMatters (); 
Python
mattersList = client . matters () . list () . execute ()
The following example shows how to list all open, closed, and deleted matters over multiple requests.
Java
ListMattersResponse firstPageResponse = client . matters (). list (). setPageSize ( 20 ). execute (); String nextPageToken = firstPageResponse . getNextPageToken ()); if ( nextPageToken != null ) { client . matters (). list (). setPageToken ( nextPageToken ). setPageSize ( 20 ). execute (); }
Python
list_response1 = service . matters () . list ( view = 'FULL' , pageSize = 10 ) . execute () for matter in list_response1 [ 'matters' ]: print ( matter ) if ‘ nextPageToken ’ in list_response1 : list_response2 = service . matters () . list ( pageSize = 10 , pageToken = list_response1 [ 'nextPageToken' ]) . execute () for matter in list_response2 [ 'matters' ]: print ( matter )
The following example shows how to list matters of a specified state.
Java
// Only get open matters. ListopenMattersList = client . matters (). list (). setState ( "OPEN" ). execute (). getMatters (); // Only get closed matters. List closedMattersList = client . matters (). list (). setState ( "CLOSED" ). execute (). getMatters (); // Only get deleted matters. List deletedMattersList = client . matters (). list (). setState ( "DELETED" ). execute (). getMatters (); 
Python
# Only get open matters. openMattersList = client . matters () . list ( state = 'OPEN' ) . execute () # Only get closed matters. closedMattersList = client . matters () . list ( state = 'CLOSED' ) . execute () # Only get deleted matters. deletedMattersList = client . matters () . list ( state = 'DELETED' ) . execute ()
Update a matter
The following example updates the name and description of a matter.
Java
String matterId = "matterId" ; Matter matter = new Matter (). setName ( "New Name" ). setDescription ( "New Description" ); vault . matters (). update ( matterId , matter ). execute ();
Python
def update_matter ( service , matter_id ): wanted_matter = { 'name' : 'New Matter Name' , 'description' : 'New Description' } updated_matter = service . matters () . update ( matterId = matter_id , body = wanted_matter ) . execute () return updated_matter
Close a matter
The following example shows how to close a matter.
Java
String matterId = "matterId" ; // If the matter still has holds, this operation will fail. client . matters (). close ( matterId , new CloseMatterRequest ()). execute ();
Python
def close_matter ( service , matter_id ): close_response = service . matters () . close ( matterId = matter_id , body = {}) . execute () return close_response [ 'matter' ]
Delete, undelete, or reopen a matter
The following example shows how to delete, undelete, or reopen a matter.
Java
Matter matter = client . matters (). get ( matterId ). execute (); // Delete the matter. client . matters (). delete ( matter . getMatterId ()); // Undelete the matter. client . matters (). undelete ( matter . getMatterId (), new UndeleteRequest ()); // Reopen the matter. client . matters (). reopen ( matter . getMatterId (), new ReopenMatterRequest ());
Python
def reopen_matter ( service , matter_id ): reopen_response = service . matters () . reopen ( matterId = matter_id , body = {}) . execute () return reopen_response [ 'matter' ] def delete_matter ( service , matter_id ): service . matters () . delete ( matterId = matter_id ) . execute () return get_matter ( matter_id ) def undelete_matter ( service , matter_id ): undeleted_matter = service . matters () . undelete ( matterId = matter_id , body = {}) . execute () return undeleted_matter
Matter permissions
Each matter has a permission set of who can access or edit it. You can view this by getting the FULL view of a matter.
Java
String matterId = "Matter Id" ; String accountId = "Account Id" ; // List permissions for a matter. Matter matter = client . matters (). get ( matterId ). setView ( "FULL" ). execute (); ListmatterPermissions = matter . getMatterPermissions (); // Add a user to the permission set. client . matters () . addPermissions ( matterId ) . setMatterPermissionAccountId ( accountId ) . setMatterPermissionRole ( "COLLABORATOR" ) . execute (); // Remove a user from the permission set. client . matters () . removePermissions ( matterId ) . setAccountId ( accountId ) . execute (); 
Python
def list_matter_permission ( service , matter_id ): matter = service . matters () . get ( matterId = matter_id , view = 'FULL' ) . execute () return matter [ 'matterPermissions' ] def add_matter_permission ( service , matter_id , account_id ): permission = service . matters () . addPermissions ( matterId = matter_id , matterPermission_accountId = account_id , matterPermission_role = 'COLLABORATOR' , sendEmails = 'False' , ccMe = 'False' ) . execute () return permission def remove_matter_permission ( service , matter_id , account_id ): service . matters () . removePermissions ( matterId = matter_id , accountId = account_id ) . execute ()

