Kelola Pembekuan

Pembekuan menyimpan data tanpa batas waktu untuk memenuhi kewajiban hukum atau preservasi. Biasanya penangguhan dilakukan pada satu atau beberapa pengguna untuk memastikan bahwa data yang berpotensi relevan dengan suatu masalah tidak dapat dihapus hingga masalah tersebut tidak aktif lagi.

Jika pengguna yang tunduk pada pembekuan menghapus data yang dibekukan, data tersebut akan dihapus dari tampilan pengguna, tetapi dipertahankan di Vault. Selama pembekuan diterapkan, admin Vault dapat menelusuri dan mengekspor data tersebut.

Pembekuan memiliki komponen berikut:

  • Layanan—aplikasi yang bertanggung jawab atas data yang akan disimpan. Layanan dapat disetel ke email, Drive, atau Grup.
  • Cakupan—entitas yang tercakup dalam pembekuan. Cakupan dapat ditetapkan ke satu atau beberapa akun pengguna, atau ke satu unit organisasi (OU).
  • Opsi tambahan (opsional)—detail spesifik (kueri penelusuran atau opsi konfigurasi) yang digunakan untuk mempersempit data yang akan disimpan dalam cakupan yang ditentukan. Opsinya mencakup:
    • email, Grup: kueri penelusuran untuk mempersempit pembekuan
    • Drive: sertakan drive bersama dalam pembekuan

Untuk menggunakan resource Vault, akun harus memiliki hak istimewa Vault yang diperlukan dan akses ke masalah tersebut. Untuk mengakses masalah, akun harus sudah membuat masalah, membagikan masalah tersebut kepadanya, atau memiliki hak istimewa Melihat Semua Masalah.

Membuat pembekuan untuk email pada akun pengguna tertentu dengan kueri penelusuran

Contoh berikut menunjukkan cara pembekuan yang bernama "Penangguhan Akun email Pertama Saya" dibuat untuk:

  • Layanan: email
  • Entitas: akun pengguna "user1" dan "user2"
  • Opsi tambahan: kueri penelusuran "to:ceo@perusahaan.com"

Mengambil ID akun pengguna dari AdminSdk. Perhatikan bahwa Akun yang Ditahan dapat menggunakan ID akun atau email. Jika keduanya diberikan, email akan digunakan dan ID akun akan diabaikan.

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

Membuat pembekuan untuk Drive pada OU dan menyertakan konten drive bersama

Contoh berikut menunjukkan cara pembekuan yang bernama "Pembekuan OU Drive Pertama Saya" dibuat untuk:

  • Layanan: Drive
  • Entitas: unit org "Keuangan" (ID OU diambil di orgUnitId)
  • Opsi tambahan: mencakup drive bersama tempat pengguna di unit organisasi ini menjadi anggotanya

Ambil ID OU dari AdminSdk.

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

Membuat pembekuan untuk Grup pada akun grup tertentu dengan rentang tanggal

Contoh berikut menunjukkan cara pembekuan yang bernama "Pembekuan Grup Pertama Saya" dibuat untuk:

  • Layanan: Grup
  • Entitas: akun grup "group1" dan "group2"
  • Opsi tambahan: hanya membekukan pesan dengan tanggal terkirim antara "startTime" dan "endTime"

Ambil ID akun grup dari AdminSdk.

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 stempel waktu. Selain itu, start/endTimes dikonversi ke GMT dan dibulatkan ke bawah ke awal tanggal yang ditentukan.

Membuat kueri dan mengubah pembekuan yang ada

Contoh berikut menunjukkan cara menampilkan daftar semua akun yang disertakan dalam pembekuan yang ada:

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

Contoh berikut menunjukkan cara menambahkan akun ke, dan menghapus akun dari, pembekuan yang ada:

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

Contoh berikut menunjukkan cara memodifikasi OU pada pembekuan OU yang ada:

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

Contoh berikut menunjukkan cara menampilkan daftar semua pembekuan untuk suatu masalah:

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