You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/internal/proto/controller/custom_options/v1/options.proto

66 lines
2.3 KiB

// Copyright (c) HashiCorp, Inc.
// SPDX-License-Identifier: MPL-2.0
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. This also controls
// API options (DefaultX, WithX functions).
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;
// aliasable_field is used to indicate that a field is aliasable. Fields with
// this option attached will have their values checked for a possible alias
// value at request time and will be replaced with the destination id
// associated with the alias if found.
AliasInfo aliasable = 85557;
}
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;
}
message AliasInfo {
oneof aliasable {
bool always = 1;
// aliasable_with_fields is used to indicate that the field this FieldOption
// is on, while normally aliasable, should not be aliased if any fields on this
// same message are populated.
AliasableUnlessSet unless_set = 2;
}
}
message AliasableUnlessSet {
// fields is a list of fields that, if any of them are set with a non zero
// value then the field this FieldOption is on should not be treated as an alias.
repeated string fields = 1;
}