// Code generated by protoc-gen-gogo. DO NOT EDIT.
// source: google/api/field_behavior.proto

package google_api

import (
	fmt "fmt"
	proto "github.com/gogo/protobuf/proto"
	descriptor "github.com/gogo/protobuf/protoc-gen-gogo/descriptor"
	math "math"
	strconv "strconv"
)

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package

// 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.
type FieldBehavior int32

const (
	// Conventional default for enums. Do not use this.
	FIELD_BEHAVIOR_UNSPECIFIED FieldBehavior = 0
	// Specifically denotes a field as optional.
	// While all fields in protocol buffers are optional, this may be specified
	// for emphasis if appropriate.
	OPTIONAL FieldBehavior = 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 FieldBehavior = 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 FieldBehavior = 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 FieldBehavior = 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 FieldBehavior = 5
)

var FieldBehavior_name = map[int32]string{
	0: "FIELD_BEHAVIOR_UNSPECIFIED",
	1: "OPTIONAL",
	2: "REQUIRED",
	3: "OUTPUT_ONLY",
	4: "INPUT_ONLY",
	5: "IMMUTABLE",
}

var FieldBehavior_value = map[string]int32{
	"FIELD_BEHAVIOR_UNSPECIFIED": 0,
	"OPTIONAL":                   1,
	"REQUIRED":                   2,
	"OUTPUT_ONLY":                3,
	"INPUT_ONLY":                 4,
	"IMMUTABLE":                  5,
}

func (FieldBehavior) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_4648f18fd5079967, []int{0}
}

var E_FieldBehavior = &proto.ExtensionDesc{
	ExtendedType:  (*descriptor.FieldOptions)(nil),
	ExtensionType: ([]FieldBehavior)(nil),
	Field:         1052,
	Name:          "google.api.field_behavior",
	Tag:           "varint,1052,rep,name=field_behavior,enum=google.api.FieldBehavior",
	Filename:      "google/api/field_behavior.proto",
}

func init() {
	proto.RegisterEnum("google.api.FieldBehavior", FieldBehavior_name, FieldBehavior_value)
	proto.RegisterExtension(E_FieldBehavior)
}

func init() { proto.RegisterFile("google/api/field_behavior.proto", fileDescriptor_4648f18fd5079967) }

var fileDescriptor_4648f18fd5079967 = []byte{
	// 325 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0x92, 0x4f, 0xcf, 0xcf, 0x4f,
	0xcf, 0x49, 0xd5, 0x4f, 0x2c, 0xc8, 0xd4, 0x4f, 0xcb, 0x4c, 0xcd, 0x49, 0x89, 0x4f, 0x4a, 0xcd,
	0x48, 0x2c, 0xcb, 0xcc, 0x2f, 0xd2, 0x2b, 0x28, 0xca, 0x2f, 0xc9, 0x17, 0xe2, 0x82, 0x28, 0xd0,
	0x4b, 0x2c, 0xc8, 0x94, 0x52, 0x80, 0x2a, 0x06, 0xcb, 0x24, 0x95, 0xa6, 0xe9, 0xa7, 0xa4, 0x16,
	0x27, 0x17, 0x65, 0x16, 0x94, 0xc0, 0x54, 0x6b, 0x55, 0x73, 0xf1, 0xba, 0x81, 0x4c, 0x71, 0x82,
	0x1a, 0x22, 0x24, 0xc7, 0x25, 0xe5, 0xe6, 0xe9, 0xea, 0xe3, 0x12, 0xef, 0xe4, 0xea, 0xe1, 0x18,
	0xe6, 0xe9, 0x1f, 0x14, 0x1f, 0xea, 0x17, 0x1c, 0xe0, 0xea, 0xec, 0xe9, 0xe6, 0xe9, 0xea, 0x22,
	0xc0, 0x20, 0xc4, 0xc3, 0xc5, 0xe1, 0x1f, 0x10, 0xe2, 0xe9, 0xef, 0xe7, 0xe8, 0x23, 0xc0, 0x08,
	0xe2, 0x05, 0xb9, 0x06, 0x86, 0x7a, 0x06, 0xb9, 0xba, 0x08, 0x30, 0x09, 0xf1, 0x73, 0x71, 0xfb,
	0x87, 0x86, 0x04, 0x84, 0x86, 0xc4, 0xfb, 0xfb, 0xf9, 0x44, 0x0a, 0x30, 0x0b, 0xf1, 0x71, 0x71,
	0x79, 0xfa, 0xc1, 0xf9, 0x2c, 0x42, 0xbc, 0x5c, 0x9c, 0x9e, 0xbe, 0xbe, 0xa1, 0x21, 0x8e, 0x4e,
	0x3e, 0xae, 0x02, 0xac, 0x56, 0x09, 0x5c, 0x7c, 0xa8, 0x5e, 0x10, 0x92, 0xd5, 0x83, 0xba, 0x1e,
	0xe6, 0x62, 0x3d, 0xb0, 0xeb, 0xfc, 0x0b, 0x4a, 0x32, 0xf3, 0xf3, 0x8a, 0x25, 0xe6, 0x70, 0x28,
	0x30, 0x6b, 0xf0, 0x19, 0x49, 0xea, 0x21, 0xfc, 0xa8, 0x87, 0xe2, 0xfc, 0x20, 0xde, 0x34, 0x64,
	0xae, 0x53, 0xe2, 0x85, 0x87, 0x72, 0x0c, 0x37, 0x1e, 0xca, 0x31, 0x7c, 0x78, 0x28, 0xc7, 0xd8,
	0xf0, 0x48, 0x8e, 0x71, 0xc5, 0x23, 0x39, 0xc6, 0x13, 0x8f, 0xe4, 0x18, 0x2f, 0x3c, 0x92, 0x63,
	0x7c, 0xf0, 0x48, 0x8e, 0xf1, 0xc5, 0x23, 0x39, 0x86, 0x0f, 0x8f, 0xe4, 0x18, 0x27, 0x3c, 0x96,
	0x63, 0xb8, 0xf0, 0x58, 0x8e, 0xe1, 0xc6, 0x63, 0x39, 0x06, 0x2e, 0xbe, 0xe4, 0xfc, 0x5c, 0x24,
	0x2b, 0x9c, 0x84, 0x50, 0xec, 0x08, 0x00, 0x39, 0x2d, 0x80, 0x71, 0x11, 0x13, 0x8b, 0xbb, 0x63,
	0x80, 0x67, 0x12, 0x1b, 0xd8, 0xa9, 0xc6, 0x80, 0x00, 0x00, 0x00, 0xff, 0xff, 0x0d, 0x72, 0x37,
	0xaf, 0x99, 0x01, 0x00, 0x00,
}

func (x FieldBehavior) String() string {
	s, ok := FieldBehavior_name[int32(x)]
	if ok {
		return s
	}
	return strconv.Itoa(int(x))
}
