Zarządzanie 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 mieć pewność, że dane potencjalnie istotne w danej sprawie nie zostaną usunięte, dopóki ta sprawa nie zostanie zamknięta.

Jeśli użytkownik objęty blokadą usunie dane objęte blokadą, nie może ich dalej przeglądać, ale pozostają one zachowane w Vault. Jeśli blokada jest aktywna, administrator Vault może wyszukiwać i eksportować te dane.

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

  • Usługa – aplikacja odpowiedzialna za przechowywanie danych. Usługę można ustawić na pocztę, Dysk lub Grupy dyskusyjne.
  • Zakres – jednostki objęte blokadą. Zakres można ustawić na jedno lub więcej kont użytkowników albo na jednostkę organizacyjną.
  • Dodatkowe opcje (opcjonalne) – szczegółowe informacje (zapytania lub opcje konfiguracji) używane do zawężania danych, które mają być przechowywane w określonym zakresie. Dostępne opcje:
    • poczta, Grupy: zapytanie, które zawęża zakres wstrzymania;
    • 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 być jej twórcą, mieć ją udostępnioną lub mieć uprawnienie Wyświetlanie wszystkich 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” dla:

  • Usługa: poczta
  • Podmiot: konta użytkowników „user1” i „user2”
  • Dodatkowe opcje: zapytanie „do:ceo@company.com”

Pobierz identyfikatory kont użytkowników z interfejsu Directory API. Pamiętaj, że HeldAccount może zawierać identyfikator konta lub adres e-mail. Jeśli podane są oba, 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 na potrzeby Google Drive w jednostce organizacyjnej i uwzględnianie treści z dysków współdzielonych

Poniższy przykład pokazuje, jak utworzyć blokadę o nazwie „My First Drive OU Hold” dla:

  • Usługa: Dysk
  • Element: jednostka organizacyjna „Finance” (identyfikator jednostki organizacyjnej jest rejestrowany w polu orgUnitId)
  • Dodatkowe opcje: uwzględnij dyski współdzielone, do których należą użytkownicy w tej jednostce organizacyjnej

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 dotyczącej Grup dyskusyjnych na określonych kontach grup w określonym zakresie dat

Poniższy przykład pokazuje, jak utworzyć rezerwację o nazwie „Moja pierwsza rezerwacja grupowa” dla:

  • Usługa: Grupy dyskusyjne
  • Podmiot: konta grupowe „group1” i „group2”
  • Dodatkowe opcje: wstrzymaj tylko wiadomości wysłane między datami „startTime” i „endTime”

Pobierz identyfikatory kont grupowych 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 wartości start/endTimes są przeliczane na czas GMT i zaokrąglane w dół do początku danej daty.

Wysyłanie zapytań dotyczących istniejących blokad i ich modyfikowanie

W tym przykładzie pokazujemy, jak wyświetlić listę wszystkich kont objętych istniejącym wstrzymaniem:

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ć konto do istniejącej blokady i jak je z niej usunąć:

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

Ten przykład pokazuje, jak zmodyfikować jednostkę organizacyjną w przypadku istniejącego wstrzymania dotyczącego jednostki organizacyjnej:

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 w sprawie:

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