1*993b0882SAndroid Build Coastguard Worker// 2*993b0882SAndroid Build Coastguard Worker// Copyright (C) 2018 The Android Open Source Project 3*993b0882SAndroid Build Coastguard Worker// 4*993b0882SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 5*993b0882SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 6*993b0882SAndroid Build Coastguard Worker// You may obtain a copy of the License at 7*993b0882SAndroid Build Coastguard Worker// 8*993b0882SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 9*993b0882SAndroid Build Coastguard Worker// 10*993b0882SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 11*993b0882SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 12*993b0882SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*993b0882SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 14*993b0882SAndroid Build Coastguard Worker// limitations under the License. 15*993b0882SAndroid Build Coastguard Worker// 16*993b0882SAndroid Build Coastguard Worker 17*993b0882SAndroid Build Coastguard Workersyntax = "proto2"; 18*993b0882SAndroid Build Coastguard Worker 19*993b0882SAndroid Build Coastguard Workerpackage textclassifier.tcs; 20*993b0882SAndroid Build Coastguard Worker 21*993b0882SAndroid Build Coastguard Workeroption java_package = "com.android.textclassifier.downloader"; 22*993b0882SAndroid Build Coastguard Workeroption java_multiple_files = true; 23*993b0882SAndroid Build Coastguard Worker 24*993b0882SAndroid Build Coastguard Worker// Manifest for a download task. 25*993b0882SAndroid Build Coastguard Workermessage ModelManifest { 26*993b0882SAndroid Build Coastguard Worker message Model { 27*993b0882SAndroid Build Coastguard Worker optional string url = 1; 28*993b0882SAndroid Build Coastguard Worker optional int64 size_in_bytes = 2; 29*993b0882SAndroid Build Coastguard Worker optional string fingerprint = 3; 30*993b0882SAndroid Build Coastguard Worker // ModelUsage enum used to assign usage to Model files. 31*993b0882SAndroid Build Coastguard Worker // Model file could have one of {DARK, LIVE, UNKNOWN} usage value. 32*993b0882SAndroid Build Coastguard Worker enum ModelUsage { 33*993b0882SAndroid Build Coastguard Worker UNKNOWN_USAGE = 0; 34*993b0882SAndroid Build Coastguard Worker LIVE_MODEL = 1; 35*993b0882SAndroid Build Coastguard Worker DARK_MODEL = 2; 36*993b0882SAndroid Build Coastguard Worker } 37*993b0882SAndroid Build Coastguard Worker optional ModelUsage usage = 4; 38*993b0882SAndroid Build Coastguard Worker } 39*993b0882SAndroid Build Coastguard Worker // All models to download in this task. Currently the size is always one. 40*993b0882SAndroid Build Coastguard Worker repeated Model models = 1; 41*993b0882SAndroid Build Coastguard Worker // Consistent with androidx.work.NetworkType. 42*993b0882SAndroid Build Coastguard Worker enum NetworkType { 43*993b0882SAndroid Build Coastguard Worker UNMETERED = 0; 44*993b0882SAndroid Build Coastguard Worker METERED = 1; 45*993b0882SAndroid Build Coastguard Worker NOT_REQUIRED = 2; 46*993b0882SAndroid Build Coastguard Worker NOT_ROAMING = 3; 47*993b0882SAndroid Build Coastguard Worker CONNECTED = 4; 48*993b0882SAndroid Build Coastguard Worker } 49*993b0882SAndroid Build Coastguard Worker // Notice: all fields below are not used currently 50*993b0882SAndroid Build Coastguard Worker optional NetworkType required_network_type = 2; 51*993b0882SAndroid Build Coastguard Worker optional bool requires_battery_not_low = 3; 52*993b0882SAndroid Build Coastguard Worker optional bool requires_charging = 4; 53*993b0882SAndroid Build Coastguard Worker optional bool requires_device_idle = 5; 54*993b0882SAndroid Build Coastguard Worker optional bool requires_storage_not_low = 6; 55*993b0882SAndroid Build Coastguard Worker} 56