Class: SiteimproveAPIClient::Configuration
- Inherits:
- 
      Object
      
        - Object
- SiteimproveAPIClient::Configuration
 
- Defined in:
- lib/siteimprove_api_client/configuration.rb
Instance Attribute Summary collapse
- 
  
    
      #access_token  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Defines the access token (Bearer) used with OAuth2. 
- 
  
    
      #access_token_getter  ⇒ Proc 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Defines a Proc used to fetch or refresh access tokens (Bearer) used with OAuth2. 
- 
  
    
      #api_key  ⇒ Hash 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Defines API keys used with API Key authentications. 
- 
  
    
      #api_key_prefix  ⇒ Hash 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Defines API key prefixes used with API Key authentications. 
- 
  
    
      #base_path  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Defines url base path. 
- 
  
    
      #cert_file  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    TLS/SSL setting Client certificate file (for client certificate). 
- 
  
    
      #client_side_validation  ⇒ true, false 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Set this to false to skip client side validation in the operation. 
- 
  
    
      #debugging  ⇒ true, false 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Set this to enable/disable debugging. 
- 
  
    
      #force_ending_format  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute force_ending_format. 
- 
  
    
      #host  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Defines url host. 
- 
  
    
      #inject_format  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Returns the value of attribute inject_format. 
- 
  
    
      #key_file  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    TLS/SSL setting Client private key file (for client certificate). 
- 
  
    
      #logger  ⇒ #debug 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Defines the logger used for debugging. 
- 
  
    
      #params_encoding  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Set this to customize parameters encoding of array parameter with multi collectionFormat. 
- 
  
    
      #password  ⇒ String 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Defines the password used with HTTP basic authentication. 
- 
  
    
      #return_binary_data  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Set this to return data as binary instead of downloading a temp file. 
- 
  
    
      #scheme  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Defines url scheme. 
- 
  
    
      #server_index  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Define server configuration index. 
- 
  
    
      #server_operation_index  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Define server operation configuration index. 
- 
  
    
      #server_operation_variables  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Default server operation variables. 
- 
  
    
      #server_variables  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Default server variables. 
- 
  
    
      #ssl_ca_cert  ⇒ String 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    TLS/SSL setting Set this to customize the certificate file to verify the peer. 
- 
  
    
      #temp_folder_path  ⇒ String 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Defines the temporary folder to store downloaded files (for API endpoints that have file response). 
- 
  
    
      #timeout  ⇒ Object 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    The time limit for HTTP request in seconds. 
- 
  
    
      #username  ⇒ String 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    Defines the username used with HTTP basic authentication. 
- 
  
    
      #verify_ssl  ⇒ true, false 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    TLS/SSL setting Set this to false to skip verifying SSL certificate when calling API from https server. 
- 
  
    
      #verify_ssl_host  ⇒ true, false 
    
    
  
  
  
  
    
    
  
  
  
  
  
  
    TLS/SSL setting Set this to false to skip verifying SSL host name Default to true. 
Class Method Summary collapse
- 
  
    
      .default  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    The default Configuration object. 
Instance Method Summary collapse
- 
  
    
      #access_token_with_refresh  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Gets access_token using access_token_getter or uses the static access_token. 
- 
  
    
      #api_key_with_prefix(param_name, param_alias = nil)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Gets API key (with prefix if set). 
- 
  
    
      #auth_settings  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Returns Auth Settings hash for api client. 
- 
  
    
      #base_url(operation = nil)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Returns base URL for specified operation based on server settings. 
- 
  
    
      #basic_auth_token  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Gets Basic Auth token string. 
- #configure {|_self| ... } ⇒ Object
- 
  
    
      #initialize {|_self| ... } ⇒ Configuration 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    A new instance of Configuration. 
- #operation_server_settings ⇒ Object
- 
  
    
      #server_settings  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Returns an array of Server setting. 
- 
  
    
      #server_url(index, variables = {}, servers = nil)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Returns URL based on server settings. 
Constructor Details
#initialize {|_self| ... } ⇒ Configuration
Returns a new instance of Configuration.
| 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 | # File 'lib/siteimprove_api_client/configuration.rb', line 151 def initialize @scheme = 'https' @host = 'api.eu.siteimprove.com' @base_path = '/v2' @server_index = 0 @server_operation_index = {} @server_variables = {} @server_operation_variables = {} @api_key = {} @api_key_prefix = {} @client_side_validation = true @verify_ssl = true @verify_ssl_host = true @cert_file = nil @key_file = nil @timeout = 0 @params_encoding = nil @debugging = false @inject_format = false @force_ending_format = false @logger = defined?(Rails) ? Rails.logger : Logger.new(STDOUT) yield(self) if block_given? end | 
Instance Attribute Details
#access_token ⇒ Object
Defines the access token (Bearer) used with OAuth2.
| 63 64 65 | # File 'lib/siteimprove_api_client/configuration.rb', line 63 def access_token @access_token end | 
#access_token_getter ⇒ Proc
Defines a Proc used to fetch or refresh access tokens (Bearer) used with OAuth2. Overrides the access_token if set
| 68 69 70 | # File 'lib/siteimprove_api_client/configuration.rb', line 68 def access_token_getter @access_token_getter end | 
#api_key ⇒ Hash
Defines API keys used with API Key authentications.
| 42 43 44 | # File 'lib/siteimprove_api_client/configuration.rb', line 42 def api_key @api_key end | 
#api_key_prefix ⇒ Hash
Defines API key prefixes used with API Key authentications.
| 50 51 52 | # File 'lib/siteimprove_api_client/configuration.rb', line 50 def api_key_prefix @api_key_prefix end | 
#base_path ⇒ Object
Defines url base path
| 22 23 24 | # File 'lib/siteimprove_api_client/configuration.rb', line 22 def base_path @base_path end | 
#cert_file ⇒ Object
TLS/SSL setting Client certificate file (for client certificate)
| 133 134 135 | # File 'lib/siteimprove_api_client/configuration.rb', line 133 def cert_file @cert_file end | 
#client_side_validation ⇒ true, false
Set this to false to skip client side validation in the operation. Default to true.
| 102 103 104 | # File 'lib/siteimprove_api_client/configuration.rb', line 102 def client_side_validation @client_side_validation end | 
#debugging ⇒ 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.
| 80 81 82 | # File 'lib/siteimprove_api_client/configuration.rb', line 80 def debugging @debugging end | 
#force_ending_format ⇒ Object
Returns the value of attribute force_ending_format.
| 149 150 151 | # File 'lib/siteimprove_api_client/configuration.rb', line 149 def force_ending_format @force_ending_format end | 
#host ⇒ Object
Defines url host
| 19 20 21 | # File 'lib/siteimprove_api_client/configuration.rb', line 19 def host @host end | 
#inject_format ⇒ Object
Returns the value of attribute inject_format.
| 147 148 149 | # File 'lib/siteimprove_api_client/configuration.rb', line 147 def inject_format @inject_format end | 
#key_file ⇒ Object
TLS/SSL setting Client private key file (for client certificate)
| 137 138 139 | # File 'lib/siteimprove_api_client/configuration.rb', line 137 def key_file @key_file end | 
#logger ⇒ #debug
Defines the logger used for debugging. Default to ‘Rails.logger` (when in Rails) or logging to STDOUT.
| 86 87 88 | # File 'lib/siteimprove_api_client/configuration.rb', line 86 def logger @logger end | 
#params_encoding ⇒ Object
Set this to customize parameters encoding of array parameter with multi collectionFormat. Default to nil.
github.com/typhoeus/ethon/blob/master/lib/ethon/easy/queryable.rb#L96
| 144 145 146 | # File 'lib/siteimprove_api_client/configuration.rb', line 144 def params_encoding @params_encoding end | 
#password ⇒ String
Defines the password used with HTTP basic authentication.
| 60 61 62 | # File 'lib/siteimprove_api_client/configuration.rb', line 60 def password @password end | 
#return_binary_data ⇒ Object
Set this to return data as binary instead of downloading a temp file. When enabled (set to true) HTTP responses with return type ‘File` will be returned as a stream of binary data. Default to false.
| 73 74 75 | # File 'lib/siteimprove_api_client/configuration.rb', line 73 def return_binary_data @return_binary_data end | 
#scheme ⇒ Object
Defines url scheme
| 16 17 18 | # File 'lib/siteimprove_api_client/configuration.rb', line 16 def scheme @scheme end | 
#server_index ⇒ Object
Define server configuration index
| 25 26 27 | # File 'lib/siteimprove_api_client/configuration.rb', line 25 def server_index @server_index end | 
#server_operation_index ⇒ Object
Define server operation configuration index
| 28 29 30 | # File 'lib/siteimprove_api_client/configuration.rb', line 28 def server_operation_index @server_operation_index end | 
#server_operation_variables ⇒ Object
Default server operation variables
| 34 35 36 | # File 'lib/siteimprove_api_client/configuration.rb', line 34 def server_operation_variables @server_operation_variables end | 
#server_variables ⇒ Object
Default server variables
| 31 32 33 | # File 'lib/siteimprove_api_client/configuration.rb', line 31 def server_variables @server_variables end | 
#ssl_ca_cert ⇒ String
TLS/SSL setting Set this to customize the certificate file to verify the peer.
github.com/typhoeus/typhoeus/blob/master/lib/typhoeus/easy_factory.rb#L145
| 129 130 131 | # File 'lib/siteimprove_api_client/configuration.rb', line 129 def ssl_ca_cert @ssl_ca_cert end | 
#temp_folder_path ⇒ String
Defines the temporary folder to store downloaded files (for API endpoints that have file response). Default to use ‘Tempfile`.
| 93 94 95 | # File 'lib/siteimprove_api_client/configuration.rb', line 93 def temp_folder_path @temp_folder_path end | 
#timeout ⇒ Object
The time limit for HTTP request in seconds. Default to 0 (never times out).
| 97 98 99 | # File 'lib/siteimprove_api_client/configuration.rb', line 97 def timeout @timeout end | 
#username ⇒ String
Defines the username used with HTTP basic authentication.
| 55 56 57 | # File 'lib/siteimprove_api_client/configuration.rb', line 55 def username @username end | 
#verify_ssl ⇒ true, false
Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
TLS/SSL setting Set this to false to skip verifying SSL certificate when calling API from https server. Default to true.
| 111 112 113 | # File 'lib/siteimprove_api_client/configuration.rb', line 111 def verify_ssl @verify_ssl end | 
#verify_ssl_host ⇒ true, false
Do NOT set it to false in production code, otherwise you would face multiple types of cryptographic attacks.
TLS/SSL setting Set this to false to skip verifying SSL host name Default to true.
| 120 121 122 | # File 'lib/siteimprove_api_client/configuration.rb', line 120 def verify_ssl_host @verify_ssl_host end | 
Class Method Details
.default ⇒ Object
The default Configuration object.
| 177 178 179 | # File 'lib/siteimprove_api_client/configuration.rb', line 177 def self.default @@default ||= Configuration.new end | 
Instance Method Details
#access_token_with_refresh ⇒ Object
Gets access_token using access_token_getter or uses the static access_token
| 222 223 224 225 | # File 'lib/siteimprove_api_client/configuration.rb', line 222 def access_token_with_refresh return access_token if access_token_getter.nil? access_token_getter.call end | 
#api_key_with_prefix(param_name, param_alias = nil) ⇒ Object
Gets API key (with prefix if set).
| 211 212 213 214 215 216 217 218 219 | # File 'lib/siteimprove_api_client/configuration.rb', line 211 def api_key_with_prefix(param_name, param_alias = nil) key = @api_key[param_name] key = @api_key.fetch(param_alias, key) unless param_alias.nil? if @api_key_prefix[param_name] "#{@api_key_prefix[param_name]} #{key}" else key end end | 
#auth_settings ⇒ Object
Returns Auth Settings hash for api client.
| 233 234 235 236 237 238 239 240 241 242 243 | # File 'lib/siteimprove_api_client/configuration.rb', line 233 def auth_settings { 'basic_auth' => { type: 'basic', in: 'header', key: 'Authorization', value: basic_auth_token }, } end | 
#base_url(operation = nil) ⇒ Object
Returns base URL for specified operation based on server settings
| 202 203 204 205 206 207 | # File 'lib/siteimprove_api_client/configuration.rb', line 202 def base_url(operation = nil) index = server_operation_index[operation] return "#{scheme}://#{[host, base_path].join('/').gsub(/\/+/, '/')}".sub(/\/+\z/, '') if index == nil server_url(index, server_operation_variables.fetch(operation, server_variables), operation_server_settings[operation]) end | 
#basic_auth_token ⇒ Object
Gets Basic Auth token string
| 228 229 230 | # File 'lib/siteimprove_api_client/configuration.rb', line 228 def basic_auth_token 'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n") end | 
#configure {|_self| ... } ⇒ Object
| 181 182 183 | # File 'lib/siteimprove_api_client/configuration.rb', line 181 def configure yield(self) if block_given? end | 
#operation_server_settings ⇒ Object
| 255 256 257 258 | # File 'lib/siteimprove_api_client/configuration.rb', line 255 def operation_server_settings { } end | 
#server_settings ⇒ Object
Returns an array of Server setting
| 246 247 248 249 250 251 252 253 | # File 'lib/siteimprove_api_client/configuration.rb', line 246 def server_settings [ { url: "https://api.eu.siteimprove.com/v2", description: "No description provided", } ] end | 
#server_url(index, variables = {}, servers = nil) ⇒ Object
Returns URL based on server settings
| 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 | # File 'lib/siteimprove_api_client/configuration.rb', line 264 def server_url(index, variables = {}, servers = nil) servers = server_settings if servers == nil # 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] return url unless server.key? :variables # go through variable and assign a value server[:variables].each do |name, variable| if variables.key?(name) if (!server[:variables][name].key?(:enum_values) || 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 |