保留を管理

記録保持(リティゲーション ホールド)は、法的義務や保存義務を果たすために、データを無期限に保存します。通常、記録保持(リティゲーション ホールド)は 1 人以上のユーザーに対して設定され、案件がアクティブでなくなるまで、ある案件に関連する可能性があるデータを削除できないようにします。

記録保持の対象となるユーザーが保持データを削除すると、そのデータはユーザーのビューに表示されなくなりますが、Vault には保持されます。記録保持が適用されている限り、Vault 管理者はそのデータを検索して書き出すことができます。

記録保持には次の要素が含まれます。

  • サービス -データが保持されるアプリケーション。サービスは、メール、ドライブ、グループのいずれかに設定できます。
  • 範囲 -記録保持の対象となるエンティティ。範囲は、1 つ以上のユーザー アカウントまたは組織部門(OU)に設定できます。
  • その他のオプション(省略可) - 定義したスコープで保持するデータを絞り込むための具体的な詳細(検索クエリまたは設定オプション)。以下のオプションがあります。
    • メール、グループ: 記録保持を絞り込むための検索クエリ
    • ドライブ: 共有ドライブを記録保持に含める

Vault リソースを操作するには、アカウントに必要な Vault 権限と案件へのアクセス権が必要です。案件にアクセスするには、そのアカウントで案件を作成しているか、案件を共有しているか、全案件の閲覧権限を持っている必要があります。

検索クエリを使用して特定のユーザー アカウントのメールに記録保持を作成する

次の例は、「My First Mail Accounts Hold」という名前の記録保持(リティゲーション ホールド)を作成した例です。

  • サービス: Mail
  • エンティティ: ユーザー アカウント「user1」と「user2」
  • その他のオプション: 検索クエリ「to:ceo@company.com」

AdminSdk からユーザー アカウント ID を取得します。HeldAccount には、アカウント ID またはメールアドレスを指定できます。両方を指定すると、メールアドレスが使用され、アカウント ID は無視されます。

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

組織部門に対してドライブの記録保持を作成し、共有ドライブのコンテンツを含める

次の例では、「My First Drive OU Hold」という名前の記録保持(リティゲーション ホールド)を作成する方法を示します。

  • サービス: ドライブ
  • エンティティ: 組織部門「Finance」(組織部門 ID は orgUnitId で取得されます)
  • その他のオプション: この組織部門のユーザーがメンバーになっている共有ドライブを含める

AdminSdk から組織部門 ID を取得します。

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

期間を指定して、特定のグループ アカウントに対して Google グループの記録保持を作成する

次の例では、「My First Group Hold」という名前の記録保持を作成する例を示します。

  • サービス: グループ
  • エンティティ: グループ アカウント「group1」と「group2」
  • その他のオプション: 「startTime」から「endTime」までの間に送信した日付のメッセージのみを保持する

AdminSdk からグループ アカウント ID を取得します。

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