# frozen_string_literal: true
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: google/api/backend.proto

require 'google/protobuf'


descriptor_data = "\n\x18google/api/backend.proto\x12\ngoogle.api\"1\n\x07\x42\x61\x63kend\x12&\n\x05rules\x18\x01 \x03(\x0b\x32\x17.google.api.BackendRule\"\xb2\x04\n\x0b\x42\x61\x63kendRule\x12\x10\n\x08selector\x18\x01 \x01(\t\x12\x0f\n\x07\x61\x64\x64ress\x18\x02 \x01(\t\x12\x10\n\x08\x64\x65\x61\x64line\x18\x03 \x01(\x01\x12\x18\n\x0cmin_deadline\x18\x04 \x01(\x01\x42\x02\x18\x01\x12\x1a\n\x12operation_deadline\x18\x05 \x01(\x01\x12\x41\n\x10path_translation\x18\x06 \x01(\x0e\x32\'.google.api.BackendRule.PathTranslation\x12\x16\n\x0cjwt_audience\x18\x07 \x01(\tH\x00\x12\x16\n\x0c\x64isable_auth\x18\x08 \x01(\x08H\x00\x12\x10\n\x08protocol\x18\t \x01(\t\x12^\n\x1doverrides_by_request_protocol\x18\n \x03(\x0b\x32\x37.google.api.BackendRule.OverridesByRequestProtocolEntry\x1aZ\n\x1fOverridesByRequestProtocolEntry\x12\x0b\n\x03key\x18\x01 \x01(\t\x12&\n\x05value\x18\x02 \x01(\x0b\x32\x17.google.api.BackendRule:\x02\x38\x01\"e\n\x0fPathTranslation\x12 \n\x1cPATH_TRANSLATION_UNSPECIFIED\x10\x00\x12\x14\n\x10\x43ONSTANT_ADDRESS\x10\x01\x12\x1a\n\x16\x41PPEND_PATH_TO_ADDRESS\x10\x02\x42\x10\n\x0e\x61uthenticationBn\n\x0e\x63om.google.apiB\x0c\x42\x61\x63kendProtoP\x01ZEgoogle.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig\xa2\x02\x04GAPIb\x06proto3"

pool = Google::Protobuf::DescriptorPool.generated_pool

begin
  pool.add_serialized_file(descriptor_data)
rescue TypeError
  # Compatibility code: will be removed in the next major version.
  require 'google/protobuf/descriptor_pb'
  parsed = Google::Protobuf::FileDescriptorProto.decode(descriptor_data)
  parsed.clear_dependency
  serialized = parsed.class.encode(parsed)
  file = pool.add_serialized_file(serialized)
  warn "Warning: Protobuf detected an import path issue while loading generated file #{__FILE__}"
  imports = [
  ]
  imports.each do |type_name, expected_filename|
    import_file = pool.lookup(type_name).file_descriptor
    if import_file.name != expected_filename
      warn "- #{file.name} imports #{expected_filename}, but that import was loaded as #{import_file.name}"
    end
  end
  warn "Each proto file must use a consistent fully-qualified name."
  warn "This will become an error in the next major version."
end

module Google
  module Api
    Backend = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.Backend").msgclass
    BackendRule = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.BackendRule").msgclass
    BackendRule::PathTranslation = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.BackendRule.PathTranslation").enummodule
  end
end

#### Source proto file: google/api/backend.proto ####
#
# // Copyright 2024 Google LLC
# //
# // Licensed under the Apache License, Version 2.0 (the "License");
# // you may not use this file except in compliance with the License.
# // You may obtain a copy of the License at
# //
# //     http://www.apache.org/licenses/LICENSE-2.0
# //
# // Unless required by applicable law or agreed to in writing, software
# // distributed under the License is distributed on an "AS IS" BASIS,
# // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# // See the License for the specific language governing permissions and
# // limitations under the License.
#
# syntax = "proto3";
#
# package google.api;
#
# option go_package = "google.golang.org/genproto/googleapis/api/serviceconfig;serviceconfig";
# option java_multiple_files = true;
# option java_outer_classname = "BackendProto";
# option java_package = "com.google.api";
# option objc_class_prefix = "GAPI";
#
# // `Backend` defines the backend configuration for a service.
# message Backend {
#   // A list of API backend rules that apply to individual API methods.
#   //
#   // **NOTE:** All service configuration rules follow "last one wins" order.
#   repeated BackendRule rules = 1;
# }
#
# // A backend rule provides configuration for an individual API element.
# message BackendRule {
#   // Path Translation specifies how to combine the backend address with the
#   // request path in order to produce the appropriate forwarding URL for the
#   // request.
#   //
#   // Path Translation is applicable only to HTTP-based backends. Backends which
#   // do not accept requests over HTTP/HTTPS should leave `path_translation`
#   // unspecified.
#   enum PathTranslation {
#     PATH_TRANSLATION_UNSPECIFIED = 0;
#
#     // Use the backend address as-is, with no modification to the path. If the
#     // URL pattern contains variables, the variable names and values will be
#     // appended to the query string. If a query string parameter and a URL
#     // pattern variable have the same name, this may result in duplicate keys in
#     // the query string.
#     //
#     // # Examples
#     //
#     // Given the following operation config:
#     //
#     //     Method path:        /api/company/{cid}/user/{uid}
#     //     Backend address:    https://example.cloudfunctions.net/getUser
#     //
#     // Requests to the following request paths will call the backend at the
#     // translated path:
#     //
#     //     Request path: /api/company/widgetworks/user/johndoe
#     //     Translated:
#     //     https://example.cloudfunctions.net/getUser?cid=widgetworks&uid=johndoe
#     //
#     //     Request path: /api/company/widgetworks/user/johndoe?timezone=EST
#     //     Translated:
#     //     https://example.cloudfunctions.net/getUser?timezone=EST&cid=widgetworks&uid=johndoe
#     CONSTANT_ADDRESS = 1;
#
#     // The request path will be appended to the backend address.
#     //
#     // # Examples
#     //
#     // Given the following operation config:
#     //
#     //     Method path:        /api/company/{cid}/user/{uid}
#     //     Backend address:    https://example.appspot.com
#     //
#     // Requests to the following request paths will call the backend at the
#     // translated path:
#     //
#     //     Request path: /api/company/widgetworks/user/johndoe
#     //     Translated:
#     //     https://example.appspot.com/api/company/widgetworks/user/johndoe
#     //
#     //     Request path: /api/company/widgetworks/user/johndoe?timezone=EST
#     //     Translated:
#     //     https://example.appspot.com/api/company/widgetworks/user/johndoe?timezone=EST
#     APPEND_PATH_TO_ADDRESS = 2;
#   }
#
#   // Selects the methods to which this rule applies.
#   //
#   // Refer to [selector][google.api.DocumentationRule.selector] for syntax
#   // details.
#   string selector = 1;
#
#   // The address of the API backend.
#   //
#   // The scheme is used to determine the backend protocol and security.
#   // The following schemes are accepted:
#   //
#   //    SCHEME        PROTOCOL    SECURITY
#   //    http://       HTTP        None
#   //    https://      HTTP        TLS
#   //    grpc://       gRPC        None
#   //    grpcs://      gRPC        TLS
#   //
#   // It is recommended to explicitly include a scheme. Leaving out the scheme
#   // may cause constrasting behaviors across platforms.
#   //
#   // If the port is unspecified, the default is:
#   // - 80 for schemes without TLS
#   // - 443 for schemes with TLS
#   //
#   // For HTTP backends, use [protocol][google.api.BackendRule.protocol]
#   // to specify the protocol version.
#   string address = 2;
#
#   // The number of seconds to wait for a response from a request. The default
#   // varies based on the request protocol and deployment environment.
#   double deadline = 3;
#
#   // Deprecated, do not use.
#   double min_deadline = 4 [deprecated = true];
#
#   // The number of seconds to wait for the completion of a long running
#   // operation. The default is no deadline.
#   double operation_deadline = 5;
#
#   PathTranslation path_translation = 6;
#
#   // Authentication settings used by the backend.
#   //
#   // These are typically used to provide service management functionality to
#   // a backend served on a publicly-routable URL. The `authentication`
#   // details should match the authentication behavior used by the backend.
#   //
#   // For example, specifying `jwt_audience` implies that the backend expects
#   // authentication via a JWT.
#   //
#   // When authentication is unspecified, the resulting behavior is the same
#   // as `disable_auth` set to `true`.
#   //
#   // Refer to https://developers.google.com/identity/protocols/OpenIDConnect for
#   // JWT ID token.
#   oneof authentication {
#     // The JWT audience is used when generating a JWT ID token for the backend.
#     // This ID token will be added in the HTTP "authorization" header, and sent
#     // to the backend.
#     string jwt_audience = 7;
#
#     // When disable_auth is true, a JWT ID token won't be generated and the
#     // original "Authorization" HTTP header will be preserved. If the header is
#     // used to carry the original token and is expected by the backend, this
#     // field must be set to true to preserve the header.
#     bool disable_auth = 8;
#   }
#
#   // The protocol used for sending a request to the backend.
#   // The supported values are "http/1.1" and "h2".
#   //
#   // The default value is inferred from the scheme in the
#   // [address][google.api.BackendRule.address] field:
#   //
#   //    SCHEME        PROTOCOL
#   //    http://       http/1.1
#   //    https://      http/1.1
#   //    grpc://       h2
#   //    grpcs://      h2
#   //
#   // For secure HTTP backends (https://) that support HTTP/2, set this field
#   // to "h2" for improved performance.
#   //
#   // Configuring this field to non-default values is only supported for secure
#   // HTTP backends. This field will be ignored for all other backends.
#   //
#   // See
#   // https://www.iana.org/assignments/tls-extensiontype-values/tls-extensiontype-values.xhtml#alpn-protocol-ids
#   // for more details on the supported values.
#   string protocol = 9;
#
#   // The map between request protocol and the backend address.
#   map<string, BackendRule> overrides_by_request_protocol = 10;
# }
