##
#    This code was generated by
#    ___ _ _ _ _ _    _ ____    ____ ____ _    ____ ____ _  _ ____ ____ ____ ___ __   __
#     |  | | | | |    | |  | __ |  | |__| | __ | __ |___ |\ | |___ |__/ |__|  | |  | |__/
#     |  |_|_| | |___ | |__|    |__| |  | |    |__] |___ | \| |___ |  \ |  |  | |__| |  \
#
#    Twilio - Api
#    This is the public Twilio REST API.
#
#    NOTE: This class is auto generated by OpenAPI Generator.
#    https://openapi-generator.tech
#    Do not edit the class manually.
#

module Twilio
    module REST
        class Api
            class V2010 < Version
                ##
                # Initialize the V2010 version of Api
                def initialize(domain)
                    super
                    @version = '2010-04-01'
                    @accounts = nil
                end

                ##
                # Account provided as the authenticating account
                def account
                    @account ||= AccountContext.new(self, @domain.client.account_sid)
                end

                ##
                # Setter to override the primary account
                def account=(value)
                    @account = value
                end
                def addresses(sid =:unset)
                    self.account.addresses(sid)
                end
                def applications(sid =:unset)
                    self.account.applications(sid)
                end
                def authorized_connect_apps(connect_app_sid =:unset)
                    self.account.authorized_connect_apps(connect_app_sid)
                end
                def available_phone_numbers(country_code =:unset)
                    self.account.available_phone_numbers(country_code)
                end
                def balance
                    self.account.balance()
                end
                def calls(sid =:unset)
                    self.account.calls(sid)
                end
                def conferences(sid =:unset)
                    self.account.conferences(sid)
                end
                def connect_apps(sid =:unset)
                    self.account.connect_apps(sid)
                end
                def incoming_phone_numbers(sid =:unset)
                    self.account.incoming_phone_numbers(sid)
                end
                def keys(sid =:unset)
                    self.account.keys(sid)
                end
                def messages(sid =:unset)
                    self.account.messages(sid)
                end
                def new_keys
                    self.account.new_keys()
                end
                def new_signing_keys
                    self.account.new_signing_keys()
                end
                def notifications(sid =:unset)
                    self.account.notifications(sid)
                end
                def outgoing_caller_ids(sid =:unset)
                    self.account.outgoing_caller_ids(sid)
                end
                def queues(sid =:unset)
                    self.account.queues(sid)
                end
                def recordings(sid =:unset)
                    self.account.recordings(sid)
                end
                def short_codes(sid =:unset)
                    self.account.short_codes(sid)
                end
                def signing_keys(sid =:unset)
                    self.account.signing_keys(sid)
                end
                def sip
                    self.account.sip()
                end
                def tokens
                    self.account.tokens()
                end
                def transcriptions(sid =:unset)
                    self.account.transcriptions(sid)
                end
                def usage
                    self.account.usage()
                end
                def validation_requests
                    self.account.validation_requests()
                end
                ##
                # @param [String] sid The Account Sid that uniquely identifies the account to fetch
                # @return [Twilio::REST::Api::V2010::AccountContext] if sid was passed.
                # @return [Twilio::REST::Api::V2010::AccountList]
                def accounts(sid=:unset)
                    if sid.nil?
                        raise ArgumentError, 'sid cannot be nil'
                    end
                    if sid == :unset
                        @accounts ||= AccountList.new self
                    else
                        AccountContext.new(self, sid)
                    end
                end
                ##
                # Provide a user friendly representation
                def to_s
                    '<Twilio::REST::Api::V2010>';
                end
            end
        end
    end
end
