होल्ड को प्रबंधित करें

कानूनी या संरक्षण की जवाबदेही को पूरा करने के लिए, डेटा को हमेशा के लिए सुरक्षित रखता है. आम तौर पर, होल्ड एक या उससे ज़्यादा उपयोगकर्ताओं पर लगाए जाते हैं, ताकि यह पक्का किया जा सके कि किसी मामले से जुड़ा डेटा तब तक मिटाया न जा सके, जब तक वह डेटा काम न कर दे.

अगर कोई उपयोगकर्ता होल्ड पर है और होल्ड किए गए डेटा को मिटा देता है, तो वह डेटा उपयोगकर्ता के व्यू से हटा दिया जाता है, लेकिन उसे Vault में सुरक्षित रखा जाता है. जब तक होल्ड लागू रहेगा, तब तक Vault एडमिन उस डेटा को खोज सकता है और एक्सपोर्ट कर सकता है.

होल्ड में ये कॉम्पोनेंट होते हैं:

  • सेवा—वह ऐप्लिकेशन जो डेटा को होल्ड किए जाने के लिए ज़िम्मेदार है. इस सेवा को मेल, Drive या ग्रुप के तौर पर सेट किया जा सकता है.
  • दायरा—होल्ड में शामिल इकाइयां. दायरे को एक या उससे ज़्यादा उपयोगकर्ता खातों या संगठन की इकाई (ओयू) पर सेट किया जा सकता है.
  • अतिरिक्त विकल्प (ज़रूरी नहीं)—वह खास जानकारी (खोज क्वेरी या कॉन्फ़िगरेशन विकल्प) जिसका इस्तेमाल करके, तय किए गए दायरे में आने वाले डेटा को सीमित किया जाता है. आपके पास ये विकल्प उपलब्ध हैं:
    • मेल, समूह: खोज क्वेरी की अवधि को सीमित करने के लिए
    • Drive: शेयर की गई ड्राइव को होल्ड में रखें

Vault संसाधनों के साथ काम करने के लिए, खाते के पास ज़रूरी Vault के खास अधिकार और मामले का ऐक्सेस होना चाहिए. किसी मामले को ऐक्सेस करने के लिए, यह ज़रूरी है कि खाते ने मामला बनाया हो, उसके साथ मामला शेयर किया गया हो या सभी मामले देखें का अधिकार हो.

खोज क्वेरी की मदद से, खास उपयोगकर्ता खातों में मेल के लिए होल्ड बनाएं

इस उदाहरण में बताया गया है कि इन चीज़ों के लिए, "मेरा पहला मेल खाता होल्ड" नाम का होल्ड कैसे बनाया जाता है:

  • सेवा: मेल
  • इकाई: उपयोगकर्ता खाते "user1" और "user2"
  • अन्य विकल्प: खोज क्वेरी "to:ceo@company.com"

AdminSdk से यूज़र खाता आईडी वापस पाएं. ध्यान दें कि 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 के लिए होल्ड बनाएं और उसमें शेयर की गई ड्राइव का कॉन्टेंट शामिल करें

यहां दिए गए उदाहरण में बताया गया है कि "मेरी पहली ड्राइव के लिए ओयू होल्ड" नाम का होल्ड कैसे बनाया जाता है:

  • सेवा: Drive
  • इकाई: संगठन की इकाई "फ़ाइनेंस" (ओयू आईडी को orgUnitId में कैप्चर किया गया है)
  • अन्य विकल्प: ऐसी 'शेयर की गई ड्राइव' शामिल करें जिनसे संगठन की इस इकाई के उपयोगकर्ता सदस्य हैं

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

तारीख की सीमा वाले खास ग्रुप खातों पर, Groups के लिए होल्ड बनाएं

इस उदाहरण में दिखाया गया है कि "मेरा पहला ग्रुप होल्ड" नाम का होल्ड इनके लिए कैसे बनाया जाता है:

  • सेवा: ग्रुप
  • इकाई: ग्रुप के खाते "group1" और "group2"
  • अतिरिक्त विकल्प: सिर्फ़ उन मैसेज को होल्ड करें जिनमें "startTime" और "endTime" के बीच भेजे गए तारीख वाले मैसेज हों

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()
 
  • टाइमस्टैंप का फ़ॉर्मैट. इसके अलावा, 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. 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()