1/*
2 * Copyright (C) 2024 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.aconfigd;
19option optimize_for = LITE_RUNTIME;
20
21message PersistStorageRecord {
22  optional uint32 version = 1;
23  optional string container = 2;
24  optional string package_map = 3;
25  optional string flag_map = 4;
26  optional string flag_val = 5;
27  optional string digest = 6;
28}
29
30message PersistStorageRecords {
31  repeated PersistStorageRecord records = 1;
32}
33
34message FlagOverride {
35  optional string package_name = 1;
36  optional string flag_name = 2;
37  optional string flag_value = 3;
38}
39
40message LocalFlagOverrides {
41  repeated FlagOverride overrides = 1;
42}
43
44// incoming request to aconfigd
45message StorageRequestMessage {
46  // new storage notification
47  message NewStorageMessage {
48    optional string container = 1;
49    optional string package_map = 2;
50    optional string flag_map = 3;
51    optional string flag_value = 4;
52  }
53
54  // request persistent flag value override
55  message FlagOverrideMessage {
56    optional string package_name = 1;
57    optional string flag_name = 2;
58    optional string flag_value = 3;
59    optional bool is_local = 4;
60  }
61
62  // request to stage ota flags
63  message OTAFlagStagingMessage {
64    optional string build_id = 1;
65    repeated FlagOverride overrides = 2;
66  }
67
68  // request to remove local flag override
69  message RemoveLocalOverrideMessage {
70    optional bool remove_all = 1;
71    optional string package_name = 2;
72    optional string flag_name = 3;
73  }
74
75  // query persistent flag value and info
76  message FlagQueryMessage {
77    optional string package_name = 1;
78    optional string flag_name = 2;
79  }
80
81  // reset all storage
82  message ResetStorageMessage {
83    oneof msg {
84      bool all = 1;
85      string container = 2;
86    }
87  }
88
89  // list storage
90  message ListStorageMessage {
91    oneof msg {
92      bool all = 1;
93      string container = 2;
94      string package_name = 3;
95    }
96  }
97
98  oneof msg {
99    NewStorageMessage new_storage_message = 1;
100    FlagOverrideMessage flag_override_message = 2;
101    OTAFlagStagingMessage ota_staging_message = 3;
102    FlagQueryMessage flag_query_message = 4;
103    RemoveLocalOverrideMessage remove_local_override_message = 5;
104    ResetStorageMessage reset_storage_message = 6;
105    ListStorageMessage list_storage_message = 7;
106  };
107}
108
109message StorageRequestMessages {
110  repeated StorageRequestMessage msgs = 1;
111}
112
113// aconfigd return to client
114message StorageReturnMessage {
115  message NewStorageReturnMessage {
116    optional bool storage_updated = 1;
117  }
118
119  message FlagOverrideReturnMessage {}
120
121  message OTAFlagStagingReturnMessage {}
122
123  message FlagQueryReturnMessage {
124    optional string package_name = 1;
125    optional string flag_name = 2;
126    optional string server_flag_value = 3;
127    optional string local_flag_value = 4;
128    optional string boot_flag_value = 5;
129    optional string default_flag_value = 6;
130    optional bool has_server_override = 7;
131    optional bool is_readwrite = 8;
132    optional bool has_local_override = 9;
133  }
134
135  message RemoveLocalOverrideReturnMessage {}
136
137  message ResetStorageReturnMessage {}
138
139  message ListStorageReturnMessage {
140    repeated FlagQueryReturnMessage flags = 1;
141  }
142
143  oneof msg {
144    NewStorageReturnMessage new_storage_message = 1;
145    FlagOverrideReturnMessage flag_override_message = 2;
146    OTAFlagStagingReturnMessage ota_staging_message = 3;
147    FlagQueryReturnMessage flag_query_message = 4;
148    RemoveLocalOverrideReturnMessage remove_local_override_message = 5;
149    ResetStorageReturnMessage reset_storage_message = 6;
150    ListStorageReturnMessage list_storage_message = 7;
151    string error_message = 8;
152  };
153}
154
155message StorageReturnMessages {
156  repeated StorageReturnMessage msgs = 1;
157}
158