Bekletmeleri Yönet

Muhafazalar, yasal gereksinimleri veya koruma yükümlülüklerini yerine getirmek için verileri süresiz olarak saklar. Genellikle, bir konuyla alakalı olabilecek verilerin, söz konusu konu artık etkin olmayana kadar silinememesini sağlamak için bir veya daha fazla kullanıcıya muhafaza uygulanır.

Muhafazaya tabi olan bir kullanıcı muhafaza edilen verileri silerse bu veriler kullanıcının görünümünden kaldırılır ancak Apps Kasası'nda saklanır. Muhafaza devam ettiği sürece, bir Apps Kasası yöneticisi bu verileri arayabilir ve dışa aktarabilir.

Muhafazalar aşağıdaki bileşenlere sahiptir:

  • Hizmet: Saklanacak verilerden sorumlu uygulama. Hizmet posta, Drive veya Gruplar hizmetine ayarlanabilir.
  • Kapsam: Muhafaza kapsamındaki varlıklar. Kapsam, bir veya daha fazla kullanıcı hesabı ya da bir kuruluş birimine (OU) ayarlanabilir.
  • Ek seçenekler (isteğe bağlı): Tanımlanan kapsam dahilinde tutulacak verileri daraltmak için kullanılan belirli ayrıntılar (arama sorguları veya yapılandırma seçenekleri). Seçenekler şunlardır:
    • mail, Google Grupları: muhafazayı daraltmak için arama sorgusu
    • Drive: Muhafazaya ortak Drive'ları dahil et

Hesabın Apps Kasası kaynaklarıyla çalışabilmesi için gerekli Apps Kasası ayrıcalıklarına sahip olması ve konuya erişebilmesi gerekir. Bir konuya erişmek için hesabın konuyu oluşturmuş, konunun kendisiyle paylaşılmış olması veya Tüm Konuları Görüntüleme ayrıcalığına sahip olması gerekir.

Arama sorgusu kullanarak belirli kullanıcı hesaplarındaki postalar için muhafaza oluşturma

Aşağıdaki örnekte "İlk Posta Hesaplarımı Muhafazaya Aldım" adlı bir muhafazanın aşağıdakiler için nasıl oluşturulduğu gösterilmektedir:

  • Hizmet: posta
  • Varlık: "kullanıcı1" ve "kullanıcı2" kullanıcı hesapları
  • Ek seçenekler: "to:ceo@sirket.com" arama sorgusu

Kullanıcı hesabı kimliklerini AdminSdk'den alın. Bekletilen Hesap'ın, hesap kimliğini veya e-postayı alabileceğini unutmayın. Her ikisi de sağlanırsa e-posta kullanılır ve hesap kimliği yok sayılır.

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

Kuruluş birimindeki Drive için muhafaza oluşturma ve ortak Drive içeriğini dahil etme

Aşağıdaki örnekte, "İlk Drive Kuruluş Birimi Muhafazam" adlı bir muhafazanın aşağıdakiler için nasıl oluşturulduğu gösterilmektedir:

  • Hizmet: Drive
  • Varlık: "Finans" kuruluş birimi (Kuruluş Birimi Kimliği, orgUnitId'de alınmıştır)
  • Ek seçenekler: Bu kuruluş birimindeki kullanıcıların üyesi olduğu ortak Drive'ları dahil edin

AdminSdk'den kuruluş birimi kimliklerini alın.

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

Tarih aralığı olan belirli grup hesaplarında Gruplar için muhafaza oluşturma

Aşağıdaki örnekte "İlk Grup Muhafazam" adlı bir muhafazanın şunlar için nasıl oluşturulduğu gösterilmektedir:

  • Hizmet: Gruplar
  • Varlık: "group1" ve "group2" grup hesapları
  • Ek seçenekler: Yalnızca gönderme tarihleri "startTime" ile "endTime" arasında olan mesajları muhafaza et

Grup hesabı kimliklerini AdminSdk'den alın.

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()
 
  • Zaman damgası biçimi. Ayrıca, başlangıç/bitiş zamanları GMT'ye dönüştürülür ve belirtilen tarihin başına yuvarlanır.

Mevcut muhafazaları sorgulayın ve değiştirin

Aşağıdaki örnekte, mevcut bir muhafazaya dahil edilen tüm hesapların nasıl listeleneceği gösterilmektedir:

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'] 

Aşağıdaki örnekte, mevcut bir muhafazaya hesap ekleme ve muhafazadan hesap kaldırma işlemleri gösterilmektedir:

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

Aşağıdaki örnekte, mevcut bir kuruluş birimi muhafazasındaki kuruluş biriminin nasıl değiştirileceği gösterilmektedir:

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

Aşağıdaki örnekte, bir konuyla ilgili tüm muhafazaların nasıl listeleneceği gösterilmektedir:

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