Pembekuan menyimpan data tanpa batas waktu untuk memenuhi kewajiban hukum atau penyimpanan. Biasanya pembekuan diterapkan pada satu atau beberapa pengguna untuk memastikan bahwa data yang berpotensi relevan dengan suatu masalah tidak dapat dihapus hingga masalah tersebut tidak lagi aktif.
Jika pengguna yang tunduk pada pembekuan menghapus data yang dibekukan, data tersebut akan dihapus dari tampilan pengguna, tetapi masih 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 ditetapkan ke email, Drive, atau Grup.
- Cakupan—entitas yang dicakup oleh penangguhan. Cakupan dapat ditetapkan ke satu atau beberapa akun pengguna, atau ke 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. Opsi mencakup:
- email, Grup: kueri penelusuran untuk mempersempit penangguhan
- Drive: menyertakan drive bersama dalam penangguhan
Untuk menggunakan resource Vault, akun harus memiliki hak istimewa Vault yang diperlukan dan akses ke materi. Untuk mengakses masalah, akun harus telah membuat masalah, memiliki masalah yang dibagikan kepadanya, atau memiliki hak istimewa Lihat Semua Masalah.
Membuat penangguhan untuk email di akun pengguna tertentu dengan kueri penelusuran
Contoh berikut menunjukkan cara penangguhan bernama "My First mail Accounts Hold" dibuat untuk:
- Layanan: mail
- Entitas: akun pengguna "user1" dan "user2"
- Opsi tambahan: kueri penelusuran "to:[email protected]"
Mengambil ID akun pengguna dari AdminSdk. Perhatikan bahwa HeldAccount dapat menggunakan ID atau email akun. Jika keduanya diberikan, email akan digunakan dan ID akun akan diabaikan.
Java
HeldMailQuery mailQuery = new HeldMailQuery().setTerms("to:[email protected]"); 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:[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()
Membuat penangguhan untuk Drive di OU dan menyertakan konten drive bersama
Contoh berikut menunjukkan cara penangguhan bernama "My First Drive OU Hold" dibuat untuk:
- Layanan: Drive
- Entitas: unit organisasi "Keuangan" (ID OU diambil dalam orgUnitId)
- Opsi tambahan: sertakan drive bersama yang anggotanya adalah pengguna di unit organisasi ini
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 di akun grup tertentu dengan rentang tanggal
Contoh berikut menunjukkan cara membuat penangguhan bernama "My First Group Hold" untuk:
- Layanan: Grup
- Entitas: akun grup "group1" dan "group2"
- Opsi tambahan: hanya tahan pesan dengan tanggal pengiriman antara "startTime" dan "endTime"
Mengambil ID akun grup dari AdminSdk.
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()
- Format stempel waktu. Selain itu, start/endTimes dikonversi ke GMT dan dibulatkan ke bawah ke awal tanggal yang diberikan.
Membuat kueri dan mengubah penangguhan yang ada
Contoh berikut menunjukkan cara mencantumkan semua akun yang disertakan dalam penangguhan 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, penangguhan 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 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()
Contoh berikut menunjukkan cara mengubah OU pada penangguhan 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 mencantumkan semua penangguhan untuk suatu perkara:
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()