Holds verwalten

Mit Holds können Sie Daten auf unbestimmte Zeit aufbewahren, um Aufbewahrungs- oder rechtliche Verpflichtungen zu erfüllen. Normalerweise werden Holds für einen oder mehrere Nutzer eingerichtet, um sicherzustellen, dass die für eine Angelegenheit potenziell relevanten Daten erst gelöscht werden können, wenn die Angelegenheit nicht mehr aktiv ist.

Wenn ein Nutzer, der einem Hold unterliegt, Daten löscht, die auf „Hold“ gesetzt sind, werden diese Daten aus der Ansicht des Nutzers entfernt, aber in Vault aufbewahrt. Solange der Hold besteht, kann ein Vault-Administrator diese Daten suchen und exportieren.

Einbehalte haben die folgenden Komponenten:

  • Ein Dienst: Die Anwendung, die für die Aufbewahrung der Daten verantwortlich ist. Der Dienst kann auf Mail, Drive oder Groups festgelegt werden.
  • Ein Bereich: Die vom Hold abgedeckten Rechtssubjekte. Der Bereich kann auf ein oder mehrere Nutzerkonten oder auf eine Organisationseinheit (OE) festgelegt werden.
  • Zusätzliche Optionen (optional): Die spezifischen Details (Suchanfragen oder Konfigurationsoptionen), die verwendet werden, um die Daten auf den definierten Umfang einzugrenzen. Folgende Optionen sind verfügbar:
    • Mail, Groups: Suchanfrage zum Eingrenzen der Sperrung
    • Google Drive: Geteilte Ablagen in die Aufbewahrungspflicht einbeziehen

Für die Arbeit mit Vault-Ressourcen muss das Konto die erforderlichen Vault-Berechtigungen und Zugriff auf den Fall haben. Damit auf eine Rechtsangelegenheit zugegriffen werden kann, muss die Rechtsangelegenheit vom Konto erstellt oder für das Konto freigegeben worden sein oder das Konto muss die Berechtigung Alle Rechtsangelegenheiten abrufen haben.

E-Mails für bestimmte Nutzerkonten mit einer Suchanfrage zurückstellen

Im folgenden Beispiel wird gezeigt, wie eine Sperre mit dem Namen „My First mail Accounts Hold“ (Meine erste Sperre für E-Mail-Konten) für folgende Konten erstellt wird:

  • Dienst: mail
  • Entität: Nutzerkonten „user1“ und „user2“
  • Zusätzliche Optionen: Suchanfrage „to:ceo@company.com“

Rufen Sie Nutzerkonto-IDs über die Directory API ab. Beachten Sie, dass für das HeldAccount die Konto-ID oder die E‑Mail-Adresse verwendet werden kann. Wenn beide angegeben sind, wird die E-Mail-Adresse verwendet und die Konto-ID ignoriert.

Java

HeldMailQuery mailQuery = new HeldMailQuery().setTerms("to:ceo@company.com");
List accounts = Lists.newArrayList();
accounts.add(new HeldAccount().setAccountId(user1accountId));
accounts.add(new HeldAccount().setEmail(user2Email));
Hold hold = new Hold()
    .setName("My First mail Accounts Hold")
    .setCorpus("MAIL");
    .setQuery(new CorpusQuery().setMailQuery(mailQuery))
    .setAccounts(accounts);
Hold createdHold = client.matters().holds().create(matterId, hold).execute();
  

Python

def create_hold_mail_accounts(service, matter_id, account_id):
    mail_query = {'terms': 'to:ceo@company.com'}
    accounts = [
        {'accountId': user1_account_id},
        {'email': user2_email}
    ]
    wanted_hold = {
        'name': 'My First mail Accounts Hold',
        'corpus': 'MAIL',
        'query': {
            'mailQuery': mail_query
        },
        'accounts': accounts
    }
    return service.matters().holds().create(
        matterId=matter_id, body=wanted_hold).execute()

Speichersperre für Drive für eine Organisationseinheit erstellen und Inhalte aus geteilten Ablagen einbeziehen

Im folgenden Beispiel wird gezeigt, wie eine Aufbewahrungspflicht namens „My First Drive OU Hold“ für Folgendes erstellt wird:

  • Dienst: Drive
  • Entität: Organisationseinheit „Finanzen“ (die OE-ID wird in „orgUnitId“ erfasst)
  • Zusätzliche Optionen: Geteilte Ablagen einbeziehen, in denen Nutzer in dieser Organisationseinheit Mitglieder sind

Rufen Sie die Organisations-ID über die Directory API ab.

Java

HeldOrgUnit orgUnit = new HeldOrgUnit().setOrgUnitId(orgUnitId);
// Include shared drives content.
HeldDriveQuery driveQuery = new HeldDriveQuery().setIncludeSharedDriveFiles(true);
// Create the hold.
Hold hold = new Hold()
    .setName("My First Drive OU Hold")
    .setCorpus("DRIVE")
    .setQuery(new CorpusQuery().setDriveQuery(driveQuery))
    .setOrgUnit(orgUnit);
Hold createdHold = client.matters().holds().create(matterId, hold).execute();
return createdHold;

Python

def create_hold_drive_org(service, matter_id, org_unit_id):
    drive_query = {'includeSharedDriveFiles': True}
    org_unit = {'orgUnitId': org_unit_id}
    wanted_hold = {
        'name': 'My First Drive OU Hold',
        'corpus': 'DRIVE',
        'orgUnit': org_unit,
        'query': {
            'driveQuery': drive_query
        }
    }
    return service.matters().holds().create(
        matterId=matter_id, body=wanted_hold).execute()

Hold für Gruppen für bestimmte Gruppenkonten mit einem Zeitraum erstellen

Im folgenden Beispiel wird gezeigt, wie eine Rechtssperre mit dem Namen „My First Group Hold“ (Meine erste Gruppensperre) für Folgendes erstellt wird:

  • Dienst: Groups
  • Einheit: Gruppenkonten „group1“ und „group2“
  • Zusätzliche Optionen: Nur Nachrichten mit Sendedatum zwischen „startTime“ und „endTime“ zurückstellen

Rufen Sie Gruppenkonto-IDs über die Directory API ab.

Java

String APRIL_2_2017_GMT = "2017-04-02T00:00:00Z"; // See below for format*.
 
List accounts = Lists.newArrayList();
accounts.add(new HeldAccount().setAccountId(accountId));
accounts.add(new HeldAccount().setAccountId(accountId2));
HeldGroupsQuery groupQuery = new HeldGroupsQuery();
// Restrict by sent date.
groupQuery.setStartTime(APRIL_2_2017_GMT);
groupQuery.setEndTime(APRIL_2_2017_GMT);
// create the hold
Hold hold = new Hold()
    .setName("My First Group Hold")
    .setCorpus("GROUPS")
    .setQuery(new CorpusQuery().setGroupsQuery(groupQuery));
    hold.setAccounts(accounts);
Hold createdHold = client.matters().holds().create(matterId, hold).execute();
 

Python

def create_hold_groups_date_range(service, matter_id, group_account_id):
    groups_query = {
        'startTime': '2017-04-02T00:00:00Z', # See below for format*
        'endTime': '2017-04-02T00:00:00Z'
    }
    accounts = [{'accountId': group_account_id}]
    wanted_hold = {
        'name': 'My First Group Hold',
        'corpus': 'GROUPS',
        'query': {
            'groupsQuery': groups_query
        },
        'accounts': accounts
    }
    return service.matters().holds().create(
        matterId=matter_id, body=wanted_hold).execute()
 
  • Zeitstempelformat Außerdem werden start/endTimes in GMT konvertiert und auf den Beginn des angegebenen Datums abgerundet.

Vorhandene Zurückbehaltungen abfragen und ändern

Im folgenden Beispiel sehen Sie, wie Sie alle Konten auflisten, die in einer bestehenden Zurückbehaltung enthalten sind:

Java

client.matters().holds().accounts().list(matterId, holdId).execute().getAccounts();

Python

# If no accounts are on hold, ['accounts'] will raise an error.
def list_held_accounts(service, matter_id, hold_id):
    return service.matters().holds().accounts().list(
        matterId=matter_id, holdId=hold_id).execute()['accounts'] 

Im folgenden Beispiel sehen Sie, wie Sie einem bestehenden Zurückbehalt ein Konto hinzufügen und ein Konto daraus entfernen:

Java

// Add an account by id.
client
        .matters()
        .holds()
        .accounts()
        .create(matterId, holdId, new HeldAccount().setAccountId(accountId))
        .execute();
// Remove an account by id.
client.matters().holds().accounts().delete(matterId, holdId, accountId).execute();

String email = "email@email.com";
// Add an account by email.
client
        .matters()
        .holds()
        .accounts()
        .create(matterId, holdId, new HeldAccount().setEmail(email))
        .execute();

Python

 
def add_held_account(service, matter_id, hold_id, account_id):
    held_account = {'accountId': account_id}
    return service.matters().holds().accounts().create(
        matterId=matter_id, holdId=hold_id, body=held_account).execute()

def remove_held_account(service, matter_id, hold_id, account_id):
    return service.matters().holds().accounts().delete(
        matterId=matter_id, holdId=hold_id, accountId=account_id).execute()

def add_held_account(service, matter_id, hold_id, email):
    held_account = {'email': email}
    return service.matters().holds().accounts().create(
        matterId=matter_id, holdId=hold_id, body=held_account).execute()
 

Das folgende Beispiel zeigt, wie Sie die Organisationseinheit für eine bestehende Organisationseinheit-Sperre ändern:

Java

Hold hold = client.matters().holds().get(matterId, holdId).execute();
hold.getOrgUnit().setOrgUnitId(newOrgUnitId);
Hold modifiedHold = client.matters().holds().update(matterId, holdId, hold).execute();
return modifiedHold;
 

Python

def update_hold_ou(service, matter_id, hold_id, org_unit_id):
    current_hold = get_hold(matter_id, hold_id)
    current_hold['orgUnit'] = {'orgUnitId': org_unit_id}
    return service.matters().holds().update(
        matterId=matter_id, holdId=hold_id, body=current_hold).execute() 

Im folgenden Beispiel wird gezeigt, wie alle Holds für einen Fall aufgelistet werden:

Java

 
String matterId = "Matter Id";

// List all holds. List holdsList = client.matters().holds().list(matterId).execute().getHolds();

// Paginate on holds. ListHoldsResponse response = client .matters() .holds() .list(matterId) .setPageSize(10) .execute();

String nextPageToken = response.getNextPageToken(); if (nextPageToken != null) { client .matters() .holds() .list(matterId) .setPageSize(10) .setPageToken(nextPageToken) .execute(); }

Python

# This can paginate in the same manner as with matters.
def list_holds(service, matter_id):
    return service.matters().holds().list(matterId=matter_id).execute()