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

require 'google/protobuf'


descriptor_data = "\n!google/api/system_parameter.proto\x12\ngoogle.api\"B\n\x10SystemParameters\x12.\n\x05rules\x18\x01 \x03(\x0b\x32\x1f.google.api.SystemParameterRule\"X\n\x13SystemParameterRule\x12\x10\n\x08selector\x18\x01 \x01(\t\x12/\n\nparameters\x18\x02 \x03(\x0b\x32\x1b.google.api.SystemParameter\"Q\n\x0fSystemParameter\x12\x0c\n\x04name\x18\x01 \x01(\t\x12\x13\n\x0bhttp_header\x18\x02 \x01(\t\x12\x1b\n\x13url_query_parameter\x18\x03 \x01(\tBv\n\x0e\x63om.google.apiB\x14SystemParameterProtoP\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
    SystemParameters = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.SystemParameters").msgclass
    SystemParameterRule = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.SystemParameterRule").msgclass
    SystemParameter = ::Google::Protobuf::DescriptorPool.generated_pool.lookup("google.api.SystemParameter").msgclass
  end
end

#### Source proto file: google/api/system_parameter.proto ####
#
# // Copyright 2025 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 = "SystemParameterProto";
# option java_package = "com.google.api";
# option objc_class_prefix = "GAPI";
#
# // ### System parameter configuration
# //
# // A system parameter is a special kind of parameter defined by the API
# // system, not by an individual API. It is typically mapped to an HTTP header
# // and/or a URL query parameter. This configuration specifies which methods
# // change the names of the system parameters.
# message SystemParameters {
#   // Define system parameters.
#   //
#   // The parameters defined here will override the default parameters
#   // implemented by the system. If this field is missing from the service
#   // config, default system parameters will be used. Default system parameters
#   // and names is implementation-dependent.
#   //
#   // Example: define api key for all methods
#   //
#   //     system_parameters
#   //       rules:
#   //         - selector: "*"
#   //           parameters:
#   //             - name: api_key
#   //               url_query_parameter: api_key
#   //
#   //
#   // Example: define 2 api key names for a specific method.
#   //
#   //     system_parameters
#   //       rules:
#   //         - selector: "/ListShelves"
#   //           parameters:
#   //             - name: api_key
#   //               http_header: Api-Key1
#   //             - name: api_key
#   //               http_header: Api-Key2
#   //
#   // **NOTE:** All service configuration rules follow "last one wins" order.
#   repeated SystemParameterRule rules = 1;
# }
#
# // Define a system parameter rule mapping system parameter definitions to
# // methods.
# message SystemParameterRule {
#   // Selects the methods to which this rule applies. Use '*' to indicate all
#   // methods in all APIs.
#   //
#   // Refer to [selector][google.api.DocumentationRule.selector] for syntax
#   // details.
#   string selector = 1;
#
#   // Define parameters. Multiple names may be defined for a parameter.
#   // For a given method call, only one of them should be used. If multiple
#   // names are used the behavior is implementation-dependent.
#   // If none of the specified names are present the behavior is
#   // parameter-dependent.
#   repeated SystemParameter parameters = 2;
# }
#
# // Define a parameter's name and location. The parameter may be passed as either
# // an HTTP header or a URL query parameter, and if both are passed the behavior
# // is implementation-dependent.
# message SystemParameter {
#   // Define the name of the parameter, such as "api_key" . It is case sensitive.
#   string name = 1;
#
#   // Define the HTTP header name to use for the parameter. It is case
#   // insensitive.
#   string http_header = 2;
#
#   // Define the URL query parameter name to use for the parameter. It is case
#   // sensitive.
#   string url_query_parameter = 3;
# }
