| // Copyright 2023 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 reporting; |
| |
| option optimize_for = LITE_RUNTIME; |
| |
| // Used for annotating sensitive fields in google3. |
| // ${COPYBARA_DATAPOL_IMPORT} |
| |
| import "components/reporting/proto/synced/status.proto"; |
| |
| // Message populated by the caller when posting the log upload request |
| // initially and sent to the server as part of `Record`. |
| message UploadSettings { |
| // Path to the log on a device, e.g. “/var/cache/L.zip” |
| optional string origin_path = 1; // required |
| |
| // Number of remaining retries. Must be non-negative, 0 means last retry. |
| // Upon retryable error, decremented by ERP for the next attempt. |
| optional int32 retry_count = 2 [default = 3]; |
| |
| // Upload parameters, depending on the actual protocol |
| // (e.g., REST API URL, GCS bucket assigned for the log to be uploaded to). |
| // This field is implementation-dependent; having it generic allows to choose |
| // the actual upload protocol and/or unit test the whole process. |
| optional string upload_parameters = 3; // required |
| } |
| |
| // Message populated by ERP, used for upload progress tracking and sent to the |
| // server as part of `Record`. |
| message UploadTracker { |
| // Completion status error (matches .reporting.StatusProto). |
| // Skipped in case of success or work in progress, error status (code and |
| // error message) for any failure. |
| optional StatusProto status = 1; |
| |
| // Total size of the `origin_path` file to upload. |
| optional int64 total = 2; // required |
| |
| // Current offset that upload process has reached. As long as |
| // `uploaded` < `total`, the upload is in progress, and the event can be |
| // ignored on the server side (or can be used by UX to visualize progress - |
| // slide to `uploaded` / `total` * 100%). Receiving event with |
| // `uploaded` = `total` indicates to the server that the upload is done, and |
| // `file_path` field can be used to access it. |
| optional int64 uploaded = 3; // required, once the upload has started. |
| |
| // Upload session token that allows the upload to proceed with the next chunk |
| // of data, starting from `uploaded` offset in `origin_path` file and to |
| // finalize the upload at the end (after that, this field should be cleared). |
| // This field is implementation-dependent; having it generic allows to choose |
| // the actual upload protocol and/or unit test the whole process. |
| optional string session_token = 4 |
| // copybara:datapol_begin |
| // [(datapol.semantic_type) = ST_ACCOUNT_CREDENTIAL] |
| // copybara:datapol_end |
| ; // required, while upload is in progress. |
| |
| // URL and optionally other parameters to access the uploaded file from the |
| // server side. Populated once the upload has been finalized successfully. |
| optional string access_parameters = 5; // required upon successful upload. |
| } |