class PulpOstreeClient::Configuration
Attributes
Defines the access token (Bearer) used with OAuth2.
Defines API keys used with API Key authentications.
@return [Hash] key: parameter name, value: parameter value (API key)
@example parameter name is “api_key”, API key is “xxx” (e.g. “api_key=xxx” in query string)
config.api_key['api_key'] = 'xxx'
Defines API key prefixes used with API Key authentications.
@return [Hash] key: parameter name, value: API key prefix
@example parameter name is “Authorization”, API key prefix is “Token” (e.g. “Authorization: Token xxx” in headers)
config.api_key_prefix['api_key'] = 'Token'
Defines url base path
Set this to false to skip client side validation in the operation. Default to true. @return [true, false]
Set this to enable/disable debugging. When enabled (set to true), HTTP request/response details will be logged with `logger.debug` (see the `logger` attribute). Default to false.
@return [true, false]
Defines url host
Defines the logger used for debugging. Default to `Rails.logger` (when in Rails) or logging to STDOUT.
@return [#debug]
Set this to customize parameters encoder of array parameter. Default to nil. Faraday uses NestedParamsEncoder when nil.
@see The params_encoder
option of Faraday. Related source code: github.com/lostisland/faraday/tree/main/lib/faraday/encoders
Set this to customize parameters encoding of array parameter with multi collectionFormat. Default to nil.
@see The params_encoding
option of Ethon. Related source code: github.com/typhoeus/ethon/blob/master/lib/ethon/easy/queryable.rb#L96
Defines the password used with HTTP basic authentication.
@return [String]
Defines url scheme
TLS/SSL setting
Set this to customize the certificate file to verify the peer.
@return [String] the path to the certificate file
TLS/SSL setting
Client certificate file (for client certificate)
TLS/SSL setting
Client private key file (for client certificate)
TLS/SSL setting
Set this to false to skip verifying SSL certificate when calling API from https server. Default to true.
@note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
@return [true, false]
TLS/SSL setting
Any `OpenSSL::SSL::` constant (see ruby-doc.org/stdlib-2.5.1/libdoc/openssl/rdoc/OpenSSL/SSL.html)
@note Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
Defines the temporary folder to store downloaded files (for API endpoints that have file response). Default to use `Tempfile`.
@return [String]
The time limit for HTTP request in seconds. Default to 0 (never times out).
Defines the username used with HTTP basic authentication.
@return [String]
Public Class Methods
The default Configuration
object.
# File lib/pulp_ostree_client/configuration.rb, line 153 def self.default @@default ||= Configuration.new end
# File lib/pulp_ostree_client/configuration.rb, line 129 def initialize @scheme = 'http' @host = 'pulp' @base_path = '' @api_key = {} @api_key_prefix = {} @timeout = 0 @client_side_validation = true @ssl_verify = true @ssl_verify_mode = nil @ssl_ca_file = nil @ssl_client_cert = nil @ssl_client_key = nil @params_encoder = nil @timeout = 60 @debugging = false @inject_format = false @force_ending_format = false @logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT) yield(self) if block_given? end
Public Instance Methods
Gets API key (with prefix if set). @param [String] param_name the parameter name of API key auth
# File lib/pulp_ostree_client/configuration.rb, line 183 def api_key_with_prefix(param_name) if @api_key_prefix[param_name] "#{@api_key_prefix[param_name]} #{@api_key[param_name]}" else @api_key[param_name] end end
Returns Auth Settings hash for api client.
# File lib/pulp_ostree_client/configuration.rb, line 197 def auth_settings { 'basicAuth' => { type: 'basic', in: 'header', key: 'Authorization', value: basic_auth_token }, } end
# File lib/pulp_ostree_client/configuration.rb, line 171 def base_path=(base_path) # Add leading and trailing slashes to base_path @base_path = "/#{base_path}".gsub(/\/+/, '/') @base_path = '' if @base_path == '/' end
# File lib/pulp_ostree_client/configuration.rb, line 177 def base_url "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') end
Gets Basic Auth token string
# File lib/pulp_ostree_client/configuration.rb, line 192 def basic_auth_token 'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n") end
# File lib/pulp_ostree_client/configuration.rb, line 157 def configure yield(self) if block_given? end
# File lib/pulp_ostree_client/configuration.rb, line 166 def host=(host) # remove http(s):// and anything after a slash @host = host.sub(/https?:\/\//, '').split('/').first end
# File lib/pulp_ostree_client/configuration.rb, line 161 def scheme=(scheme) # remove :// from scheme @scheme = scheme.sub(/:\/\//, '') end
Returns an array of Server setting
# File lib/pulp_ostree_client/configuration.rb, line 210 def server_settings [ { url: "http://pulp/", description: "No description provided", } ] end
Returns URL based on server settings
@param index array index of the server settings @param variables hash of variable and the corresponding value
# File lib/pulp_ostree_client/configuration.rb, line 223 def server_url(index, variables = {}) servers = server_settings # check array index out of bound if (index < 0 || index >= servers.size) fail ArgumentError, "Invalid index #{index} when selecting the server. Must be less than #{servers.size}" end server = servers[index] url = server[:url] # go through variable and assign a value server[:variables].each do |name, variable| if variables.key?(name) if (server[:variables][name][:enum_values].include? variables[name]) url.gsub! "{" + name.to_s + "}", variables[name] else fail ArgumentError, "The variable `#{name}` in the server URL has invalid value #{variables[name]}. Must be #{server[:variables][name][:enum_values]}." end else # use default value url.gsub! "{" + name.to_s + "}", server[:variables][name][:default_value] end end url end