github.com/renbou/grpcbridge@v0.0.2-0.20240416012907-bcbd8b12648a/internal/bridgetest/testpb/google/api/http.pb.go (about)

     1  // Copyright 2023 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.33.0
    18  // 	protoc        (unknown)
    19  // source: google/api/http.proto
    20  
    21  package annotations
    22  
    23  import (
    24  	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
    25  	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
    26  	reflect "reflect"
    27  	sync "sync"
    28  )
    29  
    30  const (
    31  	// Verify that this generated code is sufficiently up-to-date.
    32  	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
    33  	// Verify that runtime/protoimpl is sufficiently up-to-date.
    34  	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
    35  )
    36  
    37  // Defines the HTTP configuration for an API service. It contains a list of
    38  // [HttpRule][google.api.HttpRule], each specifying the mapping of an RPC method
    39  // to one or more HTTP REST API methods.
    40  type Http struct {
    41  	state         protoimpl.MessageState
    42  	sizeCache     protoimpl.SizeCache
    43  	unknownFields protoimpl.UnknownFields
    44  
    45  	// A list of HTTP configuration rules that apply to individual API methods.
    46  	//
    47  	// **NOTE:** All service configuration rules follow "last one wins" order.
    48  	Rules []*HttpRule `protobuf:"bytes,1,rep,name=rules,proto3" json:"rules,omitempty"`
    49  	// When set to true, URL path parameters will be fully URI-decoded except in
    50  	// cases of single segment matches in reserved expansion, where "%2F" will be
    51  	// left encoded.
    52  	//
    53  	// The default behavior is to not decode RFC 6570 reserved characters in multi
    54  	// segment matches.
    55  	FullyDecodeReservedExpansion bool `protobuf:"varint,2,opt,name=fully_decode_reserved_expansion,json=fullyDecodeReservedExpansion,proto3" json:"fully_decode_reserved_expansion,omitempty"`
    56  }
    57  
    58  func (x *Http) Reset() {
    59  	*x = Http{}
    60  	if protoimpl.UnsafeEnabled {
    61  		mi := &file_google_api_http_proto_msgTypes[0]
    62  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    63  		ms.StoreMessageInfo(mi)
    64  	}
    65  }
    66  
    67  func (x *Http) String() string {
    68  	return protoimpl.X.MessageStringOf(x)
    69  }
    70  
    71  func (*Http) ProtoMessage() {}
    72  
    73  func (x *Http) ProtoReflect() protoreflect.Message {
    74  	mi := &file_google_api_http_proto_msgTypes[0]
    75  	if protoimpl.UnsafeEnabled && x != nil {
    76  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
    77  		if ms.LoadMessageInfo() == nil {
    78  			ms.StoreMessageInfo(mi)
    79  		}
    80  		return ms
    81  	}
    82  	return mi.MessageOf(x)
    83  }
    84  
    85  // Deprecated: Use Http.ProtoReflect.Descriptor instead.
    86  func (*Http) Descriptor() ([]byte, []int) {
    87  	return file_google_api_http_proto_rawDescGZIP(), []int{0}
    88  }
    89  
    90  func (x *Http) GetRules() []*HttpRule {
    91  	if x != nil {
    92  		return x.Rules
    93  	}
    94  	return nil
    95  }
    96  
    97  func (x *Http) GetFullyDecodeReservedExpansion() bool {
    98  	if x != nil {
    99  		return x.FullyDecodeReservedExpansion
   100  	}
   101  	return false
   102  }
   103  
   104  // # gRPC Transcoding
   105  //
   106  // gRPC Transcoding is a feature for mapping between a gRPC method and one or
   107  // more HTTP REST endpoints. It allows developers to build a single API service
   108  // that supports both gRPC APIs and REST APIs. Many systems, including [Google
   109  // APIs](https://github.com/googleapis/googleapis),
   110  // [Cloud Endpoints](https://cloud.google.com/endpoints), [gRPC
   111  // Gateway](https://github.com/grpc-ecosystem/grpc-gateway),
   112  // and [Envoy](https://github.com/envoyproxy/envoy) proxy support this feature
   113  // and use it for large scale production services.
   114  //
   115  // `HttpRule` defines the schema of the gRPC/REST mapping. The mapping specifies
   116  // how different portions of the gRPC request message are mapped to the URL
   117  // path, URL query parameters, and HTTP request body. It also controls how the
   118  // gRPC response message is mapped to the HTTP response body. `HttpRule` is
   119  // typically specified as an `google.api.http` annotation on the gRPC method.
   120  //
   121  // Each mapping specifies a URL path template and an HTTP method. The path
   122  // template may refer to one or more fields in the gRPC request message, as long
   123  // as each field is a non-repeated field with a primitive (non-message) type.
   124  // The path template controls how fields of the request message are mapped to
   125  // the URL path.
   126  //
   127  // Example:
   128  //
   129  //	service Messaging {
   130  //	  rpc GetMessage(GetMessageRequest) returns (Message) {
   131  //	    option (google.api.http) = {
   132  //	        get: "/v1/{name=messages/*}"
   133  //	    };
   134  //	  }
   135  //	}
   136  //	message GetMessageRequest {
   137  //	  string name = 1; // Mapped to URL path.
   138  //	}
   139  //	message Message {
   140  //	  string text = 1; // The resource content.
   141  //	}
   142  //
   143  // This enables an HTTP REST to gRPC mapping as below:
   144  //
   145  // HTTP | gRPC
   146  // -----|-----
   147  // `GET /v1/messages/123456`  | `GetMessage(name: "messages/123456")`
   148  //
   149  // Any fields in the request message which are not bound by the path template
   150  // automatically become HTTP query parameters if there is no HTTP request body.
   151  // For example:
   152  //
   153  //	service Messaging {
   154  //	  rpc GetMessage(GetMessageRequest) returns (Message) {
   155  //	    option (google.api.http) = {
   156  //	        get:"/v1/messages/{message_id}"
   157  //	    };
   158  //	  }
   159  //	}
   160  //	message GetMessageRequest {
   161  //	  message SubMessage {
   162  //	    string subfield = 1;
   163  //	  }
   164  //	  string message_id = 1; // Mapped to URL path.
   165  //	  int64 revision = 2;    // Mapped to URL query parameter `revision`.
   166  //	  SubMessage sub = 3;    // Mapped to URL query parameter `sub.subfield`.
   167  //	}
   168  //
   169  // This enables a HTTP JSON to RPC mapping as below:
   170  //
   171  // HTTP | gRPC
   172  // -----|-----
   173  // `GET /v1/messages/123456?revision=2&sub.subfield=foo` |
   174  // `GetMessage(message_id: "123456" revision: 2 sub: SubMessage(subfield:
   175  // "foo"))`
   176  //
   177  // Note that fields which are mapped to URL query parameters must have a
   178  // primitive type or a repeated primitive type or a non-repeated message type.
   179  // In the case of a repeated type, the parameter can be repeated in the URL
   180  // as `...?param=A&param=B`. In the case of a message type, each field of the
   181  // message is mapped to a separate parameter, such as
   182  // `...?foo.a=A&foo.b=B&foo.c=C`.
   183  //
   184  // For HTTP methods that allow a request body, the `body` field
   185  // specifies the mapping. Consider a REST update method on the
   186  // message resource collection:
   187  //
   188  //	service Messaging {
   189  //	  rpc UpdateMessage(UpdateMessageRequest) returns (Message) {
   190  //	    option (google.api.http) = {
   191  //	      patch: "/v1/messages/{message_id}"
   192  //	      body: "message"
   193  //	    };
   194  //	  }
   195  //	}
   196  //	message UpdateMessageRequest {
   197  //	  string message_id = 1; // mapped to the URL
   198  //	  Message message = 2;   // mapped to the body
   199  //	}
   200  //
   201  // The following HTTP JSON to RPC mapping is enabled, where the
   202  // representation of the JSON in the request body is determined by
   203  // protos JSON encoding:
   204  //
   205  // HTTP | gRPC
   206  // -----|-----
   207  // `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
   208  // "123456" message { text: "Hi!" })`
   209  //
   210  // The special name `*` can be used in the body mapping to define that
   211  // every field not bound by the path template should be mapped to the
   212  // request body.  This enables the following alternative definition of
   213  // the update method:
   214  //
   215  //	service Messaging {
   216  //	  rpc UpdateMessage(Message) returns (Message) {
   217  //	    option (google.api.http) = {
   218  //	      patch: "/v1/messages/{message_id}"
   219  //	      body: "*"
   220  //	    };
   221  //	  }
   222  //	}
   223  //	message Message {
   224  //	  string message_id = 1;
   225  //	  string text = 2;
   226  //	}
   227  //
   228  // The following HTTP JSON to RPC mapping is enabled:
   229  //
   230  // HTTP | gRPC
   231  // -----|-----
   232  // `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
   233  // "123456" text: "Hi!")`
   234  //
   235  // Note that when using `*` in the body mapping, it is not possible to
   236  // have HTTP parameters, as all fields not bound by the path end in
   237  // the body. This makes this option more rarely used in practice when
   238  // defining REST APIs. The common usage of `*` is in custom methods
   239  // which don't use the URL at all for transferring data.
   240  //
   241  // It is possible to define multiple HTTP methods for one RPC by using
   242  // the `additional_bindings` option. Example:
   243  //
   244  //	service Messaging {
   245  //	  rpc GetMessage(GetMessageRequest) returns (Message) {
   246  //	    option (google.api.http) = {
   247  //	      get: "/v1/messages/{message_id}"
   248  //	      additional_bindings {
   249  //	        get: "/v1/users/{user_id}/messages/{message_id}"
   250  //	      }
   251  //	    };
   252  //	  }
   253  //	}
   254  //	message GetMessageRequest {
   255  //	  string message_id = 1;
   256  //	  string user_id = 2;
   257  //	}
   258  //
   259  // This enables the following two alternative HTTP JSON to RPC mappings:
   260  //
   261  // HTTP | gRPC
   262  // -----|-----
   263  // `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
   264  // `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
   265  // "123456")`
   266  //
   267  // ## Rules for HTTP mapping
   268  //
   269  //  1. Leaf request fields (recursive expansion nested messages in the request
   270  //     message) are classified into three categories:
   271  //     - Fields referred by the path template. They are passed via the URL path.
   272  //     - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They
   273  //     are passed via the HTTP
   274  //     request body.
   275  //     - All other fields are passed via the URL query parameters, and the
   276  //     parameter name is the field path in the request message. A repeated
   277  //     field can be represented as multiple query parameters under the same
   278  //     name.
   279  //  2. If [HttpRule.body][google.api.HttpRule.body] is "*", there is no URL
   280  //     query parameter, all fields
   281  //     are passed via URL path and HTTP request body.
   282  //  3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP
   283  //     request body, all
   284  //     fields are passed via URL path and URL query parameters.
   285  //
   286  // ### Path template syntax
   287  //
   288  //	Template = "/" Segments [ Verb ] ;
   289  //	Segments = Segment { "/" Segment } ;
   290  //	Segment  = "*" | "**" | LITERAL | Variable ;
   291  //	Variable = "{" FieldPath [ "=" Segments ] "}" ;
   292  //	FieldPath = IDENT { "." IDENT } ;
   293  //	Verb     = ":" LITERAL ;
   294  //
   295  // The syntax `*` matches a single URL path segment. The syntax `**` matches
   296  // zero or more URL path segments, which must be the last part of the URL path
   297  // except the `Verb`.
   298  //
   299  // The syntax `Variable` matches part of the URL path as specified by its
   300  // template. A variable template must not contain other variables. If a variable
   301  // matches a single path segment, its template may be omitted, e.g. `{var}`
   302  // is equivalent to `{var=*}`.
   303  //
   304  // The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
   305  // contains any reserved character, such characters should be percent-encoded
   306  // before the matching.
   307  //
   308  // If a variable contains exactly one path segment, such as `"{var}"` or
   309  // `"{var=*}"`, when such a variable is expanded into a URL path on the client
   310  // side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
   311  // server side does the reverse decoding. Such variables show up in the
   312  // [Discovery
   313  // Document](https://developers.google.com/discovery/v1/reference/apis) as
   314  // `{var}`.
   315  //
   316  // If a variable contains multiple path segments, such as `"{var=foo/*}"`
   317  // or `"{var=**}"`, when such a variable is expanded into a URL path on the
   318  // client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
   319  // The server side does the reverse decoding, except "%2F" and "%2f" are left
   320  // unchanged. Such variables show up in the
   321  // [Discovery
   322  // Document](https://developers.google.com/discovery/v1/reference/apis) as
   323  // `{+var}`.
   324  //
   325  // ## Using gRPC API Service Configuration
   326  //
   327  // gRPC API Service Configuration (service config) is a configuration language
   328  // for configuring a gRPC service to become a user-facing product. The
   329  // service config is simply the YAML representation of the `google.api.Service`
   330  // proto message.
   331  //
   332  // As an alternative to annotating your proto file, you can configure gRPC
   333  // transcoding in your service config YAML files. You do this by specifying a
   334  // `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
   335  // effect as the proto annotation. This can be particularly useful if you
   336  // have a proto that is reused in multiple services. Note that any transcoding
   337  // specified in the service config will override any matching transcoding
   338  // configuration in the proto.
   339  //
   340  // Example:
   341  //
   342  //	http:
   343  //	  rules:
   344  //	    # Selects a gRPC method and applies HttpRule to it.
   345  //	    - selector: example.v1.Messaging.GetMessage
   346  //	      get: /v1/messages/{message_id}/{sub.subfield}
   347  //
   348  // ## Special notes
   349  //
   350  // When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
   351  // proto to JSON conversion must follow the [proto3
   352  // specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
   353  //
   354  // While the single segment variable follows the semantics of
   355  // [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
   356  // Expansion, the multi segment variable **does not** follow RFC 6570 Section
   357  // 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
   358  // does not expand special characters like `?` and `#`, which would lead
   359  // to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
   360  // for multi segment variables.
   361  //
   362  // The path variables **must not** refer to any repeated or mapped field,
   363  // because client libraries are not capable of handling such variable expansion.
   364  //
   365  // The path variables **must not** capture the leading "/" character. The reason
   366  // is that the most common use case "{var}" does not capture the leading "/"
   367  // character. For consistency, all path variables must share the same behavior.
   368  //
   369  // Repeated message fields must not be mapped to URL query parameters, because
   370  // no client library can support such complicated mapping.
   371  //
   372  // If an API needs to use a JSON array for request or response body, it can map
   373  // the request or response body to a repeated field. However, some gRPC
   374  // Transcoding implementations may not support this feature.
   375  type HttpRule struct {
   376  	state         protoimpl.MessageState
   377  	sizeCache     protoimpl.SizeCache
   378  	unknownFields protoimpl.UnknownFields
   379  
   380  	// Selects a method to which this rule applies.
   381  	//
   382  	// Refer to [selector][google.api.DocumentationRule.selector] for syntax
   383  	// details.
   384  	Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
   385  	// Determines the URL pattern is matched by this rules. This pattern can be
   386  	// used with any of the {get|put|post|delete|patch} methods. A custom method
   387  	// can be defined using the 'custom' field.
   388  	//
   389  	// Types that are assignable to Pattern:
   390  	//
   391  	//	*HttpRule_Get
   392  	//	*HttpRule_Put
   393  	//	*HttpRule_Post
   394  	//	*HttpRule_Delete
   395  	//	*HttpRule_Patch
   396  	//	*HttpRule_Custom
   397  	Pattern isHttpRule_Pattern `protobuf_oneof:"pattern"`
   398  	// The name of the request field whose value is mapped to the HTTP request
   399  	// body, or `*` for mapping all request fields not captured by the path
   400  	// pattern to the HTTP body, or omitted for not having any HTTP request body.
   401  	//
   402  	// NOTE: the referred field must be present at the top-level of the request
   403  	// message type.
   404  	Body string `protobuf:"bytes,7,opt,name=body,proto3" json:"body,omitempty"`
   405  	// Optional. The name of the response field whose value is mapped to the HTTP
   406  	// response body. When omitted, the entire response message will be used
   407  	// as the HTTP response body.
   408  	//
   409  	// NOTE: The referred field must be present at the top-level of the response
   410  	// message type.
   411  	ResponseBody string `protobuf:"bytes,12,opt,name=response_body,json=responseBody,proto3" json:"response_body,omitempty"`
   412  	// Additional HTTP bindings for the selector. Nested bindings must
   413  	// not contain an `additional_bindings` field themselves (that is,
   414  	// the nesting may only be one level deep).
   415  	AdditionalBindings []*HttpRule `protobuf:"bytes,11,rep,name=additional_bindings,json=additionalBindings,proto3" json:"additional_bindings,omitempty"`
   416  }
   417  
   418  func (x *HttpRule) Reset() {
   419  	*x = HttpRule{}
   420  	if protoimpl.UnsafeEnabled {
   421  		mi := &file_google_api_http_proto_msgTypes[1]
   422  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   423  		ms.StoreMessageInfo(mi)
   424  	}
   425  }
   426  
   427  func (x *HttpRule) String() string {
   428  	return protoimpl.X.MessageStringOf(x)
   429  }
   430  
   431  func (*HttpRule) ProtoMessage() {}
   432  
   433  func (x *HttpRule) ProtoReflect() protoreflect.Message {
   434  	mi := &file_google_api_http_proto_msgTypes[1]
   435  	if protoimpl.UnsafeEnabled && x != nil {
   436  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   437  		if ms.LoadMessageInfo() == nil {
   438  			ms.StoreMessageInfo(mi)
   439  		}
   440  		return ms
   441  	}
   442  	return mi.MessageOf(x)
   443  }
   444  
   445  // Deprecated: Use HttpRule.ProtoReflect.Descriptor instead.
   446  func (*HttpRule) Descriptor() ([]byte, []int) {
   447  	return file_google_api_http_proto_rawDescGZIP(), []int{1}
   448  }
   449  
   450  func (x *HttpRule) GetSelector() string {
   451  	if x != nil {
   452  		return x.Selector
   453  	}
   454  	return ""
   455  }
   456  
   457  func (m *HttpRule) GetPattern() isHttpRule_Pattern {
   458  	if m != nil {
   459  		return m.Pattern
   460  	}
   461  	return nil
   462  }
   463  
   464  func (x *HttpRule) GetGet() string {
   465  	if x, ok := x.GetPattern().(*HttpRule_Get); ok {
   466  		return x.Get
   467  	}
   468  	return ""
   469  }
   470  
   471  func (x *HttpRule) GetPut() string {
   472  	if x, ok := x.GetPattern().(*HttpRule_Put); ok {
   473  		return x.Put
   474  	}
   475  	return ""
   476  }
   477  
   478  func (x *HttpRule) GetPost() string {
   479  	if x, ok := x.GetPattern().(*HttpRule_Post); ok {
   480  		return x.Post
   481  	}
   482  	return ""
   483  }
   484  
   485  func (x *HttpRule) GetDelete() string {
   486  	if x, ok := x.GetPattern().(*HttpRule_Delete); ok {
   487  		return x.Delete
   488  	}
   489  	return ""
   490  }
   491  
   492  func (x *HttpRule) GetPatch() string {
   493  	if x, ok := x.GetPattern().(*HttpRule_Patch); ok {
   494  		return x.Patch
   495  	}
   496  	return ""
   497  }
   498  
   499  func (x *HttpRule) GetCustom() *CustomHttpPattern {
   500  	if x, ok := x.GetPattern().(*HttpRule_Custom); ok {
   501  		return x.Custom
   502  	}
   503  	return nil
   504  }
   505  
   506  func (x *HttpRule) GetBody() string {
   507  	if x != nil {
   508  		return x.Body
   509  	}
   510  	return ""
   511  }
   512  
   513  func (x *HttpRule) GetResponseBody() string {
   514  	if x != nil {
   515  		return x.ResponseBody
   516  	}
   517  	return ""
   518  }
   519  
   520  func (x *HttpRule) GetAdditionalBindings() []*HttpRule {
   521  	if x != nil {
   522  		return x.AdditionalBindings
   523  	}
   524  	return nil
   525  }
   526  
   527  type isHttpRule_Pattern interface {
   528  	isHttpRule_Pattern()
   529  }
   530  
   531  type HttpRule_Get struct {
   532  	// Maps to HTTP GET. Used for listing and getting information about
   533  	// resources.
   534  	Get string `protobuf:"bytes,2,opt,name=get,proto3,oneof"`
   535  }
   536  
   537  type HttpRule_Put struct {
   538  	// Maps to HTTP PUT. Used for replacing a resource.
   539  	Put string `protobuf:"bytes,3,opt,name=put,proto3,oneof"`
   540  }
   541  
   542  type HttpRule_Post struct {
   543  	// Maps to HTTP POST. Used for creating a resource or performing an action.
   544  	Post string `protobuf:"bytes,4,opt,name=post,proto3,oneof"`
   545  }
   546  
   547  type HttpRule_Delete struct {
   548  	// Maps to HTTP DELETE. Used for deleting a resource.
   549  	Delete string `protobuf:"bytes,5,opt,name=delete,proto3,oneof"`
   550  }
   551  
   552  type HttpRule_Patch struct {
   553  	// Maps to HTTP PATCH. Used for updating a resource.
   554  	Patch string `protobuf:"bytes,6,opt,name=patch,proto3,oneof"`
   555  }
   556  
   557  type HttpRule_Custom struct {
   558  	// The custom pattern is used for specifying an HTTP method that is not
   559  	// included in the `pattern` field, such as HEAD, or "*" to leave the
   560  	// HTTP method unspecified for this rule. The wild-card rule is useful
   561  	// for services that provide content to Web (HTML) clients.
   562  	Custom *CustomHttpPattern `protobuf:"bytes,8,opt,name=custom,proto3,oneof"`
   563  }
   564  
   565  func (*HttpRule_Get) isHttpRule_Pattern() {}
   566  
   567  func (*HttpRule_Put) isHttpRule_Pattern() {}
   568  
   569  func (*HttpRule_Post) isHttpRule_Pattern() {}
   570  
   571  func (*HttpRule_Delete) isHttpRule_Pattern() {}
   572  
   573  func (*HttpRule_Patch) isHttpRule_Pattern() {}
   574  
   575  func (*HttpRule_Custom) isHttpRule_Pattern() {}
   576  
   577  // A custom pattern is used for defining custom HTTP verb.
   578  type CustomHttpPattern struct {
   579  	state         protoimpl.MessageState
   580  	sizeCache     protoimpl.SizeCache
   581  	unknownFields protoimpl.UnknownFields
   582  
   583  	// The name of this custom HTTP verb.
   584  	Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"`
   585  	// The path matched by this custom verb.
   586  	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
   587  }
   588  
   589  func (x *CustomHttpPattern) Reset() {
   590  	*x = CustomHttpPattern{}
   591  	if protoimpl.UnsafeEnabled {
   592  		mi := &file_google_api_http_proto_msgTypes[2]
   593  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   594  		ms.StoreMessageInfo(mi)
   595  	}
   596  }
   597  
   598  func (x *CustomHttpPattern) String() string {
   599  	return protoimpl.X.MessageStringOf(x)
   600  }
   601  
   602  func (*CustomHttpPattern) ProtoMessage() {}
   603  
   604  func (x *CustomHttpPattern) ProtoReflect() protoreflect.Message {
   605  	mi := &file_google_api_http_proto_msgTypes[2]
   606  	if protoimpl.UnsafeEnabled && x != nil {
   607  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   608  		if ms.LoadMessageInfo() == nil {
   609  			ms.StoreMessageInfo(mi)
   610  		}
   611  		return ms
   612  	}
   613  	return mi.MessageOf(x)
   614  }
   615  
   616  // Deprecated: Use CustomHttpPattern.ProtoReflect.Descriptor instead.
   617  func (*CustomHttpPattern) Descriptor() ([]byte, []int) {
   618  	return file_google_api_http_proto_rawDescGZIP(), []int{2}
   619  }
   620  
   621  func (x *CustomHttpPattern) GetKind() string {
   622  	if x != nil {
   623  		return x.Kind
   624  	}
   625  	return ""
   626  }
   627  
   628  func (x *CustomHttpPattern) GetPath() string {
   629  	if x != nil {
   630  		return x.Path
   631  	}
   632  	return ""
   633  }
   634  
   635  var File_google_api_http_proto protoreflect.FileDescriptor
   636  
   637  var file_google_api_http_proto_rawDesc = []byte{
   638  	0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74,
   639  	0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
   640  	0x61, 0x70, 0x69, 0x22, 0x79, 0x0a, 0x04, 0x48, 0x74, 0x74, 0x70, 0x12, 0x2a, 0x0a, 0x05, 0x72,
   641  	0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f,
   642  	0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65,
   643  	0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x1f, 0x66, 0x75, 0x6c, 0x6c, 0x79,
   644  	0x5f, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64,
   645  	0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
   646  	0x52, 0x1c, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73,
   647  	0x65, 0x72, 0x76, 0x65, 0x64, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xda,
   648  	0x02, 0x0a, 0x08, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73,
   649  	0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73,
   650  	0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, 0x02,
   651  	0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x70,
   652  	0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x70, 0x75, 0x74, 0x12,
   653  	0x14, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
   654  	0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18,
   655  	0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12,
   656  	0x16, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
   657  	0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f,
   658  	0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
   659  	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50,
   660  	0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
   661  	0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
   662  	0x62, 0x6f, 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
   663  	0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73,
   664  	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x13, 0x61, 0x64, 0x64,
   665  	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73,
   666  	0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
   667  	0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x12, 0x61, 0x64,
   668  	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73,
   669  	0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x22, 0x3b, 0x0a, 0x11, 0x43,
   670  	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e,
   671  	0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
   672  	0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
   673  	0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x6a, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e,
   674  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x09, 0x48, 0x74, 0x74, 0x70,
   675  	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
   676  	0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
   677  	0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61,
   678  	0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61,
   679  	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x04,
   680  	0x47, 0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
   681  }
   682  
   683  var (
   684  	file_google_api_http_proto_rawDescOnce sync.Once
   685  	file_google_api_http_proto_rawDescData = file_google_api_http_proto_rawDesc
   686  )
   687  
   688  func file_google_api_http_proto_rawDescGZIP() []byte {
   689  	file_google_api_http_proto_rawDescOnce.Do(func() {
   690  		file_google_api_http_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_api_http_proto_rawDescData)
   691  	})
   692  	return file_google_api_http_proto_rawDescData
   693  }
   694  
   695  var file_google_api_http_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
   696  var file_google_api_http_proto_goTypes = []interface{}{
   697  	(*Http)(nil),              // 0: google.api.Http
   698  	(*HttpRule)(nil),          // 1: google.api.HttpRule
   699  	(*CustomHttpPattern)(nil), // 2: google.api.CustomHttpPattern
   700  }
   701  var file_google_api_http_proto_depIdxs = []int32{
   702  	1, // 0: google.api.Http.rules:type_name -> google.api.HttpRule
   703  	2, // 1: google.api.HttpRule.custom:type_name -> google.api.CustomHttpPattern
   704  	1, // 2: google.api.HttpRule.additional_bindings:type_name -> google.api.HttpRule
   705  	3, // [3:3] is the sub-list for method output_type
   706  	3, // [3:3] is the sub-list for method input_type
   707  	3, // [3:3] is the sub-list for extension type_name
   708  	3, // [3:3] is the sub-list for extension extendee
   709  	0, // [0:3] is the sub-list for field type_name
   710  }
   711  
   712  func init() { file_google_api_http_proto_init() }
   713  func file_google_api_http_proto_init() {
   714  	if File_google_api_http_proto != nil {
   715  		return
   716  	}
   717  	if !protoimpl.UnsafeEnabled {
   718  		file_google_api_http_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   719  			switch v := v.(*Http); i {
   720  			case 0:
   721  				return &v.state
   722  			case 1:
   723  				return &v.sizeCache
   724  			case 2:
   725  				return &v.unknownFields
   726  			default:
   727  				return nil
   728  			}
   729  		}
   730  		file_google_api_http_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   731  			switch v := v.(*HttpRule); i {
   732  			case 0:
   733  				return &v.state
   734  			case 1:
   735  				return &v.sizeCache
   736  			case 2:
   737  				return &v.unknownFields
   738  			default:
   739  				return nil
   740  			}
   741  		}
   742  		file_google_api_http_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
   743  			switch v := v.(*CustomHttpPattern); i {
   744  			case 0:
   745  				return &v.state
   746  			case 1:
   747  				return &v.sizeCache
   748  			case 2:
   749  				return &v.unknownFields
   750  			default:
   751  				return nil
   752  			}
   753  		}
   754  	}
   755  	file_google_api_http_proto_msgTypes[1].OneofWrappers = []interface{}{
   756  		(*HttpRule_Get)(nil),
   757  		(*HttpRule_Put)(nil),
   758  		(*HttpRule_Post)(nil),
   759  		(*HttpRule_Delete)(nil),
   760  		(*HttpRule_Patch)(nil),
   761  		(*HttpRule_Custom)(nil),
   762  	}
   763  	type x struct{}
   764  	out := protoimpl.TypeBuilder{
   765  		File: protoimpl.DescBuilder{
   766  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
   767  			RawDescriptor: file_google_api_http_proto_rawDesc,
   768  			NumEnums:      0,
   769  			NumMessages:   3,
   770  			NumExtensions: 0,
   771  			NumServices:   0,
   772  		},
   773  		GoTypes:           file_google_api_http_proto_goTypes,
   774  		DependencyIndexes: file_google_api_http_proto_depIdxs,
   775  		MessageInfos:      file_google_api_http_proto_msgTypes,
   776  	}.Build()
   777  	File_google_api_http_proto = out.File
   778  	file_google_api_http_proto_rawDesc = nil
   779  	file_google_api_http_proto_goTypes = nil
   780  	file_google_api_http_proto_depIdxs = nil
   781  }