910e62b5创建于 1月15日历史提交
// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

syntax = "proto2";

package data_sharing_pb;

import "components/data_sharing/public/protocol/group_data.proto";
import "components/sync/protocol/collaboration_group_metadata.proto";

option java_multiple_files = true;
option java_package = "org.chromium.components.data_sharing.protocol";
option optimize_for = LITE_RUNTIME;

message CreateGroupParams {
  optional string display_name = 1;

  optional sync_pb.CollaborationGroupMetadata collaboration_group_metadata = 2;
}

message CreateGroupResult {
  optional GroupData group_data = 1;
}

message ReadGroupsParams {
  reserved 1, 3;

  message GroupParams {
    reserved 3;

    optional string group_id = 1;
    // Might be empty if the client needs the most fresh data.
    optional string consistency_token = 2;
  }
  repeated GroupParams group_params = 2;
}

message FailedReadGroupResult {
  optional string group_id = 1;

  enum FailureReason {
    FAILURE_REASON_UNSPECIFIED = 0;
    GROUP_NOT_FOUND = 1;
    USER_NOT_MEMBER = 2;
    TRANSIENT_ERROR = 3;
  }
  optional FailureReason failure_reason = 2;
}

message ReadGroupsResult {
  repeated GroupData group_data = 1;
  repeated FailedReadGroupResult failed_read_group_results = 2;
}

message ReadGroupWithTokenParams {
  optional string group_id = 1;
  optional string access_token = 2;
}

message AddMemberParams {
  optional string group_id = 1;
  oneof AddMemberOptions {
    // To add an another member, to an owned group.
    string member_gaia_id = 2;
    // To add current account to an unowned group.
    string access_token = 3;
  }
}

message RemoveMemberParams {
  optional string group_id = 1;
  optional string member_gaia_id = 2;
}

message LeaveGroupParams {
  optional string group_id = 1;
}

message DeleteGroupParams {
  optional string group_id = 1;
}

message LookupGaiaIdByEmailParams {
  optional string email = 1;
}

message LookupGaiaIdByEmailResult {
  optional string gaia_id = 1;
}

message AddAccessTokenParams {
  optional string group_id = 1;
}

message AddAccessTokenResult {
  optional GroupData group_data = 1;
}