github.com/resonatecoop/user-api@v1.0.0-13.0.20220915120639-05dc9c04014a/proto/google/api/http.pb.go (about)

     1  // Copyright 2020 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.25.0-devel
    18  // 	protoc        v3.13.0
    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  //
   229  // The following HTTP JSON to RPC mapping is enabled:
   230  //
   231  // HTTP | gRPC
   232  // -----|-----
   233  // `PATCH /v1/messages/123456 { "text": "Hi!" }` | `UpdateMessage(message_id:
   234  // "123456" text: "Hi!")`
   235  //
   236  // Note that when using `*` in the body mapping, it is not possible to
   237  // have HTTP parameters, as all fields not bound by the path end in
   238  // the body. This makes this option more rarely used in practice when
   239  // defining REST APIs. The common usage of `*` is in custom methods
   240  // which don't use the URL at all for transferring data.
   241  //
   242  // It is possible to define multiple HTTP methods for one RPC by using
   243  // the `additional_bindings` option. Example:
   244  //
   245  //     service Messaging {
   246  //       rpc GetMessage(GetMessageRequest) returns (Message) {
   247  //         option (google.api.http) = {
   248  //           get: "/v1/messages/{message_id}"
   249  //           additional_bindings {
   250  //             get: "/v1/users/{user_id}/messages/{message_id}"
   251  //           }
   252  //         };
   253  //       }
   254  //     }
   255  //     message GetMessageRequest {
   256  //       string message_id = 1;
   257  //       string user_id = 2;
   258  //     }
   259  //
   260  // This enables the following two alternative HTTP JSON to RPC mappings:
   261  //
   262  // HTTP | gRPC
   263  // -----|-----
   264  // `GET /v1/messages/123456` | `GetMessage(message_id: "123456")`
   265  // `GET /v1/users/me/messages/123456` | `GetMessage(user_id: "me" message_id:
   266  // "123456")`
   267  //
   268  // ## Rules for HTTP mapping
   269  //
   270  // 1. Leaf request fields (recursive expansion nested messages in the request
   271  //    message) are classified into three categories:
   272  //    - Fields referred by the path template. They are passed via the URL path.
   273  //    - Fields referred by the [HttpRule.body][google.api.HttpRule.body]. They 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 query parameter, all fields
   280  //     are passed via URL path and HTTP request body.
   281  //  3. If [HttpRule.body][google.api.HttpRule.body] is omitted, there is no HTTP request body, all
   282  //     fields are passed via URL path and URL query parameters.
   283  //
   284  // ### Path template syntax
   285  //
   286  //     Template = "/" Segments [ Verb ] ;
   287  //     Segments = Segment { "/" Segment } ;
   288  //     Segment  = "*" | "**" | LITERAL | Variable ;
   289  //     Variable = "{" FieldPath [ "=" Segments ] "}" ;
   290  //     FieldPath = IDENT { "." IDENT } ;
   291  //     Verb     = ":" LITERAL ;
   292  //
   293  // The syntax `*` matches a single URL path segment. The syntax `**` matches
   294  // zero or more URL path segments, which must be the last part of the URL path
   295  // except the `Verb`.
   296  //
   297  // The syntax `Variable` matches part of the URL path as specified by its
   298  // template. A variable template must not contain other variables. If a variable
   299  // matches a single path segment, its template may be omitted, e.g. `{var}`
   300  // is equivalent to `{var=*}`.
   301  //
   302  // The syntax `LITERAL` matches literal text in the URL path. If the `LITERAL`
   303  // contains any reserved character, such characters should be percent-encoded
   304  // before the matching.
   305  //
   306  // If a variable contains exactly one path segment, such as `"{var}"` or
   307  // `"{var=*}"`, when such a variable is expanded into a URL path on the client
   308  // side, all characters except `[-_.~0-9a-zA-Z]` are percent-encoded. The
   309  // server side does the reverse decoding. Such variables show up in the
   310  // [Discovery
   311  // Document](https://developers.google.com/discovery/v1/reference/apis) as
   312  // `{var}`.
   313  //
   314  // If a variable contains multiple path segments, such as `"{var=foo/*}"`
   315  // or `"{var=**}"`, when such a variable is expanded into a URL path on the
   316  // client side, all characters except `[-_.~/0-9a-zA-Z]` are percent-encoded.
   317  // The server side does the reverse decoding, except "%2F" and "%2f" are left
   318  // unchanged. Such variables show up in the
   319  // [Discovery
   320  // Document](https://developers.google.com/discovery/v1/reference/apis) as
   321  // `{+var}`.
   322  //
   323  // ## Using gRPC API Service Configuration
   324  //
   325  // gRPC API Service Configuration (service config) is a configuration language
   326  // for configuring a gRPC service to become a user-facing product. The
   327  // service config is simply the YAML representation of the `google.api.Service`
   328  // proto message.
   329  //
   330  // As an alternative to annotating your proto file, you can configure gRPC
   331  // transcoding in your service config YAML files. You do this by specifying a
   332  // `HttpRule` that maps the gRPC method to a REST endpoint, achieving the same
   333  // effect as the proto annotation. This can be particularly useful if you
   334  // have a proto that is reused in multiple services. Note that any transcoding
   335  // specified in the service config will override any matching transcoding
   336  // configuration in the proto.
   337  //
   338  // Example:
   339  //
   340  //     http:
   341  //       rules:
   342  //         # Selects a gRPC method and applies HttpRule to it.
   343  //         - selector: example.v1.Messaging.GetMessage
   344  //           get: /v1/messages/{message_id}/{sub.subfield}
   345  //
   346  // ## Special notes
   347  //
   348  // When gRPC Transcoding is used to map a gRPC to JSON REST endpoints, the
   349  // proto to JSON conversion must follow the [proto3
   350  // specification](https://developers.google.com/protocol-buffers/docs/proto3#json).
   351  //
   352  // While the single segment variable follows the semantics of
   353  // [RFC 6570](https://tools.ietf.org/html/rfc6570) Section 3.2.2 Simple String
   354  // Expansion, the multi segment variable **does not** follow RFC 6570 Section
   355  // 3.2.3 Reserved Expansion. The reason is that the Reserved Expansion
   356  // does not expand special characters like `?` and `#`, which would lead
   357  // to invalid URLs. As the result, gRPC Transcoding uses a custom encoding
   358  // for multi segment variables.
   359  //
   360  // The path variables **must not** refer to any repeated or mapped field,
   361  // because client libraries are not capable of handling such variable expansion.
   362  //
   363  // The path variables **must not** capture the leading "/" character. The reason
   364  // is that the most common use case "{var}" does not capture the leading "/"
   365  // character. For consistency, all path variables must share the same behavior.
   366  //
   367  // Repeated message fields must not be mapped to URL query parameters, because
   368  // no client library can support such complicated mapping.
   369  //
   370  // If an API needs to use a JSON array for request or response body, it can map
   371  // the request or response body to a repeated field. However, some gRPC
   372  // Transcoding implementations may not support this feature.
   373  type HttpRule struct {
   374  	state         protoimpl.MessageState
   375  	sizeCache     protoimpl.SizeCache
   376  	unknownFields protoimpl.UnknownFields
   377  
   378  	// Selects a method to which this rule applies.
   379  	//
   380  	// Refer to [selector][google.api.DocumentationRule.selector] for syntax details.
   381  	Selector string `protobuf:"bytes,1,opt,name=selector,proto3" json:"selector,omitempty"`
   382  	// Determines the URL pattern is matched by this rules. This pattern can be
   383  	// used with any of the {get|put|post|delete|patch} methods. A custom method
   384  	// can be defined using the 'custom' field.
   385  	//
   386  	// Types that are assignable to Pattern:
   387  	//	*HttpRule_Get
   388  	//	*HttpRule_Put
   389  	//	*HttpRule_Post
   390  	//	*HttpRule_Delete
   391  	//	*HttpRule_Patch
   392  	//	*HttpRule_Custom
   393  	Pattern isHttpRule_Pattern `protobuf_oneof:"pattern"`
   394  	// The name of the request field whose value is mapped to the HTTP request
   395  	// body, or `*` for mapping all request fields not captured by the path
   396  	// pattern to the HTTP body, or omitted for not having any HTTP request body.
   397  	//
   398  	// NOTE: the referred field must be present at the top-level of the request
   399  	// message type.
   400  	Body string `protobuf:"bytes,7,opt,name=body,proto3" json:"body,omitempty"`
   401  	// Optional. The name of the response field whose value is mapped to the HTTP
   402  	// response body. When omitted, the entire response message will be used
   403  	// as the HTTP response body.
   404  	//
   405  	// NOTE: The referred field must be present at the top-level of the response
   406  	// message type.
   407  	ResponseBody string `protobuf:"bytes,12,opt,name=response_body,json=responseBody,proto3" json:"response_body,omitempty"`
   408  	// Additional HTTP bindings for the selector. Nested bindings must
   409  	// not contain an `additional_bindings` field themselves (that is,
   410  	// the nesting may only be one level deep).
   411  	AdditionalBindings []*HttpRule `protobuf:"bytes,11,rep,name=additional_bindings,json=additionalBindings,proto3" json:"additional_bindings,omitempty"`
   412  }
   413  
   414  func (x *HttpRule) Reset() {
   415  	*x = HttpRule{}
   416  	if protoimpl.UnsafeEnabled {
   417  		mi := &file_google_api_http_proto_msgTypes[1]
   418  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   419  		ms.StoreMessageInfo(mi)
   420  	}
   421  }
   422  
   423  func (x *HttpRule) String() string {
   424  	return protoimpl.X.MessageStringOf(x)
   425  }
   426  
   427  func (*HttpRule) ProtoMessage() {}
   428  
   429  func (x *HttpRule) ProtoReflect() protoreflect.Message {
   430  	mi := &file_google_api_http_proto_msgTypes[1]
   431  	if protoimpl.UnsafeEnabled && x != nil {
   432  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   433  		if ms.LoadMessageInfo() == nil {
   434  			ms.StoreMessageInfo(mi)
   435  		}
   436  		return ms
   437  	}
   438  	return mi.MessageOf(x)
   439  }
   440  
   441  // Deprecated: Use HttpRule.ProtoReflect.Descriptor instead.
   442  func (*HttpRule) Descriptor() ([]byte, []int) {
   443  	return file_google_api_http_proto_rawDescGZIP(), []int{1}
   444  }
   445  
   446  func (x *HttpRule) GetSelector() string {
   447  	if x != nil {
   448  		return x.Selector
   449  	}
   450  	return ""
   451  }
   452  
   453  func (m *HttpRule) GetPattern() isHttpRule_Pattern {
   454  	if m != nil {
   455  		return m.Pattern
   456  	}
   457  	return nil
   458  }
   459  
   460  func (x *HttpRule) GetGet() string {
   461  	if x, ok := x.GetPattern().(*HttpRule_Get); ok {
   462  		return x.Get
   463  	}
   464  	return ""
   465  }
   466  
   467  func (x *HttpRule) GetPut() string {
   468  	if x, ok := x.GetPattern().(*HttpRule_Put); ok {
   469  		return x.Put
   470  	}
   471  	return ""
   472  }
   473  
   474  func (x *HttpRule) GetPost() string {
   475  	if x, ok := x.GetPattern().(*HttpRule_Post); ok {
   476  		return x.Post
   477  	}
   478  	return ""
   479  }
   480  
   481  func (x *HttpRule) GetDelete() string {
   482  	if x, ok := x.GetPattern().(*HttpRule_Delete); ok {
   483  		return x.Delete
   484  	}
   485  	return ""
   486  }
   487  
   488  func (x *HttpRule) GetPatch() string {
   489  	if x, ok := x.GetPattern().(*HttpRule_Patch); ok {
   490  		return x.Patch
   491  	}
   492  	return ""
   493  }
   494  
   495  func (x *HttpRule) GetCustom() *CustomHttpPattern {
   496  	if x, ok := x.GetPattern().(*HttpRule_Custom); ok {
   497  		return x.Custom
   498  	}
   499  	return nil
   500  }
   501  
   502  func (x *HttpRule) GetBody() string {
   503  	if x != nil {
   504  		return x.Body
   505  	}
   506  	return ""
   507  }
   508  
   509  func (x *HttpRule) GetResponseBody() string {
   510  	if x != nil {
   511  		return x.ResponseBody
   512  	}
   513  	return ""
   514  }
   515  
   516  func (x *HttpRule) GetAdditionalBindings() []*HttpRule {
   517  	if x != nil {
   518  		return x.AdditionalBindings
   519  	}
   520  	return nil
   521  }
   522  
   523  type isHttpRule_Pattern interface {
   524  	isHttpRule_Pattern()
   525  }
   526  
   527  type HttpRule_Get struct {
   528  	// Maps to HTTP GET. Used for listing and getting information about
   529  	// resources.
   530  	Get string `protobuf:"bytes,2,opt,name=get,proto3,oneof"`
   531  }
   532  
   533  type HttpRule_Put struct {
   534  	// Maps to HTTP PUT. Used for replacing a resource.
   535  	Put string `protobuf:"bytes,3,opt,name=put,proto3,oneof"`
   536  }
   537  
   538  type HttpRule_Post struct {
   539  	// Maps to HTTP POST. Used for creating a resource or performing an action.
   540  	Post string `protobuf:"bytes,4,opt,name=post,proto3,oneof"`
   541  }
   542  
   543  type HttpRule_Delete struct {
   544  	// Maps to HTTP DELETE. Used for deleting a resource.
   545  	Delete string `protobuf:"bytes,5,opt,name=delete,proto3,oneof"`
   546  }
   547  
   548  type HttpRule_Patch struct {
   549  	// Maps to HTTP PATCH. Used for updating a resource.
   550  	Patch string `protobuf:"bytes,6,opt,name=patch,proto3,oneof"`
   551  }
   552  
   553  type HttpRule_Custom struct {
   554  	// The custom pattern is used for specifying an HTTP method that is not
   555  	// included in the `pattern` field, such as HEAD, or "*" to leave the
   556  	// HTTP method unspecified for this rule. The wild-card rule is useful
   557  	// for services that provide content to Web (HTML) clients.
   558  	Custom *CustomHttpPattern `protobuf:"bytes,8,opt,name=custom,proto3,oneof"`
   559  }
   560  
   561  func (*HttpRule_Get) isHttpRule_Pattern() {}
   562  
   563  func (*HttpRule_Put) isHttpRule_Pattern() {}
   564  
   565  func (*HttpRule_Post) isHttpRule_Pattern() {}
   566  
   567  func (*HttpRule_Delete) isHttpRule_Pattern() {}
   568  
   569  func (*HttpRule_Patch) isHttpRule_Pattern() {}
   570  
   571  func (*HttpRule_Custom) isHttpRule_Pattern() {}
   572  
   573  // A custom pattern is used for defining custom HTTP verb.
   574  type CustomHttpPattern struct {
   575  	state         protoimpl.MessageState
   576  	sizeCache     protoimpl.SizeCache
   577  	unknownFields protoimpl.UnknownFields
   578  
   579  	// The name of this custom HTTP verb.
   580  	Kind string `protobuf:"bytes,1,opt,name=kind,proto3" json:"kind,omitempty"`
   581  	// The path matched by this custom verb.
   582  	Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"`
   583  }
   584  
   585  func (x *CustomHttpPattern) Reset() {
   586  	*x = CustomHttpPattern{}
   587  	if protoimpl.UnsafeEnabled {
   588  		mi := &file_google_api_http_proto_msgTypes[2]
   589  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   590  		ms.StoreMessageInfo(mi)
   591  	}
   592  }
   593  
   594  func (x *CustomHttpPattern) String() string {
   595  	return protoimpl.X.MessageStringOf(x)
   596  }
   597  
   598  func (*CustomHttpPattern) ProtoMessage() {}
   599  
   600  func (x *CustomHttpPattern) ProtoReflect() protoreflect.Message {
   601  	mi := &file_google_api_http_proto_msgTypes[2]
   602  	if protoimpl.UnsafeEnabled && x != nil {
   603  		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
   604  		if ms.LoadMessageInfo() == nil {
   605  			ms.StoreMessageInfo(mi)
   606  		}
   607  		return ms
   608  	}
   609  	return mi.MessageOf(x)
   610  }
   611  
   612  // Deprecated: Use CustomHttpPattern.ProtoReflect.Descriptor instead.
   613  func (*CustomHttpPattern) Descriptor() ([]byte, []int) {
   614  	return file_google_api_http_proto_rawDescGZIP(), []int{2}
   615  }
   616  
   617  func (x *CustomHttpPattern) GetKind() string {
   618  	if x != nil {
   619  		return x.Kind
   620  	}
   621  	return ""
   622  }
   623  
   624  func (x *CustomHttpPattern) GetPath() string {
   625  	if x != nil {
   626  		return x.Path
   627  	}
   628  	return ""
   629  }
   630  
   631  var File_google_api_http_proto protoreflect.FileDescriptor
   632  
   633  var file_google_api_http_proto_rawDesc = []byte{
   634  	0x0a, 0x15, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74,
   635  	0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
   636  	0x61, 0x70, 0x69, 0x22, 0x79, 0x0a, 0x04, 0x48, 0x74, 0x74, 0x70, 0x12, 0x2a, 0x0a, 0x05, 0x72,
   637  	0x75, 0x6c, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f,
   638  	0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65,
   639  	0x52, 0x05, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x12, 0x45, 0x0a, 0x1f, 0x66, 0x75, 0x6c, 0x6c, 0x79,
   640  	0x5f, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64,
   641  	0x5f, 0x65, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08,
   642  	0x52, 0x1c, 0x66, 0x75, 0x6c, 0x6c, 0x79, 0x44, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73,
   643  	0x65, 0x72, 0x76, 0x65, 0x64, 0x45, 0x78, 0x70, 0x61, 0x6e, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xda,
   644  	0x02, 0x0a, 0x08, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73,
   645  	0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73,
   646  	0x65, 0x6c, 0x65, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x03, 0x67, 0x65, 0x74, 0x18, 0x02,
   647  	0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x67, 0x65, 0x74, 0x12, 0x12, 0x0a, 0x03, 0x70,
   648  	0x75, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x03, 0x70, 0x75, 0x74, 0x12,
   649  	0x14, 0x0a, 0x04, 0x70, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
   650  	0x04, 0x70, 0x6f, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x18,
   651  	0x05, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x12,
   652  	0x16, 0x0a, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00,
   653  	0x52, 0x05, 0x70, 0x61, 0x74, 0x63, 0x68, 0x12, 0x37, 0x0a, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f,
   654  	0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
   655  	0x2e, 0x61, 0x70, 0x69, 0x2e, 0x43, 0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50,
   656  	0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x48, 0x00, 0x52, 0x06, 0x63, 0x75, 0x73, 0x74, 0x6f, 0x6d,
   657  	0x12, 0x12, 0x0a, 0x04, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
   658  	0x62, 0x6f, 0x64, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65,
   659  	0x5f, 0x62, 0x6f, 0x64, 0x79, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73,
   660  	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x45, 0x0a, 0x13, 0x61, 0x64, 0x64,
   661  	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x5f, 0x62, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73,
   662  	0x18, 0x0b, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
   663  	0x61, 0x70, 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x52, 0x75, 0x6c, 0x65, 0x52, 0x12, 0x61, 0x64,
   664  	0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x42, 0x69, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x73,
   665  	0x42, 0x09, 0x0a, 0x07, 0x70, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e, 0x22, 0x3b, 0x0a, 0x11, 0x43,
   666  	0x75, 0x73, 0x74, 0x6f, 0x6d, 0x48, 0x74, 0x74, 0x70, 0x50, 0x61, 0x74, 0x74, 0x65, 0x72, 0x6e,
   667  	0x12, 0x12, 0x0a, 0x04, 0x6b, 0x69, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
   668  	0x6b, 0x69, 0x6e, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01,
   669  	0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x6a, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e,
   670  	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x42, 0x09, 0x48, 0x74, 0x74, 0x70,
   671  	0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e,
   672  	0x67, 0x6f, 0x6c, 0x61, 0x6e, 0x67, 0x2e, 0x6f, 0x72, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x70, 0x72,
   673  	0x6f, 0x74, 0x6f, 0x2f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61,
   674  	0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x3b, 0x61,
   675  	0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x04,
   676  	0x47, 0x41, 0x50, 0x49, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
   677  }
   678  
   679  var (
   680  	file_google_api_http_proto_rawDescOnce sync.Once
   681  	file_google_api_http_proto_rawDescData = file_google_api_http_proto_rawDesc
   682  )
   683  
   684  func file_google_api_http_proto_rawDescGZIP() []byte {
   685  	file_google_api_http_proto_rawDescOnce.Do(func() {
   686  		file_google_api_http_proto_rawDescData = protoimpl.X.CompressGZIP(file_google_api_http_proto_rawDescData)
   687  	})
   688  	return file_google_api_http_proto_rawDescData
   689  }
   690  
   691  var file_google_api_http_proto_msgTypes = make([]protoimpl.MessageInfo, 3)
   692  var file_google_api_http_proto_goTypes = []interface{}{
   693  	(*Http)(nil),              // 0: google.api.Http
   694  	(*HttpRule)(nil),          // 1: google.api.HttpRule
   695  	(*CustomHttpPattern)(nil), // 2: google.api.CustomHttpPattern
   696  }
   697  var file_google_api_http_proto_depIdxs = []int32{
   698  	1, // 0: google.api.Http.rules:type_name -> google.api.HttpRule
   699  	2, // 1: google.api.HttpRule.custom:type_name -> google.api.CustomHttpPattern
   700  	1, // 2: google.api.HttpRule.additional_bindings:type_name -> google.api.HttpRule
   701  	3, // [3:3] is the sub-list for method output_type
   702  	3, // [3:3] is the sub-list for method input_type
   703  	3, // [3:3] is the sub-list for extension type_name
   704  	3, // [3:3] is the sub-list for extension extendee
   705  	0, // [0:3] is the sub-list for field type_name
   706  }
   707  
   708  func init() { file_google_api_http_proto_init() }
   709  func file_google_api_http_proto_init() {
   710  	if File_google_api_http_proto != nil {
   711  		return
   712  	}
   713  	if !protoimpl.UnsafeEnabled {
   714  		file_google_api_http_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
   715  			switch v := v.(*Http); i {
   716  			case 0:
   717  				return &v.state
   718  			case 1:
   719  				return &v.sizeCache
   720  			case 2:
   721  				return &v.unknownFields
   722  			default:
   723  				return nil
   724  			}
   725  		}
   726  		file_google_api_http_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
   727  			switch v := v.(*HttpRule); i {
   728  			case 0:
   729  				return &v.state
   730  			case 1:
   731  				return &v.sizeCache
   732  			case 2:
   733  				return &v.unknownFields
   734  			default:
   735  				return nil
   736  			}
   737  		}
   738  		file_google_api_http_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
   739  			switch v := v.(*CustomHttpPattern); i {
   740  			case 0:
   741  				return &v.state
   742  			case 1:
   743  				return &v.sizeCache
   744  			case 2:
   745  				return &v.unknownFields
   746  			default:
   747  				return nil
   748  			}
   749  		}
   750  	}
   751  	file_google_api_http_proto_msgTypes[1].OneofWrappers = []interface{}{
   752  		(*HttpRule_Get)(nil),
   753  		(*HttpRule_Put)(nil),
   754  		(*HttpRule_Post)(nil),
   755  		(*HttpRule_Delete)(nil),
   756  		(*HttpRule_Patch)(nil),
   757  		(*HttpRule_Custom)(nil),
   758  	}
   759  	type x struct{}
   760  	out := protoimpl.TypeBuilder{
   761  		File: protoimpl.DescBuilder{
   762  			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
   763  			RawDescriptor: file_google_api_http_proto_rawDesc,
   764  			NumEnums:      0,
   765  			NumMessages:   3,
   766  			NumExtensions: 0,
   767  			NumServices:   0,
   768  		},
   769  		GoTypes:           file_google_api_http_proto_goTypes,
   770  		DependencyIndexes: file_google_api_http_proto_depIdxs,
   771  		MessageInfos:      file_google_api_http_proto_msgTypes,
   772  	}.Build()
   773  	File_google_api_http_proto = out.File
   774  	file_google_api_http_proto_rawDesc = nil
   775  	file_google_api_http_proto_goTypes = nil
   776  	file_google_api_http_proto_depIdxs = nil
   777  }