resource.pb.go raw

   1  // Copyright 2025 Google LLC
   2  //
   3  // Licensed under the Apache License, Version 2.0 (the "License");
   4  // you may not use this file except in compliance with the License.
   5  // You may obtain a copy of the License at
   6  //
   7  //     http://www.apache.org/licenses/LICENSE-2.0
   8  //
   9  // Unless required by applicable law or agreed to in writing, software
  10  // distributed under the License is distributed on an "AS IS" BASIS,
  11  // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12  // See the License for the specific language governing permissions and
  13  // limitations under the License.
  14  
  15  // Code generated by protoc-gen-go. DO NOT EDIT.
  16  // versions:
  17  // 	protoc-gen-go v1.26.0
  18  // 	protoc        v4.24.4
  19  // source: google/api/resource.proto
  20  
  21  package annotations
  22  
  23  import (
  24  	reflect "reflect"
  25  	sync "sync"
  26  
  27  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
  28  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
  29  	descriptorpb "google.golang.org/protobuf/types/descriptorpb"
  30  )
  31  
  32  const (
  33  	// Verify that this generated code is sufficiently up-to-date.
  34  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
  35  	// Verify that runtime/protoimpl is sufficiently up-to-date.
  36  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
  37  )
  38  
  39  // A description of the historical or future-looking state of the
  40  // resource pattern.
  41  type ResourceDescriptor_History int32
  42  
  43  const (
  44  	// The "unset" value.
  45  	ResourceDescriptor_HISTORY_UNSPECIFIED ResourceDescriptor_History = 0
  46  	// The resource originally had one pattern and launched as such, and
  47  	// additional patterns were added later.
  48  	ResourceDescriptor_ORIGINALLY_SINGLE_PATTERN ResourceDescriptor_History = 1
  49  	// The resource has one pattern, but the API owner expects to add more
  50  	// later. (This is the inverse of ORIGINALLY_SINGLE_PATTERN, and prevents
  51  	// that from being necessary once there are multiple patterns.)
  52  	ResourceDescriptor_FUTURE_MULTI_PATTERN ResourceDescriptor_History = 2
  53  )
  54  
  55  // Enum value maps for ResourceDescriptor_History.
  56  var (
  57  	ResourceDescriptor_History_name = map[int32]string{
  58  		0: "HISTORY_UNSPECIFIED",
  59  		1: "ORIGINALLY_SINGLE_PATTERN",
  60  		2: "FUTURE_MULTI_PATTERN",
  61  	}
  62  	ResourceDescriptor_History_value = map[string]int32{
  63  		"HISTORY_UNSPECIFIED":       0,
  64  		"ORIGINALLY_SINGLE_PATTERN": 1,
  65  		"FUTURE_MULTI_PATTERN":      2,
  66  	}
  67  )
  68  
  69  func (x ResourceDescriptor_History) Enum() *ResourceDescriptor_History {
  70  	p := new(ResourceDescriptor_History)
  71  	*p = x
  72  	return p
  73  }
  74  
  75  func (x ResourceDescriptor_History) String() string {
  76  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
  77  }
  78  
  79  func (ResourceDescriptor_History) Descriptor() protoreflect.EnumDescriptor {
  80  	return file_google_api_resource_proto_enumTypes[0].Descriptor()
  81  }
  82  
  83  func (ResourceDescriptor_History) Type() protoreflect.EnumType {
  84  	return &file_google_api_resource_proto_enumTypes[0]
  85  }
  86  
  87  func (x ResourceDescriptor_History) Number() protoreflect.EnumNumber {
  88  	return protoreflect.EnumNumber(x)
  89  }
  90  
  91  // Deprecated: Use ResourceDescriptor_History.Descriptor instead.
  92  func (ResourceDescriptor_History) EnumDescriptor() ([]byte, []int) {
  93  	return file_google_api_resource_proto_rawDescGZIP(), []int{0, 0}
  94  }
  95  
  96  // A flag representing a specific style that a resource claims to conform to.
  97  type ResourceDescriptor_Style int32
  98  
  99  const (
 100  	// The unspecified value. Do not use.
 101  	ResourceDescriptor_STYLE_UNSPECIFIED ResourceDescriptor_Style = 0
 102  	// This resource is intended to be "declarative-friendly".
 103  	//
 104  	// Declarative-friendly resources must be more strictly consistent, and
 105  	// setting this to true communicates to tools that this resource should
 106  	// adhere to declarative-friendly expectations.
 107  	//
 108  	// Note: This is used by the API linter (linter.aip.dev) to enable
 109  	// additional checks.
 110  	ResourceDescriptor_DECLARATIVE_FRIENDLY ResourceDescriptor_Style = 1
 111  )
 112  
 113  // Enum value maps for ResourceDescriptor_Style.
 114  var (
 115  	ResourceDescriptor_Style_name = map[int32]string{
 116  		0: "STYLE_UNSPECIFIED",
 117  		1: "DECLARATIVE_FRIENDLY",
 118  	}
 119  	ResourceDescriptor_Style_value = map[string]int32{
 120  		"STYLE_UNSPECIFIED":    0,
 121  		"DECLARATIVE_FRIENDLY": 1,
 122  	}
 123  )
 124  
 125  func (x ResourceDescriptor_Style) Enum() *ResourceDescriptor_Style {
 126  	p := new(ResourceDescriptor_Style)
 127  	*p = x
 128  	return p
 129  }
 130  
 131  func (x ResourceDescriptor_Style) String() string {
 132  	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
 133  }
 134  
 135  func (ResourceDescriptor_Style) Descriptor() protoreflect.EnumDescriptor {
 136  	return file_google_api_resource_proto_enumTypes[1].Descriptor()
 137  }
 138  
 139  func (ResourceDescriptor_Style) Type() protoreflect.EnumType {
 140  	return &file_google_api_resource_proto_enumTypes[1]
 141  }
 142  
 143  func (x ResourceDescriptor_Style) Number() protoreflect.EnumNumber {
 144  	return protoreflect.EnumNumber(x)
 145  }
 146  
 147  // Deprecated: Use ResourceDescriptor_Style.Descriptor instead.
 148  func (ResourceDescriptor_Style) EnumDescriptor() ([]byte, []int) {
 149  	return file_google_api_resource_proto_rawDescGZIP(), []int{0, 1}
 150  }
 151  
 152  // A simple descriptor of a resource type.
 153  //
 154  // ResourceDescriptor annotates a resource message (either by means of a
 155  // protobuf annotation or use in the service config), and associates the
 156  // resource's schema, the resource type, and the pattern of the resource name.
 157  //
 158  // Example:
 159  //
 160  //	message Topic {
 161  //	  // Indicates this message defines a resource schema.
 162  //	  // Declares the resource type in the format of {service}/{kind}.
 163  //	  // For Kubernetes resources, the format is {api group}/{kind}.
 164  //	  option (google.api.resource) = {
 165  //	    type: "pubsub.googleapis.com/Topic"
 166  //	    pattern: "projects/{project}/topics/{topic}"
 167  //	  };
 168  //	}
 169  //
 170  // The ResourceDescriptor Yaml config will look like:
 171  //
 172  //	resources:
 173  //	- type: "pubsub.googleapis.com/Topic"
 174  //	  pattern: "projects/{project}/topics/{topic}"
 175  //
 176  // Sometimes, resources have multiple patterns, typically because they can
 177  // live under multiple parents.
 178  //
 179  // Example:
 180  //
 181  //	message LogEntry {
 182  //	  option (google.api.resource) = {
 183  //	    type: "logging.googleapis.com/LogEntry"
 184  //	    pattern: "projects/{project}/logs/{log}"
 185  //	    pattern: "folders/{folder}/logs/{log}"
 186  //	    pattern: "organizations/{organization}/logs/{log}"
 187  //	    pattern: "billingAccounts/{billing_account}/logs/{log}"
 188  //	  };
 189  //	}
 190  //
 191  // The ResourceDescriptor Yaml config will look like:
 192  //
 193  //	resources:
 194  //	- type: 'logging.googleapis.com/LogEntry'
 195  //	  pattern: "projects/{project}/logs/{log}"
 196  //	  pattern: "folders/{folder}/logs/{log}"
 197  //	  pattern: "organizations/{organization}/logs/{log}"
 198  //	  pattern: "billingAccounts/{billing_account}/logs/{log}"
 199  type ResourceDescriptor struct {
 200  	state         protoimpl.MessageState
 201  	sizeCache     protoimpl.SizeCache
 202  	unknownFields protoimpl.UnknownFields
 203  
 204  	// The resource type. It must be in the format of
 205  	// {service_name}/{resource_type_kind}. The `resource_type_kind` must be
 206  	// singular and must not include version numbers.
 207  	//
 208  	// Example: `storage.googleapis.com/Bucket`
 209  	//
 210  	// The value of the resource_type_kind must follow the regular expression
 211  	// /[A-Za-z][a-zA-Z0-9]+/. It should start with an upper case character and
 212  	// should use PascalCase (UpperCamelCase). The maximum number of
 213  	// characters allowed for the `resource_type_kind` is 100.
 214  	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
 215  	// Optional. The relative resource name pattern associated with this resource
 216  	// type. The DNS prefix of the full resource name shouldn't be specified here.
 217  	//
 218  	// The path pattern must follow the syntax, which aligns with HTTP binding
 219  	// syntax:
 220  	//
 221  	//	Template = Segment { "/" Segment } ;
 222  	//	Segment = LITERAL | Variable ;
 223  	//	Variable = "{" LITERAL "}" ;
 224  	//
 225  	// Examples:
 226  	//
 227  	//   - "projects/{project}/topics/{topic}"
 228  	//   - "projects/{project}/knowledgeBases/{knowledge_base}"
 229  	//
 230  	// The components in braces correspond to the IDs for each resource in the
 231  	// hierarchy. It is expected that, if multiple patterns are provided,
 232  	// the same component name (e.g. "project") refers to IDs of the same
 233  	// type of resource.
 234  	Pattern []string `protobuf:"bytes,2,rep,name=pattern,proto3" json:"pattern,omitempty"`
 235  	// Optional. The field on the resource that designates the resource name
 236  	// field. If omitted, this is assumed to be "name".
 237  	NameField string `protobuf:"bytes,3,opt,name=name_field,json=nameField,proto3" json:"name_field,omitempty"`
 238  	// Optional. The historical or future-looking state of the resource pattern.
 239  	//
 240  	// Example:
 241  	//
 242  	//	// The InspectTemplate message originally only supported resource
 243  	//	// names with organization, and project was added later.
 244  	//	message InspectTemplate {
 245  	//	  option (google.api.resource) = {
 246  	//	    type: "dlp.googleapis.com/InspectTemplate"
 247  	//	    pattern:
 248  	//	    "organizations/{organization}/inspectTemplates/{inspect_template}"
 249  	//	    pattern: "projects/{project}/inspectTemplates/{inspect_template}"
 250  	//	    history: ORIGINALLY_SINGLE_PATTERN
 251  	//	  };
 252  	//	}
 253  	History ResourceDescriptor_History `protobuf:"varint,4,opt,name=history,proto3,enum=google.api.ResourceDescriptor_History" json:"history,omitempty"`
 254  	// The plural name used in the resource name and permission names, such as
 255  	// 'projects' for the resource name of 'projects/{project}' and the permission
 256  	// name of 'cloudresourcemanager.googleapis.com/projects.get'. One exception
 257  	// to this is for Nested Collections that have stuttering names, as defined
 258  	// in [AIP-122](https://google.aip.dev/122#nested-collections), where the
 259  	// collection ID in the resource name pattern does not necessarily directly
 260  	// match the `plural` value.
 261  	//
 262  	// It is the same concept of the `plural` field in k8s CRD spec
 263  	// https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
 264  	//
 265  	// Note: The plural form is required even for singleton resources. See
 266  	// https://aip.dev/156
 267  	Plural string `protobuf:"bytes,5,opt,name=plural,proto3" json:"plural,omitempty"`
 268  	// The same concept of the `singular` field in k8s CRD spec
 269  	// https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/
 270  	// Such as "project" for the `resourcemanager.googleapis.com/Project` type.
 271  	Singular string `protobuf:"bytes,6,opt,name=singular,proto3" json:"singular,omitempty"`
 272  	// Style flag(s) for this resource.
 273  	// These indicate that a resource is expected to conform to a given
 274  	// style. See the specific style flags for additional information.
 275  	Style []ResourceDescriptor_Style `protobuf:"varint,10,rep,packed,name=style,proto3,enum=google.api.ResourceDescriptor_Style" json:"style,omitempty"`
 276  }
 277  
 278  func (x *ResourceDescriptor) Reset() {
 279  	*x = ResourceDescriptor{}
 280  	if protoimpl.UnsafeEnabled {
 281  		mi := &file_google_api_resource_proto_msgTypes[0]
 282  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 283  		ms.StoreMessageInfo(mi)
 284  	}
 285  }
 286  
 287  func (x *ResourceDescriptor) String() string {
 288  	return protoimpl.X.MessageStringOf(x)
 289  }
 290  
 291  func (*ResourceDescriptor) ProtoMessage() {}
 292  
 293  func (x *ResourceDescriptor) ProtoReflect() protoreflect.Message {
 294  	mi := &file_google_api_resource_proto_msgTypes[0]
 295  	if protoimpl.UnsafeEnabled && x != nil {
 296  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 297  		if ms.LoadMessageInfo() == nil {
 298  			ms.StoreMessageInfo(mi)
 299  		}
 300  		return ms
 301  	}
 302  	return mi.MessageOf(x)
 303  }
 304  
 305  // Deprecated: Use ResourceDescriptor.ProtoReflect.Descriptor instead.
 306  func (*ResourceDescriptor) Descriptor() ([]byte, []int) {
 307  	return file_google_api_resource_proto_rawDescGZIP(), []int{0}
 308  }
 309  
 310  func (x *ResourceDescriptor) GetType() string {
 311  	if x != nil {
 312  		return x.Type
 313  	}
 314  	return ""
 315  }
 316  
 317  func (x *ResourceDescriptor) GetPattern() []string {
 318  	if x != nil {
 319  		return x.Pattern
 320  	}
 321  	return nil
 322  }
 323  
 324  func (x *ResourceDescriptor) GetNameField() string {
 325  	if x != nil {
 326  		return x.NameField
 327  	}
 328  	return ""
 329  }
 330  
 331  func (x *ResourceDescriptor) GetHistory() ResourceDescriptor_History {
 332  	if x != nil {
 333  		return x.History
 334  	}
 335  	return ResourceDescriptor_HISTORY_UNSPECIFIED
 336  }
 337  
 338  func (x *ResourceDescriptor) GetPlural() string {
 339  	if x != nil {
 340  		return x.Plural
 341  	}
 342  	return ""
 343  }
 344  
 345  func (x *ResourceDescriptor) GetSingular() string {
 346  	if x != nil {
 347  		return x.Singular
 348  	}
 349  	return ""
 350  }
 351  
 352  func (x *ResourceDescriptor) GetStyle() []ResourceDescriptor_Style {
 353  	if x != nil {
 354  		return x.Style
 355  	}
 356  	return nil
 357  }
 358  
 359  // Defines a proto annotation that describes a string field that refers to
 360  // an API resource.
 361  type ResourceReference struct {
 362  	state         protoimpl.MessageState
 363  	sizeCache     protoimpl.SizeCache
 364  	unknownFields protoimpl.UnknownFields
 365  
 366  	// The resource type that the annotated field references.
 367  	//
 368  	// Example:
 369  	//
 370  	//	message Subscription {
 371  	//	  string topic = 2 [(google.api.resource_reference) = {
 372  	//	    type: "pubsub.googleapis.com/Topic"
 373  	//	  }];
 374  	//	}
 375  	//
 376  	// Occasionally, a field may reference an arbitrary resource. In this case,
 377  	// APIs use the special value * in their resource reference.
 378  	//
 379  	// Example:
 380  	//
 381  	//	message GetIamPolicyRequest {
 382  	//	  string resource = 2 [(google.api.resource_reference) = {
 383  	//	    type: "*"
 384  	//	  }];
 385  	//	}
 386  	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
 387  	// The resource type of a child collection that the annotated field
 388  	// references. This is useful for annotating the `parent` field that
 389  	// doesn't have a fixed resource type.
 390  	//
 391  	// Example:
 392  	//
 393  	//	message ListLogEntriesRequest {
 394  	//	  string parent = 1 [(google.api.resource_reference) = {
 395  	//	    child_type: "logging.googleapis.com/LogEntry"
 396  	//	  };
 397  	//	}
 398  	ChildType string `protobuf:"bytes,2,opt,name=child_type,json=childType,proto3" json:"child_type,omitempty"`
 399  }
 400  
 401  func (x *ResourceReference) Reset() {
 402  	*x = ResourceReference{}
 403  	if protoimpl.UnsafeEnabled {
 404  		mi := &file_google_api_resource_proto_msgTypes[1]
 405  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 406  		ms.StoreMessageInfo(mi)
 407  	}
 408  }
 409  
 410  func (x *ResourceReference) String() string {
 411  	return protoimpl.X.MessageStringOf(x)
 412  }
 413  
 414  func (*ResourceReference) ProtoMessage() {}
 415  
 416  func (x *ResourceReference) ProtoReflect() protoreflect.Message {
 417  	mi := &file_google_api_resource_proto_msgTypes[1]
 418  	if protoimpl.UnsafeEnabled && x != nil {
 419  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 420  		if ms.LoadMessageInfo() == nil {
 421  			ms.StoreMessageInfo(mi)
 422  		}
 423  		return ms
 424  	}
 425  	return mi.MessageOf(x)
 426  }
 427  
 428  // Deprecated: Use ResourceReference.ProtoReflect.Descriptor instead.
 429  func (*ResourceReference) Descriptor() ([]byte, []int) {
 430  	return file_google_api_resource_proto_rawDescGZIP(), []int{1}
 431  }
 432  
 433  func (x *ResourceReference) GetType() string {
 434  	if x != nil {
 435  		return x.Type
 436  	}
 437  	return ""
 438  }
 439  
 440  func (x *ResourceReference) GetChildType() string {
 441  	if x != nil {
 442  		return x.ChildType
 443  	}
 444  	return ""
 445  }
 446  
 447  var file_google_api_resource_proto_extTypes = []protoimpl.ExtensionInfo{
 448  	{
 449  		ExtendedType:  (*descriptorpb.FieldOptions)(nil),
 450  		ExtensionType: (*ResourceReference)(nil),
 451  		Field:         1055,
 452  		Name:          "google.api.resource_reference",
 453  		Tag:           "bytes,1055,opt,name=resource_reference",
 454  		Filename:      "google/api/resource.proto",
 455  	},
 456  	{
 457  		ExtendedType:  (*descriptorpb.FileOptions)(nil),
 458  		ExtensionType: ([]*ResourceDescriptor)(nil),
 459  		Field:         1053,
 460  		Name:          "google.api.resource_definition",
 461  		Tag:           "bytes,1053,rep,name=resource_definition",
 462  		Filename:      "google/api/resource.proto",
 463  	},
 464  	{
 465  		ExtendedType:  (*descriptorpb.MessageOptions)(nil),
 466  		ExtensionType: (*ResourceDescriptor)(nil),
 467  		Field:         1053,
 468  		Name:          "google.api.resource",
 469  		Tag:           "bytes,1053,opt,name=resource",
 470  		Filename:      "google/api/resource.proto",
 471  	},
 472  }
 473  
 474  // Extension fields to descriptorpb.FieldOptions.
 475  var (
 476  	// An annotation that describes a resource reference, see
 477  	// [ResourceReference][].
 478  	//
 479  	// optional google.api.ResourceReference resource_reference = 1055;
 480  	E_ResourceReference = &file_google_api_resource_proto_extTypes[0]
 481  )
 482  
 483  // Extension fields to descriptorpb.FileOptions.
 484  var (
 485  	// An annotation that describes a resource definition without a corresponding
 486  	// message; see [ResourceDescriptor][].
 487  	//
 488  	// repeated google.api.ResourceDescriptor resource_definition = 1053;
 489  	E_ResourceDefinition = &file_google_api_resource_proto_extTypes[1]
 490  )
 491  
 492  // Extension fields to descriptorpb.MessageOptions.
 493  var (
 494  	// An annotation that describes a resource definition, see
 495  	// [ResourceDescriptor][].
 496  	//
 497  	// optional google.api.ResourceDescriptor resource = 1053;
 498  	E_Resource = &file_google_api_resource_proto_extTypes[2]
 499  )
 500  
 501  var File_google_api_resource_proto protoreflect.FileDescriptor
 502  
 503  var file_google_api_resource_proto_rawDesc = []byte{
 504  	0x0a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x72, 0x65, 0x73,
 505  	0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x67, 0x6f, 0x6f,
 506  	0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f,
 507  	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70,
 508  	0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xaa, 0x03, 0x0a, 0x12, 0x52, 0x65,
 509  	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72,
 510  	0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
 511  	0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x18,
 512  	0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x12, 0x1d,
 513  	0x0a, 0x0a, 0x6e, 0x61, 0x6d, 0x65, 0x5f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01,
 514  	0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x40, 0x0a,
 515  	0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26,
 516  	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x6f,
 517  	0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x2e, 0x48,
 518  	0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x07, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12,
 519  	0x16, 0x0a, 0x06, 0x70, 0x6c, 0x75, 0x72, 0x61, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52,
 520  	0x06, 0x70, 0x6c, 0x75, 0x72, 0x61, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x69, 0x6e, 0x67, 0x75,
 521  	0x6c, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x69, 0x6e, 0x67, 0x75,
 522  	0x6c, 0x61, 0x72, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x03,
 523  	0x28, 0x0e, 0x32, 0x24, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e,
 524  	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
 525  	0x6f, 0x72, 0x2e, 0x53, 0x74, 0x79, 0x6c, 0x65, 0x52, 0x05, 0x73, 0x74, 0x79, 0x6c, 0x65, 0x22,
 526  	0x5b, 0x0a, 0x07, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x17, 0x0a, 0x13, 0x48, 0x49,
 527  	0x53, 0x54, 0x4f, 0x52, 0x59, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45,
 528  	0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x41, 0x4c, 0x4c,
 529  	0x59, 0x5f, 0x53, 0x49, 0x4e, 0x47, 0x4c, 0x45, 0x5f, 0x50, 0x41, 0x54, 0x54, 0x45, 0x52, 0x4e,
 530  	0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, 0x46, 0x55, 0x54, 0x55, 0x52, 0x45, 0x5f, 0x4d, 0x55, 0x4c,
 531  	0x54, 0x49, 0x5f, 0x50, 0x41, 0x54, 0x54, 0x45, 0x52, 0x4e, 0x10, 0x02, 0x22, 0x38, 0x0a, 0x05,
 532  	0x53, 0x74, 0x79, 0x6c, 0x65, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x54, 0x59, 0x4c, 0x45, 0x5f, 0x55,
 533  	0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x18, 0x0a, 0x14,
 534  	0x44, 0x45, 0x43, 0x4c, 0x41, 0x52, 0x41, 0x54, 0x49, 0x56, 0x45, 0x5f, 0x46, 0x52, 0x49, 0x45,
 535  	0x4e, 0x44, 0x4c, 0x59, 0x10, 0x01, 0x22, 0x46, 0x0a, 0x11, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72,
 536  	0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74,
 537  	0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12,
 538  	0x1d, 0x0a, 0x0a, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20,
 539  	0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x3a, 0x6c,
 540  	0x0a, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72,
 541  	0x65, 0x6e, 0x63, 0x65, 0x12, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
 542  	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x4f, 0x70, 0x74, 0x69,
 543  	0x6f, 0x6e, 0x73, 0x18, 0x9f, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f,
 544  	0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
 545  	0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x52, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75,
 546  	0x72, 0x63, 0x65, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x3a, 0x6e, 0x0a, 0x13,
 547  	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74,
 548  	0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f,
 549  	0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e,
 550  	0x73, 0x18, 0x9d, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
 551  	0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65,
 552  	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 0x52, 0x12, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72,
 553  	0x63, 0x65, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x3a, 0x5c, 0x0a, 0x08,
 554  	0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1f, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
 555  	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x4d, 0x65, 0x73, 0x73, 0x61,
 556  	0x67, 0x65, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x9d, 0x08, 0x20, 0x01, 0x28, 0x0b,
 557  	0x32, 0x1e, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x52, 0x65,
 558  	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72,
 559  	0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x42, 0x6b, 0x0a, 0x0e, 0x63, 0x6f,
 560  	0x6d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x0d, 0x52, 0x65,
 561  	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67,
 562  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67,
 563  	0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
 564  	0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
 565  	0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
 566  	0xa2, 0x02, 0x04, 0x47, 0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
 567  }
 568  
 569  var (
 570  	file_google_api_resource_proto_rawDescOnce sync.Once
 571  	file_google_api_resource_proto_rawDescData = file_google_api_resource_proto_rawDesc
 572  )
 573  
 574  func file_google_api_resource_proto_rawDescGZIP() []byte {
 575  	file_google_api_resource_proto_rawDescOnce.Do(func() {
 576  		file_google_api_resource_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_api_resource_proto_rawDescData)
 577  	})
 578  	return file_google_api_resource_proto_rawDescData
 579  }
 580  
 581  var file_google_api_resource_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
 582  var file_google_api_resource_proto_msgTypes = make([]protoimpl.MessageInfo, 2)
 583  var file_google_api_resource_proto_goTypes = []interface{}{
 584  	(ResourceDescriptor_History)(0),     // 0: google.api.ResourceDescriptor.History
 585  	(ResourceDescriptor_Style)(0),       // 1: google.api.ResourceDescriptor.Style
 586  	(*ResourceDescriptor)(nil),          // 2: google.api.ResourceDescriptor
 587  	(*ResourceReference)(nil),           // 3: google.api.ResourceReference
 588  	(*descriptorpb.FieldOptions)(nil),   // 4: google.protobuf.FieldOptions
 589  	(*descriptorpb.FileOptions)(nil),    // 5: google.protobuf.FileOptions
 590  	(*descriptorpb.MessageOptions)(nil), // 6: google.protobuf.MessageOptions
 591  }
 592  var file_google_api_resource_proto_depIdxs = []int32{
 593  	0, // 0: google.api.ResourceDescriptor.history:type_name -> google.api.ResourceDescriptor.History
 594  	1, // 1: google.api.ResourceDescriptor.style:type_name -> google.api.ResourceDescriptor.Style
 595  	4, // 2: google.api.resource_reference:extendee -> google.protobuf.FieldOptions
 596  	5, // 3: google.api.resource_definition:extendee -> google.protobuf.FileOptions
 597  	6, // 4: google.api.resource:extendee -> google.protobuf.MessageOptions
 598  	3, // 5: google.api.resource_reference:type_name -> google.api.ResourceReference
 599  	2, // 6: google.api.resource_definition:type_name -> google.api.ResourceDescriptor
 600  	2, // 7: google.api.resource:type_name -> google.api.ResourceDescriptor
 601  	8, // [8:8] is the sub-list for method output_type
 602  	8, // [8:8] is the sub-list for method input_type
 603  	5, // [5:8] is the sub-list for extension type_name
 604  	2, // [2:5] is the sub-list for extension extendee
 605  	0, // [0:2] is the sub-list for field type_name
 606  }
 607  
 608  func init() { file_google_api_resource_proto_init() }
 609  func file_google_api_resource_proto_init() {
 610  	if File_google_api_resource_proto != nil {
 611  		return
 612  	}
 613  	if !protoimpl.UnsafeEnabled {
 614  		file_google_api_resource_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
 615  			switch v := v.(*ResourceDescriptor); i {
 616  			case 0:
 617  				return &v.state
 618  			case 1:
 619  				return &v.sizeCache
 620  			case 2:
 621  				return &v.unknownFields
 622  			default:
 623  				return nil
 624  			}
 625  		}
 626  		file_google_api_resource_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
 627  			switch v := v.(*ResourceReference); i {
 628  			case 0:
 629  				return &v.state
 630  			case 1:
 631  				return &v.sizeCache
 632  			case 2:
 633  				return &v.unknownFields
 634  			default:
 635  				return nil
 636  			}
 637  		}
 638  	}
 639  	type x struct{}
 640  	out := protoimpl.TypeBuilder{
 641  		File: protoimpl.DescBuilder{
 642  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
 643  			RawDescriptor: file_google_api_resource_proto_rawDesc,
 644  			NumEnums:      2,
 645  			NumMessages:   2,
 646  			NumExtensions: 3,
 647  			NumServices:   0,
 648  		},
 649  		GoTypes:           file_google_api_resource_proto_goTypes,
 650  		DependencyIndexes: file_google_api_resource_proto_depIdxs,
 651  		EnumInfos:         file_google_api_resource_proto_enumTypes,
 652  		MessageInfos:      file_google_api_resource_proto_msgTypes,
 653  		ExtensionInfos:    file_google_api_resource_proto_extTypes,
 654  	}.Build()
 655  	File_google_api_resource_proto = out.File
 656  	file_google_api_resource_proto_rawDesc = nil
 657  	file_google_api_resource_proto_goTypes = nil
 658  	file_google_api_resource_proto_depIdxs = nil
 659  }
 660