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