การคงไว้ชั่วคราวจะเก็บรักษาข้อมูลไว้อย่างไม่มีกำหนด ซึ่งอาจทำเพื่อให้เป็นไปตามภาระหน้าที่ทางกฎหมายหรือการเก็บรักษาก็ได้ โดยปกติแล้ว การคงไว้ชั่วคราวจะกำหนดไว้สำหรับผู้ใช้ตั้งแต่ 1 รายขึ้นไปเพื่อให้แน่ใจว่าจะไม่สามารถลบข้อมูลที่เกี่ยวข้องกับกรณีหนึ่งๆ ได้จนกว่ากรณีนั้นจะไม่มีสถานะใช้งานอีกต่อไป
หากผู้ใช้ที่ต้องคงข้อมูลไว้ชั่วคราวลบข้อมูลที่คงไว้ชั่วคราวออก ระบบจะนำข้อมูลนั้นออกจากการแสดงผลของผู้ใช้ แต่จะยังเก็บรักษาข้อมูลไว้ใน Google ห้องนิรภัย ผู้ดูแลระบบ Vault จะค้นหาและส่งออกข้อมูลดังกล่าวได้ตราบใดที่ยังมีการคงไว้ชั่วคราว
การคงไว้ชั่วคราวมีองค์ประกอบต่อไปนี้
- บริการ แอปพลิเคชันที่รับผิดชอบข้อมูลที่จะคงไว้ชั่วคราว คุณสามารถตั้งค่าบริการเป็น Mail, ไดรฟ์ หรือ Groups ได้
- ขอบเขต เอนทิตีที่ครอบคลุมโดยการคงไว้ชั่วคราว คุณสามารถตั้งค่าขอบเขตเป็นบัญชีผู้ใช้ตั้งแต่ 1 บัญชีขึ้นไป หรือเป็นหน่วยขององค์กร (OU) ก็ได้
- ตัวเลือกเพิ่มเติม (ไม่บังคับ) รายละเอียดเฉพาะ (การค้นหาหรือตัวเลือกการกำหนดค่า) ที่ใช้เพื่อจำกัดข้อมูลที่จะคงไว้ชั่วคราวภายในขอบเขตที่กำหนด ตัวเลือก ได้แก่
- Mail, Groups: การค้นหาเพื่อจำกัดการคงไว้ชั่วคราว
- ไดรฟ์: รวมไดรฟ์ที่แชร์ในการคงไว้ชั่วคราว
หากต้องการใช้ทรัพยากร Vault บัญชีต้องมี สิทธิ์ของ Vault ที่จำเป็น และสิทธิ์เข้าถึงกรณี หากต้องการเข้าถึงกรณี บัญชีต้องเป็นผู้สร้างกรณี มีการแชร์กรณีกับบัญชี หรือมีสิทธิ์ดูกรณีทั้งหมด คุณต้องสร้างกรณีขึ้นก่อนจึงจะ สร้างการคงไว้ชั่วคราวได้
สร้างการคงไว้ชั่วคราวสำหรับ Mail ในบัญชีผู้ใช้ที่เฉพาะเจาะจงด้วยการค้นหา
ตัวอย่างต่อไปนี้แสดงวิธีสร้างการคงไว้ชั่วคราวชื่อ "การคงไว้ชั่วคราวสำหรับบัญชี Mail ครั้งแรก" สำหรับข้อมูลต่อไปนี้
- บริการ: Mail
- เอนทิตี: บัญชีผู้ใช้ "user1" และ "user2"
- ตัวเลือกเพิ่มเติม: การค้นหา "to:ceo@company.com"
ดึงข้อมูลรหัสบัญชีผู้ใช้จาก
Directory API HeldAccount สามารถใช้รหัสบัญชีหรืออีเมลก็ได้ หากระบุทั้ง 2 อย่าง ระบบจะใช้อีเมลและไม่สนใจรหัสบัญชี
Java
HeldMailQuery mailQuery = new HeldMailQuery().setTerms("to:ceo@company.com"); 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: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()
สร้างการคงไว้ชั่วคราวสำหรับไดรฟ์ใน OU และรวมเนื้อหาในไดรฟ์ที่แชร์
ตัวอย่างต่อไปนี้แสดงวิธีสร้างการคงไว้ชั่วคราวชื่อ "การคงไว้ชั่วคราวสำหรับ OU ของไดรฟ์ครั้งแรก" สำหรับข้อมูลต่อไปนี้
- บริการ: ไดรฟ์
- เอนทิตี: หน่วยขององค์กร "การเงิน" (รหัส OU จะบันทึกไว้ใน orgUnitId)
- ตัวเลือกเพิ่มเติม: รวมไดรฟ์ที่แชร์ที่ผู้ใช้ในหน่วยขององค์กรนี้เป็นสมาชิก
ดึงข้อมูลรหัสหน่วยขององค์กรจาก 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()
สร้างการคงไว้ชั่วคราวสำหรับ Groups ในบัญชีกลุ่มที่เฉพาะเจาะจงด้วยช่วงวันที่
ตัวอย่างต่อไปนี้แสดงวิธีสร้างการคงไว้ชั่วคราวชื่อ "การคงไว้ชั่วคราวสำหรับกลุ่มครั้งแรก" สำหรับข้อมูลต่อไปนี้
- บริการ: Groups
- เอนทิตี: บัญชีกลุ่ม "group1" และ "group2"
- ตัวเลือกเพิ่มเติม: คงไว้ชั่วคราวเฉพาะข้อความที่มีวันที่ส่งระหว่าง "startTime" กับ "endTime"
ดึงข้อมูลรหัสบัญชีกลุ่มจาก Directory API
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()
- รูปแบบการประทับเวลา
นอกจากนี้ ระบบจะแปลง
start/endTimesเป็น GMT และปัดเศษลงเป็นจุดเริ่มต้นของวันที่ที่ระบุ
ค้นหาและแก้ไขการคงไว้ชั่วคราวที่มีอยู่
ตัวอย่างต่อไปนี้แสดงวิธีแสดงรายการบัญชีทั้งหมดที่รวมอยู่ในการคงไว้ชั่วคราว
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']
ตัวอย่างต่อไปนี้แสดงวิธีเพิ่มและนำบัญชีออกจากการคงไว้ชั่วคราว
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()
ตัวอย่างต่อไปนี้แสดงวิธีแก้ไขหน่วยขององค์กรในการคงไว้ชั่วคราวที่มีอยู่
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()
ตัวอย่างต่อไปนี้แสดงวิธีแสดงรายการการคงไว้ชั่วคราวทั้งหมดสำหรับกรณีหนึ่งๆ
Java
String matterId = "Matter Id"; // List all holds. ListholdsList = 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()