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.
80 lines
2.9 KiB
80 lines
2.9 KiB
// Copyright 2019 Google LLC. |
|
// |
|
// 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 |
|
// |
|
// https://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. |
|
|
|
syntax = "proto3"; |
|
|
|
package google.api; |
|
|
|
import "google/protobuf/descriptor.proto"; |
|
|
|
option go_package = "google.golang.org/genproto/googleapis/api/annotations;annotations"; |
|
option java_multiple_files = true; |
|
option java_outer_classname = "FieldBehaviorProto"; |
|
option java_package = "com.google.api"; |
|
option objc_class_prefix = "GAPI"; |
|
|
|
|
|
// An indicator of the behavior of a given field (for example, that a field |
|
// is required in requests, or given as output but ignored as input). |
|
// This **does not** change the behavior in protocol buffers itself; it only |
|
// denotes the behavior and may affect how API tooling handles the field. |
|
// |
|
// Note: This enum **may** receive new values in the future. |
|
enum FieldBehavior { |
|
// Conventional default for enums. Do not use this. |
|
FIELD_BEHAVIOR_UNSPECIFIED = 0; |
|
|
|
// Specifically denotes a field as optional. |
|
// While all fields in protocol buffers are optional, this may be specified |
|
// for emphasis if appropriate. |
|
OPTIONAL = 1; |
|
|
|
// Denotes a field as required. |
|
// This indicates that the field **must** be provided as part of the request, |
|
// and failure to do so will cause an error (usually `INVALID_ARGUMENT`). |
|
REQUIRED = 2; |
|
|
|
// Denotes a field as output only. |
|
// This indicates that the field is provided in responses, but including the |
|
// field in a request does nothing (the server *must* ignore it and |
|
// *must not* throw an error as a result of the field's presence). |
|
OUTPUT_ONLY = 3; |
|
|
|
// Denotes a field as input only. |
|
// This indicates that the field is provided in requests, and the |
|
// corresponding field is not included in output. |
|
INPUT_ONLY = 4; |
|
|
|
// Denotes a field as immutable. |
|
// This indicates that the field may be set once in a request to create a |
|
// resource, but may not be changed thereafter. |
|
IMMUTABLE = 5; |
|
} |
|
|
|
|
|
extend google.protobuf.FieldOptions { |
|
// A designation of a specific field behavior (required, output only, etc.) |
|
// in protobuf messages. |
|
// |
|
// Examples: |
|
// |
|
// string name = 1 [(google.api.field_behavior) = REQUIRED]; |
|
// State state = 1 [(google.api.field_behavior) = OUTPUT_ONLY]; |
|
// google.protobuf.Duration ttl = 1 |
|
// [(google.api.field_behavior) = INPUT_ONLY]; |
|
// google.protobuf.Timestamp expire_time = 1 |
|
// [(google.api.field_behavior) = OUTPUT_ONLY, |
|
// (google.api.field_behavior) = IMMUTABLE]; |
|
repeated FieldBehavior field_behavior = 1052; |
|
} |