Holds verwalten

Mit Holds können Sie Daten auf unbestimmte Zeit aufbewahren, um Aufbewahrungs- oder rechtliche Verpflichtungen zu erfüllen. In der Regel werden Holds für einen oder mehrere Nutzer festgelegt, damit die für eine Angelegenheit potenziell relevanten Daten erst gelöscht werden können, wenn diese Angelegenheit 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.

Einbehaltungen haben die folgenden Komponenten:

  • Dienst: Die Anwendung, die für die zu speichernden Daten verantwortlich ist. Der Dienst kann auf „E-Mail“, „Drive“ oder „Groups“ festgelegt werden.
  • Umfang: die Entitäten, für die die Sperrung gilt. Der Umfang 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 eingegrenzt werden, die im definierten Umfang aufbewahrt werden sollen. Mögliche Optionen:
    • mail, Groups: Suchanfrage, um die Sperrung einzugrenzen
    • Drive: Geteilte Ablagen in die Sperrung einbeziehen

Damit das Konto mit Vault-Ressourcen arbeiten kann, muss es die erforderlichen Vault-Berechtigungen haben und Zugriff auf die Angelegenheit haben. Damit ein Konto auf eine Rechtsangelegenheit zugreifen kann, muss es die Rechtsangelegenheit erstellt oder die Freigabe erhalten haben oder die Berechtigung Alle Rechtsangelegenheiten abrufen haben.

Mit einer Suchanfrage eine Vorabankündigung für E-Mails für bestimmte Nutzerkonten erstellen

Im folgenden Beispiel wird gezeigt, wie eine Vormerkung mit dem Namen „Meine erste Vormerkung für E-Mail-Konten“ für Folgendes erstellt wird:

  • Dienst: mail
  • Entität: Nutzerkonten „user1“ und „user2“
  • Weitere Optionen: Suchanfrage „an:[email protected]

Nutzerkonto-IDs aus AdminSdk abrufen Hinweis: Für das Konto, das gesperrt wurde, kann die Konto-ID oder die E-Mail-Adresse verwendet werden. Wenn beide Angaben gemacht werden, wird die E-Mail-Adresse verwendet und die Konto-ID ignoriert.

Java

HeldMailQuery mailQuery = new HeldMailQuery().setTerms("to:[email protected]");
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:[email protected]'}
    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()

Datenübernahme für Google Drive für eine OU erstellen und Inhalte in geteilten Ablagen einbeziehen

Im folgenden Beispiel wird gezeigt, wie eine Vormerkung mit dem Namen „My First Drive OU 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

OU-IDs aus AdminSdk abrufen

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

Im folgenden Beispiel wird gezeigt, wie eine Warteschleife mit dem Namen „Meine erste Gruppenwarteschleife“ für Folgendes erstellt wird:

  • Dienst: Google Groups
  • Entität: Gruppenkonten „Gruppe1“ und „Gruppe2“
  • Zusätzliche Optionen: Nur Nachrichten mit einem Sendedatum zwischen „startTime“ und „endTime“ halten

Rufen Sie die IDs der Gruppenkonten über 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- und Endzeiten in GMT konvertiert und auf den Beginn des angegebenen Datums abgerundet.

Vorhandene Vormerkungen abfragen und ändern

Im folgenden Beispiel wird gezeigt, wie alle Konten aufgelistet werden, die in einer bestehenden Vorautorisierung 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 vorhandenen Vorabankündigungsfall 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 protected]";
// 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 bei einer vorhandenen OE-Sperrung ä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 Vorhalte für eine Angelegenheit 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()