lib/twilio-ruby/rest/trunking/v1/trunk.rb in twilio-ruby-5.77.0 vs lib/twilio-ruby/rest/trunking/v1/trunk.rb in twilio-ruby-6.0.0.pre.rc.1

- old
+ new

@@ -1,640 +1,646 @@ ## -# This code was generated by -# \ / _ _ _| _ _ -# | (_)\/(_)(_|\/| |(/_ v1.0.0 -# / / +# This code was generated by +# ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __ +# | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/ +# | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \ # -# frozen_string_literal: true +# Twilio - Trunking +# 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 Trunking < Domain - class V1 < Version - class TrunkList < ListResource - ## - # Initialize the TrunkList - # @param [Version] version Version that contains the resource - # @return [TrunkList] TrunkList - def initialize(version) - super(version) + module REST + class Trunking < TrunkingBase + class V1 < Version + class TrunkList < ListResource + ## + # Initialize the TrunkList + # @param [Version] version Version that contains the resource + # @return [TrunkList] TrunkList + def initialize(version) + super(version) + # Path Solution + @solution = { } + @uri = "/Trunks" + + end + ## + # Create the TrunkInstance + # @param [String] friendly_name A descriptive string that you create to describe the resource. It can be up to 64 characters long. + # @param [String] domain_name The unique address you reserve on Twilio to which you route your SIP traffic. Domain names can contain letters, digits, and `-` and must end with `pstn.twilio.com`. See [Termination Settings](https://www.twilio.com/docs/sip-trunking#termination) for more information. + # @param [String] disaster_recovery_url The URL we should call using the `disaster_recovery_method` if an error occurs while sending SIP traffic towards the configured Origination URL. We retrieve TwiML from the URL and execute the instructions like any other normal TwiML call. See [Disaster Recovery](https://www.twilio.com/docs/sip-trunking#disaster-recovery) for more information. + # @param [String] disaster_recovery_method The HTTP method we should use to call the `disaster_recovery_url`. Can be: `GET` or `POST`. + # @param [TransferSetting] transfer_mode + # @param [Boolean] secure Whether Secure Trunking is enabled for the trunk. If enabled, all calls going through the trunk will be secure using SRTP for media and TLS for signaling. If disabled, then RTP will be used for media. See [Secure Trunking](https://www.twilio.com/docs/sip-trunking#securetrunking) for more information. + # @param [Boolean] cnam_lookup_enabled Whether Caller ID Name (CNAM) lookup should be enabled for the trunk. If enabled, all inbound calls to the SIP Trunk from the United States and Canada automatically perform a CNAM Lookup and display Caller ID data on your phone. See [CNAM Lookups](https://www.twilio.com/docs/sip-trunking#CNAM) for more information. + # @param [TransferCallerId] transfer_caller_id + # @return [TrunkInstance] Created TrunkInstance + def create( + friendly_name: :unset, + domain_name: :unset, + disaster_recovery_url: :unset, + disaster_recovery_method: :unset, + transfer_mode: :unset, + secure: :unset, + cnam_lookup_enabled: :unset, + transfer_caller_id: :unset + ) - # Path Solution - @solution = {} - @uri = "/Trunks" - end + data = Twilio::Values.of({ + 'FriendlyName' => friendly_name, + 'DomainName' => domain_name, + 'DisasterRecoveryUrl' => disaster_recovery_url, + 'DisasterRecoveryMethod' => disaster_recovery_method, + 'TransferMode' => transfer_mode, + 'Secure' => secure, + 'CnamLookupEnabled' => cnam_lookup_enabled, + 'TransferCallerId' => transfer_caller_id, + }) - ## - # Create the TrunkInstance - # @param [String] friendly_name A descriptive string that you create to describe - # the resource. It can be up to 64 characters long. - # @param [String] domain_name The unique address you reserve on Twilio to which - # you route your SIP traffic. Domain names can contain letters, digits, and `-` - # and must end with `pstn.twilio.com`. See {Termination - # Settings}[https://www.twilio.com/docs/sip-trunking#termination] for more - # information. - # @param [String] disaster_recovery_url The URL we should call using the - # `disaster_recovery_method` if an error occurs while sending SIP traffic towards - # the configured Origination URL. We retrieve TwiML from the URL and execute the - # instructions like any other normal TwiML call. See {Disaster - # Recovery}[https://www.twilio.com/docs/sip-trunking#disaster-recovery] for more - # information. - # @param [String] disaster_recovery_method The HTTP method we should use to call - # the `disaster_recovery_url`. Can be: `GET` or `POST`. - # @param [trunk.TransferSetting] transfer_mode The call transfer settings for the - # trunk. Can be: `enable-all`, `sip-only` and `disable-all`. See - # {Transfer}[https://www.twilio.com/docs/sip-trunking/call-transfer] for more - # information. - # @param [Boolean] secure Whether Secure Trunking is enabled for the trunk. If - # enabled, all calls going through the trunk will be secure using SRTP for media - # and TLS for signaling. If disabled, then RTP will be used for media. See {Secure - # Trunking}[https://www.twilio.com/docs/sip-trunking#securetrunking] for more - # information. - # @param [Boolean] cnam_lookup_enabled Whether Caller ID Name (CNAM) lookup should - # be enabled for the trunk. If enabled, all inbound calls to the SIP Trunk from - # the United States and Canada automatically perform a CNAM Lookup and display - # Caller ID data on your phone. See {CNAM - # Lookups}[https://www.twilio.com/docs/sip-trunking#CNAM] for more information. - # @param [trunk.TransferCallerId] transfer_caller_id Caller Id for transfer - # target. Can be: `from-transferee` (default) or `from-transferor`. - # @return [TrunkInstance] Created TrunkInstance - def create(friendly_name: :unset, domain_name: :unset, disaster_recovery_url: :unset, disaster_recovery_method: :unset, transfer_mode: :unset, secure: :unset, cnam_lookup_enabled: :unset, transfer_caller_id: :unset) - data = Twilio::Values.of({ - 'FriendlyName' => friendly_name, - 'DomainName' => domain_name, - 'DisasterRecoveryUrl' => disaster_recovery_url, - 'DisasterRecoveryMethod' => disaster_recovery_method, - 'TransferMode' => transfer_mode, - 'Secure' => secure, - 'CnamLookupEnabled' => cnam_lookup_enabled, - 'TransferCallerId' => transfer_caller_id, - }) + payload = @version.create('POST', @uri, data: data) + TrunkInstance.new( + @version, + payload, + ) + end - payload = @version.create('POST', @uri, data: data) + + ## + # Lists TrunkInstance records from the API as a list. + # Unlike stream(), this operation is eager and will load `limit` records into + # memory before returning. + # @param [Integer] limit Upper limit for the number of records to return. stream() + # guarantees to never return more than limit. Default is no limit + # @param [Integer] page_size Number of records to fetch per request, when + # not set will use the default value of 50 records. If no page_size is defined + # but a limit is defined, stream() will attempt to read the limit with the most + # efficient page size, i.e. min(limit, 1000) + # @return [Array] Array of up to limit results + def list(limit: nil, page_size: nil) + self.stream( + limit: limit, + page_size: page_size + ).entries + end - TrunkInstance.new(@version, payload, ) - end + ## + # Streams Instance records from the API as an Enumerable. + # This operation lazily loads records as efficiently as possible until the limit + # is reached. + # @param [Integer] limit Upper limit for the number of records to return. stream() + # guarantees to never return more than limit. Default is no limit + # @param [Integer] page_size Number of records to fetch per request, when + # not set will use the default value of 50 records. If no page_size is defined + # but a limit is defined, stream() will attempt to read the limit with the most + # efficient page size, i.e. min(limit, 1000) + # @return [Enumerable] Enumerable that will yield up to limit results + def stream(limit: nil, page_size: nil) + limits = @version.read_limits(limit, page_size) - ## - # Lists TrunkInstance records from the API as a list. - # Unlike stream(), this operation is eager and will load `limit` records into - # memory before returning. - # @param [Integer] limit Upper limit for the number of records to return. stream() - # guarantees to never return more than limit. Default is no limit - # @param [Integer] page_size Number of records to fetch per request, when - # not set will use the default value of 50 records. If no page_size is defined - # but a limit is defined, stream() will attempt to read the limit with the most - # efficient page size, i.e. min(limit, 1000) - # @return [Array] Array of up to limit results - def list(limit: nil, page_size: nil) - self.stream(limit: limit, page_size: page_size).entries - end + page = self.page( + page_size: limits[:page_size], ) - ## - # Streams TrunkInstance records from the API as an Enumerable. - # This operation lazily loads records as efficiently as possible until the limit - # is reached. - # @param [Integer] limit Upper limit for the number of records to return. stream() - # guarantees to never return more than limit. Default is no limit. - # @param [Integer] page_size Number of records to fetch per request, when - # not set will use the default value of 50 records. If no page_size is defined - # but a limit is defined, stream() will attempt to read the limit with the most - # efficient page size, i.e. min(limit, 1000) - # @return [Enumerable] Enumerable that will yield up to limit results - def stream(limit: nil, page_size: nil) - limits = @version.read_limits(limit, page_size) + @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit]) + end - page = self.page(page_size: limits[:page_size], ) + ## + # When passed a block, yields TrunkInstance records from the API. + # This operation lazily loads records as efficiently as possible until the limit + # is reached. + def each + limits = @version.read_limits - @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit]) - end + page = self.page(page_size: limits[:page_size], ) - ## - # When passed a block, yields TrunkInstance records from the API. - # This operation lazily loads records as efficiently as possible until the limit - # is reached. - def each - limits = @version.read_limits - - page = self.page(page_size: limits[:page_size], ) - - @version.stream(page, + @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit]).each {|x| yield x} - end + end - ## - # Retrieve a single page of TrunkInstance records from the API. - # Request is executed immediately. - # @param [String] page_token PageToken provided by the API - # @param [Integer] page_number Page Number, this value is simply for client state - # @param [Integer] page_size Number of records to return, defaults to 50 - # @return [Page] Page of TrunkInstance - def page(page_token: :unset, page_number: :unset, page_size: :unset) - params = Twilio::Values.of({ - 'PageToken' => page_token, - 'Page' => page_number, - 'PageSize' => page_size, - }) + ## + # Retrieve a single page of TrunkInstance records from the API. + # Request is executed immediately. + # @param [String] page_token PageToken provided by the API + # @param [Integer] page_number Page Number, this value is simply for client state + # @param [Integer] page_size Number of records to return, defaults to 50 + # @return [Page] Page of TrunkInstance + def page(page_token: :unset, page_number: :unset, page_size: :unset) + params = Twilio::Values.of({ + + 'PageToken' => page_token, + 'Page' => page_number, + 'PageSize' => page_size, + }) - response = @version.page('GET', @uri, params: params) + response = @version.page('GET', @uri, params: params) - TrunkPage.new(@version, response, @solution) - end + TrunkPage.new(@version, response, @solution) + end - ## - # Retrieve a single page of TrunkInstance records from the API. - # Request is executed immediately. - # @param [String] target_url API-generated URL for the requested results page - # @return [Page] Page of TrunkInstance - def get_page(target_url) - response = @version.domain.request( - 'GET', - target_url - ) - TrunkPage.new(@version, response, @solution) - end + ## + # Retrieve a single page of TrunkInstance records from the API. + # Request is executed immediately. + # @param [String] target_url API-generated URL for the requested results page + # @return [Page] Page of TrunkInstance + def get_page(target_url) + response = @version.domain.request( + 'GET', + target_url + ) + TrunkPage.new(@version, response, @solution) + end + - ## - # Provide a user friendly representation - def to_s - '#<Twilio.Trunking.V1.TrunkList>' - end - end - class TrunkPage < Page - ## - # Initialize the TrunkPage - # @param [Version] version Version that contains the resource - # @param [Response] response Response from the API - # @param [Hash] solution Path solution for the resource - # @return [TrunkPage] TrunkPage - def initialize(version, response, solution) - super(version, response) + # Provide a user friendly representation + def to_s + '#<Twilio.Trunking.V1.TrunkList>' + end + end - # Path Solution - @solution = solution - end - ## - # Build an instance of TrunkInstance - # @param [Hash] payload Payload response from the API - # @return [TrunkInstance] TrunkInstance - def get_instance(payload) - TrunkInstance.new(@version, payload, ) - end + class TrunkContext < InstanceContext + ## + # Initialize the TrunkContext + # @param [Version] version Version that contains the resource + # @param [String] sid The unique string that we created to identify the OriginationUrl resource to update. + # @return [TrunkContext] TrunkContext + def initialize(version, sid) + super(version) - ## - # Provide a user friendly representation - def to_s - '<Twilio.Trunking.V1.TrunkPage>' - end - end + # Path Solution + @solution = { sid: sid, } + @uri = "/Trunks/#{@solution[:sid]}" - class TrunkContext < InstanceContext - ## - # Initialize the TrunkContext - # @param [Version] version Version that contains the resource - # @param [String] sid The unique string that we created to identify the Trunk - # resource to fetch. - # @return [TrunkContext] TrunkContext - def initialize(version, sid) - super(version) + # Dependents + @recordings = nil + @credentials_lists = nil + @ip_access_control_lists = nil + @phone_numbers = nil + @origination_urls = nil + end + ## + # Delete the TrunkInstance + # @return [Boolean] True if delete succeeds, false otherwise + def delete - # Path Solution - @solution = {sid: sid, } - @uri = "/Trunks/#{@solution[:sid]}" + @version.delete('DELETE', @uri) + end - # Dependents - @origination_urls = nil - @credentials_lists = nil - @ip_access_control_lists = nil - @phone_numbers = nil - @recordings = nil - end + ## + # Fetch the TrunkInstance + # @return [TrunkInstance] Fetched TrunkInstance + def fetch - ## - # Fetch the TrunkInstance - # @return [TrunkInstance] Fetched TrunkInstance - def fetch - payload = @version.fetch('GET', @uri) + payload = @version.fetch('GET', @uri) + TrunkInstance.new( + @version, + payload, + sid: @solution[:sid], + ) + end - TrunkInstance.new(@version, payload, sid: @solution[:sid], ) - end + ## + # Update the TrunkInstance + # @param [String] friendly_name A descriptive string that you create to describe the resource. It can be up to 64 characters long. + # @param [String] domain_name The unique address you reserve on Twilio to which you route your SIP traffic. Domain names can contain letters, digits, and `-` and must end with `pstn.twilio.com`. See [Termination Settings](https://www.twilio.com/docs/sip-trunking#termination) for more information. + # @param [String] disaster_recovery_url The URL we should call using the `disaster_recovery_method` if an error occurs while sending SIP traffic towards the configured Origination URL. We retrieve TwiML from the URL and execute the instructions like any other normal TwiML call. See [Disaster Recovery](https://www.twilio.com/docs/sip-trunking#disaster-recovery) for more information. + # @param [String] disaster_recovery_method The HTTP method we should use to call the `disaster_recovery_url`. Can be: `GET` or `POST`. + # @param [TransferSetting] transfer_mode + # @param [Boolean] secure Whether Secure Trunking is enabled for the trunk. If enabled, all calls going through the trunk will be secure using SRTP for media and TLS for signaling. If disabled, then RTP will be used for media. See [Secure Trunking](https://www.twilio.com/docs/sip-trunking#securetrunking) for more information. + # @param [Boolean] cnam_lookup_enabled Whether Caller ID Name (CNAM) lookup should be enabled for the trunk. If enabled, all inbound calls to the SIP Trunk from the United States and Canada automatically perform a CNAM Lookup and display Caller ID data on your phone. See [CNAM Lookups](https://www.twilio.com/docs/sip-trunking#CNAM) for more information. + # @param [TransferCallerId] transfer_caller_id + # @return [TrunkInstance] Updated TrunkInstance + def update( + friendly_name: :unset, + domain_name: :unset, + disaster_recovery_url: :unset, + disaster_recovery_method: :unset, + transfer_mode: :unset, + secure: :unset, + cnam_lookup_enabled: :unset, + transfer_caller_id: :unset + ) - ## - # Delete the TrunkInstance - # @return [Boolean] true if delete succeeds, false otherwise - def delete - @version.delete('DELETE', @uri) - end + data = Twilio::Values.of({ + 'FriendlyName' => friendly_name, + 'DomainName' => domain_name, + 'DisasterRecoveryUrl' => disaster_recovery_url, + 'DisasterRecoveryMethod' => disaster_recovery_method, + 'TransferMode' => transfer_mode, + 'Secure' => secure, + 'CnamLookupEnabled' => cnam_lookup_enabled, + 'TransferCallerId' => transfer_caller_id, + }) - ## - # Update the TrunkInstance - # @param [String] friendly_name A descriptive string that you create to describe - # the resource. It can be up to 64 characters long. - # @param [String] domain_name The unique address you reserve on Twilio to which - # you route your SIP traffic. Domain names can contain letters, digits, and `-` - # and must end with `pstn.twilio.com`. See {Termination - # Settings}[https://www.twilio.com/docs/sip-trunking#termination] for more - # information. - # @param [String] disaster_recovery_url The URL we should call using the - # `disaster_recovery_method` if an error occurs while sending SIP traffic towards - # the configured Origination URL. We retrieve TwiML from the URL and execute the - # instructions like any other normal TwiML call. See {Disaster - # Recovery}[https://www.twilio.com/docs/sip-trunking#disaster-recovery] for more - # information. - # @param [String] disaster_recovery_method The HTTP method we should use to call - # the `disaster_recovery_url`. Can be: `GET` or `POST`. - # @param [trunk.TransferSetting] transfer_mode The call transfer settings for the - # trunk. Can be: `enable-all`, `sip-only` and `disable-all`. See - # {Transfer}[https://www.twilio.com/docs/sip-trunking/call-transfer] for more - # information. - # @param [Boolean] secure Whether Secure Trunking is enabled for the trunk. If - # enabled, all calls going through the trunk will be secure using SRTP for media - # and TLS for signaling. If disabled, then RTP will be used for media. See {Secure - # Trunking}[https://www.twilio.com/docs/sip-trunking#securetrunking] for more - # information. - # @param [Boolean] cnam_lookup_enabled Whether Caller ID Name (CNAM) lookup should - # be enabled for the trunk. If enabled, all inbound calls to the SIP Trunk from - # the United States and Canada automatically perform a CNAM Lookup and display - # Caller ID data on your phone. See {CNAM - # Lookups}[https://www.twilio.com/docs/sip-trunking#CNAM] for more information. - # @param [trunk.TransferCallerId] transfer_caller_id Caller Id for transfer - # target. Can be: `from-transferee` (default) or `from-transferor`. - # @return [TrunkInstance] Updated TrunkInstance - def update(friendly_name: :unset, domain_name: :unset, disaster_recovery_url: :unset, disaster_recovery_method: :unset, transfer_mode: :unset, secure: :unset, cnam_lookup_enabled: :unset, transfer_caller_id: :unset) - data = Twilio::Values.of({ - 'FriendlyName' => friendly_name, - 'DomainName' => domain_name, - 'DisasterRecoveryUrl' => disaster_recovery_url, - 'DisasterRecoveryMethod' => disaster_recovery_method, - 'TransferMode' => transfer_mode, - 'Secure' => secure, - 'CnamLookupEnabled' => cnam_lookup_enabled, - 'TransferCallerId' => transfer_caller_id, - }) + payload = @version.update('POST', @uri, data: data) + TrunkInstance.new( + @version, + payload, + sid: @solution[:sid], + ) + end - payload = @version.update('POST', @uri, data: data) + ## + # Access the recordings + # @return [RecordingList] + # @return [RecordingContext] + def recordings + RecordingContext.new( + @version, + @solution[:sid] + ) + end + ## + # Access the credentials_lists + # @return [CredentialListList] + # @return [CredentialListContext] if sid was passed. + def credentials_lists(sid=:unset) - TrunkInstance.new(@version, payload, sid: @solution[:sid], ) - end + raise ArgumentError, 'sid cannot be nil' if sid.nil? - ## - # Access the origination_urls - # @return [OriginationUrlList] - # @return [OriginationUrlContext] if sid was passed. - def origination_urls(sid=:unset) - raise ArgumentError, 'sid cannot be nil' if sid.nil? + if sid != :unset + return CredentialListContext.new(@version, @solution[:sid],sid ) + end - if sid != :unset - return OriginationUrlContext.new(@version, @solution[:sid], sid, ) - end + unless @credentials_lists + @credentials_lists = CredentialListList.new( + @version, + trunk_sid: @solution[:sid] + + ) + end - unless @origination_urls - @origination_urls = OriginationUrlList.new(@version, trunk_sid: @solution[:sid], ) - end + @credentials_lists + end + ## + # Access the ip_access_control_lists + # @return [IpAccessControlListList] + # @return [IpAccessControlListContext] if sid was passed. + def ip_access_control_lists(sid=:unset) - @origination_urls - end + raise ArgumentError, 'sid cannot be nil' if sid.nil? - ## - # Access the credentials_lists - # @return [CredentialListList] - # @return [CredentialListContext] if sid was passed. - def credentials_lists(sid=:unset) - raise ArgumentError, 'sid cannot be nil' if sid.nil? + if sid != :unset + return IpAccessControlListContext.new(@version, @solution[:sid],sid ) + end - if sid != :unset - return CredentialListContext.new(@version, @solution[:sid], sid, ) - end + unless @ip_access_control_lists + @ip_access_control_lists = IpAccessControlListList.new( + @version, + trunk_sid: @solution[:sid] + + ) + end - unless @credentials_lists - @credentials_lists = CredentialListList.new(@version, trunk_sid: @solution[:sid], ) - end + @ip_access_control_lists + end + ## + # Access the phone_numbers + # @return [PhoneNumberList] + # @return [PhoneNumberContext] if sid was passed. + def phone_numbers(sid=:unset) - @credentials_lists - end + raise ArgumentError, 'sid cannot be nil' if sid.nil? - ## - # Access the ip_access_control_lists - # @return [IpAccessControlListList] - # @return [IpAccessControlListContext] if sid was passed. - def ip_access_control_lists(sid=:unset) - raise ArgumentError, 'sid cannot be nil' if sid.nil? + if sid != :unset + return PhoneNumberContext.new(@version, @solution[:sid],sid ) + end - if sid != :unset - return IpAccessControlListContext.new(@version, @solution[:sid], sid, ) - end + unless @phone_numbers + @phone_numbers = PhoneNumberList.new( + @version, + trunk_sid: @solution[:sid] + + ) + end - unless @ip_access_control_lists - @ip_access_control_lists = IpAccessControlListList.new(@version, trunk_sid: @solution[:sid], ) - end + @phone_numbers + end + ## + # Access the origination_urls + # @return [OriginationUrlList] + # @return [OriginationUrlContext] if sid was passed. + def origination_urls(sid=:unset) - @ip_access_control_lists - end + raise ArgumentError, 'sid cannot be nil' if sid.nil? - ## - # Access the phone_numbers - # @return [PhoneNumberList] - # @return [PhoneNumberContext] if sid was passed. - def phone_numbers(sid=:unset) - raise ArgumentError, 'sid cannot be nil' if sid.nil? + if sid != :unset + return OriginationUrlContext.new(@version, @solution[:sid],sid ) + end - if sid != :unset - return PhoneNumberContext.new(@version, @solution[:sid], sid, ) - end + unless @origination_urls + @origination_urls = OriginationUrlList.new( + @version, + trunk_sid: @solution[:sid] + + ) + end - unless @phone_numbers - @phone_numbers = PhoneNumberList.new(@version, trunk_sid: @solution[:sid], ) - end + @origination_urls + end - @phone_numbers - end + ## + # Provide a user friendly representation + def to_s + context = @solution.map{|k, v| "#{k}: #{v}"}.join(',') + "#<Twilio.Trunking.V1.TrunkContext #{context}>" + end - ## - # Access the recordings - # @return [RecordingList] - # @return [RecordingContext] - def recordings - RecordingContext.new(@version, @solution[:sid], ) - end + ## + # Provide a detailed, user friendly representation + def inspect + context = @solution.map{|k, v| "#{k}: #{v}"}.join(',') + "#<Twilio.Trunking.V1.TrunkContext #{context}>" + end + end - ## - # Provide a user friendly representation - def to_s - context = @solution.map {|k, v| "#{k}: #{v}"}.join(',') - "#<Twilio.Trunking.V1.TrunkContext #{context}>" - end + class TrunkPage < Page + ## + # Initialize the TrunkPage + # @param [Version] version Version that contains the resource + # @param [Response] response Response from the API + # @param [Hash] solution Path solution for the resource + # @return [TrunkPage] TrunkPage + def initialize(version, response, solution) + super(version, response) - ## - # Provide a detailed, user friendly representation - def inspect - context = @solution.map {|k, v| "#{k}: #{v}"}.join(',') - "#<Twilio.Trunking.V1.TrunkContext #{context}>" - end - end + # Path Solution + @solution = solution + end - class TrunkInstance < InstanceResource - ## - # Initialize the TrunkInstance - # @param [Version] version Version that contains the resource - # @param [Hash] payload payload that contains response from Twilio - # @param [String] sid The unique string that we created to identify the Trunk - # resource to fetch. - # @return [TrunkInstance] TrunkInstance - def initialize(version, payload, sid: nil) - super(version) + ## + # Build an instance of TrunkInstance + # @param [Hash] payload Payload response from the API + # @return [TrunkInstance] TrunkInstance + def get_instance(payload) + TrunkInstance.new(@version, payload) + end - # Marshaled Properties - @properties = { - 'account_sid' => payload['account_sid'], - 'domain_name' => payload['domain_name'], - 'disaster_recovery_method' => payload['disaster_recovery_method'], - 'disaster_recovery_url' => payload['disaster_recovery_url'], - 'friendly_name' => payload['friendly_name'], - 'secure' => payload['secure'], - 'recording' => payload['recording'], - 'transfer_mode' => payload['transfer_mode'], - 'transfer_caller_id' => payload['transfer_caller_id'], - 'cnam_lookup_enabled' => payload['cnam_lookup_enabled'], - 'auth_type' => payload['auth_type'], - 'auth_type_set' => payload['auth_type_set'], - 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']), - 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']), - 'sid' => payload['sid'], - 'url' => payload['url'], - 'links' => payload['links'], - } + ## + # Provide a user friendly representation + def to_s + '<Twilio.Trunking.V1.TrunkPage>' + end + end + class TrunkInstance < InstanceResource + ## + # Initialize the TrunkInstance + # @param [Version] version Version that contains the resource + # @param [Hash] payload payload that contains response from Twilio + # @param [String] account_sid The SID of the + # {Account}[https://www.twilio.com/docs/iam/api/account] that created this Trunk + # resource. + # @param [String] sid The SID of the Call resource to fetch. + # @return [TrunkInstance] TrunkInstance + def initialize(version, payload , sid: nil) + super(version) + + # Marshaled Properties + @properties = { + 'account_sid' => payload['account_sid'], + 'domain_name' => payload['domain_name'], + 'disaster_recovery_method' => payload['disaster_recovery_method'], + 'disaster_recovery_url' => payload['disaster_recovery_url'], + 'friendly_name' => payload['friendly_name'], + 'secure' => payload['secure'], + 'recording' => payload['recording'], + 'transfer_mode' => payload['transfer_mode'], + 'transfer_caller_id' => payload['transfer_caller_id'], + 'cnam_lookup_enabled' => payload['cnam_lookup_enabled'], + 'auth_type' => payload['auth_type'], + 'auth_type_set' => payload['auth_type_set'], + 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']), + 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']), + 'sid' => payload['sid'], + 'url' => payload['url'], + 'links' => payload['links'], + } - # Context - @instance_context = nil - @params = {'sid' => sid || @properties['sid'], } - end + # Context + @instance_context = nil + @params = { 'sid' => sid || @properties['sid'] , } + end - ## - # Generate an instance context for the instance, the context is capable of - # performing various actions. All instance actions are proxied to the context - # @return [TrunkContext] TrunkContext for this TrunkInstance - def context - unless @instance_context - @instance_context = TrunkContext.new(@version, @params['sid'], ) - end - @instance_context - end + ## + # Generate an instance context for the instance, the context is capable of + # performing various actions. All instance actions are proxied to the context + # @return [TrunkContext] CallContext for this CallInstance + def context + unless @instance_context + @instance_context = TrunkContext.new(@version , @params['sid']) + end + @instance_context + end + + ## + # @return [String] The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the Trunk resource. + def account_sid + @properties['account_sid'] + end + + ## + # @return [String] The unique address you reserve on Twilio to which you route your SIP traffic. Domain names can contain letters, digits, and `-` and must end with `pstn.twilio.com`. See [Termination Settings](https://www.twilio.com/docs/sip-trunking#termination) for more information. + def domain_name + @properties['domain_name'] + end + + ## + # @return [String] The HTTP method we use to call the `disaster_recovery_url`. Can be: `GET` or `POST`. + def disaster_recovery_method + @properties['disaster_recovery_method'] + end + + ## + # @return [String] The URL we call using the `disaster_recovery_method` if an error occurs while sending SIP traffic towards the configured Origination URL. We retrieve TwiML from this URL and execute the instructions like any other normal TwiML call. See [Disaster Recovery](https://www.twilio.com/docs/sip-trunking#disaster-recovery) for more information. + def disaster_recovery_url + @properties['disaster_recovery_url'] + end + + ## + # @return [String] The string that you assigned to describe the resource. + def friendly_name + @properties['friendly_name'] + end + + ## + # @return [Boolean] Whether Secure Trunking is enabled for the trunk. If enabled, all calls going through the trunk will be secure using SRTP for media and TLS for signaling. If disabled, then RTP will be used for media. See [Secure Trunking](https://www.twilio.com/docs/sip-trunking#securetrunking) for more information. + def secure + @properties['secure'] + end + + ## + # @return [Hash] The recording settings for the trunk. Can be: `do-not-record`, `record-from-ringing`, `record-from-answer`. If set to `record-from-ringing` or `record-from-answer`, all calls going through the trunk will be recorded. The only way to change recording parameters is on a sub-resource of a Trunk after it has been created. e.g.`/Trunks/[Trunk_SID]/Recording -XPOST -d'Mode=record-from-answer'`. See [Recording](https://www.twilio.com/docs/sip-trunking#recording) for more information. + def recording + @properties['recording'] + end + + ## + # @return [TransferSetting] + def transfer_mode + @properties['transfer_mode'] + end + + ## + # @return [TransferCallerId] + def transfer_caller_id + @properties['transfer_caller_id'] + end + + ## + # @return [Boolean] Whether Caller ID Name (CNAM) lookup is enabled for the trunk. If enabled, all inbound calls to the SIP Trunk from the United States and Canada automatically perform a CNAM Lookup and display Caller ID data on your phone. See [CNAM Lookups](https://www.twilio.com/docs/sip-trunking#CNAM) for more information. + def cnam_lookup_enabled + @properties['cnam_lookup_enabled'] + end + + ## + # @return [String] The types of authentication mapped to the domain. Can be: `IP_ACL` and `CREDENTIAL_LIST`. If both are mapped, the values are returned in a comma delimited list. If empty, the domain will not receive any traffic. + def auth_type + @properties['auth_type'] + end + + ## + # @return [Array<String>] Reserved. + def auth_type_set + @properties['auth_type_set'] + end + + ## + # @return [Time] The date and time in GMT when the resource was created specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format. + def date_created + @properties['date_created'] + end + + ## + # @return [Time] The date and time in GMT when the resource was last updated specified in [RFC 2822](https://www.ietf.org/rfc/rfc2822.txt) format. + def date_updated + @properties['date_updated'] + end + + ## + # @return [String] The unique string that we created to identify the Trunk resource. + def sid + @properties['sid'] + end + + ## + # @return [String] The absolute URL of the resource. + def url + @properties['url'] + end + + ## + # @return [Hash] The URLs of related resources. + def links + @properties['links'] + end + + ## + # Delete the TrunkInstance + # @return [Boolean] True if delete succeeds, false otherwise + def delete - ## - # @return [String] The SID of the Account that created the resource - def account_sid - @properties['account_sid'] - end + context.delete + end - ## - # @return [String] The unique address you reserve on Twilio to which you route your SIP traffic - def domain_name - @properties['domain_name'] - end + ## + # Fetch the TrunkInstance + # @return [TrunkInstance] Fetched TrunkInstance + def fetch - ## - # @return [String] The HTTP method we use to call the disaster_recovery_url - def disaster_recovery_method - @properties['disaster_recovery_method'] - end + context.fetch + end - ## - # @return [String] The HTTP URL that we call if an error occurs while sending SIP traffic towards your configured Origination URL - def disaster_recovery_url - @properties['disaster_recovery_url'] - end + ## + # Update the TrunkInstance + # @param [String] friendly_name A descriptive string that you create to describe the resource. It can be up to 64 characters long. + # @param [String] domain_name The unique address you reserve on Twilio to which you route your SIP traffic. Domain names can contain letters, digits, and `-` and must end with `pstn.twilio.com`. See [Termination Settings](https://www.twilio.com/docs/sip-trunking#termination) for more information. + # @param [String] disaster_recovery_url The URL we should call using the `disaster_recovery_method` if an error occurs while sending SIP traffic towards the configured Origination URL. We retrieve TwiML from the URL and execute the instructions like any other normal TwiML call. See [Disaster Recovery](https://www.twilio.com/docs/sip-trunking#disaster-recovery) for more information. + # @param [String] disaster_recovery_method The HTTP method we should use to call the `disaster_recovery_url`. Can be: `GET` or `POST`. + # @param [TransferSetting] transfer_mode + # @param [Boolean] secure Whether Secure Trunking is enabled for the trunk. If enabled, all calls going through the trunk will be secure using SRTP for media and TLS for signaling. If disabled, then RTP will be used for media. See [Secure Trunking](https://www.twilio.com/docs/sip-trunking#securetrunking) for more information. + # @param [Boolean] cnam_lookup_enabled Whether Caller ID Name (CNAM) lookup should be enabled for the trunk. If enabled, all inbound calls to the SIP Trunk from the United States and Canada automatically perform a CNAM Lookup and display Caller ID data on your phone. See [CNAM Lookups](https://www.twilio.com/docs/sip-trunking#CNAM) for more information. + # @param [TransferCallerId] transfer_caller_id + # @return [TrunkInstance] Updated TrunkInstance + def update( + friendly_name: :unset, + domain_name: :unset, + disaster_recovery_url: :unset, + disaster_recovery_method: :unset, + transfer_mode: :unset, + secure: :unset, + cnam_lookup_enabled: :unset, + transfer_caller_id: :unset + ) - ## - # @return [String] The string that you assigned to describe the resource - def friendly_name - @properties['friendly_name'] - end + context.update( + friendly_name: friendly_name, + domain_name: domain_name, + disaster_recovery_url: disaster_recovery_url, + disaster_recovery_method: disaster_recovery_method, + transfer_mode: transfer_mode, + secure: secure, + cnam_lookup_enabled: cnam_lookup_enabled, + transfer_caller_id: transfer_caller_id, + ) + end - ## - # @return [Boolean] Whether Secure Trunking is enabled for the trunk - def secure - @properties['secure'] - end + ## + # Access the recordings + # @return [recordings] recordings + def recordings + context.recordings + end - ## - # @return [Hash] The recording settings for the trunk - def recording - @properties['recording'] - end + ## + # Access the credentials_lists + # @return [credentials_lists] credentials_lists + def credentials_lists + context.credentials_lists + end - ## - # @return [trunk.TransferSetting] The call transfer settings for the trunk - def transfer_mode - @properties['transfer_mode'] - end + ## + # Access the ip_access_control_lists + # @return [ip_access_control_lists] ip_access_control_lists + def ip_access_control_lists + context.ip_access_control_lists + end - ## - # @return [trunk.TransferCallerId] Caller Id for transfer target - def transfer_caller_id - @properties['transfer_caller_id'] - end + ## + # Access the phone_numbers + # @return [phone_numbers] phone_numbers + def phone_numbers + context.phone_numbers + end - ## - # @return [Boolean] Whether Caller ID Name (CNAM) lookup is enabled for the trunk - def cnam_lookup_enabled - @properties['cnam_lookup_enabled'] - end + ## + # Access the origination_urls + # @return [origination_urls] origination_urls + def origination_urls + context.origination_urls + end - ## - # @return [String] The types of authentication mapped to the domain - def auth_type - @properties['auth_type'] - end + ## + # Provide a user friendly representation + def to_s + values = @params.map{|k, v| "#{k}: #{v}"}.join(" ") + "<Twilio.Trunking.V1.TrunkInstance #{values}>" + end - ## - # @return [Array[String]] Reserved - def auth_type_set - @properties['auth_type_set'] - end + ## + # Provide a detailed, user friendly representation + def inspect + values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ") + "<Twilio.Trunking.V1.TrunkInstance #{values}>" + end + end - ## - # @return [Time] The RFC 2822 date and time in GMT when the resource was created - def date_created - @properties['date_created'] - end - - ## - # @return [Time] The RFC 2822 date and time in GMT when the resource was last updated - def date_updated - @properties['date_updated'] - end - - ## - # @return [String] The unique string that identifies the resource - def sid - @properties['sid'] - end - - ## - # @return [String] The absolute URL of the resource - def url - @properties['url'] - end - - ## - # @return [String] The URLs of related resources - def links - @properties['links'] - end - - ## - # Fetch the TrunkInstance - # @return [TrunkInstance] Fetched TrunkInstance - def fetch - context.fetch - end - - ## - # Delete the TrunkInstance - # @return [Boolean] true if delete succeeds, false otherwise - def delete - context.delete - end - - ## - # Update the TrunkInstance - # @param [String] friendly_name A descriptive string that you create to describe - # the resource. It can be up to 64 characters long. - # @param [String] domain_name The unique address you reserve on Twilio to which - # you route your SIP traffic. Domain names can contain letters, digits, and `-` - # and must end with `pstn.twilio.com`. See {Termination - # Settings}[https://www.twilio.com/docs/sip-trunking#termination] for more - # information. - # @param [String] disaster_recovery_url The URL we should call using the - # `disaster_recovery_method` if an error occurs while sending SIP traffic towards - # the configured Origination URL. We retrieve TwiML from the URL and execute the - # instructions like any other normal TwiML call. See {Disaster - # Recovery}[https://www.twilio.com/docs/sip-trunking#disaster-recovery] for more - # information. - # @param [String] disaster_recovery_method The HTTP method we should use to call - # the `disaster_recovery_url`. Can be: `GET` or `POST`. - # @param [trunk.TransferSetting] transfer_mode The call transfer settings for the - # trunk. Can be: `enable-all`, `sip-only` and `disable-all`. See - # {Transfer}[https://www.twilio.com/docs/sip-trunking/call-transfer] for more - # information. - # @param [Boolean] secure Whether Secure Trunking is enabled for the trunk. If - # enabled, all calls going through the trunk will be secure using SRTP for media - # and TLS for signaling. If disabled, then RTP will be used for media. See {Secure - # Trunking}[https://www.twilio.com/docs/sip-trunking#securetrunking] for more - # information. - # @param [Boolean] cnam_lookup_enabled Whether Caller ID Name (CNAM) lookup should - # be enabled for the trunk. If enabled, all inbound calls to the SIP Trunk from - # the United States and Canada automatically perform a CNAM Lookup and display - # Caller ID data on your phone. See {CNAM - # Lookups}[https://www.twilio.com/docs/sip-trunking#CNAM] for more information. - # @param [trunk.TransferCallerId] transfer_caller_id Caller Id for transfer - # target. Can be: `from-transferee` (default) or `from-transferor`. - # @return [TrunkInstance] Updated TrunkInstance - def update(friendly_name: :unset, domain_name: :unset, disaster_recovery_url: :unset, disaster_recovery_method: :unset, transfer_mode: :unset, secure: :unset, cnam_lookup_enabled: :unset, transfer_caller_id: :unset) - context.update( - friendly_name: friendly_name, - domain_name: domain_name, - disaster_recovery_url: disaster_recovery_url, - disaster_recovery_method: disaster_recovery_method, - transfer_mode: transfer_mode, - secure: secure, - cnam_lookup_enabled: cnam_lookup_enabled, - transfer_caller_id: transfer_caller_id, - ) - end - - ## - # Access the origination_urls - # @return [origination_urls] origination_urls - def origination_urls - context.origination_urls - end - - ## - # Access the credentials_lists - # @return [credentials_lists] credentials_lists - def credentials_lists - context.credentials_lists - end - - ## - # Access the ip_access_control_lists - # @return [ip_access_control_lists] ip_access_control_lists - def ip_access_control_lists - context.ip_access_control_lists - end - - ## - # Access the phone_numbers - # @return [phone_numbers] phone_numbers - def phone_numbers - context.phone_numbers - end - - ## - # Access the recordings - # @return [recordings] recordings - def recordings - context.recordings - end - - ## - # Provide a user friendly representation - def to_s - values = @params.map{|k, v| "#{k}: #{v}"}.join(" ") - "<Twilio.Trunking.V1.TrunkInstance #{values}>" - end - - ## - # Provide a detailed, user friendly representation - def inspect - values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ") - "<Twilio.Trunking.V1.TrunkInstance #{values}>" - end + end end - end end - end -end \ No newline at end of file +end