xref: /aosp_15_r20/build/soong/cmd/release_config/release_config_proto/build_flags_declarations.proto (revision 333d2b3687b3a337dbcca9d65000bca186795e39)
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
16syntax = "proto2";
17package android.release_config_proto;
18option go_package = "android/soong/release_config/release_config_proto";
19
20import "build_flags_common.proto";
21
22// This protobuf file defines messages used to represent the
23// all_build_flag_declarations artifact for use in automated systems, such as
24// Gantry.
25//
26// The following format requirements apply across various message fields:
27//
28// # name: name of the flag
29//
30//    format: an uppercase string in SNAKE_CASE format starting with RELEASE_,
31//      no consecutive underscores, and no leading digit. For example
32//      RELEASE_MY_PACKAGE_FLAG is a valid name, while MY_PACKAGE_FLAG, and
33//      RELEASE_MY_PACKAGE__FLAG are invalid.
34//
35// # package: package to which the flag belongs
36//
37//    format: lowercase strings in snake_case format, delimited by dots, no
38//      consecutive underscores and no leading digit in each string. For example
39//      com.android.mypackage is a valid name while com.android.myPackage,
40//      com.android.1mypackage are invalid
41
42message FlagDeclarationArtifact {
43  // The name of the flag.
44  // See # name for format detail
45  optional string name = 1;
46
47  // Namespace the flag belongs to (required)
48  // See # namespace for format detail
49  optional string namespace = 2;
50
51  // Text description of the flag's purpose.
52  optional string description = 3;
53
54  // The bug number associated with the flag.
55  repeated string bugs = 4;
56
57  // Where the flag was declared.
58  optional string declaration_path = 5;
59
60  // Workflow for this flag.
61  optional Workflow workflow = 205;
62
63  // The container for this flag.  This overrides any default container given
64  // in the release_config_map message.
65  repeated string containers = 206;
66
67  // The package associated with this flag.
68  // (when Gantry is ready for it) optional string package = 207;
69  reserved 207;
70}
71
72message FlagDeclarationArtifacts {
73  // The artifacts
74  repeated FlagDeclarationArtifact flag_declaration_artifact_list = 1;
75}
76