xref: /aosp_15_r20/external/federated-compute/fcp/protos/ondevicepersonalization/eligibility_spec.proto (revision 14675a029014e728ec732f129a32e299b2da0601)
1*14675a02SAndroid Build Coastguard Worker/*
2*14675a02SAndroid Build Coastguard Worker * Copyright (C) 2024 The Android Open Source Project
3*14675a02SAndroid Build Coastguard Worker *
4*14675a02SAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License");
5*14675a02SAndroid Build Coastguard Worker * you may not use this file except in compliance with the License.
6*14675a02SAndroid Build Coastguard Worker * You may obtain a copy of the License at
7*14675a02SAndroid Build Coastguard Worker *
8*14675a02SAndroid Build Coastguard Worker *      http://www.apache.org/licenses/LICENSE-2.0
9*14675a02SAndroid Build Coastguard Worker *
10*14675a02SAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software
11*14675a02SAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS,
12*14675a02SAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13*14675a02SAndroid Build Coastguard Worker * See the License for the specific language governing permissions and
14*14675a02SAndroid Build Coastguard Worker * limitations under the License.
15*14675a02SAndroid Build Coastguard Worker */
16*14675a02SAndroid Build Coastguard Worker
17*14675a02SAndroid Build Coastguard Workersyntax = "proto3";
18*14675a02SAndroid Build Coastguard Worker
19*14675a02SAndroid Build Coastguard Workerpackage google.ondevicepersonalization.federatedcompute.proto;
20*14675a02SAndroid Build Coastguard Worker
21*14675a02SAndroid Build Coastguard Workeroption java_package = "com.google.ondevicepersonalization.federatedcompute.proto";
22*14675a02SAndroid Build Coastguard Workeroption java_multiple_files = true;
23*14675a02SAndroid Build Coastguard Worker
24*14675a02SAndroid Build Coastguard Worker
25*14675a02SAndroid Build Coastguard Worker// Provides the information needed to determine eligibility for a task.
26*14675a02SAndroid Build Coastguard Worker// Next Id: 2
27*14675a02SAndroid Build Coastguard Workermessage EligibilityTaskInfo {
28*14675a02SAndroid Build Coastguard Worker  // The eligibility policies that apply to this task.
29*14675a02SAndroid Build Coastguard Worker  repeated EligibilityPolicyEvalSpec eligibility_policies = 1;
30*14675a02SAndroid Build Coastguard Worker}
31*14675a02SAndroid Build Coastguard Worker
32*14675a02SAndroid Build Coastguard Worker// Specification describing the eligibility policy and its parameters.
33*14675a02SAndroid Build Coastguard Worker// Next Id: 4
34*14675a02SAndroid Build Coastguard Workermessage EligibilityPolicyEvalSpec {
35*14675a02SAndroid Build Coastguard Worker  // The identifier of the policy. It should be unique within population.
36*14675a02SAndroid Build Coastguard Worker  string id = 1;
37*14675a02SAndroid Build Coastguard Worker
38*14675a02SAndroid Build Coastguard Worker  // The specification of the policy implementation, including the
39*14675a02SAndroid Build Coastguard Worker  // policy-specific parameters.
40*14675a02SAndroid Build Coastguard Worker  oneof policy_type {
41*14675a02SAndroid Build Coastguard Worker    MinimumSeparationPolicy min_sep_policy = 2;
42*14675a02SAndroid Build Coastguard Worker    DataAvailabilityPolicy data_availability_policy = 3;
43*14675a02SAndroid Build Coastguard Worker  }
44*14675a02SAndroid Build Coastguard Worker}
45*14675a02SAndroid Build Coastguard Worker
46*14675a02SAndroid Build Coastguard Worker// Minimum separation policy parameters.
47*14675a02SAndroid Build Coastguard Worker// Next Id: 3
48*14675a02SAndroid Build Coastguard Workermessage MinimumSeparationPolicy {
49*14675a02SAndroid Build Coastguard Worker  // The current index (e.g., algorithmic round number) of the federated computation.
50*14675a02SAndroid Build Coastguard Worker  int64 current_index = 1;
51*14675a02SAndroid Build Coastguard Worker
52*14675a02SAndroid Build Coastguard Worker  // The minimum index separation required between successful contributions.
53*14675a02SAndroid Build Coastguard Worker  int64 minimum_separation = 2;
54*14675a02SAndroid Build Coastguard Worker}
55*14675a02SAndroid Build Coastguard Worker
56*14675a02SAndroid Build Coastguard Worker// Data availability policy parameters.
57*14675a02SAndroid Build Coastguard Workermessage DataAvailabilityPolicy {
58*14675a02SAndroid Build Coastguard Worker  // The minimum number of examples from the selector to be considered
59*14675a02SAndroid Build Coastguard Worker  // eligible.
60*14675a02SAndroid Build Coastguard Worker  int32 min_example_count = 1;
61*14675a02SAndroid Build Coastguard Worker}
62