Zarządzaj blokadami

Blokady umożliwiają przechowywanie danych bez ograniczeń czasowych ze względu na zobowiązania prawne i zobowiązania do ochrony danych. Blokady są zwykle nakładane na co najmniej 1 użytkownika, aby uniemożliwić usunięcie danych związanych ze sprawą do czasu jej zamknięcia.

Jeśli użytkownik objęty blokadą usunie dane objęte blokadą, dane te zostaną usunięte z widoku użytkownika, ale pozostaną zachowane w Google Vault. Jeśli blokada jest aktywna, administrator Vault może wyszukiwać i eksportować te dane.

Blokady składają się z tych komponentów:

  • Usługa Aplikacja odpowiedzialna za dane, które mają być objęte blokadą. Usługę można ustawić na Poczta, Dysk lub Grupy dyskusyjne.
  • Zakres Encje objęte blokadą. Zakres można ustawić na co najmniej 1 konto użytkownika lub na jednostkę organizacyjną.
  • Opcje dodatkowe (opcjonalne) Szczegółowe informacje (zapytania lub opcje konfiguracji) używane do zawężenia zakresu danych objętych blokadą. Opcje obejmują:
    • Poczta, Grupy dyskusyjne: zapytanie, które zawęża zakres blokady.
    • Dysk: uwzględnij dyski współdzielone w blokadzie.

Aby pracować z zasobami Vault, konto musi mieć wymagane uprawnienia Vault i dostęp do sprawy. Aby uzyskać dostęp do sprawy, konto musi ją utworzyć, mieć do niej dostęp lub mieć uprawnienie Wyświetlanie wszystkich spraw. Zanim utworzysz blokadę, musisz utworzyć sprawę.

Tworzenie blokady poczty na określonych kontach użytkowników za pomocą zapytania

Poniższy przykład pokazuje, jak utworzyć blokadę o nazwie „My First mail Accounts Hold” (Moja pierwsza blokada kont poczty) dla:

  • Usługa: Poczta
  • Encja: konta użytkowników „user1” i „user2”
  • Opcje dodatkowe: zapytanie „to:ceo@company.com”

Pobierz identyfikatory kont użytkowników z interfejsu Directory API. W przypadku HeldAccount można podać identyfikator konta lub adres e-mail. Jeśli podasz oba te elementy, używany jest adres e-mail, a identyfikator konta jest ignorowany.

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

Tworzenie blokady Dysku w jednostce organizacyjnej i uwzględnianie treści dysków współdzielonych

Poniższy przykład pokazuje, jak utworzyć blokadę o nazwie „My First Drive OU Hold” (Moja pierwsza blokada jednostki organizacyjnej na Dysku) dla:

  • Usługa: Dysk
  • Encja: jednostka organizacyjna „Finance” (identyfikator jednostki organizacyjnej jest rejestrowany w orgUnitId)
  • Opcje dodatkowe: uwzględnij dyski współdzielone, których użytkownicy w tej jednostce organizacyjnej są członkami.

Pobierz identyfikatory jednostek organizacyjnych z interfejsu Directory API.

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

Tworzenie blokady Grup dyskusyjnych na określonych kontach grup z zakresem dat

Poniższy przykład pokazuje, jak utworzyć blokadę o nazwie „My First Group Hold” (Moja pierwsza blokada grupy) dla:

  • Usługa: Grupy dyskusyjne
  • Encja: konta grup „group1” i „group2”
  • Opcje dodatkowe: blokuj tylko wiadomości wysłane w okresie od „startTime” do „endTime”.

Pobierz identyfikatory kont grup z interfejsu Directory API.

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()
 
  • Format sygnatury czasowej. Dodatkowo start/endTimes są konwertowane na czas GMT i zaokrąglane w dół do początku podanej daty.

Wysyłanie zapytań i modyfikowanie istniejących blokad

Poniższy przykład pokazuje, jak wyświetlić listę wszystkich kont objętych blokadą.

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'] 

Poniższy przykład pokazuje, jak dodać i usunąć konto z blokady.

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

Poniższy przykład pokazuje, jak zmodyfikować jednostkę organizacyjną w istniejącej blokadzie.

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

Poniższy przykład pokazuje, jak wyświetlić listę wszystkich blokad dotyczących sprawy.

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