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.362.1"
"${LATEST}": "3.363.0"
},
"endpoints": "https://raw.githubusercontent.com/aws/aws-sdk-php/${LATEST}/src/data/endpoints.json",
"services": {
Expand Down
4 changes: 4 additions & 0 deletions src/Service/Athena/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,10 @@

## NOT RELEASED

### Added

- AWS api-change: Introduces Spark workgroup features including log persistence, S3/CloudWatch delivery, UI and History Server APIs, and SparkConnect 3.5.6 support. Adds DPU usage limits at workgroup and query levels as well as DPU usage tracking for Capacity Reservation queries to optimize performance and costs.

### Dependency bumped

- Drop support for PHP versions lower than 8.2
Expand Down
7 changes: 7 additions & 0 deletions src/Service/Athena/src/AthenaClient.php
Original file line number Diff line number Diff line change
Expand Up @@ -53,9 +53,11 @@
use AsyncAws\Athena\Result\TerminateSessionResponse;
use AsyncAws\Athena\ValueObject\CalculationConfiguration;
use AsyncAws\Athena\ValueObject\EngineConfiguration;
use AsyncAws\Athena\ValueObject\MonitoringConfiguration;
use AsyncAws\Athena\ValueObject\QueryExecutionContext;
use AsyncAws\Athena\ValueObject\ResultConfiguration;
use AsyncAws\Athena\ValueObject\ResultReuseConfiguration;
use AsyncAws\Athena\ValueObject\Tag;
use AsyncAws\Core\AbstractApi;
use AsyncAws\Core\AwsError\AwsErrorFactoryInterface;
use AsyncAws\Core\AwsError\JsonRpcAwsErrorFactory;
Expand Down Expand Up @@ -551,6 +553,7 @@ public function startCalculationExecution($input): StartCalculationExecutionResp
* WorkGroup?: string|null,
* ExecutionParameters?: string[]|null,
* ResultReuseConfiguration?: ResultReuseConfiguration|array|null,
* EngineConfiguration?: EngineConfiguration|array|null,
* '@region'?: string|null,
* }|StartQueryExecutionInput $input
*
Expand Down Expand Up @@ -580,9 +583,13 @@ public function startQueryExecution($input): StartQueryExecutionOutput
* Description?: string|null,
* WorkGroup: string,
* EngineConfiguration: EngineConfiguration|array,
* ExecutionRole?: string|null,
* MonitoringConfiguration?: MonitoringConfiguration|array|null,
* NotebookVersion?: string|null,
* SessionIdleTimeoutInMinutes?: int|null,
* ClientRequestToken?: string|null,
* Tags?: array<Tag|array>|null,
* CopyWorkGroupTags?: bool|null,
* '@region'?: string|null,
* }|StartSessionRequest $input
*
Expand Down
24 changes: 24 additions & 0 deletions src/Service/Athena/src/Input/StartQueryExecutionInput.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

namespace AsyncAws\Athena\Input;

use AsyncAws\Athena\ValueObject\EngineConfiguration;
use AsyncAws\Athena\ValueObject\QueryExecutionContext;
use AsyncAws\Athena\ValueObject\ResultConfiguration;
use AsyncAws\Athena\ValueObject\ResultReuseConfiguration;
Expand Down Expand Up @@ -75,6 +76,11 @@ final class StartQueryExecutionInput extends Input
*/
private $resultReuseConfiguration;

/**
* @var EngineConfiguration|null
*/
private $engineConfiguration;

/**
* @param array{
* QueryString?: string,
Expand All @@ -84,6 +90,7 @@ final class StartQueryExecutionInput extends Input
* WorkGroup?: string|null,
* ExecutionParameters?: string[]|null,
* ResultReuseConfiguration?: ResultReuseConfiguration|array|null,
* EngineConfiguration?: EngineConfiguration|array|null,
* '@region'?: string|null,
* } $input
*/
Expand All @@ -96,6 +103,7 @@ public function __construct(array $input = [])
$this->workGroup = $input['WorkGroup'] ?? null;
$this->executionParameters = $input['ExecutionParameters'] ?? null;
$this->resultReuseConfiguration = isset($input['ResultReuseConfiguration']) ? ResultReuseConfiguration::create($input['ResultReuseConfiguration']) : null;
$this->engineConfiguration = isset($input['EngineConfiguration']) ? EngineConfiguration::create($input['EngineConfiguration']) : null;
parent::__construct($input);
}

Expand All @@ -108,6 +116,7 @@ public function __construct(array $input = [])
* WorkGroup?: string|null,
* ExecutionParameters?: string[]|null,
* ResultReuseConfiguration?: ResultReuseConfiguration|array|null,
* EngineConfiguration?: EngineConfiguration|array|null,
* '@region'?: string|null,
* }|StartQueryExecutionInput $input
*/
Expand All @@ -121,6 +130,11 @@ public function getClientRequestToken(): ?string
return $this->clientRequestToken;
}

public function getEngineConfiguration(): ?EngineConfiguration
{
return $this->engineConfiguration;
}

/**
* @return string[]
*/
Expand Down Expand Up @@ -187,6 +201,13 @@ public function setClientRequestToken(?string $value): self
return $this;
}

public function setEngineConfiguration(?EngineConfiguration $value): self
{
$this->engineConfiguration = $value;

return $this;
}

/**
* @param string[] $value
*/
Expand Down Expand Up @@ -263,6 +284,9 @@ private function requestBody(): array
if (null !== $v = $this->resultReuseConfiguration) {
$payload['ResultReuseConfiguration'] = $v->requestBody();
}
if (null !== $v = $this->engineConfiguration) {
$payload['EngineConfiguration'] = $v->requestBody();
}

return $payload;
}
Expand Down
115 changes: 115 additions & 0 deletions src/Service/Athena/src/Input/StartSessionRequest.php
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@
namespace AsyncAws\Athena\Input;

use AsyncAws\Athena\ValueObject\EngineConfiguration;
use AsyncAws\Athena\ValueObject\MonitoringConfiguration;
use AsyncAws\Athena\ValueObject\Tag;
use AsyncAws\Core\Exception\InvalidArgument;
use AsyncAws\Core\Input;
use AsyncAws\Core\Request;
Expand Down Expand Up @@ -35,6 +37,22 @@ final class StartSessionRequest extends Input
*/
private $engineConfiguration;

/**
* The ARN of the execution role used to access user resources for Spark sessions and Identity Center enabled
* workgroups. This property applies only to Spark enabled workgroups and Identity Center enabled workgroups.
*
* @var string|null
*/
private $executionRole;

/**
* Contains the configuration settings for managed log persistence, delivering logs to Amazon S3 buckets, Amazon
* CloudWatch log groups etc.
*
* @var MonitoringConfiguration|null
*/
private $monitoringConfiguration;

/**
* The notebook version. This value is supplied automatically for notebook sessions in the Athena console and is not
* required for programmatic session access. The only valid notebook version is `Athena notebook version 1`. If you
Expand Down Expand Up @@ -65,14 +83,32 @@ final class StartSessionRequest extends Input
*/
private $clientRequestToken;

/**
* A list of comma separated tags to add to the session that is created.
*
* @var Tag[]|null
*/
private $tags;

/**
* Copies the tags from the Workgroup to the Session when.
*
* @var bool|null
*/
private $copyWorkGroupTags;

/**
* @param array{
* Description?: string|null,
* WorkGroup?: string,
* EngineConfiguration?: EngineConfiguration|array,
* ExecutionRole?: string|null,
* MonitoringConfiguration?: MonitoringConfiguration|array|null,
* NotebookVersion?: string|null,
* SessionIdleTimeoutInMinutes?: int|null,
* ClientRequestToken?: string|null,
* Tags?: array<Tag|array>|null,
* CopyWorkGroupTags?: bool|null,
* '@region'?: string|null,
* } $input
*/
Expand All @@ -81,9 +117,13 @@ public function __construct(array $input = [])
$this->description = $input['Description'] ?? null;
$this->workGroup = $input['WorkGroup'] ?? null;
$this->engineConfiguration = isset($input['EngineConfiguration']) ? EngineConfiguration::create($input['EngineConfiguration']) : null;
$this->executionRole = $input['ExecutionRole'] ?? null;
$this->monitoringConfiguration = isset($input['MonitoringConfiguration']) ? MonitoringConfiguration::create($input['MonitoringConfiguration']) : null;
$this->notebookVersion = $input['NotebookVersion'] ?? null;
$this->sessionIdleTimeoutInMinutes = $input['SessionIdleTimeoutInMinutes'] ?? null;
$this->clientRequestToken = $input['ClientRequestToken'] ?? null;
$this->tags = isset($input['Tags']) ? array_map([Tag::class, 'create'], $input['Tags']) : null;
$this->copyWorkGroupTags = $input['CopyWorkGroupTags'] ?? null;
parent::__construct($input);
}

Expand All @@ -92,9 +132,13 @@ public function __construct(array $input = [])
* Description?: string|null,
* WorkGroup?: string,
* EngineConfiguration?: EngineConfiguration|array,
* ExecutionRole?: string|null,
* MonitoringConfiguration?: MonitoringConfiguration|array|null,
* NotebookVersion?: string|null,
* SessionIdleTimeoutInMinutes?: int|null,
* ClientRequestToken?: string|null,
* Tags?: array<Tag|array>|null,
* CopyWorkGroupTags?: bool|null,
* '@region'?: string|null,
* }|StartSessionRequest $input
*/
Expand All @@ -108,6 +152,11 @@ public function getClientRequestToken(): ?string
return $this->clientRequestToken;
}

public function getCopyWorkGroupTags(): ?bool
{
return $this->copyWorkGroupTags;
}

public function getDescription(): ?string
{
return $this->description;
Expand All @@ -118,6 +167,16 @@ public function getEngineConfiguration(): ?EngineConfiguration
return $this->engineConfiguration;
}

public function getExecutionRole(): ?string
{
return $this->executionRole;
}

public function getMonitoringConfiguration(): ?MonitoringConfiguration
{
return $this->monitoringConfiguration;
}

public function getNotebookVersion(): ?string
{
return $this->notebookVersion;
Expand All @@ -128,6 +187,14 @@ public function getSessionIdleTimeoutInMinutes(): ?int
return $this->sessionIdleTimeoutInMinutes;
}

/**
* @return Tag[]
*/
public function getTags(): array
{
return $this->tags ?? [];
}

public function getWorkGroup(): ?string
{
return $this->workGroup;
Expand Down Expand Up @@ -166,6 +233,13 @@ public function setClientRequestToken(?string $value): self
return $this;
}

public function setCopyWorkGroupTags(?bool $value): self
{
$this->copyWorkGroupTags = $value;

return $this;
}

public function setDescription(?string $value): self
{
$this->description = $value;
Expand All @@ -180,6 +254,20 @@ public function setEngineConfiguration(?EngineConfiguration $value): self
return $this;
}

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

return $this;
}

public function setMonitoringConfiguration(?MonitoringConfiguration $value): self
{
$this->monitoringConfiguration = $value;

return $this;
}

public function setNotebookVersion(?string $value): self
{
$this->notebookVersion = $value;
Expand All @@ -194,6 +282,16 @@ public function setSessionIdleTimeoutInMinutes(?int $value): self
return $this;
}

/**
* @param Tag[] $value
*/
public function setTags(array $value): self
{
$this->tags = $value;

return $this;
}

public function setWorkGroup(?string $value): self
{
$this->workGroup = $value;
Expand All @@ -215,6 +313,12 @@ private function requestBody(): array
throw new InvalidArgument(\sprintf('Missing parameter "EngineConfiguration" for "%s". The value cannot be null.', __CLASS__));
}
$payload['EngineConfiguration'] = $v->requestBody();
if (null !== $v = $this->executionRole) {
$payload['ExecutionRole'] = $v;
}
if (null !== $v = $this->monitoringConfiguration) {
$payload['MonitoringConfiguration'] = $v->requestBody();
}
if (null !== $v = $this->notebookVersion) {
$payload['NotebookVersion'] = $v;
}
Expand All @@ -224,6 +328,17 @@ private function requestBody(): array
if (null !== $v = $this->clientRequestToken) {
$payload['ClientRequestToken'] = $v;
}
if (null !== $v = $this->tags) {
$index = -1;
$payload['Tags'] = [];
foreach ($v as $listValue) {
++$index;
$payload['Tags'][$index] = $listValue->requestBody();
}
}
if (null !== $v = $this->copyWorkGroupTags) {
$payload['CopyWorkGroupTags'] = (bool) $v;
}

return $payload;
}
Expand Down
1 change: 1 addition & 0 deletions src/Service/Athena/src/Result/GetQueryExecutionOutput.php
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ private function populateResultQueryExecutionStatistics(array $json): QueryExecu
'QueryPlanningTimeInMillis' => isset($json['QueryPlanningTimeInMillis']) ? (int) $json['QueryPlanningTimeInMillis'] : null,
'ServiceProcessingTimeInMillis' => isset($json['ServiceProcessingTimeInMillis']) ? (int) $json['ServiceProcessingTimeInMillis'] : null,
'ResultReuseInformation' => empty($json['ResultReuseInformation']) ? null : $this->populateResultResultReuseInformation($json['ResultReuseInformation']),
'DpuCount' => isset($json['DpuCount']) ? (float) $json['DpuCount'] : null,
]);
}

Expand Down
Loading