diff --git a/psalm.baseline.xml b/psalm.baseline.xml
index eb17979c7..7a79267af 100644
--- a/psalm.baseline.xml
+++ b/psalm.baseline.xml
@@ -88,186 +88,6 @@
getRows
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
- $items
- $items
- $items
-
-
- ]]>
- ]]>
- ]]>
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
- $items
-
-
- ]]>
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
- $items
-
-
- ]]>
- ]]>
-
-
-
-
- $items
- $items
- $items
- $items
-
-
- ]]>
- ]]>
- ]]>
- ]]>
-
-
-
-
- $items
- $items
- $items
- $items
-
-
- ]]>
- ]]>
- ]]>
- ]]>
-
-
-
-
- $items
- $items
- $items
- $items
-
-
- ]]>
- ]]>
- ]]>
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
array_keys($s3SignerOptions)
@@ -289,56 +109,4 @@
-
-
- $items
-
-
- ]]>
-
-
-
-
- $items
-
-
- ]]>
-
-
-
-
-
-
-
- ]]>
-
-
-
-
-
-
-
- ]]>
-
-
-
-
-
-
-
- ]]>
-
-
-
-
-
-
-
-
-
- ]]>
- ]]>
- ]]>
-
-
diff --git a/src/CodeGenerator/src/Generator/CodeGenerator/PopulatorGenerator.php b/src/CodeGenerator/src/Generator/CodeGenerator/PopulatorGenerator.php
index 5b01faa3c..de3b4935d 100644
--- a/src/CodeGenerator/src/Generator/CodeGenerator/PopulatorGenerator.php
+++ b/src/CodeGenerator/src/Generator/CodeGenerator/PopulatorGenerator.php
@@ -90,7 +90,7 @@ private function generateProperties(StructureShape $shape, ClassBuilder $classBu
if (null !== $propertyDocumentation = $memberShape->getDocumentationMember()) {
$property->setComment(GeneratorHelper::parseDocumentation($propertyDocumentation));
}
- [$returnType, $parameterType, $memberClassNames] = $this->typeGenerator->getPhpType($memberShape);
+ [$returnType, $parameterType, $memberClassNames] = $this->typeGenerator->getPhpType($memberShape, false);
foreach ($memberClassNames as $memberClassName) {
$classBuilder->addUse($memberClassName->getFqdn());
}
@@ -100,7 +100,7 @@ private function generateProperties(StructureShape $shape, ClassBuilder $classBu
}
if ($memberShape instanceof StructureShape) {
- $this->objectGenerator->generate($memberShape);
+ $this->objectGenerator->generate($memberShape, false, false);
} elseif ($memberShape instanceof MapShape) {
$mapKeyShape = $memberShape->getKey()->getShape();
if ('string' !== $mapKeyShape->getType()) {
@@ -111,7 +111,7 @@ private function generateProperties(StructureShape $shape, ClassBuilder $classBu
}
if (($valueShape = $memberShape->getValue()->getShape()) instanceof StructureShape) {
- $this->objectGenerator->generate($valueShape);
+ $this->objectGenerator->generate($valueShape, false, false);
}
if (!empty($valueShape->getEnum())) {
$this->enumGenerator->generate($valueShape);
@@ -299,7 +299,7 @@ private function generatePopulator(Operation $operation, StructureShape $shape,
private function generateListShapeMemberShape(Shape $memberShape, bool $forEndpoint): void
{
if ($memberShape instanceof StructureShape) {
- $this->objectGenerator->generate($memberShape, $forEndpoint);
+ $this->objectGenerator->generate($memberShape, $forEndpoint, false);
} elseif ($memberShape instanceof ListShape) {
$this->generateListShapeMemberShape($memberShape->getMember()->getShape(), $forEndpoint);
}
diff --git a/src/CodeGenerator/src/Generator/CodeGenerator/TypeGenerator.php b/src/CodeGenerator/src/Generator/CodeGenerator/TypeGenerator.php
index 3fefde200..2fba098b8 100644
--- a/src/CodeGenerator/src/Generator/CodeGenerator/TypeGenerator.php
+++ b/src/CodeGenerator/src/Generator/CodeGenerator/TypeGenerator.php
@@ -39,7 +39,7 @@ public function __construct(NamespaceRegistry $namespaceRegistry)
*
* @return array{string, ClassName[]} [docblock representation, ClassName related]
*/
- public function generateDocblock(StructureShape $shape, ClassName $shapeClassName, bool $alternateClass = true, bool $allNullable = false, bool $isObject = false, array $extra = []): array
+ public function generateDocblock(StructureShape $shape, ClassName $shapeClassName, bool $alternateClass = true, bool $allNullable = false, bool $isObject = false, array $extra = [], bool $strictEnum = true): array
{
$classNames = [];
if ($alternateClass) {
@@ -67,7 +67,11 @@ public function generateDocblock(StructureShape $shape, ClassName $shapeClassNam
$param = 'array<' . $className->getName() . '|array>';
} elseif (!empty($listMemberShape->getEnum())) {
$classNames[] = $className = $this->namespaceRegistry->getEnum($listMemberShape);
- $param = 'array<' . $className->getName() . '::*>';
+ if ($strictEnum) {
+ $param = 'array<' . $className->getName() . '::*>';
+ } else {
+ $param = 'array<' . $className->getName() . '::*|string>';
+ }
} else {
$param = $this->getNativePhpType($listMemberShape->getType()) . '[]';
}
@@ -81,13 +85,20 @@ public function generateDocblock(StructureShape $shape, ClassName $shapeClassNam
} elseif (!empty($mapValueShape->getEnum())) {
$classNames[] = $className = $this->namespaceRegistry->getEnum($mapValueShape);
$param = $className->getName() . '::*';
+ if (!$strictEnum) {
+ $param .= '|string';
+ }
} else {
$param = $this->getNativePhpType($mapValueShape->getType());
}
$mapKeyShape = $memberShape->getKey()->getShape();
if (!empty($mapKeyShape->getEnum())) {
$classNames[] = $className = $this->namespaceRegistry->getEnum($mapKeyShape);
- $param = 'array<' . $className->getName() . '::*, ' . $param . '>';
+ if ($strictEnum) {
+ $param = 'array<' . $className->getName() . '::*, ' . $param . '>';
+ } else {
+ $param = 'array<' . $className->getName() . '::*|string, ' . $param . '>';
+ }
} else {
$param = 'array';
}
@@ -101,6 +112,9 @@ public function generateDocblock(StructureShape $shape, ClassName $shapeClassNam
if (!empty($memberShape->getEnum())) {
$classNames[] = $className = $this->namespaceRegistry->getEnum($memberShape);
$param = $className->getName() . '::*';
+ if (!$strictEnum) {
+ $param .= '|string';
+ }
} else {
$param = $this->getNativePhpType($memberShape->getType());
}
@@ -136,7 +150,7 @@ public function generateDocblock(StructureShape $shape, ClassName $shapeClassNam
*
* @return array{string, string, ClassName[]} [typeHint value, docblock representation, ClassName related]
*/
- public function getPhpType(Shape $shape): array
+ public function getPhpType(Shape $shape, bool $strictEnum = true): array
{
$memberClassNames = [];
if ($shape instanceof StructureShape) {
@@ -147,8 +161,8 @@ public function getPhpType(Shape $shape): array
if ($shape instanceof ListShape) {
$listMemberShape = $shape->getMember()->getShape();
- [$type, $doc, $memberClassNames] = $this->getPhpType($listMemberShape);
- if ('::*' === substr($doc, -3)) {
+ [$type, $doc, $memberClassNames] = $this->getPhpType($listMemberShape, $strictEnum);
+ if (!empty($listMemberShape->getEnum())) {
$doc = "list<$doc>";
} else {
$doc .= '[]';
@@ -160,10 +174,14 @@ public function getPhpType(Shape $shape): array
if ($shape instanceof MapShape) {
$mapKeyShape = $shape->getKey()->getShape();
$mapValueShape = $shape->getValue()->getShape();
- [$type, $doc, $memberClassNames] = $this->getPhpType($mapValueShape);
+ [$type, $doc, $memberClassNames] = $this->getPhpType($mapValueShape, $strictEnum);
if (!empty($mapKeyShape->getEnum())) {
$memberClassNames[] = $memberClassName = $this->namespaceRegistry->getEnum($mapKeyShape);
- $doc = "array<{$memberClassName->getName()}::*, $doc>";
+ if ($strictEnum) {
+ $doc = "array<{$memberClassName->getName()}::*, $doc>";
+ } else {
+ $doc = "array<{$memberClassName->getName()}::*|string, $doc>";
+ }
} else {
$doc = "array";
}
@@ -180,6 +198,9 @@ public function getPhpType(Shape $shape): array
$memberClassNames[] = $memberClassName = $this->namespaceRegistry->getEnum($shape);
$doc = $memberClassName->getName() . '::*';
+ if (!$strictEnum) {
+ $doc .= '|string';
+ }
}
return [$type, $doc, $memberClassNames];
diff --git a/src/CodeGenerator/src/Generator/ObjectGenerator.php b/src/CodeGenerator/src/Generator/ObjectGenerator.php
index 6126e8ff7..c1c9a8fcb 100644
--- a/src/CodeGenerator/src/Generator/ObjectGenerator.php
+++ b/src/CodeGenerator/src/Generator/ObjectGenerator.php
@@ -40,6 +40,11 @@ class ObjectGenerator
*/
private $generated = [];
+ /**
+ * @var bool[]
+ */
+ private $generatedIsStrictEnum = [];
+
/**
* @var NamespaceRegistry
*/
@@ -83,22 +88,27 @@ public function __construct(ClassRegistry $classRegistry, NamespaceRegistry $nam
$this->managedMethods = $managedMethods;
}
- public function generate(StructureShape $shape, bool $forEndpoint = false): ClassName
+ public function generate(StructureShape $shape, bool $forEndpoint = false, bool $strictEnum = true): ClassName
{
if (isset($this->generated[$shape->getName()])) {
- return $this->generated[$shape->getName()];
+ if ($strictEnum || false === $this->generatedIsStrictEnum[$shape->getName()]) {
+ return $this->generated[$shape->getName()];
+ }
}
+
$this->generated[$shape->getName()] = $className = $this->namespaceRegistry->getObject($shape);
+ $this->generatedIsStrictEnum[$shape->getName()] = $strictEnum;
$classBuilder = $this->classRegistry->register($className->getFqdn());
$classBuilder->setFinal();
+ $classBuilder->removeComment();
if (null !== $documentation = $shape->getDocumentationMain()) {
$classBuilder->addComment(GeneratorHelper::parseDocumentation($documentation));
}
// Named constructor
- $this->namedConstructor($shape, $classBuilder);
- $this->addProperties($shape, $classBuilder, $forEndpoint);
+ $this->namedConstructor($shape, $classBuilder, $strictEnum);
+ $this->addProperties($shape, $classBuilder, $forEndpoint, $strictEnum);
if ($forEndpoint) {
$classBuilder->addUse(EndpointInterface::class);
@@ -156,7 +166,7 @@ private function isShapeUsedInput(StructureShape $shape): bool
return $this->usedShapedInput[$shape->getName()] ?? false;
}
- private function namedConstructor(StructureShape $shape, ClassBuilder $classBuilder): void
+ private function namedConstructor(StructureShape $shape, ClassBuilder $classBuilder, bool $strictEnum): void
{
if (empty($shape->getMembers())) {
$createMethod = $classBuilder->addMethod('create')
@@ -164,7 +174,7 @@ private function namedConstructor(StructureShape $shape, ClassBuilder $classBuil
->setReturnType('self')
->setBody('return $input instanceof self ? $input : new self();');
$createMethod->addParameter('input');
- [$doc, $memberClassNames] = $this->typeGenerator->generateDocblock($shape, $this->generated[$shape->getName()], true, false, true);
+ [$doc, $memberClassNames] = $this->typeGenerator->generateDocblock($shape, $this->generated[$shape->getName()], true, false, true, [], $strictEnum);
$createMethod->addComment($doc);
foreach ($memberClassNames as $memberClassName) {
$classBuilder->addUse($memberClassName->getFqdn());
@@ -178,7 +188,7 @@ private function namedConstructor(StructureShape $shape, ClassBuilder $classBuil
->setReturnType('self')
->setBody('return $input instanceof self ? $input : new self($input);');
$createMethod->addParameter('input');
- [$doc, $memberClassNames] = $this->typeGenerator->generateDocblock($shape, $this->generated[$shape->getName()], true, false, true);
+ [$doc, $memberClassNames] = $this->typeGenerator->generateDocblock($shape, $this->generated[$shape->getName()], true, false, true, [], $strictEnum);
$createMethod->addComment($doc);
foreach ($memberClassNames as $memberClassName) {
$classBuilder->addUse($memberClassName->getFqdn());
@@ -186,7 +196,7 @@ private function namedConstructor(StructureShape $shape, ClassBuilder $classBuil
// We need a constructor
$constructor = $classBuilder->addMethod('__construct');
- [$doc, $memberClassNames] = $this->typeGenerator->generateDocblock($shape, $this->generated[$shape->getName()], false, false, true);
+ [$doc, $memberClassNames] = $this->typeGenerator->generateDocblock($shape, $this->generated[$shape->getName()], false, false, true, [], $strictEnum);
$constructor->addComment($doc);
foreach ($memberClassNames as $memberClassName) {
$classBuilder->addUse($memberClassName->getFqdn());
@@ -201,14 +211,14 @@ private function namedConstructor(StructureShape $shape, ClassBuilder $classBuil
foreach ($shape->getMembers() as $member) {
$memberShape = $member->getShape();
if ($memberShape instanceof StructureShape) {
- $objectClass = $this->generate($memberShape);
+ $objectClass = $this->generate($memberShape, false, $strictEnum);
$memberCode = strtr('CLASS::create($input["NAME"])', ['NAME' => $member->getName(), 'CLASS' => $objectClass->getName()]);
} elseif ($memberShape instanceof ListShape) {
$listMemberShape = $memberShape->getMember()->getShape();
// Check if this is a list of objects
if ($listMemberShape instanceof StructureShape) {
- $objectClass = $this->generate($listMemberShape);
+ $objectClass = $this->generate($listMemberShape, false, $strictEnum);
$memberCode = strtr('array_map([CLASS::class, "create"], $input["NAME"])', ['NAME' => $member->getName(), 'CLASS' => $objectClass->getName()]);
} else {
$memberCode = strtr('$input["NAME"]', ['NAME' => $member->getName()]);
@@ -217,7 +227,7 @@ private function namedConstructor(StructureShape $shape, ClassBuilder $classBuil
$mapValueShape = $memberShape->getValue()->getShape();
if ($mapValueShape instanceof StructureShape) {
- $objectClass = $this->generate($mapValueShape);
+ $objectClass = $this->generate($mapValueShape, false, $strictEnum);
$memberCode = strtr('array_map([CLASS::class, "create"], $input["NAME"])', ['NAME' => $member->getName(), 'CLASS' => $objectClass->getName()]);
} else {
$memberCode = strtr('$input["NAME"]', ['NAME' => $member->getName()]);
@@ -253,7 +263,7 @@ private function namedConstructor(StructureShape $shape, ClassBuilder $classBuil
/**
* Add properties and getters.
*/
- private function addProperties(StructureShape $shape, ClassBuilder $classBuilder, bool $forEndpoint): void
+ private function addProperties(StructureShape $shape, ClassBuilder $classBuilder, bool $forEndpoint, bool $strictEnum): void
{
$forEndpointProps = $forEndpoint ? ['address' => false, 'cachePeriodInMinutes' => false] : [];
foreach ($shape->getMembers() as $member) {
@@ -264,7 +274,7 @@ private function addProperties(StructureShape $shape, ClassBuilder $classBuilder
$property->setComment(GeneratorHelper::parseDocumentation($propertyDocumentation));
}
- [$returnType, $parameterType, $memberClassNames] = $this->typeGenerator->getPhpType($memberShape);
+ [$returnType, $parameterType, $memberClassNames] = $this->typeGenerator->getPhpType($memberShape, $strictEnum);
if ($forEndpoint && isset($forEndpointProps[$propertyName])) {
$forEndpointProps[$propertyName] = true;
}
@@ -279,7 +289,7 @@ private function addProperties(StructureShape $shape, ClassBuilder $classBuilder
$getterSetterNullable = null;
if ($memberShape instanceof StructureShape) {
- $this->generate($memberShape);
+ $this->generate($memberShape, false, $strictEnum);
} elseif ($memberShape instanceof MapShape) {
$getterSetterNullable = false;
$mapKeyShape = $memberShape->getKey()->getShape();
@@ -291,7 +301,7 @@ private function addProperties(StructureShape $shape, ClassBuilder $classBuilder
}
if (($valueShape = $memberShape->getValue()->getShape()) instanceof StructureShape) {
- $this->generate($valueShape);
+ $this->generate($valueShape, false, $strictEnum);
}
if (!empty($valueShape->getEnum())) {
$enumClassName = $this->enumGenerator->generate($valueShape);
@@ -302,7 +312,7 @@ private function addProperties(StructureShape $shape, ClassBuilder $classBuilder
$memberShape->getMember()->getShape();
if (($memberShape = $memberShape->getMember()->getShape()) instanceof StructureShape) {
- $this->generate($memberShape);
+ $this->generate($memberShape, false, $strictEnum);
}
if (!empty($memberShape->getEnum())) {
$enumClassName = $this->enumGenerator->generate($memberShape);
diff --git a/src/CodeGenerator/src/Generator/PhpGenerator/ClassBuilder.php b/src/CodeGenerator/src/Generator/PhpGenerator/ClassBuilder.php
index 413ba6e48..11b6ede87 100644
--- a/src/CodeGenerator/src/Generator/PhpGenerator/ClassBuilder.php
+++ b/src/CodeGenerator/src/Generator/PhpGenerator/ClassBuilder.php
@@ -122,9 +122,20 @@ public function setMethods(array $methods): self
public function addProperty(string $name): Property
{
+ if ($this->class->hasProperty($name)) {
+ $this->class->removeProperty($name);
+ }
+
return $this->class->addProperty($name);
}
+ public function removeComment(): self
+ {
+ $this->class->removeComment();
+
+ return $this;
+ }
+
public function addComment(string $val): self
{
$this->class->addComment($val);
diff --git a/src/CodeGenerator/src/Generator/ResponseParser/RestJsonParser.php b/src/CodeGenerator/src/Generator/ResponseParser/RestJsonParser.php
index 2cbedeb13..d7892ae20 100644
--- a/src/CodeGenerator/src/Generator/ResponseParser/RestJsonParser.php
+++ b/src/CodeGenerator/src/Generator/ResponseParser/RestJsonParser.php
@@ -439,7 +439,7 @@ private function createPopulateMethod(string $functionName, string $body, Shape
->setType('array')
;
- [$returnType, $parameterType, $memberClassNames] = $this->typeGenerator->getPhpType($shape);
+ [$returnType, $parameterType, $memberClassNames] = $this->typeGenerator->getPhpType($shape, false);
$method
->setReturnType($returnType)
->setComment('@return ' . $parameterType);
diff --git a/src/CodeGenerator/src/Generator/ResponseParser/RestXmlParser.php b/src/CodeGenerator/src/Generator/ResponseParser/RestXmlParser.php
index a8da5db0c..a2ff4992f 100644
--- a/src/CodeGenerator/src/Generator/ResponseParser/RestXmlParser.php
+++ b/src/CodeGenerator/src/Generator/ResponseParser/RestXmlParser.php
@@ -325,6 +325,7 @@ private function parseXmlResponseList(ListShape $shape, string $input, bool $req
';
} else {
$listAccessorRequired = true;
+
$body = '
$items = [];
foreach (INPUT_PROPERTY as $item) {
@@ -391,7 +392,7 @@ private function createPopulateMethod(string $functionName, string $body, Shape
->setType(\SimpleXMLElement::class)
;
- [$returnType, $parameterType, $memberClassNames] = $this->typeGenerator->getPhpType($shape);
+ [$returnType, $parameterType, $memberClassNames] = $this->typeGenerator->getPhpType($shape, false);
$method
->setReturnType($returnType)
->setComment('@return ' . $parameterType);
diff --git a/src/Service/AppSync/CHANGELOG.md b/src/Service/AppSync/CHANGELOG.md
index d2912979a..5741f5e0a 100644
--- a/src/Service/AppSync/CHANGELOG.md
+++ b/src/Service/AppSync/CHANGELOG.md
@@ -6,6 +6,10 @@
- AWS api-change: Rework regions configuration
+### Changed
+
+- DocBloc on enum values reflects that AWS might returns unknown values
+
## 3.2.0
### Added
diff --git a/src/Service/AppSync/src/Exception/BadRequestException.php b/src/Service/AppSync/src/Exception/BadRequestException.php
index 4d1dbc3ef..b00b9f7a9 100644
--- a/src/Service/AppSync/src/Exception/BadRequestException.php
+++ b/src/Service/AppSync/src/Exception/BadRequestException.php
@@ -16,7 +16,7 @@
final class BadRequestException extends ClientException
{
/**
- * @var BadRequestReason::*|null
+ * @var BadRequestReason::*|string|null
*/
private $reason;
@@ -31,7 +31,7 @@ public function getDetail(): ?BadRequestDetail
}
/**
- * @return BadRequestReason::*|null
+ * @return BadRequestReason::*|string|null
*/
public function getReason(): ?string
{
diff --git a/src/Service/AppSync/src/Result/GetSchemaCreationStatusResponse.php b/src/Service/AppSync/src/Result/GetSchemaCreationStatusResponse.php
index 2e22f5e2d..60e5d0614 100644
--- a/src/Service/AppSync/src/Result/GetSchemaCreationStatusResponse.php
+++ b/src/Service/AppSync/src/Result/GetSchemaCreationStatusResponse.php
@@ -12,7 +12,7 @@ class GetSchemaCreationStatusResponse extends Result
* The current state of the schema (PROCESSING, FAILED, SUCCESS, or NOT_APPLICABLE). When the schema is in the ACTIVE
* state, you can add data.
*
- * @var SchemaStatus::*|null
+ * @var SchemaStatus::*|string|null
*/
private $status;
@@ -31,7 +31,7 @@ public function getDetails(): ?string
}
/**
- * @return SchemaStatus::*|null
+ * @return SchemaStatus::*|string|null
*/
public function getStatus(): ?string
{
diff --git a/src/Service/AppSync/src/Result/StartSchemaCreationResponse.php b/src/Service/AppSync/src/Result/StartSchemaCreationResponse.php
index 8b14e4a1f..504e425d6 100644
--- a/src/Service/AppSync/src/Result/StartSchemaCreationResponse.php
+++ b/src/Service/AppSync/src/Result/StartSchemaCreationResponse.php
@@ -12,12 +12,12 @@ class StartSchemaCreationResponse extends Result
* The current state of the schema (PROCESSING, FAILED, SUCCESS, or NOT_APPLICABLE). When the schema is in the ACTIVE
* state, you can add data.
*
- * @var SchemaStatus::*|null
+ * @var SchemaStatus::*|string|null
*/
private $status;
/**
- * @return SchemaStatus::*|null
+ * @return SchemaStatus::*|string|null
*/
public function getStatus(): ?string
{
diff --git a/src/Service/AppSync/src/ValueObject/AppSyncRuntime.php b/src/Service/AppSync/src/ValueObject/AppSyncRuntime.php
index 38ecfd539..bf8c582e0 100644
--- a/src/Service/AppSync/src/ValueObject/AppSyncRuntime.php
+++ b/src/Service/AppSync/src/ValueObject/AppSyncRuntime.php
@@ -15,7 +15,7 @@ final class AppSyncRuntime
/**
* The `name` of the runtime to use. Currently, the only allowed value is `APPSYNC_JS`.
*
- * @var RuntimeName::*
+ * @var RuntimeName::*|string
*/
private $name;
@@ -28,7 +28,7 @@ final class AppSyncRuntime
/**
* @param array{
- * name: RuntimeName::*,
+ * name: RuntimeName::*|string,
* runtimeVersion: string,
* } $input
*/
@@ -40,7 +40,7 @@ public function __construct(array $input)
/**
* @param array{
- * name: RuntimeName::*,
+ * name: RuntimeName::*|string,
* runtimeVersion: string,
* }|AppSyncRuntime $input
*/
@@ -50,7 +50,7 @@ public static function create($input): self
}
/**
- * @return RuntimeName::*
+ * @return RuntimeName::*|string
*/
public function getName(): string
{
diff --git a/src/Service/AppSync/src/ValueObject/AuthorizationConfig.php b/src/Service/AppSync/src/ValueObject/AuthorizationConfig.php
index 10ce1f8ba..7f4ddb752 100644
--- a/src/Service/AppSync/src/ValueObject/AuthorizationConfig.php
+++ b/src/Service/AppSync/src/ValueObject/AuthorizationConfig.php
@@ -15,7 +15,7 @@ final class AuthorizationConfig
*
* - **AWS_IAM**: The authorization type is Signature Version 4 (SigV4).
*
- * @var AuthorizationType::*
+ * @var AuthorizationType::*|string
*/
private $authorizationType;
@@ -28,7 +28,7 @@ final class AuthorizationConfig
/**
* @param array{
- * authorizationType: AuthorizationType::*,
+ * authorizationType: AuthorizationType::*|string,
* awsIamConfig?: null|AwsIamConfig|array,
* } $input
*/
@@ -40,7 +40,7 @@ public function __construct(array $input)
/**
* @param array{
- * authorizationType: AuthorizationType::*,
+ * authorizationType: AuthorizationType::*|string,
* awsIamConfig?: null|AwsIamConfig|array,
* }|AuthorizationConfig $input
*/
@@ -50,7 +50,7 @@ public static function create($input): self
}
/**
- * @return AuthorizationType::*
+ * @return AuthorizationType::*|string
*/
public function getAuthorizationType(): string
{
diff --git a/src/Service/AppSync/src/ValueObject/DataSource.php b/src/Service/AppSync/src/ValueObject/DataSource.php
index c12963fec..217af53bb 100644
--- a/src/Service/AppSync/src/ValueObject/DataSource.php
+++ b/src/Service/AppSync/src/ValueObject/DataSource.php
@@ -46,7 +46,7 @@ final class DataSource
* - **HTTP**: The data source is an HTTP endpoint.
* - **RELATIONAL_DATABASE**: The data source is a relational database.
*
- * @var DataSourceType::*|null
+ * @var DataSourceType::*|string|null
*/
private $type;
@@ -115,7 +115,7 @@ final class DataSource
*
* `metricsConfig` can be `ENABLED` or `DISABLED`.
*
- * @var DataSourceLevelMetricsConfig::*|null
+ * @var DataSourceLevelMetricsConfig::*|string|null
*/
private $metricsConfig;
@@ -124,7 +124,7 @@ final class DataSource
* dataSourceArn?: null|string,
* name?: null|string,
* description?: null|string,
- * type?: null|DataSourceType::*,
+ * type?: null|DataSourceType::*|string,
* serviceRoleArn?: null|string,
* dynamodbConfig?: null|DynamodbDataSourceConfig|array,
* lambdaConfig?: null|LambdaDataSourceConfig|array,
@@ -133,7 +133,7 @@ final class DataSource
* httpConfig?: null|HttpDataSourceConfig|array,
* relationalDatabaseConfig?: null|RelationalDatabaseDataSourceConfig|array,
* eventBridgeConfig?: null|EventBridgeDataSourceConfig|array,
- * metricsConfig?: null|DataSourceLevelMetricsConfig::*,
+ * metricsConfig?: null|DataSourceLevelMetricsConfig::*|string,
* } $input
*/
public function __construct(array $input)
@@ -158,7 +158,7 @@ public function __construct(array $input)
* dataSourceArn?: null|string,
* name?: null|string,
* description?: null|string,
- * type?: null|DataSourceType::*,
+ * type?: null|DataSourceType::*|string,
* serviceRoleArn?: null|string,
* dynamodbConfig?: null|DynamodbDataSourceConfig|array,
* lambdaConfig?: null|LambdaDataSourceConfig|array,
@@ -167,7 +167,7 @@ public function __construct(array $input)
* httpConfig?: null|HttpDataSourceConfig|array,
* relationalDatabaseConfig?: null|RelationalDatabaseDataSourceConfig|array,
* eventBridgeConfig?: null|EventBridgeDataSourceConfig|array,
- * metricsConfig?: null|DataSourceLevelMetricsConfig::*,
+ * metricsConfig?: null|DataSourceLevelMetricsConfig::*|string,
* }|DataSource $input
*/
public static function create($input): self
@@ -211,7 +211,7 @@ public function getLambdaConfig(): ?LambdaDataSourceConfig
}
/**
- * @return DataSourceLevelMetricsConfig::*|null
+ * @return DataSourceLevelMetricsConfig::*|string|null
*/
public function getMetricsConfig(): ?string
{
@@ -239,7 +239,7 @@ public function getServiceRoleArn(): ?string
}
/**
- * @return DataSourceType::*|null
+ * @return DataSourceType::*|string|null
*/
public function getType(): ?string
{
diff --git a/src/Service/AppSync/src/ValueObject/RelationalDatabaseDataSourceConfig.php b/src/Service/AppSync/src/ValueObject/RelationalDatabaseDataSourceConfig.php
index dfb0e3836..701572ff9 100644
--- a/src/Service/AppSync/src/ValueObject/RelationalDatabaseDataSourceConfig.php
+++ b/src/Service/AppSync/src/ValueObject/RelationalDatabaseDataSourceConfig.php
@@ -16,7 +16,7 @@ final class RelationalDatabaseDataSourceConfig
* - **RDS_HTTP_ENDPOINT**: The relational database source type is an Amazon Relational Database Service (Amazon RDS)
* HTTP endpoint.
*
- * @var RelationalDatabaseSourceType::*|null
+ * @var RelationalDatabaseSourceType::*|string|null
*/
private $relationalDatabaseSourceType;
@@ -29,7 +29,7 @@ final class RelationalDatabaseDataSourceConfig
/**
* @param array{
- * relationalDatabaseSourceType?: null|RelationalDatabaseSourceType::*,
+ * relationalDatabaseSourceType?: null|RelationalDatabaseSourceType::*|string,
* rdsHttpEndpointConfig?: null|RdsHttpEndpointConfig|array,
* } $input
*/
@@ -41,7 +41,7 @@ public function __construct(array $input)
/**
* @param array{
- * relationalDatabaseSourceType?: null|RelationalDatabaseSourceType::*,
+ * relationalDatabaseSourceType?: null|RelationalDatabaseSourceType::*|string,
* rdsHttpEndpointConfig?: null|RdsHttpEndpointConfig|array,
* }|RelationalDatabaseDataSourceConfig $input
*/
@@ -56,7 +56,7 @@ public function getRdsHttpEndpointConfig(): ?RdsHttpEndpointConfig
}
/**
- * @return RelationalDatabaseSourceType::*|null
+ * @return RelationalDatabaseSourceType::*|string|null
*/
public function getRelationalDatabaseSourceType(): ?string
{
diff --git a/src/Service/AppSync/src/ValueObject/Resolver.php b/src/Service/AppSync/src/ValueObject/Resolver.php
index 17f61afe4..27c4b71f8 100644
--- a/src/Service/AppSync/src/ValueObject/Resolver.php
+++ b/src/Service/AppSync/src/ValueObject/Resolver.php
@@ -60,7 +60,7 @@ final class Resolver
* - **PIPELINE**: A PIPELINE resolver type. You can use a PIPELINE resolver to invoke a series of `Function` objects in
* a serial manner. You can use a pipeline resolver to run a GraphQL query against multiple data sources.
*
- * @var ResolverKind::*|null
+ * @var ResolverKind::*|string|null
*/
private $kind;
@@ -113,7 +113,7 @@ final class Resolver
*
* `metricsConfig` can be `ENABLED` or `DISABLED`.
*
- * @var ResolverLevelMetricsConfig::*|null
+ * @var ResolverLevelMetricsConfig::*|string|null
*/
private $metricsConfig;
@@ -125,14 +125,14 @@ final class Resolver
* resolverArn?: null|string,
* requestMappingTemplate?: null|string,
* responseMappingTemplate?: null|string,
- * kind?: null|ResolverKind::*,
+ * kind?: null|ResolverKind::*|string,
* pipelineConfig?: null|PipelineConfig|array,
* syncConfig?: null|SyncConfig|array,
* cachingConfig?: null|CachingConfig|array,
* maxBatchSize?: null|int,
* runtime?: null|AppSyncRuntime|array,
* code?: null|string,
- * metricsConfig?: null|ResolverLevelMetricsConfig::*,
+ * metricsConfig?: null|ResolverLevelMetricsConfig::*|string,
* } $input
*/
public function __construct(array $input)
@@ -161,14 +161,14 @@ public function __construct(array $input)
* resolverArn?: null|string,
* requestMappingTemplate?: null|string,
* responseMappingTemplate?: null|string,
- * kind?: null|ResolverKind::*,
+ * kind?: null|ResolverKind::*|string,
* pipelineConfig?: null|PipelineConfig|array,
* syncConfig?: null|SyncConfig|array,
* cachingConfig?: null|CachingConfig|array,
* maxBatchSize?: null|int,
* runtime?: null|AppSyncRuntime|array,
* code?: null|string,
- * metricsConfig?: null|ResolverLevelMetricsConfig::*,
+ * metricsConfig?: null|ResolverLevelMetricsConfig::*|string,
* }|Resolver $input
*/
public static function create($input): self
@@ -197,7 +197,7 @@ public function getFieldName(): ?string
}
/**
- * @return ResolverKind::*|null
+ * @return ResolverKind::*|string|null
*/
public function getKind(): ?string
{
@@ -210,7 +210,7 @@ public function getMaxBatchSize(): ?int
}
/**
- * @return ResolverLevelMetricsConfig::*|null
+ * @return ResolverLevelMetricsConfig::*|string|null
*/
public function getMetricsConfig(): ?string
{
diff --git a/src/Service/AppSync/src/ValueObject/SyncConfig.php b/src/Service/AppSync/src/ValueObject/SyncConfig.php
index 837bd730e..618a1352c 100644
--- a/src/Service/AppSync/src/ValueObject/SyncConfig.php
+++ b/src/Service/AppSync/src/ValueObject/SyncConfig.php
@@ -21,7 +21,7 @@ final class SyncConfig
* - **AUTOMERGE**: Resolve conflicts with the Automerge conflict resolution strategy.
* - **LAMBDA**: Resolve conflicts with an Lambda function supplied in the `LambdaConflictHandlerConfig`.
*
- * @var ConflictHandlerType::*|null
+ * @var ConflictHandlerType::*|string|null
*/
private $conflictHandler;
@@ -31,7 +31,7 @@ final class SyncConfig
* - **VERSION**: Detect conflicts based on object versions for this resolver.
* - **NONE**: Do not detect conflicts when invoking this resolver.
*
- * @var ConflictDetectionType::*|null
+ * @var ConflictDetectionType::*|string|null
*/
private $conflictDetection;
@@ -44,8 +44,8 @@ final class SyncConfig
/**
* @param array{
- * conflictHandler?: null|ConflictHandlerType::*,
- * conflictDetection?: null|ConflictDetectionType::*,
+ * conflictHandler?: null|ConflictHandlerType::*|string,
+ * conflictDetection?: null|ConflictDetectionType::*|string,
* lambdaConflictHandlerConfig?: null|LambdaConflictHandlerConfig|array,
* } $input
*/
@@ -58,8 +58,8 @@ public function __construct(array $input)
/**
* @param array{
- * conflictHandler?: null|ConflictHandlerType::*,
- * conflictDetection?: null|ConflictDetectionType::*,
+ * conflictHandler?: null|ConflictHandlerType::*|string,
+ * conflictDetection?: null|ConflictDetectionType::*|string,
* lambdaConflictHandlerConfig?: null|LambdaConflictHandlerConfig|array,
* }|SyncConfig $input
*/
@@ -69,7 +69,7 @@ public static function create($input): self
}
/**
- * @return ConflictDetectionType::*|null
+ * @return ConflictDetectionType::*|string|null
*/
public function getConflictDetection(): ?string
{
@@ -77,7 +77,7 @@ public function getConflictDetection(): ?string
}
/**
- * @return ConflictHandlerType::*|null
+ * @return ConflictHandlerType::*|string|null
*/
public function getConflictHandler(): ?string
{
diff --git a/src/Service/Athena/CHANGELOG.md b/src/Service/Athena/CHANGELOG.md
index 0fa6842c9..54de697a6 100644
--- a/src/Service/Athena/CHANGELOG.md
+++ b/src/Service/Athena/CHANGELOG.md
@@ -2,6 +2,10 @@
## NOT RELEASED
+### Changed
+
+- DocBloc on enum values reflects that AWS might returns unknown values
+
## 3.4.0
### Added
diff --git a/src/Service/Athena/src/Exception/TooManyRequestsException.php b/src/Service/Athena/src/Exception/TooManyRequestsException.php
index 7778e754d..9e4d80040 100644
--- a/src/Service/Athena/src/Exception/TooManyRequestsException.php
+++ b/src/Service/Athena/src/Exception/TooManyRequestsException.php
@@ -12,12 +12,12 @@
final class TooManyRequestsException extends ClientException
{
/**
- * @var ThrottleReason::*|null
+ * @var ThrottleReason::*|string|null
*/
private $reason;
/**
- * @return ThrottleReason::*|null
+ * @return ThrottleReason::*|string|null
*/
public function getReason(): ?string
{
diff --git a/src/Service/Athena/src/Result/StartCalculationExecutionResponse.php b/src/Service/Athena/src/Result/StartCalculationExecutionResponse.php
index baf9ca56c..d2d13b64e 100644
--- a/src/Service/Athena/src/Result/StartCalculationExecutionResponse.php
+++ b/src/Service/Athena/src/Result/StartCalculationExecutionResponse.php
@@ -32,7 +32,7 @@ class StartCalculationExecutionResponse extends Result
*
* `FAILED` - The calculation failed and is no longer running.
*
- * @var CalculationExecutionState::*|null
+ * @var CalculationExecutionState::*|string|null
*/
private $state;
@@ -44,7 +44,7 @@ public function getCalculationExecutionId(): ?string
}
/**
- * @return CalculationExecutionState::*|null
+ * @return CalculationExecutionState::*|string|null
*/
public function getState(): ?string
{
diff --git a/src/Service/Athena/src/Result/StartSessionResponse.php b/src/Service/Athena/src/Result/StartSessionResponse.php
index 489a7297d..1d8cbd828 100644
--- a/src/Service/Athena/src/Result/StartSessionResponse.php
+++ b/src/Service/Athena/src/Result/StartSessionResponse.php
@@ -34,7 +34,7 @@ class StartSessionResponse extends Result
*
* `FAILED` - Due to a failure, the session and its resources are no longer running.
*
- * @var SessionState::*|null
+ * @var SessionState::*|string|null
*/
private $state;
@@ -46,7 +46,7 @@ public function getSessionId(): ?string
}
/**
- * @return SessionState::*|null
+ * @return SessionState::*|string|null
*/
public function getState(): ?string
{
diff --git a/src/Service/Athena/src/Result/StopCalculationExecutionResponse.php b/src/Service/Athena/src/Result/StopCalculationExecutionResponse.php
index 99cc74092..e9d1f4514 100644
--- a/src/Service/Athena/src/Result/StopCalculationExecutionResponse.php
+++ b/src/Service/Athena/src/Result/StopCalculationExecutionResponse.php
@@ -25,12 +25,12 @@ class StopCalculationExecutionResponse extends Result
*
* `FAILED` - The calculation failed and is no longer running.
*
- * @var CalculationExecutionState::*|null
+ * @var CalculationExecutionState::*|string|null
*/
private $state;
/**
- * @return CalculationExecutionState::*|null
+ * @return CalculationExecutionState::*|string|null
*/
public function getState(): ?string
{
diff --git a/src/Service/Athena/src/Result/TerminateSessionResponse.php b/src/Service/Athena/src/Result/TerminateSessionResponse.php
index d773572d2..26efb550a 100644
--- a/src/Service/Athena/src/Result/TerminateSessionResponse.php
+++ b/src/Service/Athena/src/Result/TerminateSessionResponse.php
@@ -27,12 +27,12 @@ class TerminateSessionResponse extends Result
*
* `FAILED` - Due to a failure, the session and its resources are no longer running.
*
- * @var SessionState::*|null
+ * @var SessionState::*|string|null
*/
private $state;
/**
- * @return SessionState::*|null
+ * @return SessionState::*|string|null
*/
public function getState(): ?string
{
diff --git a/src/Service/Athena/src/ValueObject/AclConfiguration.php b/src/Service/Athena/src/ValueObject/AclConfiguration.php
index 7132c7e8c..4a1cc7af6 100644
--- a/src/Service/Athena/src/ValueObject/AclConfiguration.php
+++ b/src/Service/Athena/src/ValueObject/AclConfiguration.php
@@ -24,13 +24,13 @@ final class AclConfiguration
*
* [^1]: https://docs.aws.amazon.com/AmazonS3/latest/userguide/acl-overview.html#canned-acl
*
- * @var S3AclOption::*
+ * @var S3AclOption::*|string
*/
private $s3AclOption;
/**
* @param array{
- * S3AclOption: S3AclOption::*,
+ * S3AclOption: S3AclOption::*|string,
* } $input
*/
public function __construct(array $input)
@@ -40,7 +40,7 @@ public function __construct(array $input)
/**
* @param array{
- * S3AclOption: S3AclOption::*,
+ * S3AclOption: S3AclOption::*|string,
* }|AclConfiguration $input
*/
public static function create($input): self
@@ -49,7 +49,7 @@ public static function create($input): self
}
/**
- * @return S3AclOption::*
+ * @return S3AclOption::*|string
*/
public function getS3AclOption(): string
{
diff --git a/src/Service/Athena/src/ValueObject/CalculationStatus.php b/src/Service/Athena/src/ValueObject/CalculationStatus.php
index 348b4cb32..13ad73cba 100644
--- a/src/Service/Athena/src/ValueObject/CalculationStatus.php
+++ b/src/Service/Athena/src/ValueObject/CalculationStatus.php
@@ -42,7 +42,7 @@ final class CalculationStatus
*
* `FAILED` - The calculation failed and is no longer running.
*
- * @var CalculationExecutionState::*|null
+ * @var CalculationExecutionState::*|string|null
*/
private $state;
@@ -58,7 +58,7 @@ final class CalculationStatus
* @param array{
* SubmissionDateTime?: null|\DateTimeImmutable,
* CompletionDateTime?: null|\DateTimeImmutable,
- * State?: null|CalculationExecutionState::*,
+ * State?: null|CalculationExecutionState::*|string,
* StateChangeReason?: null|string,
* } $input
*/
@@ -74,7 +74,7 @@ public function __construct(array $input)
* @param array{
* SubmissionDateTime?: null|\DateTimeImmutable,
* CompletionDateTime?: null|\DateTimeImmutable,
- * State?: null|CalculationExecutionState::*,
+ * State?: null|CalculationExecutionState::*|string,
* StateChangeReason?: null|string,
* }|CalculationStatus $input
*/
@@ -89,7 +89,7 @@ public function getCompletionDateTime(): ?\DateTimeImmutable
}
/**
- * @return CalculationExecutionState::*|null
+ * @return CalculationExecutionState::*|string|null
*/
public function getState(): ?string
{
diff --git a/src/Service/Athena/src/ValueObject/ColumnInfo.php b/src/Service/Athena/src/ValueObject/ColumnInfo.php
index 4b474fe7b..ec3ea04c5 100644
--- a/src/Service/Athena/src/ValueObject/ColumnInfo.php
+++ b/src/Service/Athena/src/ValueObject/ColumnInfo.php
@@ -70,7 +70,7 @@ final class ColumnInfo
/**
* Unsupported constraint. This value always shows as `UNKNOWN`.
*
- * @var ColumnNullable::*|null
+ * @var ColumnNullable::*|string|null
*/
private $nullable;
@@ -91,7 +91,7 @@ final class ColumnInfo
* Type: string,
* Precision?: null|int,
* Scale?: null|int,
- * Nullable?: null|ColumnNullable::*,
+ * Nullable?: null|ColumnNullable::*|string,
* CaseSensitive?: null|bool,
* } $input
*/
@@ -119,7 +119,7 @@ public function __construct(array $input)
* Type: string,
* Precision?: null|int,
* Scale?: null|int,
- * Nullable?: null|ColumnNullable::*,
+ * Nullable?: null|ColumnNullable::*|string,
* CaseSensitive?: null|bool,
* }|ColumnInfo $input
*/
@@ -149,7 +149,7 @@ public function getName(): string
}
/**
- * @return ColumnNullable::*|null
+ * @return ColumnNullable::*|string|null
*/
public function getNullable(): ?string
{
diff --git a/src/Service/Athena/src/ValueObject/DataCatalog.php b/src/Service/Athena/src/ValueObject/DataCatalog.php
index 121f8539b..067b25baa 100644
--- a/src/Service/Athena/src/ValueObject/DataCatalog.php
+++ b/src/Service/Athena/src/ValueObject/DataCatalog.php
@@ -36,7 +36,7 @@ final class DataCatalog
* an external Apache Hive metastore. `FEDERATED` is a federated catalog for which Athena creates the connection and the
* Lambda function for you based on the parameters that you pass.
*
- * @var DataCatalogType::*
+ * @var DataCatalogType::*|string
*/
private $type;
@@ -104,7 +104,7 @@ final class DataCatalog
* - `DELETE_COMPLETE`: Federated data catalog deleted.
* - `DELETE_FAILED`: Federated data catalog could not be deleted.
*
- * @var DataCatalogStatus::*|null
+ * @var DataCatalogStatus::*|string|null
*/
private $status;
@@ -114,7 +114,7 @@ final class DataCatalog
*
* [^1]: https://docs.aws.amazon.com/athena/latest/ug/connectors-available.html
*
- * @var ConnectionType::*|null
+ * @var ConnectionType::*|string|null
*/
private $connectionType;
@@ -129,10 +129,10 @@ final class DataCatalog
* @param array{
* Name: string,
* Description?: null|string,
- * Type: DataCatalogType::*,
+ * Type: DataCatalogType::*|string,
* Parameters?: null|array,
- * Status?: null|DataCatalogStatus::*,
- * ConnectionType?: null|ConnectionType::*,
+ * Status?: null|DataCatalogStatus::*|string,
+ * ConnectionType?: null|ConnectionType::*|string,
* Error?: null|string,
* } $input
*/
@@ -151,10 +151,10 @@ public function __construct(array $input)
* @param array{
* Name: string,
* Description?: null|string,
- * Type: DataCatalogType::*,
+ * Type: DataCatalogType::*|string,
* Parameters?: null|array,
- * Status?: null|DataCatalogStatus::*,
- * ConnectionType?: null|ConnectionType::*,
+ * Status?: null|DataCatalogStatus::*|string,
+ * ConnectionType?: null|ConnectionType::*|string,
* Error?: null|string,
* }|DataCatalog $input
*/
@@ -164,7 +164,7 @@ public static function create($input): self
}
/**
- * @return ConnectionType::*|null
+ * @return ConnectionType::*|string|null
*/
public function getConnectionType(): ?string
{
@@ -195,7 +195,7 @@ public function getParameters(): array
}
/**
- * @return DataCatalogStatus::*|null
+ * @return DataCatalogStatus::*|string|null
*/
public function getStatus(): ?string
{
@@ -203,7 +203,7 @@ public function getStatus(): ?string
}
/**
- * @return DataCatalogType::*
+ * @return DataCatalogType::*|string
*/
public function getType(): string
{
diff --git a/src/Service/Athena/src/ValueObject/EncryptionConfiguration.php b/src/Service/Athena/src/ValueObject/EncryptionConfiguration.php
index 7d33f2236..f38da7773 100644
--- a/src/Service/Athena/src/ValueObject/EncryptionConfiguration.php
+++ b/src/Service/Athena/src/ValueObject/EncryptionConfiguration.php
@@ -18,7 +18,7 @@ final class EncryptionConfiguration
* If a query runs in a workgroup and the workgroup overrides client-side settings, then the workgroup's setting for
* encryption is used. It specifies whether query results must be encrypted, for all queries that run in this workgroup.
*
- * @var EncryptionOption::*
+ * @var EncryptionOption::*|string
*/
private $encryptionOption;
@@ -31,7 +31,7 @@ final class EncryptionConfiguration
/**
* @param array{
- * EncryptionOption: EncryptionOption::*,
+ * EncryptionOption: EncryptionOption::*|string,
* KmsKey?: null|string,
* } $input
*/
@@ -43,7 +43,7 @@ public function __construct(array $input)
/**
* @param array{
- * EncryptionOption: EncryptionOption::*,
+ * EncryptionOption: EncryptionOption::*|string,
* KmsKey?: null|string,
* }|EncryptionConfiguration $input
*/
@@ -53,7 +53,7 @@ public static function create($input): self
}
/**
- * @return EncryptionOption::*
+ * @return EncryptionOption::*|string
*/
public function getEncryptionOption(): string
{
diff --git a/src/Service/Athena/src/ValueObject/QueryExecution.php b/src/Service/Athena/src/ValueObject/QueryExecution.php
index 78d189c50..0a0a81671 100644
--- a/src/Service/Athena/src/ValueObject/QueryExecution.php
+++ b/src/Service/Athena/src/ValueObject/QueryExecution.php
@@ -28,7 +28,7 @@ final class QueryExecution
* Manipulation Language) query statements, such as `CREATE TABLE AS SELECT`. `UTILITY` indicates query statements other
* than DDL and DML, such as `SHOW CREATE TABLE`, or `DESCRIBE TABLE`.
*
- * @var StatementType::*|null
+ * @var StatementType::*|string|null
*/
private $statementType;
@@ -119,7 +119,7 @@ final class QueryExecution
* @param array{
* QueryExecutionId?: null|string,
* Query?: null|string,
- * StatementType?: null|StatementType::*,
+ * StatementType?: null|StatementType::*|string,
* ManagedQueryResultsConfiguration?: null|ManagedQueryResultsConfiguration|array,
* ResultConfiguration?: null|ResultConfiguration|array,
* ResultReuseConfiguration?: null|ResultReuseConfiguration|array,
@@ -155,7 +155,7 @@ public function __construct(array $input)
* @param array{
* QueryExecutionId?: null|string,
* Query?: null|string,
- * StatementType?: null|StatementType::*,
+ * StatementType?: null|StatementType::*|string,
* ManagedQueryResultsConfiguration?: null|ManagedQueryResultsConfiguration|array,
* ResultConfiguration?: null|ResultConfiguration|array,
* ResultReuseConfiguration?: null|ResultReuseConfiguration|array,
@@ -223,7 +223,7 @@ public function getResultReuseConfiguration(): ?ResultReuseConfiguration
}
/**
- * @return StatementType::*|null
+ * @return StatementType::*|string|null
*/
public function getStatementType(): ?string
{
diff --git a/src/Service/Athena/src/ValueObject/QueryExecutionStatus.php b/src/Service/Athena/src/ValueObject/QueryExecutionStatus.php
index 0b7f519aa..48870eaa7 100644
--- a/src/Service/Athena/src/ValueObject/QueryExecutionStatus.php
+++ b/src/Service/Athena/src/ValueObject/QueryExecutionStatus.php
@@ -18,7 +18,7 @@ final class QueryExecutionStatus
* > Athena automatically retries your queries in cases of certain transient errors. As a result, you may see the query
* > state transition from `RUNNING` or `FAILED` to `QUEUED`.
*
- * @var QueryExecutionState::*|null
+ * @var QueryExecutionState::*|string|null
*/
private $state;
@@ -52,7 +52,7 @@ final class QueryExecutionStatus
/**
* @param array{
- * State?: null|QueryExecutionState::*,
+ * State?: null|QueryExecutionState::*|string,
* StateChangeReason?: null|string,
* SubmissionDateTime?: null|\DateTimeImmutable,
* CompletionDateTime?: null|\DateTimeImmutable,
@@ -70,7 +70,7 @@ public function __construct(array $input)
/**
* @param array{
- * State?: null|QueryExecutionState::*,
+ * State?: null|QueryExecutionState::*|string,
* StateChangeReason?: null|string,
* SubmissionDateTime?: null|\DateTimeImmutable,
* CompletionDateTime?: null|\DateTimeImmutable,
@@ -93,7 +93,7 @@ public function getCompletionDateTime(): ?\DateTimeImmutable
}
/**
- * @return QueryExecutionState::*|null
+ * @return QueryExecutionState::*|string|null
*/
public function getState(): ?string
{
diff --git a/src/Service/Athena/src/ValueObject/QueryResultsS3AccessGrantsConfiguration.php b/src/Service/Athena/src/ValueObject/QueryResultsS3AccessGrantsConfiguration.php
index 4d591e89c..6693ece4a 100644
--- a/src/Service/Athena/src/ValueObject/QueryResultsS3AccessGrantsConfiguration.php
+++ b/src/Service/Athena/src/ValueObject/QueryResultsS3AccessGrantsConfiguration.php
@@ -27,7 +27,7 @@ final class QueryResultsS3AccessGrantsConfiguration
/**
* The authentication type used for Amazon S3 access grants. Currently, only `DIRECTORY_IDENTITY` is supported.
*
- * @var AuthenticationType::*
+ * @var AuthenticationType::*|string
*/
private $authenticationType;
@@ -35,7 +35,7 @@ final class QueryResultsS3AccessGrantsConfiguration
* @param array{
* EnableS3AccessGrants: bool,
* CreateUserLevelPrefix?: null|bool,
- * AuthenticationType: AuthenticationType::*,
+ * AuthenticationType: AuthenticationType::*|string,
* } $input
*/
public function __construct(array $input)
@@ -49,7 +49,7 @@ public function __construct(array $input)
* @param array{
* EnableS3AccessGrants: bool,
* CreateUserLevelPrefix?: null|bool,
- * AuthenticationType: AuthenticationType::*,
+ * AuthenticationType: AuthenticationType::*|string,
* }|QueryResultsS3AccessGrantsConfiguration $input
*/
public static function create($input): self
@@ -58,7 +58,7 @@ public static function create($input): self
}
/**
- * @return AuthenticationType::*
+ * @return AuthenticationType::*|string
*/
public function getAuthenticationType(): string
{
diff --git a/src/Service/Athena/src/ValueObject/SessionStatus.php b/src/Service/Athena/src/ValueObject/SessionStatus.php
index 0db1ab26e..2836a4ff5 100644
--- a/src/Service/Athena/src/ValueObject/SessionStatus.php
+++ b/src/Service/Athena/src/ValueObject/SessionStatus.php
@@ -56,7 +56,7 @@ final class SessionStatus
*
* `FAILED` - Due to a failure, the session and its resources are no longer running.
*
- * @var SessionState::*|null
+ * @var SessionState::*|string|null
*/
private $state;
@@ -73,7 +73,7 @@ final class SessionStatus
* LastModifiedDateTime?: null|\DateTimeImmutable,
* EndDateTime?: null|\DateTimeImmutable,
* IdleSinceDateTime?: null|\DateTimeImmutable,
- * State?: null|SessionState::*,
+ * State?: null|SessionState::*|string,
* StateChangeReason?: null|string,
* } $input
*/
@@ -93,7 +93,7 @@ public function __construct(array $input)
* LastModifiedDateTime?: null|\DateTimeImmutable,
* EndDateTime?: null|\DateTimeImmutable,
* IdleSinceDateTime?: null|\DateTimeImmutable,
- * State?: null|SessionState::*,
+ * State?: null|SessionState::*|string,
* StateChangeReason?: null|string,
* }|SessionStatus $input
*/
@@ -123,7 +123,7 @@ public function getStartDateTime(): ?\DateTimeImmutable
}
/**
- * @return SessionState::*|null
+ * @return SessionState::*|string|null
*/
public function getState(): ?string
{
diff --git a/src/Service/Athena/src/ValueObject/WorkGroup.php b/src/Service/Athena/src/ValueObject/WorkGroup.php
index 826e822c1..f9c6fdfb2 100644
--- a/src/Service/Athena/src/ValueObject/WorkGroup.php
+++ b/src/Service/Athena/src/ValueObject/WorkGroup.php
@@ -26,7 +26,7 @@ final class WorkGroup
/**
* The state of the workgroup: ENABLED or DISABLED.
*
- * @var WorkGroupState::*|null
+ * @var WorkGroupState::*|string|null
*/
private $state;
@@ -66,7 +66,7 @@ final class WorkGroup
/**
* @param array{
* Name: string,
- * State?: null|WorkGroupState::*,
+ * State?: null|WorkGroupState::*|string,
* Configuration?: null|WorkGroupConfiguration|array,
* Description?: null|string,
* CreationTime?: null|\DateTimeImmutable,
@@ -86,7 +86,7 @@ public function __construct(array $input)
/**
* @param array{
* Name: string,
- * State?: null|WorkGroupState::*,
+ * State?: null|WorkGroupState::*|string,
* Configuration?: null|WorkGroupConfiguration|array,
* Description?: null|string,
* CreationTime?: null|\DateTimeImmutable,
@@ -124,7 +124,7 @@ public function getName(): string
}
/**
- * @return WorkGroupState::*|null
+ * @return WorkGroupState::*|string|null
*/
public function getState(): ?string
{
diff --git a/src/Service/BedrockRuntime/CHANGELOG.md b/src/Service/BedrockRuntime/CHANGELOG.md
index d28e7365e..74d7c6f52 100644
--- a/src/Service/BedrockRuntime/CHANGELOG.md
+++ b/src/Service/BedrockRuntime/CHANGELOG.md
@@ -5,6 +5,7 @@
### Changed
- AWS enhancement: Documentation updates.
+- DocBloc on enum values reflects that AWS might returns unknown values
## 1.1.0
diff --git a/src/Service/BedrockRuntime/src/Result/InvokeModelResponse.php b/src/Service/BedrockRuntime/src/Result/InvokeModelResponse.php
index f63c11e92..ebc651aa9 100644
--- a/src/Service/BedrockRuntime/src/Result/InvokeModelResponse.php
+++ b/src/Service/BedrockRuntime/src/Result/InvokeModelResponse.php
@@ -28,7 +28,7 @@ class InvokeModelResponse extends Result
/**
* Model performance settings for the request.
*
- * @var PerformanceConfigLatency::*|null
+ * @var PerformanceConfigLatency::*|string|null
*/
private $performanceConfigLatency;
@@ -47,7 +47,7 @@ public function getContentType(): string
}
/**
- * @return PerformanceConfigLatency::*|null
+ * @return PerformanceConfigLatency::*|string|null
*/
public function getPerformanceConfigLatency(): ?string
{
diff --git a/src/Service/CloudFormation/CHANGELOG.md b/src/Service/CloudFormation/CHANGELOG.md
index 21ecf9ad9..fcf95a79c 100644
--- a/src/Service/CloudFormation/CHANGELOG.md
+++ b/src/Service/CloudFormation/CHANGELOG.md
@@ -5,6 +5,7 @@
### Changed
- AWS enhancement: Documentation updates.
+- DocBloc on enum values reflects that AWS might returns unknown values
## 1.9.0
diff --git a/src/Service/CloudFormation/src/Result/DescribeStackDriftDetectionStatusOutput.php b/src/Service/CloudFormation/src/Result/DescribeStackDriftDetectionStatusOutput.php
index 865df49f8..5ee6f5488 100644
--- a/src/Service/CloudFormation/src/Result/DescribeStackDriftDetectionStatusOutput.php
+++ b/src/Service/CloudFormation/src/Result/DescribeStackDriftDetectionStatusOutput.php
@@ -36,7 +36,7 @@ class DescribeStackDriftDetectionStatusOutput extends Result
* - `UNKNOWN`: CloudFormation could not run drift detection for a resource in the stack. See the
* `DetectionStatusReason` for details.
*
- * @var StackDriftStatus::*|null
+ * @var StackDriftStatus::*|string|null
*/
private $stackDriftStatus;
@@ -52,7 +52,7 @@ class DescribeStackDriftDetectionStatusOutput extends Result
* will be available for resources on which CloudFormation successfully completed drift detection.
* - `DETECTION_IN_PROGRESS`: The stack drift detection operation is currently in progress.
*
- * @var StackDriftDetectionStatus::*
+ * @var StackDriftDetectionStatus::*|string
*/
private $detectionStatus;
@@ -79,7 +79,7 @@ class DescribeStackDriftDetectionStatusOutput extends Result
private $timestamp;
/**
- * @return StackDriftDetectionStatus::*
+ * @return StackDriftDetectionStatus::*|string
*/
public function getDetectionStatus(): string
{
@@ -110,7 +110,7 @@ public function getStackDriftDetectionId(): string
}
/**
- * @return StackDriftStatus::*|null
+ * @return StackDriftStatus::*|string|null
*/
public function getStackDriftStatus(): ?string
{
diff --git a/src/Service/CloudFormation/src/Result/DescribeStacksOutput.php b/src/Service/CloudFormation/src/Result/DescribeStacksOutput.php
index ff4fa1c91..ef6db0270 100644
--- a/src/Service/CloudFormation/src/Result/DescribeStacksOutput.php
+++ b/src/Service/CloudFormation/src/Result/DescribeStacksOutput.php
@@ -109,7 +109,7 @@ protected function populateResult(Response $response): void
}
/**
- * @return list
+ * @return list
*/
private function populateResultCapabilities(\SimpleXMLElement $xml): array
{
diff --git a/src/Service/CloudFormation/src/ValueObject/Stack.php b/src/Service/CloudFormation/src/ValueObject/Stack.php
index 1e9a9e9ef..1820fe650 100644
--- a/src/Service/CloudFormation/src/ValueObject/Stack.php
+++ b/src/Service/CloudFormation/src/ValueObject/Stack.php
@@ -80,7 +80,7 @@ final class Stack
/**
* Current status of the stack.
*
- * @var StackStatus::*
+ * @var StackStatus::*|string
*/
private $stackStatus;
@@ -118,7 +118,7 @@ final class Stack
/**
* The capabilities allowed in the stack.
*
- * @var list|null
+ * @var list|null
*/
private $capabilities;
@@ -208,7 +208,7 @@ final class Stack
* - `STANDARD` - Use the standard behavior. Specifying this value is the same as not specifying this parameter.
* - `FORCE_DELETE_STACK` - Delete the stack if it's stuck in a `DELETE_FAILED` state due to resource deletion failure.
*
- * @var DeletionMode::*|null
+ * @var DeletionMode::*|string|null
*/
private $deletionMode;
@@ -220,7 +220,7 @@ final class Stack
*
* [^1]: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stack-resource-configuration-complete.html
*
- * @var DetailedStatus::*|null
+ * @var DetailedStatus::*|string|null
*/
private $detailedStatus;
@@ -235,12 +235,12 @@ final class Stack
* DeletionTime?: null|\DateTimeImmutable,
* LastUpdatedTime?: null|\DateTimeImmutable,
* RollbackConfiguration?: null|RollbackConfiguration|array,
- * StackStatus: StackStatus::*,
+ * StackStatus: StackStatus::*|string,
* StackStatusReason?: null|string,
* DisableRollback?: null|bool,
* NotificationARNs?: null|string[],
* TimeoutInMinutes?: null|int,
- * Capabilities?: null|array,
+ * Capabilities?: null|array,
* Outputs?: null|array