1/* 2 * Copyright (C) 2023 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17syntax = "proto2"; 18package android.federatedcompute; 19 20option java_outer_classname = "FederatedComputeProtoEnums"; 21option java_multiple_files = true; 22 23// Enum used to track federated computation job stages. 24// Next Tag: 53 25enum TrainingEventKind { 26 // Undefined value. 27 TRAIN_UNDEFINED = 0; 28 29 // Indicates that training was scheduled but did not start due to runtime 30 // checks (e.g. insufficient battery levels). 31 TRAIN_NOT_STARTED = 1; 32 33 // Client started downloading train phase info from the server 34 TRAIN_DOWNLOAD_STARTED = 2; 35 36 // Client is about to issue an eligibility eval checkin request to the 37 // server. 38 TRAIN_ELIGIBILITY_EVAL_DOWNLOAD_STARTED = 3; 39 40 // Client received eligibility eval plan & checkpoint URIs from the server, 41 // but hasn't downloaded them yet. Also logged when the plan/checkpoint 42 // resources were actually supplied inline in the protocol response message 43 // and no actual HTTP fetch needs to happen anymore. This ensures that this 44 // event can always be compared against 45 // TRAIN_ELIGIBILITY_EVAL_PLAN_RECEIVED. 46 // Always preceded by TRAIN_ELIGIBILITY_EVAL_DOWNLOAD_STARTED. 47 TRAIN_ELIGIBILITY_EVAL_PLAN_URI_RECEIVED = 4; 48 49 // Client received an eligibility eval plan from the server. 50 // Always preceded by TRAIN_ELIGIBILITY_EVAL_PLAN_URI_RECEIVED. 51 TRAIN_ELIGIBILITY_EVAL_PLAN_RECEIVED = 5; 52 53 // Client was told by the server that there is no eligibility eval plan for 54 // the given population. 55 // Always preceded by TRAIN_ELIGIBILITY_EVAL_DOWNLOAD_STARTED. 56 TRAIN_ELIGIBILITY_EVAL_NOT_CONFIGURED = 6; 57 58 // Client was rejected from an eligibility eval checkin request. 59 // Always preceded by TRAIN_ELIGIBILITY_EVAL_DOWNLOAD_STARTED. 60 TRAIN_ELIGIBILITY_EVAL_TURNED_AWAY = 7; 61 62 // Client issued an eligibility eval checkin request, but an IO error was 63 // encountered. 64 // Always preceded by TRAIN_ELIGIBILITY_EVAL_DOWNLOAD_STARTED. 65 TRAIN_ELIGIBILITY_EVAL_DOWNLOAD_ERROR_IO = 8; 66 67 // Client issued an eligibility eval checkin request, but an invalid payload 68 // was received. 69 // Always preceded by TRAIN_ELIGIBILITY_EVAL_DOWNLOAD_STARTED. 70 TRAIN_ELIGIBILITY_EVAL_DOWNLOAD_ERROR_INVALID_PAYLOAD = 9; 71 72 // Client issued an eligibility eval checkin request, but got interrupted on 73 // the client. Always preceded by TRAIN_ELIGIBILITY_EVAL_DOWNLOAD_STARTED. 74 TRAIN_ELIGIBILITY_EVAL_DOWNLOAD_CLIENT_INTERRUPTED = 10; 75 76 // Client issued an eligibility eval checkin request, but server aborted. 77 // Always preceded by TRAIN_ELIGIBILITY_EVAL_DOWNLOAD_STARTED. 78 TRAIN_ELIGIBILITY_EVAL_DOWNLOAD_SERVER_ABORTED = 11; 79 80 // Client issued a regular checkin request, but got an IO error. 81 // Always preceded by TRAIN_DOWNLOAD_STARTED. 82 TRAIN_DOWNLOAD_ERROR_IO = 12; 83 84 // Client issued a regular checkin request, but the server returned an 85 // invalid payload. 86 // Always preceded by TRAIN_DOWNLOAD_STARTED. 87 TRAIN_DOWNLOAD_ERROR_INVALID_PAYLOAD = 13; 88 89 // Client issued a regular checin request, but got interrupted on the 90 // client. Always preceded by TRAIN_DOWNLOAD_STARTED. 91 TRAIN_DOWNLOAD_CLIENT_INTERRUPTED = 14; 92 93 // Client issued a regular checin request, but got aborted by the server. 94 // Always preceded by TRAIN_DOWNLOAD_STARTED. 95 TRAIN_DOWNLOAD_SERVER_ABORTED = 15; 96 97 // Client received plan and checkpoint URIs from the server, but hasn't 98 // actually downloaded them yet. Also logged when the plan/checkpoint 99 // resources were actually supplied inline in the protocol response message 100 // and no actual HTTP fetch needs to happen anymore. This ensures that this 101 // event can always be compared against TRAIN_DOWNLOAD_PLAN_RECEIVED. 102 // Always preceded by TRAIN_DOWNLOAD_STARTED. 103 TRAIN_DOWNLOAD_PLAN_URI_RECEIVED = 16; 104 105 // Client received a plan from the server. 106 // Always preceded by TRAIN_DOWNLOADED_PLAN_URI_RECEIVED. 107 TRAIN_DOWNLOAD_PLAN_RECEIVED = 17; 108 109 // Client was rejected from a checkin request. 110 // Always preceded by TRAIN_DOWNLOAD_STARTED. 111 TRAIN_DOWNLOAD_TURNED_AWAY = 18; 112 113 // Client started eligibility eval computation. 114 TRAIN_ELIGIBILITY_EVAL_COMPUTATION_STARTED = 19; 115 116 // Client encountered a TensorFlow error during eligibility eval task 117 // computation. 118 // Always preceded by TRAIN_ELIGIBILITY_EVAL_COMPUTATION_STARTED. 119 TRAIN_ELIGIBILITY_EVAL_COMPUTATION_ERROR_TENSORFLOW = 20; 120 121 // Reading from disk failed during eligibility eval task computation. 122 // Always preceded by TRAIN_ELIGIBILITY_EVAL_COMPUTATION_STARTED. 123 TRAIN_ELIGIBILITY_EVAL_COMPUTATION_ERROR_IO = 21; 124 125 // Input parameters are invalid for eligibility eval task computation. 126 // Always preceded by TRAIN_ELIGIBILITY_EVAL_COMPUTATION_STARTED. 127 TRAIN_ELIGIBILITY_EVAL_COMPUTATION_ERROR_INVALID_ARGUMENT = 22; 128 129 // Client encountered an example selector error during eligibility eval task 130 // computation. 131 // Always preceded by TRAIN_ELIGIBILITY_EVAL_COMPUTATION_STARTED. 132 TRAIN_ELIGIBILITY_EVAL_COMPUTATION_ERROR_EXAMPLE_ITERATOR = 23; 133 134 // Eligibility eval computation was interrupted by the client. 135 TRAIN_ELIGIBILITY_EVAL_COMPUTATION_CLIENT_INTERRUPTED = 24; 136 137 // Client finished eligibility eval computation. 138 // Always preceded by TRAIN_ELIGIBILITY_EVAL_COMPUTATION_STARTED. 139 TRAIN_ELIGIBILITY_EVAL_COMPUTATION_COMPLETED = 25; 140 141 // Client finished eligibility eval computation and result is eligible. 142 // Always preceded by TRAIN_ELIGIBILITY_EVAL_COMPUTATION_STARTED. 143 TRAIN_ELIGIBILITY_EVAL_COMPUTATION_ELIGIBLE = 51; 144 145 // Client started computation. 146 TRAIN_COMPUTATION_STARTED = 26; 147 148 // A TensorFlow error was encountered during computation, or the output from 149 // the computation was missing or of an unexpected type. Always preceded by 150 // TRAIN_COMPUTATION_STARTED. 151 TRAIN_COMPUTATION_ERROR_TENSORFLOW = 27; 152 153 // Reading from disk failed during computation. 154 // Always preceded by TRAIN_COMPUTATION_STARTED. 155 TRAIN_COMPUTATION_ERROR_IO = 28; 156 157 // Input parameters are invalid for the given computation. 158 // Always preceded by TRAIN_COMPUTATION_STARTED. 159 TRAIN_COMPUTATION_ERROR_INVALID_ARGUMENT = 29; 160 161 // An error occurred when processing the example selector. 162 // Always preceded by TRAIN_COMPUTATION_STARTED. 163 TRAIN_COMPUTATION_ERROR_EXAMPLE_ITERATOR = 30; 164 165 // Client got interrupted during computation. 166 // Always preceded by TRAIN_COMPUTATION_STARTED. 167 TRAIN_COMPUTATION_CLIENT_INTERRUPTED = 31; 168 169 // Client finished computation. 170 // Always preceded by TRAIN_COMPUTATION_STARTED. 171 TRAIN_COMPUTATION_COMPLETED = 32; 172 173 // Client report result to server successfully 174 TRAIN_RESULT_REPORT_SUCCESS = 50; 175 176 // Client starts to upload successfully computed results. 177 TRAIN_RESULT_UPLOAD_STARTED = 33; 178 179 // An error occurred during upload. 180 // Always preceded by TRAIN_RESULT_UPLOAD_STARTED. 181 TRAIN_RESULT_UPLOAD_ERROR_IO = 34; 182 183 // Upload was interrupted by the client. 184 // Always preceded by TRAIN_RESULT_UPLOAD_STARTED. 185 TRAIN_RESULT_UPLOAD_CLIENT_INTERRUPTED = 35; 186 187 // Upload was aborted by the server. 188 // Always preceded by TRAIN_RESULT_UPLOAD_STARTED. 189 TRAIN_RESULT_UPLOAD_SERVER_ABORTED = 36; 190 191 // Client uploaded training results to the server 192 // Always preceded by TRAIN_RESULT_UPLOAD_STARTED. 193 TRAIN_RESULT_UPLOADED = 37; 194 195 // Client starts to upload failure report. 196 TRAIN_FAILURE_UPLOAD_STARTED = 38; 197 198 // An error occurred during upload. 199 // Always preceded by TRAIN_FAILURE_UPLOAD_STARTED. 200 TRAIN_FAILURE_UPLOAD_ERROR_IO = 39; 201 202 // Upload was interrupted. 203 // Always preceded by TRAIN_FAILURE_UPLOAD_STARTED. 204 TRAIN_FAILURE_UPLOAD_CLIENT_INTERRUPTED = 40; 205 206 // Upload was interrupted. 207 // Always preceded by TRAIN_FAILURE_UPLOAD_STARTED. 208 TRAIN_FAILURE_UPLOAD_SERVER_ABORTED = 41; 209 210 // Client uploaded failure report to the server 211 // Always preceded by TRAIN_FAILURE_UPLOAD_STARTED. 212 TRAIN_FAILURE_UPLOADED = 42; 213 214 // Client failed to initialize a component, but execution was not halted. 215 TRAIN_INITIALIZATION_ERROR_NONFATAL = 43; 216 217 // Client failed to initialize a component, and execution was halted. 218 TRAIN_INITIALIZATION_ERROR_FATAL = 44; 219 220 // Client receives http status = 403 UNAUTHORIZED when creating task assignment. 221 TRAIN_TASK_ASSIGNMENT_UNAUTHORIZED= 45; 222 223 // Client is authorized to create task assignment. 224 TRAIN_TASK_ASSIGNMENT_AUTH_SUCCEEDED = 46; 225 226 // Client receives http status = 403 UNAUTHORIZED when reporting result. 227 TRAIN_REPORT_RESULT_UNAUTHORIZED= 47; 228 229 // Client is authorized to report result. 230 TRAIN_INITIATE_REPORT_RESULT_AUTH_SUCCEEDED = 48; 231 232 // Client successfully generates an attestation record. 233 TRAIN_KEY_ATTESTATION_SUCCEEDED = 49; 234 235 // Client successfully finishes one round of training. 236 TRAIN_RUN_COMPLETE = 52; 237} 238