<?php
/**
* This code was generated by
* \ / _ _ _| _ _
* | (_)\/(_)(_|\/| |(/_ v1.0.0
* / /
*/
namespace Twilio\Rest\Proxy\V1;
use Twilio\Options;
use Twilio\Values;
/**
* PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
*/
abstract class ServiceOptions {
/**
* @param integer $defaultTtl Default TTL for Sessions in Service, in seconds.
* @param string $callbackUrl URL Twilio will send callbacks to
* @param string $geoMatchLevel Whether to limit proxy numbers in the same
* areacode.
* @param string $numberSelectionBehavior What behavior to use when choosing a
* proxy number.
* @param string $interceptCallbackUrl A URL for Twilio call before each
* Interaction.
* @param string $outOfSessionCallbackUrl A URL for Twilio call when a new
* Interaction has no Session.
* @return CreateServiceOptions Options builder
*/
public static function create($defaultTtl = Values::NONE, $callbackUrl = Values::NONE, $geoMatchLevel = Values::NONE, $numberSelectionBehavior = Values::NONE, $interceptCallbackUrl = Values::NONE, $outOfSessionCallbackUrl = Values::NONE) {
return new CreateServiceOptions($defaultTtl, $callbackUrl, $geoMatchLevel, $numberSelectionBehavior, $interceptCallbackUrl, $outOfSessionCallbackUrl);
}
/**
* @param string $uniqueName A human readable description of this resource.
* @param integer $defaultTtl Default TTL for Sessions in Service, in seconds.
* @param string $callbackUrl URL Twilio will send callbacks to
* @param string $geoMatchLevel Whether to find proxy numbers in the same
* areacode.
* @param string $numberSelectionBehavior What behavior to use when choosing a
* proxy number.
* @param string $interceptCallbackUrl A URL for Twilio call before each
* Interaction.
* @param string $outOfSessionCallbackUrl A URL for Twilio call when a new
* Interaction has no Session.
* @return UpdateServiceOptions Options builder
*/
public static function update($uniqueName = Values::NONE, $defaultTtl = Values::NONE, $callbackUrl = Values::NONE, $geoMatchLevel = Values::NONE, $numberSelectionBehavior = Values::NONE, $interceptCallbackUrl = Values::NONE, $outOfSessionCallbackUrl = Values::NONE) {
return new UpdateServiceOptions($uniqueName, $defaultTtl, $callbackUrl, $geoMatchLevel, $numberSelectionBehavior, $interceptCallbackUrl, $outOfSessionCallbackUrl);
}
}
class CreateServiceOptions extends Options {
/**
* @param integer $defaultTtl Default TTL for Sessions in Service, in seconds.
* @param string $callbackUrl URL Twilio will send callbacks to
* @param string $geoMatchLevel Whether to limit proxy numbers in the same
* areacode.
* @param string $numberSelectionBehavior What behavior to use when choosing a
* proxy number.
* @param string $interceptCallbackUrl A URL for Twilio call before each
* Interaction.
* @param string $outOfSessionCallbackUrl A URL for Twilio call when a new
* Interaction has no Session.
*/
public function __construct($defaultTtl = Values::NONE, $callbackUrl = Values::NONE, $geoMatchLevel = Values::NONE, $numberSelectionBehavior = Values::NONE, $interceptCallbackUrl = Values::NONE, $outOfSessionCallbackUrl = Values::NONE) {
$this->options['defaultTtl'] = $defaultTtl;
$this->options['callbackUrl'] = $callbackUrl;
$this->options['geoMatchLevel'] = $geoMatchLevel;
$this->options['numberSelectionBehavior'] = $numberSelectionBehavior;
$this->options['interceptCallbackUrl'] = $interceptCallbackUrl;
$this->options['outOfSessionCallbackUrl'] = $outOfSessionCallbackUrl;
}
/**
* The default time delay, in seconds, after which a session will be expired. Will be used for sessions where ttl is not specified.
*
* @param integer $defaultTtl Default TTL for Sessions in Service, in seconds.
* @return $this Fluent Builder
*/
public function setDefaultTtl($defaultTtl) {
$this->options['defaultTtl'] = $defaultTtl;
return $this;
}
/**
* The URL to which Twilio will make callbacks on interaction status changes.
*
* @param string $callbackUrl URL Twilio will send callbacks to
* @return $this Fluent Builder
*/
public function setCallbackUrl($callbackUrl) {
$this->options['callbackUrl'] = $callbackUrl;
return $this;
}
/**
* Options: country, area-code, extended-area-code. Default: country. Levels lower than country are only available in North America.
*
* @param string $geoMatchLevel Whether to limit proxy numbers in the same
* areacode.
* @return $this Fluent Builder
*/
public function setGeoMatchLevel($geoMatchLevel) {
$this->options['geoMatchLevel'] = $geoMatchLevel;
return $this;
}
/**
* Default: prefer-sticky Options: prefer-sticky, avoid-sticky
*
* @param string $numberSelectionBehavior What behavior to use when choosing a
* proxy number.
* @return $this Fluent Builder
*/
public function setNumberSelectionBehavior($numberSelectionBehavior) {
$this->options['numberSelectionBehavior'] = $numberSelectionBehavior;
return $this;
}
/**
* A URL for Twilio call before each Interaction. An error status code will prevent the interaction from continuing.
*
* @param string $interceptCallbackUrl A URL for Twilio call before each
* Interaction.
* @return $this Fluent Builder
*/
public function setInterceptCallbackUrl($interceptCallbackUrl) {
$this->options['interceptCallbackUrl'] = $interceptCallbackUrl;
return $this;
}
/**
* A URL for Twilio call when a new Interaction has no Session.
*
* @param string $outOfSessionCallbackUrl A URL for Twilio call when a new
* Interaction has no Session.
* @return $this Fluent Builder
*/
public function setOutOfSessionCallbackUrl($outOfSessionCallbackUrl) {
$this->options['outOfSessionCallbackUrl'] = $outOfSessionCallbackUrl;
return $this;
}
/**
* Provide a friendly representation
*
* @return string Machine friendly representation
*/
public function __toString() {
$options = array();
foreach ($this->options as $key => $value) {
if ($value != Values::NONE) {
$options[] = "$key=$value";
}
}
return '[Twilio.Proxy.V1.CreateServiceOptions ' . implode(' ', $options) . ']';
}
}
class UpdateServiceOptions extends Options {
/**
* @param string $uniqueName A human readable description of this resource.
* @param integer $defaultTtl Default TTL for Sessions in Service, in seconds.
* @param string $callbackUrl URL Twilio will send callbacks to
* @param string $geoMatchLevel Whether to find proxy numbers in the same
* areacode.
* @param string $numberSelectionBehavior What behavior to use when choosing a
* proxy number.
* @param string $interceptCallbackUrl A URL for Twilio call before each
* Interaction.
* @param string $outOfSessionCallbackUrl A URL for Twilio call when a new
* Interaction has no Session.
*/
public function __construct($uniqueName = Values::NONE, $defaultTtl = Values::NONE, $callbackUrl = Values::NONE, $geoMatchLevel = Values::NONE, $numberSelectionBehavior = Values::NONE, $interceptCallbackUrl = Values::NONE, $outOfSessionCallbackUrl = Values::NONE) {
$this->options['uniqueName'] = $uniqueName;
$this->options['defaultTtl'] = $defaultTtl;
$this->options['callbackUrl'] = $callbackUrl;
$this->options['geoMatchLevel'] = $geoMatchLevel;
$this->options['numberSelectionBehavior'] = $numberSelectionBehavior;
$this->options['interceptCallbackUrl'] = $interceptCallbackUrl;
$this->options['outOfSessionCallbackUrl'] = $outOfSessionCallbackUrl;
}
/**
* A human readable description of this resource, up to 64 characters.
*
* @param string $uniqueName A human readable description of this resource.
* @return $this Fluent Builder
*/
public function setUniqueName($uniqueName) {
$this->options['uniqueName'] = $uniqueName;
return $this;
}
/**
* The default time delay, in seconds, after which a session will be expired. Will be used for sessions where ttl is not specified.
*
* @param integer $defaultTtl Default TTL for Sessions in Service, in seconds.
* @return $this Fluent Builder
*/
public function setDefaultTtl($defaultTtl) {
$this->options['defaultTtl'] = $defaultTtl;
return $this;
}
/**
* The URL to which Twilio will make callbacks on interaction status changes.
*
* @param string $callbackUrl URL Twilio will send callbacks to
* @return $this Fluent Builder
*/
public function setCallbackUrl($callbackUrl) {
$this->options['callbackUrl'] = $callbackUrl;
return $this;
}
/**
* Default: country Options: country, area-code, extended-area-code
*
* @param string $geoMatchLevel Whether to find proxy numbers in the same
* areacode.
* @return $this Fluent Builder
*/
public function setGeoMatchLevel($geoMatchLevel) {
$this->options['geoMatchLevel'] = $geoMatchLevel;
return $this;
}
/**
* Default: prefer-sticky Options: prefer-sticky, avoid-sticky
*
* @param string $numberSelectionBehavior What behavior to use when choosing a
* proxy number.
* @return $this Fluent Builder
*/
public function setNumberSelectionBehavior($numberSelectionBehavior) {
$this->options['numberSelectionBehavior'] = $numberSelectionBehavior;
return $this;
}
/**
* Fires on each interaction. If responded to with a 403 to this webhook, we will abort/block the interaction. For any other status or timeout, the interaction continues.
*
* @param string $interceptCallbackUrl A URL for Twilio call before each
* Interaction.
* @return $this Fluent Builder
*/
public function setInterceptCallbackUrl($interceptCallbackUrl) {
$this->options['interceptCallbackUrl'] = $interceptCallbackUrl;
return $this;
}
/**
* A URL for Twilio call when a new Interaction has no Session.
*
* @param string $outOfSessionCallbackUrl A URL for Twilio call when a new
* Interaction has no Session.
* @return $this Fluent Builder
*/
public function setOutOfSessionCallbackUrl($outOfSessionCallbackUrl) {
$this->options['outOfSessionCallbackUrl'] = $outOfSessionCallbackUrl;
return $this;
}
/**
* Provide a friendly representation
*
* @return string Machine friendly representation
*/
public function __toString() {
$options = array();
foreach ($this->options as $key => $value) {
if ($value != Values::NONE) {
$options[] = "$key=$value";
}
}
return '[Twilio.Proxy.V1.UpdateServiceOptions ' . implode(' ', $options) . ']';
}
}