=begin
#Telstra Programmable Network API

#Telstra Programmable Network is a self-provisioning platform that allows its users to create on-demand connectivity services between multiple end-points and add various network functions to those services. Programmable Network enables to connectivity to a global ecosystem of networking services as well as public and private cloud services. Once you are connected to the platform on one or more POPs (points of presence), you can start creating those services based on the use case that you want to accomplish. The Programmable Network API is available to all customers who have registered to use the Programmable Network. To register, please contact your account representative.

OpenAPI spec version: 2.4.2
Contact: pnapi-support@team.telstra.com
Generated by: https://openapi-generator.tech
OpenAPI Generator version: 3.1.2

=end

# Common files
require 'TelstraTPN/api_client'
require 'TelstraTPN/api_error'
require 'TelstraTPN/version'
require 'TelstraTPN/configuration'

# Models
require 'TelstraTPN/models/assigntopotagrequest'
require 'TelstraTPN/models/backup'
require 'TelstraTPN/models/backuprequest'
require 'TelstraTPN/models/billing'
require 'TelstraTPN/models/body'
require 'TelstraTPN/models/connections'
require 'TelstraTPN/models/contract'
require 'TelstraTPN/models/contractresponse_fragment'
require 'TelstraTPN/models/contractresponsefragment_params'
require 'TelstraTPN/models/createcontractrequest'
require 'TelstraTPN/models/createlinkrequest'
require 'TelstraTPN/models/endpoint_port'
require 'TelstraTPN/models/endpointupdaterequest'
require 'TelstraTPN/models/error'
require 'TelstraTPN/models/exchange_provider'
require 'TelstraTPN/models/flavor'
require 'TelstraTPN/models/image'
require 'TelstraTPN/models/image_classifications'
require 'TelstraTPN/models/image_glance_image'
require 'TelstraTPN/models/image_product'
require 'TelstraTPN/models/image_zero_day_config_spec'
require 'TelstraTPN/models/inline_response200'
require 'TelstraTPN/models/inline_response2001'
require 'TelstraTPN/models/inline_response20010'
require 'TelstraTPN/models/inline_response20011'
require 'TelstraTPN/models/inline_response20012'
require 'TelstraTPN/models/inline_response20013'
require 'TelstraTPN/models/inline_response20013_endpoints'
require 'TelstraTPN/models/inline_response20013_links'
require 'TelstraTPN/models/inline_response20014'
require 'TelstraTPN/models/inline_response20014_endpoints'
require 'TelstraTPN/models/inline_response20015'
require 'TelstraTPN/models/inline_response20016'
require 'TelstraTPN/models/inline_response20017'
require 'TelstraTPN/models/inline_response20018'
require 'TelstraTPN/models/inline_response20019'
require 'TelstraTPN/models/inline_response2001_endpointlist'
require 'TelstraTPN/models/inline_response2002'
require 'TelstraTPN/models/inline_response20020'
require 'TelstraTPN/models/inline_response2002_datacenter'
require 'TelstraTPN/models/inline_response2003'
require 'TelstraTPN/models/inline_response2004'
require 'TelstraTPN/models/inline_response2005'
require 'TelstraTPN/models/inline_response2006'
require 'TelstraTPN/models/inline_response2006_params'
require 'TelstraTPN/models/inline_response2007'
require 'TelstraTPN/models/inline_response2008'
require 'TelstraTPN/models/inline_response2009'
require 'TelstraTPN/models/inline_response200_datacenters'
require 'TelstraTPN/models/inline_response202'
require 'TelstraTPN/models/inline_response202_errormsg'
require 'TelstraTPN/models/inline_response401'
require 'TelstraTPN/models/link'
require 'TelstraTPN/models/meta'
require 'TelstraTPN/models/model100inventorylinksstatsflowlinkidstartdateenddate_tags'
require 'TelstraTPN/models/pop'
require 'TelstraTPN/models/rebootrequest'
require 'TelstraTPN/models/regendpointrequest'
require 'TelstraTPN/models/regvportrequest'
require 'TelstraTPN/models/regvportrequest_vportvalue'
require 'TelstraTPN/models/role'
require 'TelstraTPN/models/success_fragment'
require 'TelstraTPN/models/topology'
require 'TelstraTPN/models/topotagcreaterequest'
require 'TelstraTPN/models/topotagupdateresponse'
require 'TelstraTPN/models/user'
require 'TelstraTPN/models/visitcard'
require 'TelstraTPN/models/vlan'
require 'TelstraTPN/models/vnf_tag'
require 'TelstraTPN/models/vnfendpointrequest'
require 'TelstraTPN/models/vport'
require 'TelstraTPN/models/vportrequest'

# APIs
require 'TelstraTPN/api/authentication_api'
require 'TelstraTPN/api/contracts_api'
require 'TelstraTPN/api/customers_api'
require 'TelstraTPN/api/datacentres_api'
require 'TelstraTPN/api/endpoints_api'
require 'TelstraTPN/api/exchange_api'
require 'TelstraTPN/api/links_api'
require 'TelstraTPN/api/statistics_api'
require 'TelstraTPN/api/topologies_api'
require 'TelstraTPN/api/users_api'
require 'TelstraTPN/api/vnfs_api'
require 'TelstraTPN/api/vports_api'

module TelstraTPN
  class << self
    # Customize default settings for the SDK using block.
    #   TelstraTPN.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
