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