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 Daten, die für eine Angelegenheit relevant sind, erst gelöscht werden können, wenn diese Angelegenheit nicht mehr aktiv ist.
Wenn ein Nutzer, der einem Hold unterliegt, Daten löscht, die auf „Hold“ gesetzt sind, werden die Daten aus der Ansicht des Nutzers entfernt, aber in Google Vault aufbewahrt. Solange der Hold besteht, kann ein Vault-Administrator diese Daten suchen und exportieren.
Sicherungen 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 betroffenen Rechtssubjekte. Der Bereich kann auf ein oder mehrere Nutzerkonten oder auf eine Organisationseinheit festgelegt werden.
- Zusätzliche Optionen (optional): Die spezifischen Details (Suchanfragen oder Konfigurationsoptionen), die verwendet werden, um die Daten auf den definierten Bereich einzugrenzen. Folgende Optionen sind verfügbar:
- Mail, Groups: Suchanfrage zum Eingrenzen der Sperrung
- Google Drive: Geteilte Ablagen in die Aufbewahrungspflicht einbeziehen
Um mit Vault-Ressourcen zu arbeiten, muss ein Konto die erforderlichen Vault-Berechtigungen und Zugriff auf die Rechtsangelegenheit haben. Damit ein Konto auf eine Rechtsangelegenheit zugreifen kann, muss es die Rechtsangelegenheit erstellt haben, die Rechtsangelegenheit muss für das Konto freigegeben worden sein oder das Konto muss die Berechtigung Alle Rechtsangelegenheiten abrufen haben. Eine Rechtsangelegenheit muss vorhanden sein, bevor Sie einen Hold erstellen können.
E-Mails in bestimmten Nutzerkonten mit einer Suchanfrage in der Warteschleife platzieren
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. Für HeldAccount kann eine Konto-ID oder eine E‑Mail-Adresse angegeben werden. 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"); Listaccounts = 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 geteilter Ablagen einbeziehen
Im folgenden Beispiel wird gezeigt, wie eine Aufbewahrung 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 Organisationseinheits-IDs ü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 Sperre 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*. Listaccounts = 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/endTimesin GMT konvertiert und auf den Beginn des angegebenen Datums abgerundet.
Vorhandene Zurückstellungen abfragen und ändern
Das folgende Beispiel zeigt, wie Sie alle Konten auflisten, die von einer Zurückbehaltung betroffen 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 ein Konto einer Zurückstellung 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()
Im folgenden Beispiel wird gezeigt, wie Sie die Organisationseinheit für eine vorhandene Aufbewahrungspflicht ä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. ListholdsList = 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()