Holds verwalten

Daten werden auf „Hold“ gesetzt, um rechtliche Verpflichtungen zu erfüllen oder Aufbewahrungspflichten zu erfüllen. Normalerweise werden Holds für einen oder mehrere Nutzer verhängt, um sicherzustellen, dass die für eine Rechtsangelegenheit relevanten Daten erst gelöscht werden können, wenn die Rechtsangelegenheit nicht mehr aktiv ist.

Wenn ein auf „Hold“ gesetzter Nutzer Daten auf „Hold“ setzt, werden diese Daten aus der Ansicht des Nutzers entfernt, werden aber in Vault aufbewahrt. Solange der Hold besteht, kann ein Vault-Administrator diese Daten suchen und exportieren.

Holds haben folgende Komponenten:

  • Dienst: Die Anwendung, die für die Daten verantwortlich ist. Der Dienst kann auf E-Mail, Drive oder Groups eingestellt sein.
  • Umfang: Die Entitäten, die vom Hold abgedeckt sind. Der Geltungsbereich kann auf ein oder mehrere Nutzerkonten oder eine Organisationseinheit (OE) festgelegt werden.
  • Zusätzliche Optionen (optional): Mit den Details (Suchanfragen oder Konfigurationsoptionen) lassen sich die Daten eingrenzen, die im definierten Bereich enthalten sein sollen. Folgende Optionen sind verfügbar:
    • mail, Groups: Suchanfrage, um Hold einzugrenzen
    • Drive: Geteilte Ablagen im Hold einbeziehen

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 für das Konto erstellt worden sein, sie muss für sie freigegeben sein oder die Berechtigung Alle Rechtsangelegenheiten abrufen haben.

Holds für E-Mails an bestimmte Nutzerkonten mit einer Suchanfrage erstellen

Das folgende Beispiel zeigt, wie ein Hold mit dem Namen „My First mail Accounts Hold“ (Hold für meine ersten E-Mail-Konten) erstellt wird:

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

Rufen Sie die Nutzerkonten-IDs aus AdminSdk ab. Das HeldAccount kann die Konto-ID oder E-Mail-Adresse aufnehmen. Wenn beide vorhanden 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()

Drive-Hold für eine OE erstellen und Inhalte aus geteilten Ablagen einbeziehen

Das folgende Beispiel zeigt, wie ein Hold mit dem Namen „My First Drive OU Hold“ erstellt wird:

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

Rufen Sie 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 Gruppen in bestimmten Gruppenkonten mit einem Zeitraum erstellen

Das folgende Beispiel zeigt, wie ein Hold mit dem Namen „My First Group Hold“ erstellt wird:

  • Dienst: Google Groups
  • Entität: Gruppenkonten „Gruppe1“ und „Gruppe2“
  • Weitere Optionen: Nur Nachrichten mit einem Sendedatum zwischen „startTime“ und „endTime“ auf „Hold“ setzen

Rufen Sie die Gruppenkonto-IDs aus AdminSdk 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/endTime in GMT umgewandelt und auf den Beginn des angegebenen Datums abgerundet.

Vorhandene Holds abfragen und ändern

Das folgende Beispiel zeigt, wie Sie alle in einem bestehenden Hold enthaltenen Konten auflisten:

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 ein Konto zu einem bestehenden Hold hinzufügen und 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 in einem 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:

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