getCredentialsInCache(); if ($credential === null) { $result = (new GenerateSessionAccessKey($this->credential))->request(); if ($result->getStatusCode() !== 200) { throw new RuntimeException(isset($result['Message']) ? $result['Message'] : (string)$result->getBody()); } if (!isset($result['SessionAccessKey']['SessionAccessKeyId'], $result['SessionAccessKey']['SessionAccessKeySecret'])) { throw new RuntimeException($this->error); } $credential = $result['SessionAccessKey']; $this->cache($credential); } return new StsCredential( $credential['SessionAccessKeyId'], $credential['SessionAccessKeySecret'], strtotime($credential['Expiration']) ); } }