Looking for our [previous documentation](https://lob.github.io/legacy-docs/)? + +The version of the OpenAPI document: 1.3.0 +Contact: lob-openapi@lob.com +Generated by: https://openapi-generator.tech +OpenAPI Generator version: 5.2.1 + +=end + +# Common files +require 'openapi_client/api_client' +require 'openapi_client/api_error' +require 'openapi_client/version' +require 'openapi_client/configuration' + +# Models +require 'lob/models/address' +require 'lob/models/address_deletion' +require 'lob/models/address_domestic' +require 'lob/models/address_domestic_expanded' +require 'lob/models/address_editable' +require 'lob/models/address_list' +require 'lob/models/bank_account' +require 'lob/models/bank_account_deletion' +require 'lob/models/bank_account_list' +require 'lob/models/bank_account_verify' +require 'lob/models/bank_account_writable' +require 'lob/models/bank_type_enum' +require 'lob/models/billing_group' +require 'lob/models/billing_group_editable' +require 'lob/models/billing_group_list' +require 'lob/models/buckslip' +require 'lob/models/buckslip_deletion' +require 'lob/models/buckslip_editable' +require 'lob/models/buckslip_order' +require 'lob/models/buckslip_order_editable' +require 'lob/models/buckslip_orders_list' +require 'lob/models/buckslip_updatable' +require 'lob/models/buckslips_list' +require 'lob/models/bulk_error' +require 'lob/models/bulk_error_properties' +require 'lob/models/campaign' +require 'lob/models/campaign_creative' +require 'lob/models/campaign_deletion' +require 'lob/models/campaign_updatable' +require 'lob/models/campaign_writable' +require 'lob/models/campaigns_list' +require 'lob/models/card' +require 'lob/models/card_deletion' +require 'lob/models/card_editable' +require 'lob/models/card_list' +require 'lob/models/card_order' +require 'lob/models/card_order_editable' +require 'lob/models/card_order_list' +require 'lob/models/card_updatable' +require 'lob/models/check' +require 'lob/models/check_deletion' +require 'lob/models/check_editable' +require 'lob/models/check_list' +require 'lob/models/chk_use_type' +require 'lob/models/cmp_schedule_type' +require 'lob/models/cmp_use_type' +require 'lob/models/country_extended' +require 'lob/models/country_extended_expanded' +require 'lob/models/creative_patch' +require 'lob/models/creative_response' +require 'lob/models/creative_writable' +require 'lob/models/custom_envelope_returned' +require 'lob/models/deliverability_analysis' +require 'lob/models/dpv_footnote' +require 'lob/models/engine_html' +require 'lob/models/event_type' +require 'lob/models/events' +require 'lob/models/export' +require 'lob/models/export_model' +require 'lob/models/geocode_addresses' +require 'lob/models/geocode_components' +require 'lob/models/http_validation_error' +require 'lob/models/identity_validation' +require 'lob/models/inline_object' +require 'lob/models/intl_autocompletions' +require 'lob/models/intl_autocompletions_writable' +require 'lob/models/intl_components' +require 'lob/models/intl_suggestions' +require 'lob/models/intl_verification' +require 'lob/models/intl_verification_or_error' +require 'lob/models/intl_verification_writable' +require 'lob/models/intl_verifications' +require 'lob/models/intl_verifications_payload' +require 'lob/models/letter' +require 'lob/models/letter_custom_envelope' +require 'lob/models/letter_deletion' +require 'lob/models/letter_details_returned' +require 'lob/models/letter_details_writable' +require 'lob/models/letter_editable' +require 'lob/models/letter_list' +require 'lob/models/lob_confidence_score' +require 'lob/models/lob_error' +require 'lob/models/location' +require 'lob/models/location_analysis' +require 'lob/models/ltr_use_type' +require 'lob/models/mail_type' +require 'lob/models/multi_line_address' +require 'lob/models/multiple_components' +require 'lob/models/multiple_components_intl' +require 'lob/models/multiple_components_list' +require 'lob/models/optional_address_column_mapping' +require 'lob/models/placeholder_model' +require 'lob/models/postcard' +require 'lob/models/postcard_deletion' +require 'lob/models/postcard_details_returned' +require 'lob/models/postcard_details_writable' +require 'lob/models/postcard_editable' +require 'lob/models/postcard_list' +require 'lob/models/postcard_size' +require 'lob/models/psc_use_type' +require 'lob/models/qr_code' +require 'lob/models/required_address_column_mapping' +require 'lob/models/return_envelope' +require 'lob/models/reverse_geocode' +require 'lob/models/self_mailer' +require 'lob/models/self_mailer_deletion' +require 'lob/models/self_mailer_editable' +require 'lob/models/self_mailer_list' +require 'lob/models/self_mailer_size' +require 'lob/models/sfm_use_type' +require 'lob/models/sort_by' +require 'lob/models/sort_by1' +require 'lob/models/sort_by2' +require 'lob/models/sort_by3' +require 'lob/models/sort_by_date_modified' +require 'lob/models/suggestions' +require 'lob/models/template' +require 'lob/models/template_deletion' +require 'lob/models/template_list' +require 'lob/models/template_update' +require 'lob/models/template_version' +require 'lob/models/template_version_deletion' +require 'lob/models/template_version_list' +require 'lob/models/template_version_updatable' +require 'lob/models/template_version_writable' +require 'lob/models/template_writable' +require 'lob/models/thumbnail' +require 'lob/models/tracking_event_certified' +require 'lob/models/tracking_event_details' +require 'lob/models/tracking_event_normal' +require 'lob/models/upload' +require 'lob/models/upload_create_export' +require 'lob/models/upload_file' +require 'lob/models/upload_state' +require 'lob/models/upload_updatable' +require 'lob/models/upload_writable' +require 'lob/models/uploads_metadata' +require 'lob/models/us_autocompletions' +require 'lob/models/us_autocompletions_writable' +require 'lob/models/us_components' +require 'lob/models/us_verification' +require 'lob/models/us_verification_or_error' +require 'lob/models/us_verifications' +require 'lob/models/us_verifications_writable' +require 'lob/models/validation_error' +require 'lob/models/zip' +require 'lob/models/zip_code_type' +require 'lob/models/zip_editable' +require 'lob/models/zip_lookup_city' + +# APIs +require 'lob/api/addresses_api' +require 'lob/api/bank_accounts_api' +require 'lob/api/billing_groups_api' +require 'lob/api/buckslip_orders_api' +require 'lob/api/buckslips_api' +require 'lob/api/campaigns_api' +require 'lob/api/card_orders_api' +require 'lob/api/cards_api' +require 'lob/api/checks_api' +require 'lob/api/creatives_api' +require 'lob/api/default_api' +require 'lob/api/identity_validation_api' +require 'lob/api/intl_autocompletions_api' +require 'lob/api/intl_verifications_api' +require 'lob/api/letters_api' +require 'lob/api/postcards_api' +require 'lob/api/reverse_geocode_lookups_api' +require 'lob/api/self_mailers_api' +require 'lob/api/template_versions_api' +require 'lob/api/templates_api' +require 'lob/api/uploads_api' +require 'lob/api/us_autocompletions_api' +require 'lob/api/us_verifications_api' +require 'lob/api/zip_lookups_api' + +module OpenapiClient + class << self + # Customize default settings for the SDK using block. + # OpenapiClient.configure do |config| + # config.username = "xxx" + # config.password = "xxx" + # end + # If no block given, return the default Configuration object. + def configure + if block_given? + yield(Configuration.default) + else + Configuration.default + end + end + end +end diff --git a/lib/openapi_client/api_client.rb b/lib/openapi_client/api_client.rb new file mode 100755 index 0000000..dc99931 --- /dev/null +++ b/lib/openapi_client/api_client.rb @@ -0,0 +1,392 @@ +=begin +#Lob + +#The Lob API is organized around REST. Our API is designed to have predictable, resource-oriented URLs and uses HTTP response codes to indicate any API errors.
Looking for our [previous documentation](https://lob.github.io/legacy-docs/)?
+
+The version of the OpenAPI document: 1.3.0
+Contact: lob-openapi@lob.com
+Generated by: https://openapi-generator.tech
+OpenAPI Generator version: 5.2.1
+
+=end
+
+require 'date'
+require 'json'
+require 'logger'
+require 'tempfile'
+require 'time'
+require 'typhoeus'
+
+module Lob
+ class ApiClient
+ # The Configuration object holding settings to be used in the API client.
+ attr_accessor :config
+
+ # Defines the headers to be used in HTTP requests of all API calls by default.
+ #
+ # @return [Hash]
+ attr_accessor :default_headers
+
+ # Initializes the ApiClient
+ # @option config [Configuration] Configuration for initializing the object, default to Configuration.default
+ def initialize(config = Configuration.default)
+ @config = config
+ @user_agent = "OpenAPI-Generator/#{VERSION}/ruby"
+ @default_headers = {
+ 'Content-Type' => 'application/json',
+ 'User-Agent' => @user_agent
+ }
+ end
+
+ def self.default
+ @@default ||= ApiClient.new
+ end
+
+ # Call an API with given options.
+ #
+ # @return [Array<(Object, Integer, Hash)>] an array of 3 elements:
+ # the data deserialized from response body (could be nil), response status code and response headers.
+ def call_api(http_method, path, opts = {})
+ request = build_request(http_method, path, opts)
+ response = request.run
+
+ if @config.debugging
+ @config.logger.debug "HTTP response body ~BEGIN~\n#{response.body}\n~END~\n"
+ end
+
+ unless response.success?
+ if response.timed_out?
+ fail ApiError.new('Connection timed out')
+ elsif response.code == 0
+ # Errors from libcurl will be made visible here
+ fail ApiError.new(:code => 0,
+ :message => response.return_message)
+ else
+ fail ApiError.new(:code => response.code,
+ :response_headers => response.headers,
+ :response_body => response.body),
+ response.status_message
+ end
+ end
+
+ if opts[:return_type]
+ data = deserialize(response, opts[:return_type])
+ else
+ data = nil
+ end
+ return data, response.code, response.headers
+ end
+
+ # Builds the HTTP request
+ #
+ # @param [String] http_method HTTP method/verb (e.g. POST)
+ # @param [String] path URL path (e.g. /account/new)
+ # @option opts [Hash] :header_params Header parameters
+ # @option opts [Hash] :query_params Query parameters
+ # @option opts [Hash] :form_params Query parameters
+ # @option opts [Object] :body HTTP body (JSON/XML)
+ # @return [Typhoeus::Request] A Typhoeus Request
+ def build_request(http_method, path, opts = {})
+ url = build_request_url(path, opts)
+ http_method = http_method.to_sym.downcase
+
+ header_params = @default_headers.merge(opts[:header_params] || {})
+ query_params = opts[:query_params] || {}
+ form_params = opts[:form_params] || {}
+ follow_location = opts[:follow_location] || true
+
+ update_params_for_auth! header_params, query_params, opts[:auth_names]
+
+ # set ssl_verifyhosts option based on @config.verify_ssl_host (true/false)
+ _verify_ssl_host = @config.verify_ssl_host ? 2 : 0
+
+ req_opts = {
+ :method => http_method,
+ :headers => header_params,
+ :params => query_params,
+ :params_encoding => @config.params_encoding,
+ :timeout => @config.timeout,
+ :ssl_verifypeer => @config.verify_ssl,
+ :ssl_verifyhost => _verify_ssl_host,
+ :sslcert => @config.cert_file,
+ :sslkey => @config.key_file,
+ :verbose => @config.debugging,
+ :followlocation => follow_location
+ }
+
+ # set custom cert, if provided
+ req_opts[:cainfo] = @config.ssl_ca_cert if @config.ssl_ca_cert
+
+ if [:post, :patch, :put, :delete].include?(http_method)
+ req_body = build_request_body(header_params, form_params, opts[:body])
+ req_opts.update :body => req_body
+ if @config.debugging
+ @config.logger.debug "HTTP request body param ~BEGIN~\n#{req_body}\n~END~\n"
+ end
+ end
+
+ request = Typhoeus::Request.new(url, req_opts)
+ download_file(request) if opts[:return_type] == 'File'
+ request
+ end
+
+ # Builds the HTTP request body
+ #
+ # @param [Hash] header_params Header parameters
+ # @param [Hash] form_params Query parameters
+ # @param [Object] body HTTP body (JSON/XML)
+ # @return [String] HTTP body data in the form of string
+ def build_request_body(header_params, form_params, body)
+ # http form
+ if header_params['Content-Type'] == 'application/x-www-form-urlencoded' ||
+ header_params['Content-Type'] == 'multipart/form-data'
+ data = {}
+ form_params.each do |key, value|
+ case value
+ when ::File, ::Array, nil
+ # let typhoeus handle File, Array and nil parameters
+ data[key] = value
+ else
+ data[key] = value.to_s
+ end
+ end
+ elsif body
+ data = body.is_a?(String) ? body : body.to_json
+ else
+ data = nil
+ end
+ data
+ end
+
+ # Save response body into a file in (the defined) temporary folder, using the filename
+ # from the "Content-Disposition" header if provided, otherwise a random filename.
+ # The response body is written to the file in chunks in order to handle files which
+ # size is larger than maximum Ruby String or even larger than the maximum memory a Ruby
+ # process can use.
+ #
+ # @see Configuration#temp_folder_path
+ def download_file(request)
+ tempfile = nil
+ encoding = nil
+ request.on_headers do |response|
+ content_disposition = response.headers['Content-Disposition']
+ if content_disposition && content_disposition =~ /filename=/i
+ filename = content_disposition[/filename=['"]?([^'"\s]+)['"]?/, 1]
+ prefix = sanitize_filename(filename)
+ else
+ prefix = 'download-'
+ end
+ prefix = prefix + '-' unless prefix.end_with?('-')
+ encoding = response.body.encoding
+ tempfile = Tempfile.open(prefix, @config.temp_folder_path, encoding: encoding)
+ @tempfile = tempfile
+ end
+ request.on_body do |chunk|
+ chunk.force_encoding(encoding)
+ tempfile.write(chunk)
+ end
+ request.on_complete do |response|
+ if tempfile
+ tempfile.close
+ @config.logger.info "Temp file written to #{tempfile.path}, please copy the file to a proper folder "\
+ "with e.g. `FileUtils.cp(tempfile.path, '/new/file/path')` otherwise the temp file "\
+ "will be deleted automatically with GC. It's also recommended to delete the temp file "\
+ "explicitly with `tempfile.delete`"
+ end
+ end
+ end
+
+ # Check if the given MIME is a JSON MIME.
+ # JSON MIME examples:
+ # application/json
+ # application/json; charset=UTF8
+ # APPLICATION/JSON
+ # */*
+ # @param [String] mime MIME
+ # @return [Boolean] True if the MIME is application/json
+ def json_mime?(mime)
+ (mime == '*/*') || !(mime =~ /Application\/.*json(?!p)(;.*)?/i).nil?
+ end
+
+ # Deserialize the response to the given return type.
+ #
+ # @param [Response] response HTTP response
+ # @param [String] return_type some examples: "User", "Array Looking for our [previous documentation](https://lob.github.io/legacy-docs/)?
+
+The version of the OpenAPI document: 1.3.0
+Contact: lob-openapi@lob.com
+Generated by: https://openapi-generator.tech
+OpenAPI Generator version: 5.2.1
+
+=end
+
+module Lob
+ class ApiError < StandardError
+ attr_reader :code, :response_headers, :response_body
+
+ # Usage examples:
+ # ApiError.new
+ # ApiError.new("message")
+ # ApiError.new(:code => 500, :response_headers => {}, :response_body => "")
+ # ApiError.new(:code => 404, :message => "Not Found")
+ def initialize(arg = nil)
+ if arg.is_a? Hash
+ if arg.key?(:message) || arg.key?('message')
+ super(arg[:message] || arg['message'])
+ else
+ super arg
+ end
+
+ arg.each do |k, v|
+ instance_variable_set "@#{k}", v
+ end
+ else
+ super arg
+ end
+ end
+
+ # Override to_s to display a friendly error message
+ def to_s
+ message
+ end
+
+ def message
+ if @message.nil?
+ msg = "Error message: the server returns an error"
+ else
+ msg = @message
+ end
+
+ msg += "\nHTTP status code: #{code}" if code
+ msg += "\nResponse headers: #{response_headers}" if response_headers
+ msg += "\nResponse body: #{response_body}" if response_body
+
+ msg
+ end
+ end
+end
diff --git a/lib/openapi_client/configuration.rb b/lib/openapi_client/configuration.rb
new file mode 100755
index 0000000..7e6a4b8
--- /dev/null
+++ b/lib/openapi_client/configuration.rb
@@ -0,0 +1,279 @@
+=begin
+#Lob
+
+#The Lob API is organized around REST. Our API is designed to have predictable, resource-oriented URLs and uses HTTP response codes to indicate any API errors. Looking for our [previous documentation](https://lob.github.io/legacy-docs/)?
+
+The version of the OpenAPI document: 1.3.0
+Contact: lob-openapi@lob.com
+Generated by: https://openapi-generator.tech
+OpenAPI Generator version: 5.2.1
+
+=end
+
+module Lob
+ class Configuration
+ # Defines url scheme
+ attr_accessor :scheme
+
+ # Defines url host
+ attr_accessor :host
+
+ # Defines url base path
+ attr_accessor :base_path
+
+ # Define server configuration index
+ attr_accessor :server_index
+
+ # Define server operation configuration index
+ attr_accessor :server_operation_index
+
+ # Default server variables
+ attr_accessor :server_variables
+
+ # Default server operation variables
+ attr_accessor :server_operation_variables
+
+ # 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'
+ attr_accessor :api_key
+
+ # 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'
+ attr_accessor :api_key_prefix
+
+ # Defines the username used with HTTP basic authentication.
+ #
+ # @return [String]
+ attr_accessor :username
+
+ # Defines the password used with HTTP basic authentication.
+ #
+ # @return [String]
+ attr_accessor :password
+
+ # Defines the access token (Bearer) used with OAuth2.
+ attr_accessor :access_token
+
+ # 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]
+ attr_accessor :debugging
+
+ # Defines the logger used for debugging.
+ # Default to `Rails.logger` (when in Rails) or logging to STDOUT.
+ #
+ # @return [#debug]
+ attr_accessor :logger
+
+ # Defines the temporary folder to store downloaded files
+ # (for API endpoints that have file response).
+ # Default to use `Tempfile`.
+ #
+ # @return [String]
+ attr_accessor :temp_folder_path
+
+ # The time limit for HTTP request in seconds.
+ # Default to 0 (never times out).
+ attr_accessor :timeout
+
+ # Set this to false to skip client side validation in the operation.
+ # Default to true.
+ # @return [true, false]
+ attr_accessor :client_side_validation
+
+ ### 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]
+ attr_accessor :verify_ssl
+
+ ### TLS/SSL setting
+ # Set this to false to skip verifying SSL host name
+ # 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]
+ attr_accessor :verify_ssl_host
+
+ ### TLS/SSL setting
+ # Set this to customize the certificate file to verify the peer.
+ #
+ # @return [String] the path to the certificate file
+ #
+ # @see The `cainfo` option of Typhoeus, `--cert` option of libcurl. Related source code:
+ # https://github.com/typhoeus/typhoeus/blob/master/lib/typhoeus/easy_factory.rb#L145
+ attr_accessor :ssl_ca_cert
+
+ ### TLS/SSL setting
+ # Client certificate file (for client certificate)
+ attr_accessor :cert_file
+
+ ### TLS/SSL setting
+ # Client private key file (for client certificate)
+ attr_accessor :key_file
+
+ # 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:
+ # https://github.com/typhoeus/ethon/blob/master/lib/ethon/easy/queryable.rb#L96
+ attr_accessor :params_encoding
+
+
+ attr_accessor :inject_format
+
+ attr_accessor :force_ending_format
+
+ def initialize
+ @scheme = 'https'
+ @host = 'api.lob.com'
+ @base_path = '/v1'
+ @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
+
+ # The default Configuration object.
+ def self.default
+ @@default ||= Configuration.new
+ end
+
+ def configure
+ yield(self) if block_given?
+ end
+
+ def scheme=(scheme)
+ # remove :// from scheme
+ @scheme = scheme.sub(/:\/\//, '')
+ end
+
+ def host=(host)
+ # remove http(s):// and anything after a slash
+ @host = host.sub(/https?:\/\//, '').split('/').first
+ end
+
+ def base_path=(base_path)
+ # Add leading and trailing slashes to base_path
+ @base_path = "/#{base_path}".gsub(/\/+/, '/')
+ @base_path = '' if @base_path == '/'
+ end
+
+ # Returns base URL for specified operation based on server settings
+ def base_url(operation = nil)
+ index = server_operation_index.fetch(operation, server_index)
+ 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
+
+ # Gets API key (with prefix if set).
+ # @param [String] param_name the parameter name of API key auth
+ 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
+
+ # Gets Basic Auth token string
+ def basic_auth_token
+ 'Basic ' + ["#{username}:#{password}"].pack('m').delete("\r\n")
+ end
+
+ # Returns Auth Settings hash for api client.
+ def auth_settings
+ {
+ 'basicAuth' =>
+ {
+ type: 'basic',
+ in: 'header',
+ key: 'Authorization',
+ value: basic_auth_token
+ },
+ }
+ end
+
+ # Returns an array of Server setting
+ def server_settings
+ [
+ {
+ url: "https://api.lob.com/v1",
+ description: "production",
+ }
+ ]
+ end
+
+ def operation_server_settings
+ {
+ }
+ end
+
+ # Returns URL based on server settings
+ #
+ # @param index array index of the server settings
+ # @param variables hash of variable and the corresponding value
+ 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
+
+ end
+end
diff --git a/lib/openapi_client/version.rb b/lib/openapi_client/version.rb
new file mode 100755
index 0000000..6cefc34
--- /dev/null
+++ b/lib/openapi_client/version.rb
@@ -0,0 +1,15 @@
+=begin
+#Lob
+
+#The Lob API is organized around REST. Our API is designed to have predictable, resource-oriented URLs and uses HTTP response codes to indicate any API errors. Looking for our [previous documentation](https://lob.github.io/legacy-docs/)?
+
+The version of the OpenAPI document: 1.3.0
+Contact: lob-openapi@lob.com
+Generated by: https://openapi-generator.tech
+OpenAPI Generator version: 5.2.1
+
+=end
+
+module Lob
+ VERSION = '7.0.0'
+end