%PDF- %PDF-
| Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/vendor/async-aws/core/src/Sts/ |
| Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/vendor/async-aws/core/src/Sts/StsClient.php |
<?php
namespace AsyncAws\Core\Sts;
use AsyncAws\Core\AbstractApi;
use AsyncAws\Core\AwsError\AwsErrorFactoryInterface;
use AsyncAws\Core\AwsError\XmlAwsErrorFactory;
use AsyncAws\Core\RequestContext;
use AsyncAws\Core\Sts\Exception\ExpiredTokenException;
use AsyncAws\Core\Sts\Exception\IDPCommunicationErrorException;
use AsyncAws\Core\Sts\Exception\IDPRejectedClaimException;
use AsyncAws\Core\Sts\Exception\InvalidIdentityTokenException;
use AsyncAws\Core\Sts\Exception\MalformedPolicyDocumentException;
use AsyncAws\Core\Sts\Exception\PackedPolicyTooLargeException;
use AsyncAws\Core\Sts\Exception\RegionDisabledException;
use AsyncAws\Core\Sts\Input\AssumeRoleRequest;
use AsyncAws\Core\Sts\Input\AssumeRoleWithWebIdentityRequest;
use AsyncAws\Core\Sts\Input\GetCallerIdentityRequest;
use AsyncAws\Core\Sts\Result\AssumeRoleResponse;
use AsyncAws\Core\Sts\Result\AssumeRoleWithWebIdentityResponse;
use AsyncAws\Core\Sts\Result\GetCallerIdentityResponse;
use AsyncAws\Core\Sts\ValueObject\PolicyDescriptorType;
use AsyncAws\Core\Sts\ValueObject\Tag;
class StsClient extends AbstractApi
{
/**
* Returns a set of temporary security credentials that you can use to access Amazon Web Services resources that you
* might not normally have access to. These temporary credentials consist of an access key ID, a secret access key, and
* a security token. Typically, you use `AssumeRole` within your account or for cross-account access. For a comparison
* of `AssumeRole` with other API operations that produce temporary credentials, see Requesting Temporary Security
* Credentials and Comparing the Amazon Web Services STS API operations in the *IAM User Guide*.
*
* @see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
* @see https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
* @see https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html
* @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sts-2011-06-15.html#assumerole
*
* @param array{
* RoleArn: string,
* RoleSessionName: string,
* PolicyArns?: PolicyDescriptorType[],
* Policy?: string,
* DurationSeconds?: int,
* Tags?: Tag[],
* TransitiveTagKeys?: string[],
* ExternalId?: string,
* SerialNumber?: string,
* TokenCode?: string,
* SourceIdentity?: string,
* @region?: string,
* }|AssumeRoleRequest $input
*
* @throws MalformedPolicyDocumentException
* @throws PackedPolicyTooLargeException
* @throws RegionDisabledException
* @throws ExpiredTokenException
*/
public function assumeRole($input): AssumeRoleResponse
{
$input = AssumeRoleRequest::create($input);
$response = $this->getResponse($input->request(), new RequestContext(['operation' => 'AssumeRole', 'region' => $input->getRegion(), 'exceptionMapping' => [
'MalformedPolicyDocument' => MalformedPolicyDocumentException::class,
'PackedPolicyTooLarge' => PackedPolicyTooLargeException::class,
'RegionDisabledException' => RegionDisabledException::class,
'ExpiredTokenException' => ExpiredTokenException::class,
]]));
return new AssumeRoleResponse($response);
}
/**
* Returns a set of temporary security credentials for users who have been authenticated in a mobile or web application
* with a web identity provider. Example providers include the OAuth 2.0 providers Login with Amazon and Facebook, or
* any OpenID Connect-compatible identity provider such as Google or Amazon Cognito federated identities.
*
* @see https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-identity.html
* @see https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRoleWithWebIdentity.html
* @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sts-2011-06-15.html#assumerolewithwebidentity
*
* @param array{
* RoleArn: string,
* RoleSessionName: string,
* WebIdentityToken: string,
* ProviderId?: string,
* PolicyArns?: PolicyDescriptorType[],
* Policy?: string,
* DurationSeconds?: int,
* @region?: string,
* }|AssumeRoleWithWebIdentityRequest $input
*
* @throws MalformedPolicyDocumentException
* @throws PackedPolicyTooLargeException
* @throws IDPRejectedClaimException
* @throws IDPCommunicationErrorException
* @throws InvalidIdentityTokenException
* @throws ExpiredTokenException
* @throws RegionDisabledException
*/
public function assumeRoleWithWebIdentity($input): AssumeRoleWithWebIdentityResponse
{
$input = AssumeRoleWithWebIdentityRequest::create($input);
$response = $this->getResponse($input->request(), new RequestContext(['operation' => 'AssumeRoleWithWebIdentity', 'region' => $input->getRegion(), 'exceptionMapping' => [
'MalformedPolicyDocument' => MalformedPolicyDocumentException::class,
'PackedPolicyTooLarge' => PackedPolicyTooLargeException::class,
'IDPRejectedClaim' => IDPRejectedClaimException::class,
'IDPCommunicationError' => IDPCommunicationErrorException::class,
'InvalidIdentityToken' => InvalidIdentityTokenException::class,
'ExpiredTokenException' => ExpiredTokenException::class,
'RegionDisabledException' => RegionDisabledException::class,
]]));
return new AssumeRoleWithWebIdentityResponse($response);
}
/**
* Returns details about the IAM user or role whose credentials are used to call the operation.
*
* @see https://docs.aws.amazon.com/STS/latest/APIReference/API_GetCallerIdentity.html
* @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-sts-2011-06-15.html#getcalleridentity
*
* @param array{
* @region?: string,
* }|GetCallerIdentityRequest $input
*/
public function getCallerIdentity($input = []): GetCallerIdentityResponse
{
$input = GetCallerIdentityRequest::create($input);
$response = $this->getResponse($input->request(), new RequestContext(['operation' => 'GetCallerIdentity', 'region' => $input->getRegion()]));
return new GetCallerIdentityResponse($response);
}
protected function getAwsErrorFactory(): AwsErrorFactoryInterface
{
return new XmlAwsErrorFactory();
}
protected function getEndpointMetadata(?string $region): array
{
if (null === $region) {
return [
'endpoint' => 'https://sts.amazonaws.com',
'signRegion' => 'us-east-1',
'signService' => 'sts',
'signVersions' => ['v4'],
];
}
switch ($region) {
case 'cn-north-1':
case 'cn-northwest-1':
return [
'endpoint' => "https://sts.$region.amazonaws.com.cn",
'signRegion' => $region,
'signService' => 'sts',
'signVersions' => ['v4'],
];
case 'us-east-1-fips':
return [
'endpoint' => 'https://sts-fips.us-east-1.amazonaws.com',
'signRegion' => 'us-east-1',
'signService' => 'sts',
'signVersions' => ['v4'],
];
case 'us-east-2-fips':
return [
'endpoint' => 'https://sts-fips.us-east-2.amazonaws.com',
'signRegion' => 'us-east-2',
'signService' => 'sts',
'signVersions' => ['v4'],
];
case 'us-west-1-fips':
return [
'endpoint' => 'https://sts-fips.us-west-1.amazonaws.com',
'signRegion' => 'us-west-1',
'signService' => 'sts',
'signVersions' => ['v4'],
];
case 'us-west-2-fips':
return [
'endpoint' => 'https://sts-fips.us-west-2.amazonaws.com',
'signRegion' => 'us-west-2',
'signService' => 'sts',
'signVersions' => ['v4'],
];
case 'us-gov-east-1-fips':
return [
'endpoint' => 'https://sts.us-gov-east-1.amazonaws.com',
'signRegion' => 'us-gov-east-1',
'signService' => 'sts',
'signVersions' => ['v4'],
];
case 'us-gov-west-1-fips':
return [
'endpoint' => 'https://sts.us-gov-west-1.amazonaws.com',
'signRegion' => 'us-gov-west-1',
'signService' => 'sts',
'signVersions' => ['v4'],
];
case 'us-iso-east-1':
case 'us-iso-west-1':
return [
'endpoint' => "https://sts.$region.c2s.ic.gov",
'signRegion' => $region,
'signService' => 'sts',
'signVersions' => ['v4'],
];
case 'us-isob-east-1':
return [
'endpoint' => 'https://sts.us-isob-east-1.sc2s.sgov.gov',
'signRegion' => 'us-isob-east-1',
'signService' => 'sts',
'signVersions' => ['v4'],
];
}
return [
'endpoint' => "https://sts.$region.amazonaws.com",
'signRegion' => $region,
'signService' => 'sts',
'signVersions' => ['v4'],
];
}
protected function getServiceCode(): string
{
@trigger_error('Using the client with an old version of Core is deprecated. Run "composer update async-aws/core".', \E_USER_DEPRECATED);
return 'sts';
}
protected function getSignatureScopeName(): string
{
@trigger_error('Using the client with an old version of Core is deprecated. Run "composer update async-aws/core".', \E_USER_DEPRECATED);
return 'sts';
}
protected function getSignatureVersion(): string
{
@trigger_error('Using the client with an old version of Core is deprecated. Run "composer update async-aws/core".', \E_USER_DEPRECATED);
return 'v4';
}
}