summaryrefslogtreecommitdiff
path: root/vendor/aws/aws-sdk-php/src/Token/Token.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/aws/aws-sdk-php/src/Token/Token.php')
-rw-r--r--vendor/aws/aws-sdk-php/src/Token/Token.php110
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'];
+ }
+}