error_details.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/rpc/error_details.proto
  20  
  21  package errdetails
  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  	durationpb "google.golang.org/protobuf/types/known/durationpb"
  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  // Describes the cause of the error with structured details.
  40  //
  41  // Example of an error when contacting the "pubsub.googleapis.com" API when it
  42  // is not enabled:
  43  //
  44  //	{ "reason": "API_DISABLED"
  45  //	  "domain": "googleapis.com"
  46  //	  "metadata": {
  47  //	    "resource": "projects/123",
  48  //	    "service": "pubsub.googleapis.com"
  49  //	  }
  50  //	}
  51  //
  52  // This response indicates that the pubsub.googleapis.com API is not enabled.
  53  //
  54  // Example of an error that is returned when attempting to create a Spanner
  55  // instance in a region that is out of stock:
  56  //
  57  //	{ "reason": "STOCKOUT"
  58  //	  "domain": "spanner.googleapis.com",
  59  //	  "metadata": {
  60  //	    "availableRegions": "us-central1,us-east2"
  61  //	  }
  62  //	}
  63  type ErrorInfo struct {
  64  	state         protoimpl.MessageState
  65  	sizeCache     protoimpl.SizeCache
  66  	unknownFields protoimpl.UnknownFields
  67  
  68  	// The reason of the error. This is a constant value that identifies the
  69  	// proximate cause of the error. Error reasons are unique within a particular
  70  	// domain of errors. This should be at most 63 characters and match a
  71  	// regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`, which represents
  72  	// UPPER_SNAKE_CASE.
  73  	Reason string `protobuf:"bytes,1,opt,name=reason,proto3" json:"reason,omitempty"`
  74  	// The logical grouping to which the "reason" belongs. The error domain
  75  	// is typically the registered service name of the tool or product that
  76  	// generates the error. Example: "pubsub.googleapis.com". If the error is
  77  	// generated by some common infrastructure, the error domain must be a
  78  	// globally unique value that identifies the infrastructure. For Google API
  79  	// infrastructure, the error domain is "googleapis.com".
  80  	Domain string `protobuf:"bytes,2,opt,name=domain,proto3" json:"domain,omitempty"`
  81  	// Additional structured details about this error.
  82  	//
  83  	// Keys must match a regular expression of `[a-z][a-zA-Z0-9-_]+` but should
  84  	// ideally be lowerCamelCase. Also, they must be limited to 64 characters in
  85  	// length. When identifying the current value of an exceeded limit, the units
  86  	// should be contained in the key, not the value.  For example, rather than
  87  	// `{"instanceLimit": "100/request"}`, should be returned as,
  88  	// `{"instanceLimitPerRequest": "100"}`, if the client exceeds the number of
  89  	// instances that can be created in a single (batch) request.
  90  	Metadata map[string]string `protobuf:"bytes,3,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
  91  }
  92  
  93  func (x *ErrorInfo) Reset() {
  94  	*x = ErrorInfo{}
  95  	if protoimpl.UnsafeEnabled {
  96  		mi := &file_google_rpc_error_details_proto_msgTypes[0]
  97  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
  98  		ms.StoreMessageInfo(mi)
  99  	}
 100  }
 101  
 102  func (x *ErrorInfo) String() string {
 103  	return protoimpl.X.MessageStringOf(x)
 104  }
 105  
 106  func (*ErrorInfo) ProtoMessage() {}
 107  
 108  func (x *ErrorInfo) ProtoReflect() protoreflect.Message {
 109  	mi := &file_google_rpc_error_details_proto_msgTypes[0]
 110  	if protoimpl.UnsafeEnabled && x != nil {
 111  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 112  		if ms.LoadMessageInfo() == nil {
 113  			ms.StoreMessageInfo(mi)
 114  		}
 115  		return ms
 116  	}
 117  	return mi.MessageOf(x)
 118  }
 119  
 120  // Deprecated: Use ErrorInfo.ProtoReflect.Descriptor instead.
 121  func (*ErrorInfo) Descriptor() ([]byte, []int) {
 122  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{0}
 123  }
 124  
 125  func (x *ErrorInfo) GetReason() string {
 126  	if x != nil {
 127  		return x.Reason
 128  	}
 129  	return ""
 130  }
 131  
 132  func (x *ErrorInfo) GetDomain() string {
 133  	if x != nil {
 134  		return x.Domain
 135  	}
 136  	return ""
 137  }
 138  
 139  func (x *ErrorInfo) GetMetadata() map[string]string {
 140  	if x != nil {
 141  		return x.Metadata
 142  	}
 143  	return nil
 144  }
 145  
 146  // Describes when the clients can retry a failed request. Clients could ignore
 147  // the recommendation here or retry when this information is missing from error
 148  // responses.
 149  //
 150  // It's always recommended that clients should use exponential backoff when
 151  // retrying.
 152  //
 153  // Clients should wait until `retry_delay` amount of time has passed since
 154  // receiving the error response before retrying.  If retrying requests also
 155  // fail, clients should use an exponential backoff scheme to gradually increase
 156  // the delay between retries based on `retry_delay`, until either a maximum
 157  // number of retries have been reached or a maximum retry delay cap has been
 158  // reached.
 159  type RetryInfo struct {
 160  	state         protoimpl.MessageState
 161  	sizeCache     protoimpl.SizeCache
 162  	unknownFields protoimpl.UnknownFields
 163  
 164  	// Clients should wait at least this long between retrying the same request.
 165  	RetryDelay *durationpb.Duration `protobuf:"bytes,1,opt,name=retry_delay,json=retryDelay,proto3" json:"retry_delay,omitempty"`
 166  }
 167  
 168  func (x *RetryInfo) Reset() {
 169  	*x = RetryInfo{}
 170  	if protoimpl.UnsafeEnabled {
 171  		mi := &file_google_rpc_error_details_proto_msgTypes[1]
 172  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 173  		ms.StoreMessageInfo(mi)
 174  	}
 175  }
 176  
 177  func (x *RetryInfo) String() string {
 178  	return protoimpl.X.MessageStringOf(x)
 179  }
 180  
 181  func (*RetryInfo) ProtoMessage() {}
 182  
 183  func (x *RetryInfo) ProtoReflect() protoreflect.Message {
 184  	mi := &file_google_rpc_error_details_proto_msgTypes[1]
 185  	if protoimpl.UnsafeEnabled && x != nil {
 186  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 187  		if ms.LoadMessageInfo() == nil {
 188  			ms.StoreMessageInfo(mi)
 189  		}
 190  		return ms
 191  	}
 192  	return mi.MessageOf(x)
 193  }
 194  
 195  // Deprecated: Use RetryInfo.ProtoReflect.Descriptor instead.
 196  func (*RetryInfo) Descriptor() ([]byte, []int) {
 197  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{1}
 198  }
 199  
 200  func (x *RetryInfo) GetRetryDelay() *durationpb.Duration {
 201  	if x != nil {
 202  		return x.RetryDelay
 203  	}
 204  	return nil
 205  }
 206  
 207  // Describes additional debugging info.
 208  type DebugInfo struct {
 209  	state         protoimpl.MessageState
 210  	sizeCache     protoimpl.SizeCache
 211  	unknownFields protoimpl.UnknownFields
 212  
 213  	// The stack trace entries indicating where the error occurred.
 214  	StackEntries []string `protobuf:"bytes,1,rep,name=stack_entries,json=stackEntries,proto3" json:"stack_entries,omitempty"`
 215  	// Additional debugging information provided by the server.
 216  	Detail string `protobuf:"bytes,2,opt,name=detail,proto3" json:"detail,omitempty"`
 217  }
 218  
 219  func (x *DebugInfo) Reset() {
 220  	*x = DebugInfo{}
 221  	if protoimpl.UnsafeEnabled {
 222  		mi := &file_google_rpc_error_details_proto_msgTypes[2]
 223  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 224  		ms.StoreMessageInfo(mi)
 225  	}
 226  }
 227  
 228  func (x *DebugInfo) String() string {
 229  	return protoimpl.X.MessageStringOf(x)
 230  }
 231  
 232  func (*DebugInfo) ProtoMessage() {}
 233  
 234  func (x *DebugInfo) ProtoReflect() protoreflect.Message {
 235  	mi := &file_google_rpc_error_details_proto_msgTypes[2]
 236  	if protoimpl.UnsafeEnabled && x != nil {
 237  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 238  		if ms.LoadMessageInfo() == nil {
 239  			ms.StoreMessageInfo(mi)
 240  		}
 241  		return ms
 242  	}
 243  	return mi.MessageOf(x)
 244  }
 245  
 246  // Deprecated: Use DebugInfo.ProtoReflect.Descriptor instead.
 247  func (*DebugInfo) Descriptor() ([]byte, []int) {
 248  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{2}
 249  }
 250  
 251  func (x *DebugInfo) GetStackEntries() []string {
 252  	if x != nil {
 253  		return x.StackEntries
 254  	}
 255  	return nil
 256  }
 257  
 258  func (x *DebugInfo) GetDetail() string {
 259  	if x != nil {
 260  		return x.Detail
 261  	}
 262  	return ""
 263  }
 264  
 265  // Describes how a quota check failed.
 266  //
 267  // For example if a daily limit was exceeded for the calling project,
 268  // a service could respond with a QuotaFailure detail containing the project
 269  // id and the description of the quota limit that was exceeded.  If the
 270  // calling project hasn't enabled the service in the developer console, then
 271  // a service could respond with the project id and set `service_disabled`
 272  // to true.
 273  //
 274  // Also see RetryInfo and Help types for other details about handling a
 275  // quota failure.
 276  type QuotaFailure struct {
 277  	state         protoimpl.MessageState
 278  	sizeCache     protoimpl.SizeCache
 279  	unknownFields protoimpl.UnknownFields
 280  
 281  	// Describes all quota violations.
 282  	Violations []*QuotaFailure_Violation `protobuf:"bytes,1,rep,name=violations,proto3" json:"violations,omitempty"`
 283  }
 284  
 285  func (x *QuotaFailure) Reset() {
 286  	*x = QuotaFailure{}
 287  	if protoimpl.UnsafeEnabled {
 288  		mi := &file_google_rpc_error_details_proto_msgTypes[3]
 289  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 290  		ms.StoreMessageInfo(mi)
 291  	}
 292  }
 293  
 294  func (x *QuotaFailure) String() string {
 295  	return protoimpl.X.MessageStringOf(x)
 296  }
 297  
 298  func (*QuotaFailure) ProtoMessage() {}
 299  
 300  func (x *QuotaFailure) ProtoReflect() protoreflect.Message {
 301  	mi := &file_google_rpc_error_details_proto_msgTypes[3]
 302  	if protoimpl.UnsafeEnabled && x != nil {
 303  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 304  		if ms.LoadMessageInfo() == nil {
 305  			ms.StoreMessageInfo(mi)
 306  		}
 307  		return ms
 308  	}
 309  	return mi.MessageOf(x)
 310  }
 311  
 312  // Deprecated: Use QuotaFailure.ProtoReflect.Descriptor instead.
 313  func (*QuotaFailure) Descriptor() ([]byte, []int) {
 314  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{3}
 315  }
 316  
 317  func (x *QuotaFailure) GetViolations() []*QuotaFailure_Violation {
 318  	if x != nil {
 319  		return x.Violations
 320  	}
 321  	return nil
 322  }
 323  
 324  // Describes what preconditions have failed.
 325  //
 326  // For example, if an RPC failed because it required the Terms of Service to be
 327  // acknowledged, it could list the terms of service violation in the
 328  // PreconditionFailure message.
 329  type PreconditionFailure struct {
 330  	state         protoimpl.MessageState
 331  	sizeCache     protoimpl.SizeCache
 332  	unknownFields protoimpl.UnknownFields
 333  
 334  	// Describes all precondition violations.
 335  	Violations []*PreconditionFailure_Violation `protobuf:"bytes,1,rep,name=violations,proto3" json:"violations,omitempty"`
 336  }
 337  
 338  func (x *PreconditionFailure) Reset() {
 339  	*x = PreconditionFailure{}
 340  	if protoimpl.UnsafeEnabled {
 341  		mi := &file_google_rpc_error_details_proto_msgTypes[4]
 342  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 343  		ms.StoreMessageInfo(mi)
 344  	}
 345  }
 346  
 347  func (x *PreconditionFailure) String() string {
 348  	return protoimpl.X.MessageStringOf(x)
 349  }
 350  
 351  func (*PreconditionFailure) ProtoMessage() {}
 352  
 353  func (x *PreconditionFailure) ProtoReflect() protoreflect.Message {
 354  	mi := &file_google_rpc_error_details_proto_msgTypes[4]
 355  	if protoimpl.UnsafeEnabled && x != nil {
 356  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 357  		if ms.LoadMessageInfo() == nil {
 358  			ms.StoreMessageInfo(mi)
 359  		}
 360  		return ms
 361  	}
 362  	return mi.MessageOf(x)
 363  }
 364  
 365  // Deprecated: Use PreconditionFailure.ProtoReflect.Descriptor instead.
 366  func (*PreconditionFailure) Descriptor() ([]byte, []int) {
 367  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{4}
 368  }
 369  
 370  func (x *PreconditionFailure) GetViolations() []*PreconditionFailure_Violation {
 371  	if x != nil {
 372  		return x.Violations
 373  	}
 374  	return nil
 375  }
 376  
 377  // Describes violations in a client request. This error type focuses on the
 378  // syntactic aspects of the request.
 379  type BadRequest struct {
 380  	state         protoimpl.MessageState
 381  	sizeCache     protoimpl.SizeCache
 382  	unknownFields protoimpl.UnknownFields
 383  
 384  	// Describes all violations in a client request.
 385  	FieldViolations []*BadRequest_FieldViolation `protobuf:"bytes,1,rep,name=field_violations,json=fieldViolations,proto3" json:"field_violations,omitempty"`
 386  }
 387  
 388  func (x *BadRequest) Reset() {
 389  	*x = BadRequest{}
 390  	if protoimpl.UnsafeEnabled {
 391  		mi := &file_google_rpc_error_details_proto_msgTypes[5]
 392  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 393  		ms.StoreMessageInfo(mi)
 394  	}
 395  }
 396  
 397  func (x *BadRequest) String() string {
 398  	return protoimpl.X.MessageStringOf(x)
 399  }
 400  
 401  func (*BadRequest) ProtoMessage() {}
 402  
 403  func (x *BadRequest) ProtoReflect() protoreflect.Message {
 404  	mi := &file_google_rpc_error_details_proto_msgTypes[5]
 405  	if protoimpl.UnsafeEnabled && x != nil {
 406  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 407  		if ms.LoadMessageInfo() == nil {
 408  			ms.StoreMessageInfo(mi)
 409  		}
 410  		return ms
 411  	}
 412  	return mi.MessageOf(x)
 413  }
 414  
 415  // Deprecated: Use BadRequest.ProtoReflect.Descriptor instead.
 416  func (*BadRequest) Descriptor() ([]byte, []int) {
 417  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{5}
 418  }
 419  
 420  func (x *BadRequest) GetFieldViolations() []*BadRequest_FieldViolation {
 421  	if x != nil {
 422  		return x.FieldViolations
 423  	}
 424  	return nil
 425  }
 426  
 427  // Contains metadata about the request that clients can attach when filing a bug
 428  // or providing other forms of feedback.
 429  type RequestInfo struct {
 430  	state         protoimpl.MessageState
 431  	sizeCache     protoimpl.SizeCache
 432  	unknownFields protoimpl.UnknownFields
 433  
 434  	// An opaque string that should only be interpreted by the service generating
 435  	// it. For example, it can be used to identify requests in the service's logs.
 436  	RequestId string `protobuf:"bytes,1,opt,name=request_id,json=requestId,proto3" json:"request_id,omitempty"`
 437  	// Any data that was used to serve this request. For example, an encrypted
 438  	// stack trace that can be sent back to the service provider for debugging.
 439  	ServingData string `protobuf:"bytes,2,opt,name=serving_data,json=servingData,proto3" json:"serving_data,omitempty"`
 440  }
 441  
 442  func (x *RequestInfo) Reset() {
 443  	*x = RequestInfo{}
 444  	if protoimpl.UnsafeEnabled {
 445  		mi := &file_google_rpc_error_details_proto_msgTypes[6]
 446  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 447  		ms.StoreMessageInfo(mi)
 448  	}
 449  }
 450  
 451  func (x *RequestInfo) String() string {
 452  	return protoimpl.X.MessageStringOf(x)
 453  }
 454  
 455  func (*RequestInfo) ProtoMessage() {}
 456  
 457  func (x *RequestInfo) ProtoReflect() protoreflect.Message {
 458  	mi := &file_google_rpc_error_details_proto_msgTypes[6]
 459  	if protoimpl.UnsafeEnabled && x != nil {
 460  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 461  		if ms.LoadMessageInfo() == nil {
 462  			ms.StoreMessageInfo(mi)
 463  		}
 464  		return ms
 465  	}
 466  	return mi.MessageOf(x)
 467  }
 468  
 469  // Deprecated: Use RequestInfo.ProtoReflect.Descriptor instead.
 470  func (*RequestInfo) Descriptor() ([]byte, []int) {
 471  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{6}
 472  }
 473  
 474  func (x *RequestInfo) GetRequestId() string {
 475  	if x != nil {
 476  		return x.RequestId
 477  	}
 478  	return ""
 479  }
 480  
 481  func (x *RequestInfo) GetServingData() string {
 482  	if x != nil {
 483  		return x.ServingData
 484  	}
 485  	return ""
 486  }
 487  
 488  // Describes the resource that is being accessed.
 489  type ResourceInfo struct {
 490  	state         protoimpl.MessageState
 491  	sizeCache     protoimpl.SizeCache
 492  	unknownFields protoimpl.UnknownFields
 493  
 494  	// A name for the type of resource being accessed, e.g. "sql table",
 495  	// "cloud storage bucket", "file", "Google calendar"; or the type URL
 496  	// of the resource: e.g. "type.googleapis.com/google.pubsub.v1.Topic".
 497  	ResourceType string `protobuf:"bytes,1,opt,name=resource_type,json=resourceType,proto3" json:"resource_type,omitempty"`
 498  	// The name of the resource being accessed.  For example, a shared calendar
 499  	// name: "example.com_4fghdhgsrgh@group.calendar.google.com", if the current
 500  	// error is
 501  	// [google.rpc.Code.PERMISSION_DENIED][google.rpc.Code.PERMISSION_DENIED].
 502  	ResourceName string `protobuf:"bytes,2,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
 503  	// The owner of the resource (optional).
 504  	// For example, "user:<owner email>" or "project:<Google developer project
 505  	// id>".
 506  	Owner string `protobuf:"bytes,3,opt,name=owner,proto3" json:"owner,omitempty"`
 507  	// Describes what error is encountered when accessing this resource.
 508  	// For example, updating a cloud project may require the `writer` permission
 509  	// on the developer console project.
 510  	Description string `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
 511  }
 512  
 513  func (x *ResourceInfo) Reset() {
 514  	*x = ResourceInfo{}
 515  	if protoimpl.UnsafeEnabled {
 516  		mi := &file_google_rpc_error_details_proto_msgTypes[7]
 517  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 518  		ms.StoreMessageInfo(mi)
 519  	}
 520  }
 521  
 522  func (x *ResourceInfo) String() string {
 523  	return protoimpl.X.MessageStringOf(x)
 524  }
 525  
 526  func (*ResourceInfo) ProtoMessage() {}
 527  
 528  func (x *ResourceInfo) ProtoReflect() protoreflect.Message {
 529  	mi := &file_google_rpc_error_details_proto_msgTypes[7]
 530  	if protoimpl.UnsafeEnabled && x != nil {
 531  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 532  		if ms.LoadMessageInfo() == nil {
 533  			ms.StoreMessageInfo(mi)
 534  		}
 535  		return ms
 536  	}
 537  	return mi.MessageOf(x)
 538  }
 539  
 540  // Deprecated: Use ResourceInfo.ProtoReflect.Descriptor instead.
 541  func (*ResourceInfo) Descriptor() ([]byte, []int) {
 542  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{7}
 543  }
 544  
 545  func (x *ResourceInfo) GetResourceType() string {
 546  	if x != nil {
 547  		return x.ResourceType
 548  	}
 549  	return ""
 550  }
 551  
 552  func (x *ResourceInfo) GetResourceName() string {
 553  	if x != nil {
 554  		return x.ResourceName
 555  	}
 556  	return ""
 557  }
 558  
 559  func (x *ResourceInfo) GetOwner() string {
 560  	if x != nil {
 561  		return x.Owner
 562  	}
 563  	return ""
 564  }
 565  
 566  func (x *ResourceInfo) GetDescription() string {
 567  	if x != nil {
 568  		return x.Description
 569  	}
 570  	return ""
 571  }
 572  
 573  // Provides links to documentation or for performing an out of band action.
 574  //
 575  // For example, if a quota check failed with an error indicating the calling
 576  // project hasn't enabled the accessed service, this can contain a URL pointing
 577  // directly to the right place in the developer console to flip the bit.
 578  type Help struct {
 579  	state         protoimpl.MessageState
 580  	sizeCache     protoimpl.SizeCache
 581  	unknownFields protoimpl.UnknownFields
 582  
 583  	// URL(s) pointing to additional information on handling the current error.
 584  	Links []*Help_Link `protobuf:"bytes,1,rep,name=links,proto3" json:"links,omitempty"`
 585  }
 586  
 587  func (x *Help) Reset() {
 588  	*x = Help{}
 589  	if protoimpl.UnsafeEnabled {
 590  		mi := &file_google_rpc_error_details_proto_msgTypes[8]
 591  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 592  		ms.StoreMessageInfo(mi)
 593  	}
 594  }
 595  
 596  func (x *Help) String() string {
 597  	return protoimpl.X.MessageStringOf(x)
 598  }
 599  
 600  func (*Help) ProtoMessage() {}
 601  
 602  func (x *Help) ProtoReflect() protoreflect.Message {
 603  	mi := &file_google_rpc_error_details_proto_msgTypes[8]
 604  	if protoimpl.UnsafeEnabled && x != nil {
 605  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 606  		if ms.LoadMessageInfo() == nil {
 607  			ms.StoreMessageInfo(mi)
 608  		}
 609  		return ms
 610  	}
 611  	return mi.MessageOf(x)
 612  }
 613  
 614  // Deprecated: Use Help.ProtoReflect.Descriptor instead.
 615  func (*Help) Descriptor() ([]byte, []int) {
 616  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{8}
 617  }
 618  
 619  func (x *Help) GetLinks() []*Help_Link {
 620  	if x != nil {
 621  		return x.Links
 622  	}
 623  	return nil
 624  }
 625  
 626  // Provides a localized error message that is safe to return to the user
 627  // which can be attached to an RPC error.
 628  type LocalizedMessage struct {
 629  	state         protoimpl.MessageState
 630  	sizeCache     protoimpl.SizeCache
 631  	unknownFields protoimpl.UnknownFields
 632  
 633  	// The locale used following the specification defined at
 634  	// https://www.rfc-editor.org/rfc/bcp/bcp47.txt.
 635  	// Examples are: "en-US", "fr-CH", "es-MX"
 636  	Locale string `protobuf:"bytes,1,opt,name=locale,proto3" json:"locale,omitempty"`
 637  	// The localized error message in the above locale.
 638  	Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
 639  }
 640  
 641  func (x *LocalizedMessage) Reset() {
 642  	*x = LocalizedMessage{}
 643  	if protoimpl.UnsafeEnabled {
 644  		mi := &file_google_rpc_error_details_proto_msgTypes[9]
 645  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 646  		ms.StoreMessageInfo(mi)
 647  	}
 648  }
 649  
 650  func (x *LocalizedMessage) String() string {
 651  	return protoimpl.X.MessageStringOf(x)
 652  }
 653  
 654  func (*LocalizedMessage) ProtoMessage() {}
 655  
 656  func (x *LocalizedMessage) ProtoReflect() protoreflect.Message {
 657  	mi := &file_google_rpc_error_details_proto_msgTypes[9]
 658  	if protoimpl.UnsafeEnabled && x != nil {
 659  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 660  		if ms.LoadMessageInfo() == nil {
 661  			ms.StoreMessageInfo(mi)
 662  		}
 663  		return ms
 664  	}
 665  	return mi.MessageOf(x)
 666  }
 667  
 668  // Deprecated: Use LocalizedMessage.ProtoReflect.Descriptor instead.
 669  func (*LocalizedMessage) Descriptor() ([]byte, []int) {
 670  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{9}
 671  }
 672  
 673  func (x *LocalizedMessage) GetLocale() string {
 674  	if x != nil {
 675  		return x.Locale
 676  	}
 677  	return ""
 678  }
 679  
 680  func (x *LocalizedMessage) GetMessage() string {
 681  	if x != nil {
 682  		return x.Message
 683  	}
 684  	return ""
 685  }
 686  
 687  // A message type used to describe a single quota violation.  For example, a
 688  // daily quota or a custom quota that was exceeded.
 689  type QuotaFailure_Violation struct {
 690  	state         protoimpl.MessageState
 691  	sizeCache     protoimpl.SizeCache
 692  	unknownFields protoimpl.UnknownFields
 693  
 694  	// The subject on which the quota check failed.
 695  	// For example, "clientip:<ip address of client>" or "project:<Google
 696  	// developer project id>".
 697  	Subject string `protobuf:"bytes,1,opt,name=subject,proto3" json:"subject,omitempty"`
 698  	// A description of how the quota check failed. Clients can use this
 699  	// description to find more about the quota configuration in the service's
 700  	// public documentation, or find the relevant quota limit to adjust through
 701  	// developer console.
 702  	//
 703  	// For example: "Service disabled" or "Daily Limit for read operations
 704  	// exceeded".
 705  	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 706  	// The API Service from which the `QuotaFailure.Violation` orginates. In
 707  	// some cases, Quota issues originate from an API Service other than the one
 708  	// that was called. In other words, a dependency of the called API Service
 709  	// could be the cause of the `QuotaFailure`, and this field would have the
 710  	// dependency API service name.
 711  	//
 712  	// For example, if the called API is Kubernetes Engine API
 713  	// (container.googleapis.com), and a quota violation occurs in the
 714  	// Kubernetes Engine API itself, this field would be
 715  	// "container.googleapis.com". On the other hand, if the quota violation
 716  	// occurs when the Kubernetes Engine API creates VMs in the Compute Engine
 717  	// API (compute.googleapis.com), this field would be
 718  	// "compute.googleapis.com".
 719  	ApiService string `protobuf:"bytes,3,opt,name=api_service,json=apiService,proto3" json:"api_service,omitempty"`
 720  	// The metric of the violated quota. A quota metric is a named counter to
 721  	// measure usage, such as API requests or CPUs. When an activity occurs in a
 722  	// service, such as Virtual Machine allocation, one or more quota metrics
 723  	// may be affected.
 724  	//
 725  	// For example, "compute.googleapis.com/cpus_per_vm_family",
 726  	// "storage.googleapis.com/internet_egress_bandwidth".
 727  	QuotaMetric string `protobuf:"bytes,4,opt,name=quota_metric,json=quotaMetric,proto3" json:"quota_metric,omitempty"`
 728  	// The id of the violated quota. Also know as "limit name", this is the
 729  	// unique identifier of a quota in the context of an API service.
 730  	//
 731  	// For example, "CPUS-PER-VM-FAMILY-per-project-region".
 732  	QuotaId string `protobuf:"bytes,5,opt,name=quota_id,json=quotaId,proto3" json:"quota_id,omitempty"`
 733  	// The dimensions of the violated quota. Every non-global quota is enforced
 734  	// on a set of dimensions. While quota metric defines what to count, the
 735  	// dimensions specify for what aspects the counter should be increased.
 736  	//
 737  	// For example, the quota "CPUs per region per VM family" enforces a limit
 738  	// on the metric "compute.googleapis.com/cpus_per_vm_family" on dimensions
 739  	// "region" and "vm_family". And if the violation occurred in region
 740  	// "us-central1" and for VM family "n1", the quota_dimensions would be,
 741  	//
 742  	//	{
 743  	//	  "region": "us-central1",
 744  	//	  "vm_family": "n1",
 745  	//	}
 746  	//
 747  	// When a quota is enforced globally, the quota_dimensions would always be
 748  	// empty.
 749  	QuotaDimensions map[string]string `protobuf:"bytes,6,rep,name=quota_dimensions,json=quotaDimensions,proto3" json:"quota_dimensions,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
 750  	// The enforced quota value at the time of the `QuotaFailure`.
 751  	//
 752  	// For example, if the enforced quota value at the time of the
 753  	// `QuotaFailure` on the number of CPUs is "10", then the value of this
 754  	// field would reflect this quantity.
 755  	QuotaValue int64 `protobuf:"varint,7,opt,name=quota_value,json=quotaValue,proto3" json:"quota_value,omitempty"`
 756  	// The new quota value being rolled out at the time of the violation. At the
 757  	// completion of the rollout, this value will be enforced in place of
 758  	// quota_value. If no rollout is in progress at the time of the violation,
 759  	// this field is not set.
 760  	//
 761  	// For example, if at the time of the violation a rollout is in progress
 762  	// changing the number of CPUs quota from 10 to 20, 20 would be the value of
 763  	// this field.
 764  	FutureQuotaValue *int64 `protobuf:"varint,8,opt,name=future_quota_value,json=futureQuotaValue,proto3,oneof" json:"future_quota_value,omitempty"`
 765  }
 766  
 767  func (x *QuotaFailure_Violation) Reset() {
 768  	*x = QuotaFailure_Violation{}
 769  	if protoimpl.UnsafeEnabled {
 770  		mi := &file_google_rpc_error_details_proto_msgTypes[11]
 771  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 772  		ms.StoreMessageInfo(mi)
 773  	}
 774  }
 775  
 776  func (x *QuotaFailure_Violation) String() string {
 777  	return protoimpl.X.MessageStringOf(x)
 778  }
 779  
 780  func (*QuotaFailure_Violation) ProtoMessage() {}
 781  
 782  func (x *QuotaFailure_Violation) ProtoReflect() protoreflect.Message {
 783  	mi := &file_google_rpc_error_details_proto_msgTypes[11]
 784  	if protoimpl.UnsafeEnabled && x != nil {
 785  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 786  		if ms.LoadMessageInfo() == nil {
 787  			ms.StoreMessageInfo(mi)
 788  		}
 789  		return ms
 790  	}
 791  	return mi.MessageOf(x)
 792  }
 793  
 794  // Deprecated: Use QuotaFailure_Violation.ProtoReflect.Descriptor instead.
 795  func (*QuotaFailure_Violation) Descriptor() ([]byte, []int) {
 796  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{3, 0}
 797  }
 798  
 799  func (x *QuotaFailure_Violation) GetSubject() string {
 800  	if x != nil {
 801  		return x.Subject
 802  	}
 803  	return ""
 804  }
 805  
 806  func (x *QuotaFailure_Violation) GetDescription() string {
 807  	if x != nil {
 808  		return x.Description
 809  	}
 810  	return ""
 811  }
 812  
 813  func (x *QuotaFailure_Violation) GetApiService() string {
 814  	if x != nil {
 815  		return x.ApiService
 816  	}
 817  	return ""
 818  }
 819  
 820  func (x *QuotaFailure_Violation) GetQuotaMetric() string {
 821  	if x != nil {
 822  		return x.QuotaMetric
 823  	}
 824  	return ""
 825  }
 826  
 827  func (x *QuotaFailure_Violation) GetQuotaId() string {
 828  	if x != nil {
 829  		return x.QuotaId
 830  	}
 831  	return ""
 832  }
 833  
 834  func (x *QuotaFailure_Violation) GetQuotaDimensions() map[string]string {
 835  	if x != nil {
 836  		return x.QuotaDimensions
 837  	}
 838  	return nil
 839  }
 840  
 841  func (x *QuotaFailure_Violation) GetQuotaValue() int64 {
 842  	if x != nil {
 843  		return x.QuotaValue
 844  	}
 845  	return 0
 846  }
 847  
 848  func (x *QuotaFailure_Violation) GetFutureQuotaValue() int64 {
 849  	if x != nil && x.FutureQuotaValue != nil {
 850  		return *x.FutureQuotaValue
 851  	}
 852  	return 0
 853  }
 854  
 855  // A message type used to describe a single precondition failure.
 856  type PreconditionFailure_Violation struct {
 857  	state         protoimpl.MessageState
 858  	sizeCache     protoimpl.SizeCache
 859  	unknownFields protoimpl.UnknownFields
 860  
 861  	// The type of PreconditionFailure. We recommend using a service-specific
 862  	// enum type to define the supported precondition violation subjects. For
 863  	// example, "TOS" for "Terms of Service violation".
 864  	Type string `protobuf:"bytes,1,opt,name=type,proto3" json:"type,omitempty"`
 865  	// The subject, relative to the type, that failed.
 866  	// For example, "google.com/cloud" relative to the "TOS" type would indicate
 867  	// which terms of service is being referenced.
 868  	Subject string `protobuf:"bytes,2,opt,name=subject,proto3" json:"subject,omitempty"`
 869  	// A description of how the precondition failed. Developers can use this
 870  	// description to understand how to fix the failure.
 871  	//
 872  	// For example: "Terms of service not accepted".
 873  	Description string `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
 874  }
 875  
 876  func (x *PreconditionFailure_Violation) Reset() {
 877  	*x = PreconditionFailure_Violation{}
 878  	if protoimpl.UnsafeEnabled {
 879  		mi := &file_google_rpc_error_details_proto_msgTypes[13]
 880  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 881  		ms.StoreMessageInfo(mi)
 882  	}
 883  }
 884  
 885  func (x *PreconditionFailure_Violation) String() string {
 886  	return protoimpl.X.MessageStringOf(x)
 887  }
 888  
 889  func (*PreconditionFailure_Violation) ProtoMessage() {}
 890  
 891  func (x *PreconditionFailure_Violation) ProtoReflect() protoreflect.Message {
 892  	mi := &file_google_rpc_error_details_proto_msgTypes[13]
 893  	if protoimpl.UnsafeEnabled && x != nil {
 894  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 895  		if ms.LoadMessageInfo() == nil {
 896  			ms.StoreMessageInfo(mi)
 897  		}
 898  		return ms
 899  	}
 900  	return mi.MessageOf(x)
 901  }
 902  
 903  // Deprecated: Use PreconditionFailure_Violation.ProtoReflect.Descriptor instead.
 904  func (*PreconditionFailure_Violation) Descriptor() ([]byte, []int) {
 905  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{4, 0}
 906  }
 907  
 908  func (x *PreconditionFailure_Violation) GetType() string {
 909  	if x != nil {
 910  		return x.Type
 911  	}
 912  	return ""
 913  }
 914  
 915  func (x *PreconditionFailure_Violation) GetSubject() string {
 916  	if x != nil {
 917  		return x.Subject
 918  	}
 919  	return ""
 920  }
 921  
 922  func (x *PreconditionFailure_Violation) GetDescription() string {
 923  	if x != nil {
 924  		return x.Description
 925  	}
 926  	return ""
 927  }
 928  
 929  // A message type used to describe a single bad request field.
 930  type BadRequest_FieldViolation struct {
 931  	state         protoimpl.MessageState
 932  	sizeCache     protoimpl.SizeCache
 933  	unknownFields protoimpl.UnknownFields
 934  
 935  	// A path that leads to a field in the request body. The value will be a
 936  	// sequence of dot-separated identifiers that identify a protocol buffer
 937  	// field.
 938  	//
 939  	// Consider the following:
 940  	//
 941  	//	message CreateContactRequest {
 942  	//	  message EmailAddress {
 943  	//	    enum Type {
 944  	//	      TYPE_UNSPECIFIED = 0;
 945  	//	      HOME = 1;
 946  	//	      WORK = 2;
 947  	//	    }
 948  	//
 949  	//	    optional string email = 1;
 950  	//	    repeated EmailType type = 2;
 951  	//	  }
 952  	//
 953  	//	  string full_name = 1;
 954  	//	  repeated EmailAddress email_addresses = 2;
 955  	//	}
 956  	//
 957  	// In this example, in proto `field` could take one of the following values:
 958  	//
 959  	//   - `full_name` for a violation in the `full_name` value
 960  	//   - `email_addresses[1].email` for a violation in the `email` field of the
 961  	//     first `email_addresses` message
 962  	//   - `email_addresses[3].type[2]` for a violation in the second `type`
 963  	//     value in the third `email_addresses` message.
 964  	//
 965  	// In JSON, the same values are represented as:
 966  	//
 967  	//   - `fullName` for a violation in the `fullName` value
 968  	//   - `emailAddresses[1].email` for a violation in the `email` field of the
 969  	//     first `emailAddresses` message
 970  	//   - `emailAddresses[3].type[2]` for a violation in the second `type`
 971  	//     value in the third `emailAddresses` message.
 972  	Field string `protobuf:"bytes,1,opt,name=field,proto3" json:"field,omitempty"`
 973  	// A description of why the request element is bad.
 974  	Description string `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
 975  	// The reason of the field-level error. This is a constant value that
 976  	// identifies the proximate cause of the field-level error. It should
 977  	// uniquely identify the type of the FieldViolation within the scope of the
 978  	// google.rpc.ErrorInfo.domain. This should be at most 63
 979  	// characters and match a regular expression of `[A-Z][A-Z0-9_]+[A-Z0-9]`,
 980  	// which represents UPPER_SNAKE_CASE.
 981  	Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"`
 982  	// Provides a localized error message for field-level errors that is safe to
 983  	// return to the API consumer.
 984  	LocalizedMessage *LocalizedMessage `protobuf:"bytes,4,opt,name=localized_message,json=localizedMessage,proto3" json:"localized_message,omitempty"`
 985  }
 986  
 987  func (x *BadRequest_FieldViolation) Reset() {
 988  	*x = BadRequest_FieldViolation{}
 989  	if protoimpl.UnsafeEnabled {
 990  		mi := &file_google_rpc_error_details_proto_msgTypes[14]
 991  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
 992  		ms.StoreMessageInfo(mi)
 993  	}
 994  }
 995  
 996  func (x *BadRequest_FieldViolation) String() string {
 997  	return protoimpl.X.MessageStringOf(x)
 998  }
 999  
1000  func (*BadRequest_FieldViolation) ProtoMessage() {}
1001  
1002  func (x *BadRequest_FieldViolation) ProtoReflect() protoreflect.Message {
1003  	mi := &file_google_rpc_error_details_proto_msgTypes[14]
1004  	if protoimpl.UnsafeEnabled && x != nil {
1005  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1006  		if ms.LoadMessageInfo() == nil {
1007  			ms.StoreMessageInfo(mi)
1008  		}
1009  		return ms
1010  	}
1011  	return mi.MessageOf(x)
1012  }
1013  
1014  // Deprecated: Use BadRequest_FieldViolation.ProtoReflect.Descriptor instead.
1015  func (*BadRequest_FieldViolation) Descriptor() ([]byte, []int) {
1016  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{5, 0}
1017  }
1018  
1019  func (x *BadRequest_FieldViolation) GetField() string {
1020  	if x != nil {
1021  		return x.Field
1022  	}
1023  	return ""
1024  }
1025  
1026  func (x *BadRequest_FieldViolation) GetDescription() string {
1027  	if x != nil {
1028  		return x.Description
1029  	}
1030  	return ""
1031  }
1032  
1033  func (x *BadRequest_FieldViolation) GetReason() string {
1034  	if x != nil {
1035  		return x.Reason
1036  	}
1037  	return ""
1038  }
1039  
1040  func (x *BadRequest_FieldViolation) GetLocalizedMessage() *LocalizedMessage {
1041  	if x != nil {
1042  		return x.LocalizedMessage
1043  	}
1044  	return nil
1045  }
1046  
1047  // Describes a URL link.
1048  type Help_Link struct {
1049  	state         protoimpl.MessageState
1050  	sizeCache     protoimpl.SizeCache
1051  	unknownFields protoimpl.UnknownFields
1052  
1053  	// Describes what the link offers.
1054  	Description string `protobuf:"bytes,1,opt,name=description,proto3" json:"description,omitempty"`
1055  	// The URL of the link.
1056  	Url string `protobuf:"bytes,2,opt,name=url,proto3" json:"url,omitempty"`
1057  }
1058  
1059  func (x *Help_Link) Reset() {
1060  	*x = Help_Link{}
1061  	if protoimpl.UnsafeEnabled {
1062  		mi := &file_google_rpc_error_details_proto_msgTypes[15]
1063  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1064  		ms.StoreMessageInfo(mi)
1065  	}
1066  }
1067  
1068  func (x *Help_Link) String() string {
1069  	return protoimpl.X.MessageStringOf(x)
1070  }
1071  
1072  func (*Help_Link) ProtoMessage() {}
1073  
1074  func (x *Help_Link) ProtoReflect() protoreflect.Message {
1075  	mi := &file_google_rpc_error_details_proto_msgTypes[15]
1076  	if protoimpl.UnsafeEnabled && x != nil {
1077  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
1078  		if ms.LoadMessageInfo() == nil {
1079  			ms.StoreMessageInfo(mi)
1080  		}
1081  		return ms
1082  	}
1083  	return mi.MessageOf(x)
1084  }
1085  
1086  // Deprecated: Use Help_Link.ProtoReflect.Descriptor instead.
1087  func (*Help_Link) Descriptor() ([]byte, []int) {
1088  	return file_google_rpc_error_details_proto_rawDescGZIP(), []int{8, 0}
1089  }
1090  
1091  func (x *Help_Link) GetDescription() string {
1092  	if x != nil {
1093  		return x.Description
1094  	}
1095  	return ""
1096  }
1097  
1098  func (x *Help_Link) GetUrl() string {
1099  	if x != nil {
1100  		return x.Url
1101  	}
1102  	return ""
1103  }
1104  
1105  var File_google_rpc_error_details_proto protoreflect.FileDescriptor
1106  
1107  var file_google_rpc_error_details_proto_rawDesc = []byte{
1108  	0x0a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x65, 0x72, 0x72,
1109  	0x6f, 0x72, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
1110  	0x12, 0x0a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x1a, 0x1e, 0x67, 0x6f,
1111  	0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75,
1112  	0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xb9, 0x01, 0x0a,
1113  	0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65,
1114  	0x61, 0x73, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73,
1115  	0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x02, 0x20, 0x01,
1116  	0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x3f, 0x0a, 0x08, 0x6d, 0x65,
1117  	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67,
1118  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x49,
1119  	0x6e, 0x66, 0x6f, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72,
1120  	0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d,
1121  	0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03,
1122  	0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14,
1123  	0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76,
1124  	0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x47, 0x0a, 0x09, 0x52, 0x65, 0x74, 0x72,
1125  	0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x0b, 0x72, 0x65, 0x74, 0x72, 0x79, 0x5f, 0x64,
1126  	0x65, 0x6c, 0x61, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f,
1127  	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72,
1128  	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x72, 0x79, 0x44, 0x65, 0x6c, 0x61,
1129  	0x79, 0x22, 0x48, 0x0a, 0x09, 0x44, 0x65, 0x62, 0x75, 0x67, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23,
1130  	0x0a, 0x0d, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18,
1131  	0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x74, 0x72,
1132  	0x69, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20,
1133  	0x01, 0x28, 0x09, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x8e, 0x04, 0x0a, 0x0c,
1134  	0x51, 0x75, 0x6f, 0x74, 0x61, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x12, 0x42, 0x0a, 0x0a,
1135  	0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
1136  	0x32, 0x22, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x51, 0x75,
1137  	0x6f, 0x74, 0x61, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x2e, 0x56, 0x69, 0x6f, 0x6c, 0x61,
1138  	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
1139  	0x1a, 0xb9, 0x03, 0x0a, 0x09, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18,
1140  	0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
1141  	0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63,
1142  	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64,
1143  	0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x70,
1144  	0x69, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
1145  	0x0a, 0x61, 0x70, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x71,
1146  	0x75, 0x6f, 0x74, 0x61, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28,
1147  	0x09, 0x52, 0x0b, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x12, 0x19,
1148  	0x0a, 0x08, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09,
1149  	0x52, 0x07, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x49, 0x64, 0x12, 0x62, 0x0a, 0x10, 0x71, 0x75, 0x6f,
1150  	0x74, 0x61, 0x5f, 0x64, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20,
1151  	0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63,
1152  	0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x2e, 0x56, 0x69,
1153  	0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x69, 0x6d,
1154  	0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0f, 0x71, 0x75,
1155  	0x6f, 0x74, 0x61, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1f, 0x0a,
1156  	0x0b, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01,
1157  	0x28, 0x03, 0x52, 0x0a, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x31,
1158  	0x0a, 0x12, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x76,
1159  	0x61, 0x6c, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x10, 0x66, 0x75,
1160  	0x74, 0x75, 0x72, 0x65, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01,
1161  	0x01, 0x1a, 0x42, 0x0a, 0x14, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x44, 0x69, 0x6d, 0x65, 0x6e, 0x73,
1162  	0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79,
1163  	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76,
1164  	0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75,
1165  	0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x66, 0x75, 0x74, 0x75, 0x72, 0x65,
1166  	0x5f, 0x71, 0x75, 0x6f, 0x74, 0x61, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0xbd, 0x01, 0x0a,
1167  	0x13, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x46, 0x61, 0x69,
1168  	0x6c, 0x75, 0x72, 0x65, 0x12, 0x49, 0x0a, 0x0a, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f,
1169  	0x6e, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
1170  	0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x50, 0x72, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x69, 0x74, 0x69,
1171  	0x6f, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x75, 0x72, 0x65, 0x2e, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74,
1172  	0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a,
1173  	0x5b, 0x0a, 0x09, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04,
1174  	0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65,
1175  	0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28,
1176  	0x09, 0x52, 0x07, 0x73, 0x75, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65,
1177  	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
1178  	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x02, 0x0a,
1179  	0x0a, 0x42, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x50, 0x0a, 0x10, 0x66,
1180  	0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18,
1181  	0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72,
1182  	0x70, 0x63, 0x2e, 0x42, 0x61, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x46, 0x69,
1183  	0x65, 0x6c, 0x64, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0f, 0x66, 0x69,
1184  	0x65, 0x6c, 0x64, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0xab, 0x01,
1185  	0x0a, 0x0e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x69, 0x6f, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e,
1186  	0x12, 0x14, 0x0a, 0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52,
1187  	0x05, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
1188  	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73,
1189  	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73,
1190  	0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
1191  	0x12, 0x49, 0x0a, 0x11, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x5f, 0x6d, 0x65,
1192  	0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f,
1193  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x2e, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a,
1194  	0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x10, 0x6c, 0x6f, 0x63, 0x61, 0x6c,
1195  	0x69, 0x7a, 0x65, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x4f, 0x0a, 0x0b, 0x52,
1196  	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65,
1197  	0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09,
1198  	0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72,
1199  	0x76, 0x69, 0x6e, 0x67, 0x5f, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
1200  	0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x6e, 0x67, 0x44, 0x61, 0x74, 0x61, 0x22, 0x90, 0x01, 0x0a,
1201  	0x0c, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x23, 0x0a,
1202  	0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01,
1203  	0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x54, 0x79,
1204  	0x70, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x5f, 0x6e,
1205  	0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75,
1206  	0x72, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72,
1207  	0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x20, 0x0a,
1208  	0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01,
1209  	0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22,
1210  	0x6f, 0x0a, 0x04, 0x48, 0x65, 0x6c, 0x70, 0x12, 0x2b, 0x0a, 0x05, 0x6c, 0x69, 0x6e, 0x6b, 0x73,
1211  	0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
1212  	0x72, 0x70, 0x63, 0x2e, 0x48, 0x65, 0x6c, 0x70, 0x2e, 0x4c, 0x69, 0x6e, 0x6b, 0x52, 0x05, 0x6c,
1213  	0x69, 0x6e, 0x6b, 0x73, 0x1a, 0x3a, 0x0a, 0x04, 0x4c, 0x69, 0x6e, 0x6b, 0x12, 0x20, 0x0a, 0x0b,
1214  	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28,
1215  	0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x10,
1216  	0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c,
1217  	0x22, 0x44, 0x0a, 0x10, 0x4c, 0x6f, 0x63, 0x61, 0x6c, 0x69, 0x7a, 0x65, 0x64, 0x4d, 0x65, 0x73,
1218  	0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x01,
1219  	0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x07,
1220  	0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d,
1221  	0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x6c, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x6f,
1222  	0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x72, 0x70, 0x63, 0x42, 0x11, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x44,
1223  	0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67,
1224  	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67,
1225  	0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
1226  	0x61, 0x70, 0x69, 0x73, 0x2f, 0x72, 0x70, 0x63, 0x2f, 0x65, 0x72, 0x72, 0x64, 0x65, 0x74, 0x61,
1227  	0x69, 0x6c, 0x73, 0x3b, 0x65, 0x72, 0x72, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0xa2, 0x02,
1228  	0x03, 0x52, 0x50, 0x43, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
1229  }
1230  
1231  var (
1232  	file_google_rpc_error_details_proto_rawDescOnce sync.Once
1233  	file_google_rpc_error_details_proto_rawDescData = file_google_rpc_error_details_proto_rawDesc
1234  )
1235  
1236  func file_google_rpc_error_details_proto_rawDescGZIP() []byte {
1237  	file_google_rpc_error_details_proto_rawDescOnce.Do(func() {
1238  		file_google_rpc_error_details_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_rpc_error_details_proto_rawDescData)
1239  	})
1240  	return file_google_rpc_error_details_proto_rawDescData
1241  }
1242  
1243  var file_google_rpc_error_details_proto_msgTypes = make([]protoimpl.MessageInfo, 16)
1244  var file_google_rpc_error_details_proto_goTypes = []interface{}{
1245  	(*ErrorInfo)(nil),                     // 0: google.rpc.ErrorInfo
1246  	(*RetryInfo)(nil),                     // 1: google.rpc.RetryInfo
1247  	(*DebugInfo)(nil),                     // 2: google.rpc.DebugInfo
1248  	(*QuotaFailure)(nil),                  // 3: google.rpc.QuotaFailure
1249  	(*PreconditionFailure)(nil),           // 4: google.rpc.PreconditionFailure
1250  	(*BadRequest)(nil),                    // 5: google.rpc.BadRequest
1251  	(*RequestInfo)(nil),                   // 6: google.rpc.RequestInfo
1252  	(*ResourceInfo)(nil),                  // 7: google.rpc.ResourceInfo
1253  	(*Help)(nil),                          // 8: google.rpc.Help
1254  	(*LocalizedMessage)(nil),              // 9: google.rpc.LocalizedMessage
1255  	nil,                                   // 10: google.rpc.ErrorInfo.MetadataEntry
1256  	(*QuotaFailure_Violation)(nil),        // 11: google.rpc.QuotaFailure.Violation
1257  	nil,                                   // 12: google.rpc.QuotaFailure.Violation.QuotaDimensionsEntry
1258  	(*PreconditionFailure_Violation)(nil), // 13: google.rpc.PreconditionFailure.Violation
1259  	(*BadRequest_FieldViolation)(nil),     // 14: google.rpc.BadRequest.FieldViolation
1260  	(*Help_Link)(nil),                     // 15: google.rpc.Help.Link
1261  	(*durationpb.Duration)(nil),           // 16: google.protobuf.Duration
1262  }
1263  var file_google_rpc_error_details_proto_depIdxs = []int32{
1264  	10, // 0: google.rpc.ErrorInfo.metadata:type_name -> google.rpc.ErrorInfo.MetadataEntry
1265  	16, // 1: google.rpc.RetryInfo.retry_delay:type_name -> google.protobuf.Duration
1266  	11, // 2: google.rpc.QuotaFailure.violations:type_name -> google.rpc.QuotaFailure.Violation
1267  	13, // 3: google.rpc.PreconditionFailure.violations:type_name -> google.rpc.PreconditionFailure.Violation
1268  	14, // 4: google.rpc.BadRequest.field_violations:type_name -> google.rpc.BadRequest.FieldViolation
1269  	15, // 5: google.rpc.Help.links:type_name -> google.rpc.Help.Link
1270  	12, // 6: google.rpc.QuotaFailure.Violation.quota_dimensions:type_name -> google.rpc.QuotaFailure.Violation.QuotaDimensionsEntry
1271  	9,  // 7: google.rpc.BadRequest.FieldViolation.localized_message:type_name -> google.rpc.LocalizedMessage
1272  	8,  // [8:8] is the sub-list for method output_type
1273  	8,  // [8:8] is the sub-list for method input_type
1274  	8,  // [8:8] is the sub-list for extension type_name
1275  	8,  // [8:8] is the sub-list for extension extendee
1276  	0,  // [0:8] is the sub-list for field type_name
1277  }
1278  
1279  func init() { file_google_rpc_error_details_proto_init() }
1280  func file_google_rpc_error_details_proto_init() {
1281  	if File_google_rpc_error_details_proto != nil {
1282  		return
1283  	}
1284  	if !protoimpl.UnsafeEnabled {
1285  		file_google_rpc_error_details_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
1286  			switch v := v.(*ErrorInfo); i {
1287  			case 0:
1288  				return &v.state
1289  			case 1:
1290  				return &v.sizeCache
1291  			case 2:
1292  				return &v.unknownFields
1293  			default:
1294  				return nil
1295  			}
1296  		}
1297  		file_google_rpc_error_details_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
1298  			switch v := v.(*RetryInfo); i {
1299  			case 0:
1300  				return &v.state
1301  			case 1:
1302  				return &v.sizeCache
1303  			case 2:
1304  				return &v.unknownFields
1305  			default:
1306  				return nil
1307  			}
1308  		}
1309  		file_google_rpc_error_details_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
1310  			switch v := v.(*DebugInfo); i {
1311  			case 0:
1312  				return &v.state
1313  			case 1:
1314  				return &v.sizeCache
1315  			case 2:
1316  				return &v.unknownFields
1317  			default:
1318  				return nil
1319  			}
1320  		}
1321  		file_google_rpc_error_details_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
1322  			switch v := v.(*QuotaFailure); i {
1323  			case 0:
1324  				return &v.state
1325  			case 1:
1326  				return &v.sizeCache
1327  			case 2:
1328  				return &v.unknownFields
1329  			default:
1330  				return nil
1331  			}
1332  		}
1333  		file_google_rpc_error_details_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
1334  			switch v := v.(*PreconditionFailure); i {
1335  			case 0:
1336  				return &v.state
1337  			case 1:
1338  				return &v.sizeCache
1339  			case 2:
1340  				return &v.unknownFields
1341  			default:
1342  				return nil
1343  			}
1344  		}
1345  		file_google_rpc_error_details_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
1346  			switch v := v.(*BadRequest); i {
1347  			case 0:
1348  				return &v.state
1349  			case 1:
1350  				return &v.sizeCache
1351  			case 2:
1352  				return &v.unknownFields
1353  			default:
1354  				return nil
1355  			}
1356  		}
1357  		file_google_rpc_error_details_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
1358  			switch v := v.(*RequestInfo); i {
1359  			case 0:
1360  				return &v.state
1361  			case 1:
1362  				return &v.sizeCache
1363  			case 2:
1364  				return &v.unknownFields
1365  			default:
1366  				return nil
1367  			}
1368  		}
1369  		file_google_rpc_error_details_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
1370  			switch v := v.(*ResourceInfo); i {
1371  			case 0:
1372  				return &v.state
1373  			case 1:
1374  				return &v.sizeCache
1375  			case 2:
1376  				return &v.unknownFields
1377  			default:
1378  				return nil
1379  			}
1380  		}
1381  		file_google_rpc_error_details_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
1382  			switch v := v.(*Help); i {
1383  			case 0:
1384  				return &v.state
1385  			case 1:
1386  				return &v.sizeCache
1387  			case 2:
1388  				return &v.unknownFields
1389  			default:
1390  				return nil
1391  			}
1392  		}
1393  		file_google_rpc_error_details_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
1394  			switch v := v.(*LocalizedMessage); i {
1395  			case 0:
1396  				return &v.state
1397  			case 1:
1398  				return &v.sizeCache
1399  			case 2:
1400  				return &v.unknownFields
1401  			default:
1402  				return nil
1403  			}
1404  		}
1405  		file_google_rpc_error_details_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
1406  			switch v := v.(*QuotaFailure_Violation); i {
1407  			case 0:
1408  				return &v.state
1409  			case 1:
1410  				return &v.sizeCache
1411  			case 2:
1412  				return &v.unknownFields
1413  			default:
1414  				return nil
1415  			}
1416  		}
1417  		file_google_rpc_error_details_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
1418  			switch v := v.(*PreconditionFailure_Violation); i {
1419  			case 0:
1420  				return &v.state
1421  			case 1:
1422  				return &v.sizeCache
1423  			case 2:
1424  				return &v.unknownFields
1425  			default:
1426  				return nil
1427  			}
1428  		}
1429  		file_google_rpc_error_details_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
1430  			switch v := v.(*BadRequest_FieldViolation); i {
1431  			case 0:
1432  				return &v.state
1433  			case 1:
1434  				return &v.sizeCache
1435  			case 2:
1436  				return &v.unknownFields
1437  			default:
1438  				return nil
1439  			}
1440  		}
1441  		file_google_rpc_error_details_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
1442  			switch v := v.(*Help_Link); i {
1443  			case 0:
1444  				return &v.state
1445  			case 1:
1446  				return &v.sizeCache
1447  			case 2:
1448  				return &v.unknownFields
1449  			default:
1450  				return nil
1451  			}
1452  		}
1453  	}
1454  	file_google_rpc_error_details_proto_msgTypes[11].OneofWrappers = []interface{}{}
1455  	type x struct{}
1456  	out := protoimpl.TypeBuilder{
1457  		File: protoimpl.DescBuilder{
1458  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
1459  			RawDescriptor: file_google_rpc_error_details_proto_rawDesc,
1460  			NumEnums:      0,
1461  			NumMessages:   16,
1462  			NumExtensions: 0,
1463  			NumServices:   0,
1464  		},
1465  		GoTypes:           file_google_rpc_error_details_proto_goTypes,
1466  		DependencyIndexes: file_google_rpc_error_details_proto_depIdxs,
1467  		MessageInfos:      file_google_rpc_error_details_proto_msgTypes,
1468  	}.Build()
1469  	File_google_rpc_error_details_proto = out.File
1470  	file_google_rpc_error_details_proto_rawDesc = nil
1471  	file_google_rpc_error_details_proto_goTypes = nil
1472  	file_google_rpc_error_details_proto_depIdxs = nil
1473  }
1474