diff options
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Token/Token.php')
-rw-r--r-- | vendor/aws/aws-sdk-php/src/Token/Token.php | 110 |
1 files changed, 110 insertions, 0 deletions
diff --git a/vendor/aws/aws-sdk-php/src/Token/Token.php b/vendor/aws/aws-sdk-php/src/Token/Token.php new file mode 100644 index 0000000..6d2c566 --- /dev/null +++ b/vendor/aws/aws-sdk-php/src/Token/Token.php @@ -0,0 +1,110 @@ +<?php +namespace Aws\Token; + +use Aws\Token\TokenInterface; + +/** + * Basic implementation of the AWS Token interface that allows callers to + * pass in an AWS token in the constructor. + */ +class Token implements TokenInterface, \Serializable +{ + protected $token; + protected $expires; + + /** + * Constructs a new basic token object, with the specified AWS + * token + * + * @param string $token Security token to use + * @param int $expires UNIX timestamp for when the token expires + */ + public function __construct($token, $expires = null) + { + $this->token = $token; + $this->expires = $expires; + } + + /** + * Sets the state of a token object + * + * @param array $state array containing 'token' and 'expires' + */ + public static function __set_state(array $state) + { + return new self( + $state['token'], + $state['expires'] + ); + } + + /** + * @return string + */ + public function getToken() + { + return $this->token; + } + + /** + * @return int + */ + public function getExpiration() + { + return $this->expires; + } + + /** + * @return bool + */ + public function isExpired() + { + return $this->expires !== null && time() >= $this->expires; + } + + /** + * @return array + */ + public function toArray() + { + return [ + 'token' => $this->token, + 'expires' => $this->expires + ]; + } + + /** + * @return string + */ + public function serialize() + { + return json_encode($this->__serialize()); + } + + /** + * Sets the state of the object from serialized json data + */ + public function unserialize($serialized) + { + $data = json_decode($serialized, true); + + $this->__unserialize($data); + } + + /** + * @return array + */ + public function __serialize() + { + return $this->toArray(); + } + + /** + * Sets the state of this object from an array + */ + public function __unserialize($data) + { + $this->token = $data['token']; + $this->expires = $data['expires']; + } +} |