blob: 996c0dac5fc82dd9c5548699bfe374cf46f7376f [file] [log] [blame]
// Copyright 2019 The LUCI Authors.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// Defining extensions is supported in proto2 syntax only.
syntax = "proto2";
package luci;
import "google/protobuf/descriptor.proto";
option go_package = "go.chromium.org/luci/common/proto";
message Metadata {
// URL to a human-readable proto schema definition doc.
optional string doc_url = 1;
}
// Definition of file-level options understood by various LUCI tools.
extend google.protobuf.FileOptions {
// Used by lucicfg to populate headers of generated text proto files.
//
// Usage:
//
// import "go.chromium.org/luci/common/proto/options.proto";
//
// option (luci.file_metadata) = {
// doc_url: "https://example.com/schema.md";
// };
optional Metadata file_metadata = 73700;
}
// Type of formatting to apply to a primitive field when converting a message to
// TextPB
enum TextPBFieldFormat {
// The default formatting for TextPB for the field
DEFAULT = 0;
// Interpret the field's value as a JSON object and format it across multiple
// lines, valid only for string fields
JSON = 1;
}
// Definition of field-level options understood by various LUCI tools.
extend google.protobuf.FieldOptions {
// Used by lucicfg and textpb package to pretty-print text protos.
//
// Usage:
//
// import "go.chromium.org/luci/common/proto/options.proto";
//
// message MyMessage {
// string my_field = 1 [(luci.text_pb_format) = JSON];
// }
optional TextPBFieldFormat text_pb_format = 73701;
// Used by lucicfg to skip comparing fields when making semantic comparison.
//
// Usage:
//
// import "go.chromium.org/luci/common/proto/options.proto";
//
// message MyMessage {
// string my_field = 1 [(luci.lucicfg_ignore) = true];
// }
optional bool lucicfg_ignore = 73702;
}