## # This code was generated by # ___ _ _ _ _ _ _ ____ ____ ____ _ ____ ____ _ _ ____ ____ ____ ___ __ __ # | | | | | | | | | __ | | |__| | __ | __ |___ |\ | |___ |__/ |__| | | | |__/ # | |_|_| | |___ | |__| |__| | | | |__] |___ | \| |___ | \ | | | |__| | \ # # Twilio - Supersim # 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 Supersim < SupersimBase class V1 < Version class IpCommandList < ListResource ## # Initialize the IpCommandList # @param [Version] version Version that contains the resource # @return [IpCommandList] IpCommandList def initialize(version) super(version) # Path Solution @solution = { } @uri = "/IpCommands" end ## # Create the IpCommandInstance # @param [String] sim The `sid` or `unique_name` of the [Super SIM](https://www.twilio.com/docs/iot/supersim/api/sim-resource) to send the IP Command to. # @param [String] payload The data that will be sent to the device. The payload cannot exceed 1300 bytes. If the PayloadType is set to text, the payload is encoded in UTF-8. If PayloadType is set to binary, the payload is encoded in Base64. # @param [String] device_port The device port to which the IP Command will be sent. # @param [PayloadType] payload_type # @param [String] callback_url The URL we should call using the `callback_method` after we have sent the IP Command. # @param [String] callback_method The HTTP method we should use to call `callback_url`. Can be `GET` or `POST`, and the default is `POST`. # @return [IpCommandInstance] Created IpCommandInstance def create( sim: nil, payload: nil, device_port: nil, payload_type: :unset, callback_url: :unset, callback_method: :unset ) data = Twilio::Values.of({ 'Sim' => sim, 'Payload' => payload, 'DevicePort' => device_port, 'PayloadType' => payload_type, 'CallbackUrl' => callback_url, 'CallbackMethod' => callback_method, }) payload = @version.create('POST', @uri, data: data) IpCommandInstance.new( @version, payload, ) end ## # Lists IpCommandInstance records from the API as a list. # Unlike stream(), this operation is eager and will load `limit` records into # memory before returning. # @param [String] sim The SID or unique name of the Sim resource that IP Command was sent to or from. # @param [String] sim_iccid The ICCID of the Sim resource that IP Command was sent to or from. # @param [Status] status The status of the IP Command. Can be: `queued`, `sent`, `received` or `failed`. See the [IP Command Status Values](https://www.twilio.com/docs/iot/supersim/api/ipcommand-resource#status-values) for a description of each. # @param [Direction] direction The direction of the IP Command. Can be `to_sim` or `from_sim`. The value of `to_sim` is synonymous with the term `mobile terminated`, and `from_sim` is synonymous with the term `mobile originated`. # @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(sim: :unset, sim_iccid: :unset, status: :unset, direction: :unset, limit: nil, page_size: nil) self.stream( sim: sim, sim_iccid: sim_iccid, status: status, direction: direction, limit: limit, page_size: page_size ).entries 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 [String] sim The SID or unique name of the Sim resource that IP Command was sent to or from. # @param [String] sim_iccid The ICCID of the Sim resource that IP Command was sent to or from. # @param [Status] status The status of the IP Command. Can be: `queued`, `sent`, `received` or `failed`. See the [IP Command Status Values](https://www.twilio.com/docs/iot/supersim/api/ipcommand-resource#status-values) for a description of each. # @param [Direction] direction The direction of the IP Command. Can be `to_sim` or `from_sim`. The value of `to_sim` is synonymous with the term `mobile terminated`, and `from_sim` is synonymous with the term `mobile originated`. # @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(sim: :unset, sim_iccid: :unset, status: :unset, direction: :unset, limit: nil, page_size: nil) limits = @version.read_limits(limit, page_size) page = self.page( sim: sim, sim_iccid: sim_iccid, status: status, direction: direction, page_size: limits[:page_size], ) @version.stream(page, limit: limits[:limit], page_limit: limits[:page_limit]) end ## # When passed a block, yields IpCommandInstance 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, limit: limits[:limit], page_limit: limits[:page_limit]).each {|x| yield x} end ## # Retrieve a single page of IpCommandInstance records from the API. # Request is executed immediately. # @param [String] sim The SID or unique name of the Sim resource that IP Command was sent to or from. # @param [String] sim_iccid The ICCID of the Sim resource that IP Command was sent to or from. # @param [Status] status The status of the IP Command. Can be: `queued`, `sent`, `received` or `failed`. See the [IP Command Status Values](https://www.twilio.com/docs/iot/supersim/api/ipcommand-resource#status-values) for a description of each. # @param [Direction] direction The direction of the IP Command. Can be `to_sim` or `from_sim`. The value of `to_sim` is synonymous with the term `mobile terminated`, and `from_sim` is synonymous with the term `mobile originated`. # @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 IpCommandInstance def page(sim: :unset, sim_iccid: :unset, status: :unset, direction: :unset, page_token: :unset, page_number: :unset, page_size: :unset) params = Twilio::Values.of({ 'Sim' => sim, 'SimIccid' => sim_iccid, 'Status' => status, 'Direction' => direction, 'PageToken' => page_token, 'Page' => page_number, 'PageSize' => page_size, }) response = @version.page('GET', @uri, params: params) IpCommandPage.new(@version, response, @solution) end ## # Retrieve a single page of IpCommandInstance records from the API. # Request is executed immediately. # @param [String] target_url API-generated URL for the requested results page # @return [Page] Page of IpCommandInstance def get_page(target_url) response = @version.domain.request( 'GET', target_url ) IpCommandPage.new(@version, response, @solution) end # Provide a user friendly representation def to_s '#' end end ## #PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution. class IpCommandContext < InstanceContext ## # Initialize the IpCommandContext # @param [Version] version Version that contains the resource # @param [String] sid The SID of the IP Command resource to fetch. # @return [IpCommandContext] IpCommandContext def initialize(version, sid) super(version) # Path Solution @solution = { sid: sid, } @uri = "/IpCommands/#{@solution[:sid]}" end ## # Fetch the IpCommandInstance # @return [IpCommandInstance] Fetched IpCommandInstance def fetch payload = @version.fetch('GET', @uri) IpCommandInstance.new( @version, payload, sid: @solution[:sid], ) end ## # Provide a user friendly representation def to_s context = @solution.map{|k, v| "#{k}: #{v}"}.join(',') "#" end ## # Provide a detailed, user friendly representation def inspect context = @solution.map{|k, v| "#{k}: #{v}"}.join(',') "#" end end class IpCommandPage < Page ## # Initialize the IpCommandPage # @param [Version] version Version that contains the resource # @param [Response] response Response from the API # @param [Hash] solution Path solution for the resource # @return [IpCommandPage] IpCommandPage def initialize(version, response, solution) super(version, response) # Path Solution @solution = solution end ## # Build an instance of IpCommandInstance # @param [Hash] payload Payload response from the API # @return [IpCommandInstance] IpCommandInstance def get_instance(payload) IpCommandInstance.new(@version, payload) end ## # Provide a user friendly representation def to_s '' end end class IpCommandInstance < InstanceResource ## # Initialize the IpCommandInstance # @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 IpCommand # resource. # @param [String] sid The SID of the Call resource to fetch. # @return [IpCommandInstance] IpCommandInstance def initialize(version, payload , sid: nil) super(version) # Marshaled Properties @properties = { 'sid' => payload['sid'], 'account_sid' => payload['account_sid'], 'sim_sid' => payload['sim_sid'], 'sim_iccid' => payload['sim_iccid'], 'status' => payload['status'], 'direction' => payload['direction'], 'device_ip' => payload['device_ip'], 'device_port' => payload['device_port'] == nil ? payload['device_port'] : payload['device_port'].to_i, 'payload_type' => payload['payload_type'], 'payload' => payload['payload'], 'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']), 'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']), 'url' => payload['url'], } # 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 [IpCommandContext] CallContext for this CallInstance def context unless @instance_context @instance_context = IpCommandContext.new(@version , @params['sid']) end @instance_context end ## # @return [String] The unique string that we created to identify the IP Command resource. def sid @properties['sid'] end ## # @return [String] The SID of the [Account](https://www.twilio.com/docs/iam/api/account) that created the IP Command resource. def account_sid @properties['account_sid'] end ## # @return [String] The SID of the [Super SIM](https://www.twilio.com/docs/iot/supersim/api/sim-resource) that this IP Command was sent to or from. def sim_sid @properties['sim_sid'] end ## # @return [String] The [ICCID](https://en.wikipedia.org/wiki/Subscriber_identity_module#ICCID) of the [Super SIM](https://www.twilio.com/docs/iot/supersim/api/sim-resource) that this IP Command was sent to or from. def sim_iccid @properties['sim_iccid'] end ## # @return [Status] def status @properties['status'] end ## # @return [Direction] def direction @properties['direction'] end ## # @return [String] The IP address of the device that the IP Command was sent to or received from. For an IP Command sent to a Super SIM, `device_ip` starts out as `null`, and once the IP Command is “sent”, the `device_ip` will be filled out. An IP Command sent from a Super SIM have its `device_ip` always set. def device_ip @properties['device_ip'] end ## # @return [String] For an IP Command sent to a Super SIM, it would be the destination port of the IP message. For an IP Command sent from a Super SIM, it would be the source port of the IP message. def device_port @properties['device_port'] end ## # @return [PayloadType] def payload_type @properties['payload_type'] end ## # @return [String] The payload that is carried in the IP/UDP message. The payload can be encoded in either text or binary format. For text payload, UTF-8 encoding must be used. For an IP Command sent to a Super SIM, the payload is appended to the IP/UDP message “as is”. The payload should not exceed 1300 bytes. For an IP Command sent from a Super SIM, the payload from the received IP/UDP message is extracted and sent in binary encoding. For an IP Command sent from a Super SIM, the payload should not exceed 1300 bytes. If it is larger than 1300 bytes, there might be fragmentation on the upstream and the message may appear truncated. def payload @properties['payload'] end ## # @return [Time] The date and time in GMT when the resource was created specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. def date_created @properties['date_created'] end ## # @return [Time] The date and time in GMT when the resource was last updated specified in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format. def date_updated @properties['date_updated'] end ## # @return [String] The absolute URL of the IP Command resource. def url @properties['url'] end ## # Fetch the IpCommandInstance # @return [IpCommandInstance] Fetched IpCommandInstance def fetch context.fetch end ## # Provide a user friendly representation def to_s values = @params.map{|k, v| "#{k}: #{v}"}.join(" ") "" end ## # Provide a detailed, user friendly representation def inspect values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ") "" end end end end end end