/src/Twilio/Rest/Proxy/V1/ServiceContext.php
PHP | 178 lines | 82 code | 25 blank | 71 comment | 5 complexity | f3dd74a0d0ad5b505db06d0c7e6fae9f MD5 | raw file
Possible License(s): MIT
- <?php
- /**
- * This code was generated by
- * \ / _ _ _| _ _
- * | (_)\/(_)(_|\/| |(/_ v1.0.0
- * / /
- */
- namespace Twilio\Rest\Proxy\V1;
- use Twilio\Exceptions\TwilioException;
- use Twilio\InstanceContext;
- use Twilio\ListResource;
- use Twilio\Options;
- use Twilio\Rest\Proxy\V1\Service\PhoneNumberList;
- use Twilio\Rest\Proxy\V1\Service\SessionList;
- use Twilio\Rest\Proxy\V1\Service\ShortCodeList;
- use Twilio\Values;
- use Twilio\Version;
- /**
- * PLEASE NOTE that this class contains beta products that are subject to change. Use them with caution.
- *
- * @property SessionList $sessions
- * @property PhoneNumberList $phoneNumbers
- * @property ShortCodeList $shortCodes
- * @method \Twilio\Rest\Proxy\V1\Service\SessionContext sessions(string $sid)
- * @method \Twilio\Rest\Proxy\V1\Service\PhoneNumberContext phoneNumbers(string $sid)
- * @method \Twilio\Rest\Proxy\V1\Service\ShortCodeContext shortCodes(string $sid)
- */
- class ServiceContext extends InstanceContext {
- protected $_sessions;
- protected $_phoneNumbers;
- protected $_shortCodes;
- /**
- * Initialize the ServiceContext
- *
- * @param Version $version Version that contains the resource
- * @param string $sid The unique string that identifies the resource
- */
- public function __construct(Version $version, $sid) {
- parent::__construct($version);
- // Path Solution
- $this->solution = ['sid' => $sid, ];
- $this->uri = '/Services/' . \rawurlencode($sid) . '';
- }
- /**
- * Fetch the ServiceInstance
- *
- * @return ServiceInstance Fetched ServiceInstance
- * @throws TwilioException When an HTTP error occurs.
- */
- public function fetch(): ServiceInstance {
- $payload = $this->version->fetch('GET', $this->uri);
- return new ServiceInstance($this->version, $payload, $this->solution['sid']);
- }
- /**
- * Delete the ServiceInstance
- *
- * @return bool True if delete succeeds, false otherwise
- * @throws TwilioException When an HTTP error occurs.
- */
- public function delete(): bool {
- return $this->version->delete('DELETE', $this->uri);
- }
- /**
- * Update the ServiceInstance
- *
- * @param array|Options $options Optional Arguments
- * @return ServiceInstance Updated ServiceInstance
- * @throws TwilioException When an HTTP error occurs.
- */
- public function update(array $options = []): ServiceInstance {
- $options = new Values($options);
- $data = Values::of([
- 'UniqueName' => $options['uniqueName'],
- 'DefaultTtl' => $options['defaultTtl'],
- 'CallbackUrl' => $options['callbackUrl'],
- 'GeoMatchLevel' => $options['geoMatchLevel'],
- 'NumberSelectionBehavior' => $options['numberSelectionBehavior'],
- 'InterceptCallbackUrl' => $options['interceptCallbackUrl'],
- 'OutOfSessionCallbackUrl' => $options['outOfSessionCallbackUrl'],
- 'ChatInstanceSid' => $options['chatInstanceSid'],
- ]);
- $payload = $this->version->update('POST', $this->uri, [], $data);
- return new ServiceInstance($this->version, $payload, $this->solution['sid']);
- }
- /**
- * Access the sessions
- */
- protected function getSessions(): SessionList {
- if (!$this->_sessions) {
- $this->_sessions = new SessionList($this->version, $this->solution['sid']);
- }
- return $this->_sessions;
- }
- /**
- * Access the phoneNumbers
- */
- protected function getPhoneNumbers(): PhoneNumberList {
- if (!$this->_phoneNumbers) {
- $this->_phoneNumbers = new PhoneNumberList($this->version, $this->solution['sid']);
- }
- return $this->_phoneNumbers;
- }
- /**
- * Access the shortCodes
- */
- protected function getShortCodes(): ShortCodeList {
- if (!$this->_shortCodes) {
- $this->_shortCodes = new ShortCodeList($this->version, $this->solution['sid']);
- }
- return $this->_shortCodes;
- }
- /**
- * Magic getter to lazy load subresources
- *
- * @param string $name Subresource to return
- * @return ListResource The requested subresource
- * @throws TwilioException For unknown subresources
- */
- public function __get(string $name): ListResource {
- if (\property_exists($this, '_' . $name)) {
- $method = 'get' . \ucfirst($name);
- return $this->$method();
- }
- throw new TwilioException('Unknown subresource ' . $name);
- }
- /**
- * Magic caller to get resource contexts
- *
- * @param string $name Resource to return
- * @param array $arguments Context parameters
- * @return InstanceContext The requested resource context
- * @throws TwilioException For unknown resource
- */
- public function __call(string $name, array $arguments): InstanceContext {
- $property = $this->$name;
- if (\method_exists($property, 'getContext')) {
- return \call_user_func_array(array($property, 'getContext'), $arguments);
- }
- throw new TwilioException('Resource does not have a context');
- }
- /**
- * Provide a friendly representation
- *
- * @return string Machine friendly representation
- */
- public function __toString(): string {
- $context = [];
- foreach ($this->solution as $key => $value) {
- $context[] = "$key=$value";
- }
- return '[Twilio.Proxy.V1.ServiceContext ' . \implode(' ', $context) . ']';
- }
- }