Class: Twilio::REST::Proxy::V1::ServiceContext::SessionInstance

Inherits:
InstanceResource
  • Object
show all
Defined in:
lib/twilio-ruby/rest/proxy/v1/service/session.rb

Overview

PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.

Instance Method Summary collapse

Constructor Details

#initialize(version, payload, service_sid: nil, sid: nil) ⇒ SessionInstance

Initialize the SessionInstance

Parameters:

  • version (Version)

    Version that contains the resource

  • payload (Hash)

    payload that contains response from Twilio

  • service_sid (String) (defaults to: nil)

    The SID of the [Service](www.twilio.com/docs/proxy/api/service) the session is associated with.

  • sid (String) (defaults to: nil)

    The Twilio-provided string that uniquely identifies the Session resource to fetch.



341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 341

def initialize(version, payload, service_sid: nil, sid: nil)
  super(version)

  # Marshaled Properties
  @properties = {
      'sid' => payload['sid'],
      'service_sid' => payload['service_sid'],
      'account_sid' => payload['account_sid'],
      'date_started' => Twilio.deserialize_iso8601_datetime(payload['date_started']),
      'date_ended' => Twilio.deserialize_iso8601_datetime(payload['date_ended']),
      'date_last_interaction' => Twilio.deserialize_iso8601_datetime(payload['date_last_interaction']),
      'date_expiry' => Twilio.deserialize_iso8601_datetime(payload['date_expiry']),
      'unique_name' => payload['unique_name'],
      'status' => payload['status'],
      'closed_reason' => payload['closed_reason'],
      'ttl' => payload['ttl'].to_i,
      'mode' => payload['mode'],
      'date_created' => Twilio.deserialize_iso8601_datetime(payload['date_created']),
      'date_updated' => Twilio.deserialize_iso8601_datetime(payload['date_updated']),
      'url' => payload['url'],
      'links' => payload['links'],
  }

  # Context
  @instance_context = nil
  @params = {'service_sid' => service_sid, 'sid' => sid || @properties['sid'], }
end

Instance Method Details

#account_sidString

Returns The SID of the Account that created the resource.

Returns:

  • (String)

    The SID of the Account that created the resource



394
395
396
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 394

def 
  @properties['account_sid']
end

#closed_reasonString

Returns The reason the Session ended.

Returns:

  • (String)

    The reason the Session ended



436
437
438
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 436

def closed_reason
  @properties['closed_reason']
end

#contextSessionContext

Generate an instance context for the instance, the context is capable of performing various actions. All instance actions are proxied to the context

Returns:



373
374
375
376
377
378
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 373

def context
  unless @instance_context
    @instance_context = SessionContext.new(@version, @params['service_sid'], @params['sid'], )
  end
  @instance_context
end

#date_createdTime

Returns The ISO 8601 date and time in GMT when the resource was created.

Returns:

  • (Time)

    The ISO 8601 date and time in GMT when the resource was created



454
455
456
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 454

def date_created
  @properties['date_created']
end

#date_endedTime

Returns The ISO 8601 date when the Session ended.

Returns:

  • (Time)

    The ISO 8601 date when the Session ended



406
407
408
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 406

def date_ended
  @properties['date_ended']
end

#date_expiryTime

Returns The ISO 8601 date when the Session should expire.

Returns:

  • (Time)

    The ISO 8601 date when the Session should expire



418
419
420
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 418

def date_expiry
  @properties['date_expiry']
end

#date_last_interactionTime

Returns The ISO 8601 date when the Session last had an interaction.

Returns:

  • (Time)

    The ISO 8601 date when the Session last had an interaction



412
413
414
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 412

def date_last_interaction
  @properties['date_last_interaction']
end

#date_startedTime

Returns The ISO 8601 date when the Session started.

Returns:

  • (Time)

    The ISO 8601 date when the Session started



400
401
402
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 400

def date_started
  @properties['date_started']
end

#date_updatedTime

Returns The ISO 8601 date and time in GMT when the resource was last updated.

Returns:

  • (Time)

    The ISO 8601 date and time in GMT when the resource was last updated



460
461
462
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 460

def date_updated
  @properties['date_updated']
end

#deleteBoolean

Delete the SessionInstance

Returns:

  • (Boolean)

    true if delete succeeds, false otherwise



486
487
488
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 486

def delete
  context.delete
end

#fetchSessionInstance

Fetch the SessionInstance

Returns:



479
480
481
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 479

def fetch
  context.fetch
end

#inspectObject

Provide a detailed, user friendly representation



542
543
544
545
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 542

def inspect
  values = @properties.map{|k, v| "#{k}: #{v}"}.join(" ")
  "<Twilio.Proxy.V1.SessionInstance #{values}>"
end

#interactionsinteractions

Access the interactions

Returns:



522
523
524
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 522

def interactions
  context.interactions
end

Returns The URLs of resources related to the Session.

Returns:

  • (String)

    The URLs of resources related to the Session



472
473
474
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 472

def links
  @properties['links']
end

#modesession.Mode

Returns The Mode of the Session.

Returns:

  • (session.Mode)

    The Mode of the Session



448
449
450
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 448

def mode
  @properties['mode']
end

#participantsparticipants

Access the participants

Returns:



529
530
531
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 529

def participants
  context.participants
end

#service_sidString

Returns The SID of the resource’s parent Service.

Returns:

  • (String)

    The SID of the resource’s parent Service



388
389
390
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 388

def service_sid
  @properties['service_sid']
end

#sidString

Returns The unique string that identifies the resource.

Returns:

  • (String)

    The unique string that identifies the resource



382
383
384
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 382

def sid
  @properties['sid']
end

#statussession.Status

Returns The status of the Session.

Returns:

  • (session.Status)

    The status of the Session



430
431
432
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 430

def status
  @properties['status']
end

#to_sObject

Provide a user friendly representation



535
536
537
538
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 535

def to_s
  values = @params.map{|k, v| "#{k}: #{v}"}.join(" ")
  "<Twilio.Proxy.V1.SessionInstance #{values}>"
end

#ttlString

Returns When the session will expire.

Returns:

  • (String)

    When the session will expire



442
443
444
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 442

def ttl
  @properties['ttl']
end

#unique_nameString

Returns An application-defined string that uniquely identifies the resource.

Returns:

  • (String)

    An application-defined string that uniquely identifies the resource



424
425
426
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 424

def unique_name
  @properties['unique_name']
end

#update(date_expiry: :unset, ttl: :unset, status: :unset, fail_on_participant_conflict: :unset) ⇒ SessionInstance

Update the SessionInstance

Parameters:

  • date_expiry (Time) (defaults to: :unset)

    The [ISO 8601](en.wikipedia.org/wiki/ISO_8601) date when the Session should expire. If this is value is present, it overrides the ‘ttl` value.

  • ttl (String) (defaults to: :unset)

    The time, in seconds, when the session will expire. The time is measured from the last Session create or the Session’s last Interaction.

  • status (session.Status) (defaults to: :unset)

    The new status of the resource. Can be: ‘in-progress` to re-open a session or `closed` to close a session.

  • fail_on_participant_conflict (Boolean) (defaults to: :unset)
    Experimental

    Setting to true

    enables early opt-in to allowing Proxy to return a 400 error (Twilio error code 80604) when a request to set a Session to in-progress would cause Participants with the same Identifier/ProxyIdentifier pair to be active in multiple Sessions. If not provided, or if set to false, requests will be allowed to succeed, and a Debugger notification (80801) will be emitted. Having multiple, active Participants with the same Identifier/ProxyIdentifier pair causes calls and messages from affected Participants to be routed incorrectly. Please note, in a future release, the default behavior will be to reject the request with a 400 error unless an exception has been requested.

Returns:



510
511
512
513
514
515
516
517
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 510

def update(date_expiry: :unset, ttl: :unset, status: :unset, fail_on_participant_conflict: :unset)
  context.update(
      date_expiry: date_expiry,
      ttl: ttl,
      status: status,
      fail_on_participant_conflict: fail_on_participant_conflict,
  )
end

#urlString

Returns The absolute URL of the Session resource.

Returns:

  • (String)

    The absolute URL of the Session resource



466
467
468
# File 'lib/twilio-ruby/rest/proxy/v1/service/session.rb', line 466

def url
  @properties['url']
end