Holds verwalten

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

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

Holds bestehen aus folgenden Komponenten:

  • Ein Dienst: die Anwendung, die für die aufzubewahrenden Daten zuständig ist. Der Dienst kann auf „E-Mail“, „Drive“ oder „Gruppen“ eingestellt werden.
  • Umfang: die Entitäten, für die der Hold gilt. Der Bereich kann auf ein oder mehrere Nutzerkonten oder eine Organisationseinheit (OE) festgelegt werden.
  • Zusätzliche Optionen (optional): die spezifischen Details (Suchanfragen oder Konfigurationsoptionen), mit denen die Daten eingeschränkt werden, die innerhalb des festgelegten Umfangs enthalten sein sollen. Zu den Optionen gehören:
    • E-Mail, Google Groups: Suchanfrage zur Eingrenzung des Holds
    • Google Drive: Geteilte Ablagen in Hold einschließen

Damit Sie mit Vault-Ressourcen arbeiten können, muss das Konto die erforderlichen Vault-Berechtigungen und Zugriff auf die Rechtsangelegenheit haben. Damit Sie auf eine Rechtsangelegenheit zugreifen können, muss sie mit dem Konto erstellt oder für sie freigegeben sein oder über die Berechtigung Alle Rechtsangelegenheiten abrufen verfügen.

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

Das folgende Beispiel zeigt, wie ein Hold namens „My First E-Mail-Konten-Hold“ erstellt wird für:

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

Nutzerkonto-IDs von AdminSdk abrufen. Der auf „Hold“ gesetzte Account kann eine Konto-ID oder E-Mail-Adresse enthalten. 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 OE erstellen und Inhalte aus geteilten Ablagen einschließen

Das folgende Beispiel zeigt, wie ein Hold namens „Meine erste Ablage-OE-Hold“ erstellt wird für:

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

Rufen Sie die OE-IDs von 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 für bestimmte Gruppenkonten mit einem Zeitraum erstellen

Das folgende Beispiel zeigt, wie ein Hold namens „Mein erster Gruppen-Hold“ erstellt wird für:

  • Dienst: Gruppen
  • Entität: Gruppenkonten „group1“ und „group2“
  • Weitere Optionen: nur Nachrichten auf „Hold“ setzen, die zwischen „startTime“ und „endTime“ gesendet wurden

Gruppenkonto-IDs von AdminSdk abrufen.

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 die Start- und Endzeiten in GMT umgerechnet und auf den Beginn des angegebenen Datums abgerundet.

Vorhandene Holds abfragen und ändern

Im folgenden Beispiel sehen Sie, wie alle Konten aufgelistet werden, die einem vorhandenen Hold zugeordnet 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'] 

Das folgende Beispiel zeigt, wie Sie einem bestehenden Hold ein Konto hinzufügen und ein Konto daraus entfernen können:

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 eines vorhandenen OE-Holds ä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 alle Holds für eine Rechtsangelegenheit 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()