Skip to content

Commit 21d816d

Browse files
committed
Add com.amazon.aws.lambda.Credentials class
1 parent 47c7eac commit 21d816d

File tree

1 file changed

+64
-0
lines changed

1 file changed

+64
-0
lines changed
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?php namespace com\amazon\aws\lambda;
2+
3+
use lang\Value;
4+
use util\Secret;
5+
6+
class Credentials implements Value {
7+
private $accessKey, $secretKey, $sessionToken;
8+
9+
/**
10+
* Creates a new instance
11+
*
12+
* @param string $accessKey
13+
* @param string|util.Secret $secretKey
14+
* @param ?string $sessionToken
15+
*/
16+
public function __construct($accessKey, $secretKey, $sessionToken= null) {
17+
$this->accessKey= $accessKey;
18+
$this->secretKey= $secretKey instanceof Secret ? $secretKey : new Secret($secretKey);
19+
$this->sessionToken= $sessionToken;
20+
}
21+
22+
/** @return string */
23+
public function accessKey() { return $this->accessKey; }
24+
25+
/** @return util.Secret */
26+
public function secretKey() { return $this->secretKey; }
27+
28+
/** @return ?string */
29+
public function sessionToken() { return $this->sessionToken; }
30+
31+
/** @return string */
32+
public function hashCode() {
33+
return 'C'.sha1($this->accessKey.$this->secretKey->reveal().$this->sessionToken);
34+
}
35+
36+
/** @return string */
37+
public function toString() {
38+
return sprintf(
39+
'%s(accessKey: %s, secretKey: %s%s)',
40+
nameof($this),
41+
$this->accessKey,
42+
str_repeat('*', strlen($this->secretKey->reveal())),
43+
null === $this->sessionToken ? '' : ', sessionToken: '.$this->sessionToken
44+
);
45+
}
46+
47+
/**
48+
* Comparison
49+
*
50+
* @param var $value
51+
* @return int
52+
*/
53+
public function compareTo($value) {
54+
if (!($value instanceof self)) return 1;
55+
56+
$r= $this->accessKey <=> $value->accessKey;
57+
if (0 !== $r) return $r;
58+
59+
$r= $this->sessionToken <=> $value->sessionToken;
60+
if (0 !== $r) return $r;
61+
62+
return $this->secretKey->equals($value->secretKey) ? 0 : 1;
63+
}
64+
}

0 commit comments

Comments
 (0)