| // 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; |
| } |