Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion manifest.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"variables": {
"${LATEST}": "3.360.1"
"${LATEST}": "3.362.0"
},
"endpoints": "https://raw.githubusercontent.com/aws/aws-sdk-php/${LATEST}/src/data/endpoints.json",
"services": {
Expand Down
8 changes: 8 additions & 0 deletions psalm.baseline.xml
Original file line number Diff line number Diff line change
Expand Up @@ -262,6 +262,14 @@
<code><![CDATA[list<Reason::*>]]></code>
</MoreSpecificReturnType>
</file>
<file src="src/Service/S3/src/Result/GetBucketEncryptionOutput.php">
<LessSpecificReturnStatement>
<code><![CDATA[$items]]></code>
</LessSpecificReturnStatement>
<MoreSpecificReturnType>
<code><![CDATA[list<EncryptionType::*>]]></code>
</MoreSpecificReturnType>
</file>
<file src="src/Service/S3/src/Result/ListObjectVersionsOutput.php">
<LessSpecificReturnStatement>
<code><![CDATA[$items]]></code>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
/**
* Throughput exceeds the current throughput quota for your account. For detailed information about why the request was
* throttled and the ARN of the impacted resource, find the ThrottlingReason [^1] field in the returned exception.
* Contact Amazon Web ServicesSupport [^2] to request a quota increase.
* Contact Amazon Web Services Support [^2] to request a quota increase.
*
* [^1]: https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ThrottlingReason.html
* [^2]: https://aws.amazon.com/support
Expand Down
1 change: 1 addition & 0 deletions src/Service/Lambda/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
- AWS api-change: Added `us-isob-west-1` region
- AWS api-change: Added SerializedRequestEntityTooLargeException to Lambda Invoke API
- AWS api-change: Add Python3.14 (python3.14) and Java 25 (java25) support to AWS Lambda
- AWS api-change: Added support for creating and invoking Tenant Isolated functions in AWS Lambda APIs.

### Dependency bumped

Expand Down
15 changes: 15 additions & 0 deletions src/Service/Lambda/src/Enum/TenantIsolationMode.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?php

namespace AsyncAws\Lambda\Enum;

final class TenantIsolationMode
{
public const PER_TENANT = 'PER_TENANT';

public static function exists(string $value): bool
{
return isset([
self::PER_TENANT => true,
][$value]);
}
}
25 changes: 25 additions & 0 deletions src/Service/Lambda/src/Input/InvocationRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,13 @@ final class InvocationRequest extends Input
*/
private $qualifier;

/**
* The identifier of the tenant in a multi-tenant Lambda function.
*
* @var string|null
*/
private $tenantId;

/**
* @param array{
* FunctionName?: string,
Expand All @@ -83,6 +90,7 @@ final class InvocationRequest extends Input
* ClientContext?: string|null,
* Payload?: string|null,
* Qualifier?: string|null,
* TenantId?: string|null,
* '@region'?: string|null,
* } $input
*/
Expand All @@ -94,6 +102,7 @@ public function __construct(array $input = [])
$this->clientContext = $input['ClientContext'] ?? null;
$this->payload = $input['Payload'] ?? null;
$this->qualifier = $input['Qualifier'] ?? null;
$this->tenantId = $input['TenantId'] ?? null;
parent::__construct($input);
}

Expand All @@ -105,6 +114,7 @@ public function __construct(array $input = [])
* ClientContext?: string|null,
* Payload?: string|null,
* Qualifier?: string|null,
* TenantId?: string|null,
* '@region'?: string|null,
* }|InvocationRequest $input
*/
Expand Down Expand Up @@ -149,6 +159,11 @@ public function getQualifier(): ?string
return $this->qualifier;
}

public function getTenantId(): ?string
{
return $this->tenantId;
}

/**
* @internal
*/
Expand All @@ -174,6 +189,9 @@ public function request(): Request
if (null !== $this->clientContext) {
$headers['X-Amz-Client-Context'] = $this->clientContext;
}
if (null !== $this->tenantId) {
$headers['X-Amz-Tenant-Id'] = $this->tenantId;
}

// Prepare query
$query = [];
Expand Down Expand Up @@ -243,4 +261,11 @@ public function setQualifier(?string $value): self

return $this;
}

public function setTenantId(?string $value): self
{
$this->tenantId = $value;

return $this;
}
}
1 change: 1 addition & 0 deletions src/Service/Lambda/src/LambdaClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -254,6 +254,7 @@ public function getFunctionConfiguration($input): FunctionConfiguration
* ClientContext?: string|null,
* Payload?: string|null,
* Qualifier?: string|null,
* TenantId?: string|null,
* '@region'?: string|null,
* }|InvocationRequest $input
*
Expand Down
24 changes: 24 additions & 0 deletions src/Service/Lambda/src/Result/FunctionConfiguration.php
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@
use AsyncAws\Lambda\ValueObject\RuntimeVersionConfig;
use AsyncAws\Lambda\ValueObject\RuntimeVersionError;
use AsyncAws\Lambda\ValueObject\SnapStartResponse;
use AsyncAws\Lambda\ValueObject\TenancyConfig;
use AsyncAws\Lambda\ValueObject\TracingConfigResponse;
use AsyncAws\Lambda\ValueObject\VpcConfigResponse;

Expand Down Expand Up @@ -329,6 +330,14 @@ class FunctionConfiguration extends Result
*/
private $loggingConfig;

/**
* The function's tenant isolation configuration settings. Determines whether the Lambda function runs on a shared or
* dedicated infrastructure per unique tenant.
*
* @var TenancyConfig|null
*/
private $tenancyConfig;

/**
* @return list<Architecture::*>
*/
Expand Down Expand Up @@ -580,6 +589,13 @@ public function getStateReasonCode(): ?string
return $this->stateReasonCode;
}

public function getTenancyConfig(): ?TenancyConfig
{
$this->initialize();

return $this->tenancyConfig;
}

public function getTimeout(): ?int
{
$this->initialize();
Expand Down Expand Up @@ -648,6 +664,7 @@ protected function populateResult(Response $response): void
$this->snapStart = empty($data['SnapStart']) ? null : $this->populateResultSnapStartResponse($data['SnapStart']);
$this->runtimeVersionConfig = empty($data['RuntimeVersionConfig']) ? null : $this->populateResultRuntimeVersionConfig($data['RuntimeVersionConfig']);
$this->loggingConfig = empty($data['LoggingConfig']) ? null : $this->populateResultLoggingConfig($data['LoggingConfig']);
$this->tenancyConfig = empty($data['TenancyConfig']) ? null : $this->populateResultTenancyConfig($data['TenancyConfig']);
}

/**
Expand Down Expand Up @@ -860,6 +877,13 @@ private function populateResultSubnetIds(array $json): array
return $items;
}

private function populateResultTenancyConfig(array $json): TenancyConfig
{
return new TenancyConfig([
'TenantIsolationMode' => (string) $json['TenantIsolationMode'],
]);
}

private function populateResultTracingConfigResponse(array $json): TracingConfigResponse
{
return new TracingConfigResponse([
Expand Down
9 changes: 9 additions & 0 deletions src/Service/Lambda/src/Result/ListFunctionsResponse.php
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
use AsyncAws\Lambda\ValueObject\RuntimeVersionConfig;
use AsyncAws\Lambda\ValueObject\RuntimeVersionError;
use AsyncAws\Lambda\ValueObject\SnapStartResponse;
use AsyncAws\Lambda\ValueObject\TenancyConfig;
use AsyncAws\Lambda\ValueObject\TracingConfigResponse;
use AsyncAws\Lambda\ValueObject\VpcConfigResponse;

Expand Down Expand Up @@ -234,6 +235,7 @@ private function populateResultFunctionConfiguration(array $json): FunctionConfi
'SnapStart' => empty($json['SnapStart']) ? null : $this->populateResultSnapStartResponse($json['SnapStart']),
'RuntimeVersionConfig' => empty($json['RuntimeVersionConfig']) ? null : $this->populateResultRuntimeVersionConfig($json['RuntimeVersionConfig']),
'LoggingConfig' => empty($json['LoggingConfig']) ? null : $this->populateResultLoggingConfig($json['LoggingConfig']),
'TenancyConfig' => empty($json['TenancyConfig']) ? null : $this->populateResultTenancyConfig($json['TenancyConfig']),
]);
}

Expand Down Expand Up @@ -380,6 +382,13 @@ private function populateResultSubnetIds(array $json): array
return $items;
}

private function populateResultTenancyConfig(array $json): TenancyConfig
{
return new TenancyConfig([
'TenantIsolationMode' => (string) $json['TenantIsolationMode'],
]);
}

private function populateResultTracingConfigResponse(array $json): TracingConfigResponse
{
return new TracingConfigResponse([
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@
use AsyncAws\Lambda\ValueObject\RuntimeVersionConfig;
use AsyncAws\Lambda\ValueObject\RuntimeVersionError;
use AsyncAws\Lambda\ValueObject\SnapStartResponse;
use AsyncAws\Lambda\ValueObject\TenancyConfig;
use AsyncAws\Lambda\ValueObject\TracingConfigResponse;
use AsyncAws\Lambda\ValueObject\VpcConfigResponse;

Expand Down Expand Up @@ -232,6 +233,7 @@ private function populateResultFunctionConfiguration(array $json): FunctionConfi
'SnapStart' => empty($json['SnapStart']) ? null : $this->populateResultSnapStartResponse($json['SnapStart']),
'RuntimeVersionConfig' => empty($json['RuntimeVersionConfig']) ? null : $this->populateResultRuntimeVersionConfig($json['RuntimeVersionConfig']),
'LoggingConfig' => empty($json['LoggingConfig']) ? null : $this->populateResultLoggingConfig($json['LoggingConfig']),
'TenancyConfig' => empty($json['TenancyConfig']) ? null : $this->populateResultTenancyConfig($json['TenancyConfig']),
]);
}

Expand Down Expand Up @@ -378,6 +380,13 @@ private function populateResultSubnetIds(array $json): array
return $items;
}

private function populateResultTenancyConfig(array $json): TenancyConfig
{
return new TenancyConfig([
'TenantIsolationMode' => (string) $json['TenantIsolationMode'],
]);
}

private function populateResultTracingConfigResponse(array $json): TracingConfigResponse
{
return new TracingConfigResponse([
Expand Down
16 changes: 16 additions & 0 deletions src/Service/Lambda/src/ValueObject/FunctionConfiguration.php
Original file line number Diff line number Diff line change
Expand Up @@ -312,6 +312,14 @@ final class FunctionConfiguration
*/
private $loggingConfig;

/**
* The function's tenant isolation configuration settings. Determines whether the Lambda function runs on a shared or
* dedicated infrastructure per unique tenant.
*
* @var TenancyConfig|null
*/
private $tenancyConfig;

/**
* @param array{
* FunctionName?: string|null,
Expand Down Expand Up @@ -350,6 +358,7 @@ final class FunctionConfiguration
* SnapStart?: SnapStartResponse|array|null,
* RuntimeVersionConfig?: RuntimeVersionConfig|array|null,
* LoggingConfig?: LoggingConfig|array|null,
* TenancyConfig?: TenancyConfig|array|null,
* } $input
*/
public function __construct(array $input)
Expand Down Expand Up @@ -390,6 +399,7 @@ public function __construct(array $input)
$this->snapStart = isset($input['SnapStart']) ? SnapStartResponse::create($input['SnapStart']) : null;
$this->runtimeVersionConfig = isset($input['RuntimeVersionConfig']) ? RuntimeVersionConfig::create($input['RuntimeVersionConfig']) : null;
$this->loggingConfig = isset($input['LoggingConfig']) ? LoggingConfig::create($input['LoggingConfig']) : null;
$this->tenancyConfig = isset($input['TenancyConfig']) ? TenancyConfig::create($input['TenancyConfig']) : null;
}

/**
Expand Down Expand Up @@ -430,6 +440,7 @@ public function __construct(array $input)
* SnapStart?: SnapStartResponse|array|null,
* RuntimeVersionConfig?: RuntimeVersionConfig|array|null,
* LoggingConfig?: LoggingConfig|array|null,
* TenancyConfig?: TenancyConfig|array|null,
* }|FunctionConfiguration $input
*/
public static function create($input): self
Expand Down Expand Up @@ -624,6 +635,11 @@ public function getStateReasonCode(): ?string
return $this->stateReasonCode;
}

public function getTenancyConfig(): ?TenancyConfig
{
return $this->tenancyConfig;
}

public function getTimeout(): ?int
{
return $this->timeout;
Expand Down
58 changes: 58 additions & 0 deletions src/Service/Lambda/src/ValueObject/TenancyConfig.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
<?php

namespace AsyncAws\Lambda\ValueObject;

use AsyncAws\Core\Exception\InvalidArgument;
use AsyncAws\Lambda\Enum\TenantIsolationMode;

/**
* Specifies the tenant isolation mode configuration for a Lambda function. This allows you to configure specific tenant
* isolation strategies for your function invocations. Tenant isolation configuration cannot be modified after function
* creation.
*/
final class TenancyConfig
{
/**
* Tenant isolation mode allows for invocation to be sent to a corresponding execution environment dedicated to a
* specific tenant ID.
*
* @var TenantIsolationMode::*
*/
private $tenantIsolationMode;

/**
* @param array{
* TenantIsolationMode: TenantIsolationMode::*,
* } $input
*/
public function __construct(array $input)
{
$this->tenantIsolationMode = $input['TenantIsolationMode'] ?? $this->throwException(new InvalidArgument('Missing required field "TenantIsolationMode".'));
}

/**
* @param array{
* TenantIsolationMode: TenantIsolationMode::*,
* }|TenancyConfig $input
*/
public static function create($input): self
{
return $input instanceof self ? $input : new self($input);
}

/**
* @return TenantIsolationMode::*
*/
public function getTenantIsolationMode(): string
{
return $this->tenantIsolationMode;
}

/**
* @return never
*/
private function throwException(\Throwable $exception)
{
throw $exception;
}
}
1 change: 1 addition & 0 deletions src/Service/S3/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
- AWS api-change: Added `us-isob-west-1` region
- Added `S3Client::putPublicAccessBlock()` method
- AWS api-change: Amazon Simple Storage Service / Features: Add conditional writes in CopyObject on destination key to prevent unintended object modifications.
- AWS api-change: Adds support for blocking SSE-C writes to general purpose buckets.

### Dependency bumped

Expand Down
17 changes: 17 additions & 0 deletions src/Service/S3/src/Enum/EncryptionType.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<?php

namespace AsyncAws\S3\Enum;

final class EncryptionType
{
public const NONE = 'NONE';
public const SSE_C = 'SSE-C';

public static function exists(string $value): bool
{
return isset([
self::NONE => true,
self::SSE_C => true,
][$value]);
}
}
Loading