This allows for marking a field in a message as an id that can be used to determine the message's subtype. When creating some resources, an id from a related resource is used to indicate the resource's subtype, since the resource must have the same subtype as the related resource.
38 lines
1.3 KiB
Protocol Buffer
38 lines
1.3 KiB
Protocol Buffer
syntax = "proto3";
|
|
package controller.custom_options.v1;
|
|
|
|
import "google/protobuf/descriptor.proto";
|
|
|
|
option go_package = "github.com/hashicorp/boundary/sdk/pbs/controller/protooptions;protooptions";
|
|
|
|
extend google.protobuf.FieldOptions {
|
|
// mask_mapping is an option which tags a field with the expected field mask
|
|
// used by a companion proto if applied on the field this option is for.
|
|
// The value of this option should be for the field name itself and not for
|
|
// the json name.
|
|
MaskMapping mask_mapping = 85464;
|
|
|
|
// generate_sdk_option is a directive used when generating the SDK to
|
|
// indicate that an option should be created for the field
|
|
bool generate_sdk_option = 85412;
|
|
|
|
// subtype is used for oneOf attribute subtypes, to identify that we only need to parse attributes
|
|
// of oneOf once and not for each option when generating the API
|
|
// This will serve as a JSON key, used to transform that into the key the protobuf expects
|
|
string subtype = 85555;
|
|
|
|
// subtype_source_id is used to indicate that a field provided an id that can be used
|
|
// to determine the subtype of a message.
|
|
bool subtype_source_id = 85556;
|
|
}
|
|
|
|
extend google.protobuf.FileOptions {
|
|
// domain is used to associate the messages in a file with a domain package.
|
|
string domain = 85556;
|
|
}
|
|
|
|
message MaskMapping {
|
|
string this = 1;
|
|
string that = 2;
|
|
}
|