Holds verwalten

In Holds werden Daten auf unbestimmte Zeit aufbewahrt, um rechtliche Aufbewahrungspflichten zu erfüllen. In der Regel werden Holds auf einen oder mehrere Nutzer verhängt, damit die potenziell relevanten Daten einer Rechtsangelegenheit erst gelöscht werden können, wenn die Rechtsangelegenheit nicht mehr aktiv ist.

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

Holds bestehen aus folgenden Komponenten:

  • Dienst: die für die aufzubewahrende Daten zuständige Anwendung Der Dienst kann auf E-Mail, Google Drive oder Google Groups festgelegt werden.
  • Geltungsbereich: Die Entitäten, für die der Hold gilt. Der Geltungsbereich kann auf ein oder mehrere Nutzerkonten oder auf eine Organisationseinheit (OE) festgelegt werden.
  • Zusätzliche Optionen (optional): die spezifischen Details (Suchanfragen oder Konfigurationsoptionen), mit denen die Daten auf den definierten Gültigkeitsbereich beschränkt werden. Zu den Optionen gehören:
    • E-Mail, Google Groups: Suchanfrage zur Eingrenzung des Holds
    • Drive: Geteilte Ablagen in den Hold aufnehmen

Damit Sie mit Vault-Ressourcen arbeiten können, muss das Konto die erforderlichen Vault-Berechtigungen und Zugriff auf die Rechtsangelegenheit haben. Um auf eine Rechtsangelegenheit zuzugreifen, muss das Konto diese erstellt haben, die Rechtsangelegenheit für sie freigegeben haben oder die Berechtigung Alle Rechtsangelegenheiten abrufen haben.

Hold für E-Mails in bestimmten Nutzerkonten mit einer Suchanfrage erstellen

Im folgenden Beispiel sehen Sie, wie ein Hold namens „Meine erste E-Mail-Kontosperre“ für Folgendes erstellt wird:

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

Rufen Sie die Nutzerkonto-IDs aus AdminSdk ab. Das HoldAccount kann Konto-ID oder E-Mail-Adresse aufnehmen. Sind beide angegeben, 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()

Hold für Google Drive für eine Organisationseinheit erstellen und Inhalte aus geteilten Ablagen einschließen

Im folgenden Beispiel sehen Sie, wie ein Hold mit dem Namen „Mein erster Drive-OE-Hold“ für Folgendes erstellt wird:

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

Rufen Sie die OE-IDs aus AdminSdk 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 Google Groups in bestimmten Gruppenkonten mit einem Zeitraum erstellen

Im folgenden Beispiel sehen Sie, wie ein Hold namens „Mein erster Gruppen-Hold“ für Folgendes erstellt wird:

  • Dienst: Gruppen
  • Entität: Gruppenkonten „group1“ und „group2“
  • Zusätzliche Optionen: Nur Nachrichten mit einem Sendedatum zwischen „startTime“ und „endTime“ auf „Hold“ setzen

Gruppenkonto-IDs werden aus AdminSdk abgerufen.

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/endTime in GMT umgewandelt und auf den Beginn des angegebenen Datums abgerundet.

Vorhandene Holds abfragen und ändern

Das folgende Beispiel zeigt, wie alle Konten aufgelistet werden, die in einem vorhandenen Hold 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 wird gezeigt, wie Sie einem bestehenden Hold 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 OE für einen vorhandenen OE-Hold ä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() 

Das folgende Beispiel zeigt, wie Sie alle Holds für eine Rechtsangelegenheit auflisten lassen:

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()