ניהול החזקות

החזקות שומרות נתונים ללא הגבלת זמן כדי לעמוד בחובות משפטיות או בחובות שמירה. בדרך כלל, מעבירים משתמש אחד או יותר להמתנה כדי לוודא שאי אפשר למחוק נתונים שרלוונטיים לנושא מסוים עד שהנושא הזה כבר לא פעיל.

אם משתמש שכפוף להחזקה מוחק נתונים בהחזקה, הנתונים מוסרים מהתצוגה של המשתמש, אבל הם נשמרים ב-Google Vault. כל עוד ההקפאה בתוקף, אדמינים ב-Vault יכולים לחפש את הנתונים האלה ולייצא אותם.

השעיות כוללות את הרכיבים הבאים:

  • שירות. האפליקציה שאחראית על הנתונים שצריך לשמור. אפשר להגדיר את השירות לאימייל, ל-Drive או לקבוצות.
  • היקף הרשאות הישויות שחלות עליהן ההקפאה. ההיקף יכול להיות מוגדר לחשבון משתמש אחד או יותר, או ליחידה ארגונית (OU).
  • אפשרויות נוספות (אופציונלי). הפרטים הספציפיים (שאילתות חיפוש או אפשרויות הגדרה) שמשמשים לצמצום הנתונים שייכללו בהיקף המוגדר. האפשרויות כוללות:
    • דואר, קבוצות: שאילתת חיפוש לצמצום ההקפאה
    • ‫Drive: כולל תיקיות אחסון שיתופי בהקפאה

כדי לעבוד עם משאבים ב-Vault, לחשבון צריכות להיות הרשאות Vault הנדרשות וגישה לעניין. כדי לגשת לתיק משפטי, החשבון צריך ליצור את התיק, לשתף את התיק עם החשבון או לקבל את ההרשאה View All Matters. כדי ליצור החזקה, צריך קודם ליצור עניין.

יצירת החזקה לצורך משפטי של אימיילים בחשבונות משתמשים ספציפיים באמצעות שאילתת חיפוש

בדוגמה הבאה מוצג אופן היצירה של הקפאה בשם My First mail Accounts Hold (ההקפאה הראשונה של חשבונות אימייל) עבור:

  • שירות: mail
  • ישות: חשבונות משתמשים user1 ו-user2
  • אפשרויות נוספות: שאילתת החיפוש 'אל:ceo@company.com'

אחזור מזהי חשבונות משתמשים מ-Directory API. אפשר להזין את מזהה החשבון או את כתובת האימייל של HeldAccount. אם צוינו גם כתובת אימייל וגם מזהה חשבון, המערכת תשתמש בכתובת האימייל ותתעלם ממזהה החשבון.

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

יצירת הקפאה ל-Drive ביחידה ארגונית וכוללת תוכן באחסון שיתופי

בדוגמה הבאה מוצג אופן היצירה של הקפאה בשם My First Drive OU Hold עבור:

  • שירות: Drive
  • ישות: יחידה ארגונית 'Finance' (מזהה היחידה הארגונית נשמר ב-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()

יצירת הקפאה לקבוצות בחשבונות קבוצה ספציפיים עם טווח תאריכים

בדוגמה הבאה אפשר לראות איך נוצרת הקפאה בשם My First Group Hold עבור:

  • שירות: קבוצות
  • ישות: חשבונות קבוצתיים group1 ו-group2
  • אפשרויות נוספות: השהיה רק של הודעות עם תאריכי שליחה בין startTime ל-endTime

אחזור מזהי חשבונות קבוצתיים מ-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()
 

שאילתה ושינוי של הקפאות קיימות

בדוגמה הבאה אפשר לראות איך מציגים רשימה של כל החשבונות שנכללים בהקפאה.

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