Skip to content

Commit 96ce5bd

Browse files
authored
Allow passing explicit null values for optional input members (#1542)
This makes it easier to define the array literal for input objects as PHP does not have a syntax sugar for conditional keys in an array literal. This is consistent with the generated code for value objects. Even though input objects allow to omit required members in the constructor shape (as they can be set later by using the setter), the phpdoc type still does not allow passing null explicitly (even though the code would deal with it until the validation run) so that static analysis tools can catch mistakes there. Passing a required member explicitly is intended to pass a valid value for it and not a potentially missing one.
1 parent c5bb6b4 commit 96ce5bd

9 files changed

+42
-42
lines changed

src/IamClient.php

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ public function addUserToGroup($input): Result
9191
* @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-iam-2010-05-08.html#createaccesskey
9292
*
9393
* @param array{
94-
* UserName?: string,
94+
* UserName?: null|string,
9595
* '@region'?: string|null,
9696
* }|CreateAccessKeyRequest $input
9797
*
@@ -163,10 +163,10 @@ public function createServiceSpecificCredential($input): CreateServiceSpecificCr
163163
* @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-iam-2010-05-08.html#createuser
164164
*
165165
* @param array{
166-
* Path?: string,
166+
* Path?: null|string,
167167
* UserName: string,
168-
* PermissionsBoundary?: string,
169-
* Tags?: array<Tag|array>,
168+
* PermissionsBoundary?: null|string,
169+
* Tags?: null|array<Tag|array>,
170170
* '@region'?: string|null,
171171
* }|CreateUserRequest $input
172172
*
@@ -204,7 +204,7 @@ public function createUser($input): CreateUserResponse
204204
* @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-iam-2010-05-08.html#deleteaccesskey
205205
*
206206
* @param array{
207-
* UserName?: string,
207+
* UserName?: null|string,
208208
* AccessKeyId: string,
209209
* '@region'?: string|null,
210210
* }|DeleteAccessKeyRequest $input
@@ -232,7 +232,7 @@ public function deleteAccessKey($input): Result
232232
* @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-iam-2010-05-08.html#deleteservicespecificcredential
233233
*
234234
* @param array{
235-
* UserName?: string,
235+
* UserName?: null|string,
236236
* ServiceSpecificCredentialId: string,
237237
* '@region'?: string|null,
238238
* }|DeleteServiceSpecificCredentialRequest $input
@@ -337,7 +337,7 @@ public function deleteUserPolicy($input): Result
337337
* @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-iam-2010-05-08.html#getuser
338338
*
339339
* @param array{
340-
* UserName?: string,
340+
* UserName?: null|string,
341341
* '@region'?: string|null,
342342
* }|GetUserRequest $input
343343
*
@@ -368,8 +368,8 @@ public function getUser($input = []): GetUserResponse
368368
* @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-iam-2010-05-08.html#listservicespecificcredentials
369369
*
370370
* @param array{
371-
* UserName?: string,
372-
* ServiceName?: string,
371+
* UserName?: null|string,
372+
* ServiceName?: null|string,
373373
* '@region'?: string|null,
374374
* }|ListServiceSpecificCredentialsRequest $input
375375
*
@@ -405,9 +405,9 @@ public function listServiceSpecificCredentials($input = []): ListServiceSpecific
405405
* @see https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-iam-2010-05-08.html#listusers
406406
*
407407
* @param array{
408-
* PathPrefix?: string,
409-
* Marker?: string,
410-
* MaxItems?: int,
408+
* PathPrefix?: null|string,
409+
* Marker?: null|string,
410+
* MaxItems?: null|int,
411411
* '@region'?: string|null,
412412
* }|ListUsersRequest $input
413413
*
@@ -489,8 +489,8 @@ public function putUserPolicy($input): Result
489489
*
490490
* @param array{
491491
* UserName: string,
492-
* NewPath?: string,
493-
* NewUserName?: string,
492+
* NewPath?: null|string,
493+
* NewUserName?: null|string,
494494
* '@region'?: string|null,
495495
* }|UpdateUserRequest $input
496496
*

src/Input/CreateAccessKeyRequest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ final class CreateAccessKeyRequest extends Input
2222

2323
/**
2424
* @param array{
25-
* UserName?: string,
25+
* UserName?: null|string,
2626
* '@region'?: string|null,
2727
* } $input
2828
*/
@@ -34,7 +34,7 @@ public function __construct(array $input = [])
3434

3535
/**
3636
* @param array{
37-
* UserName?: string,
37+
* UserName?: null|string,
3838
* '@region'?: string|null,
3939
* }|CreateAccessKeyRequest $input
4040
*/

src/Input/CreateUserRequest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,10 +71,10 @@ final class CreateUserRequest extends Input
7171

7272
/**
7373
* @param array{
74-
* Path?: string,
74+
* Path?: null|string,
7575
* UserName?: string,
76-
* PermissionsBoundary?: string,
77-
* Tags?: array<Tag|array>,
76+
* PermissionsBoundary?: null|string,
77+
* Tags?: null|array<Tag|array>,
7878
* '@region'?: string|null,
7979
* } $input
8080
*/
@@ -89,10 +89,10 @@ public function __construct(array $input = [])
8989

9090
/**
9191
* @param array{
92-
* Path?: string,
92+
* Path?: null|string,
9393
* UserName?: string,
94-
* PermissionsBoundary?: string,
95-
* Tags?: array<Tag|array>,
94+
* PermissionsBoundary?: null|string,
95+
* Tags?: null|array<Tag|array>,
9696
* '@region'?: string|null,
9797
* }|CreateUserRequest $input
9898
*/

src/Input/DeleteAccessKeyRequest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ final class DeleteAccessKeyRequest extends Input
3737

3838
/**
3939
* @param array{
40-
* UserName?: string,
40+
* UserName?: null|string,
4141
* AccessKeyId?: string,
4242
* '@region'?: string|null,
4343
* } $input
@@ -51,7 +51,7 @@ public function __construct(array $input = [])
5151

5252
/**
5353
* @param array{
54-
* UserName?: string,
54+
* UserName?: null|string,
5555
* AccessKeyId?: string,
5656
* '@region'?: string|null,
5757
* }|DeleteAccessKeyRequest $input

src/Input/DeleteServiceSpecificCredentialRequest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ final class DeleteServiceSpecificCredentialRequest extends Input
3939

4040
/**
4141
* @param array{
42-
* UserName?: string,
42+
* UserName?: null|string,
4343
* ServiceSpecificCredentialId?: string,
4444
* '@region'?: string|null,
4545
* } $input
@@ -53,7 +53,7 @@ public function __construct(array $input = [])
5353

5454
/**
5555
* @param array{
56-
* UserName?: string,
56+
* UserName?: null|string,
5757
* ServiceSpecificCredentialId?: string,
5858
* '@region'?: string|null,
5959
* }|DeleteServiceSpecificCredentialRequest $input

src/Input/GetUserRequest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ final class GetUserRequest extends Input
2323

2424
/**
2525
* @param array{
26-
* UserName?: string,
26+
* UserName?: null|string,
2727
* '@region'?: string|null,
2828
* } $input
2929
*/
@@ -35,7 +35,7 @@ public function __construct(array $input = [])
3535

3636
/**
3737
* @param array{
38-
* UserName?: string,
38+
* UserName?: null|string,
3939
* '@region'?: string|null,
4040
* }|GetUserRequest $input
4141
*/

src/Input/ListServiceSpecificCredentialsRequest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -31,8 +31,8 @@ final class ListServiceSpecificCredentialsRequest extends Input
3131

3232
/**
3333
* @param array{
34-
* UserName?: string,
35-
* ServiceName?: string,
34+
* UserName?: null|string,
35+
* ServiceName?: null|string,
3636
* '@region'?: string|null,
3737
* } $input
3838
*/
@@ -45,8 +45,8 @@ public function __construct(array $input = [])
4545

4646
/**
4747
* @param array{
48-
* UserName?: string,
49-
* ServiceName?: string,
48+
* UserName?: null|string,
49+
* ServiceName?: null|string,
5050
* '@region'?: string|null,
5151
* }|ListServiceSpecificCredentialsRequest $input
5252
*/

src/Input/ListUsersRequest.php

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@ final class ListUsersRequest extends Input
4747

4848
/**
4949
* @param array{
50-
* PathPrefix?: string,
51-
* Marker?: string,
52-
* MaxItems?: int,
50+
* PathPrefix?: null|string,
51+
* Marker?: null|string,
52+
* MaxItems?: null|int,
5353
* '@region'?: string|null,
5454
* } $input
5555
*/
@@ -63,9 +63,9 @@ public function __construct(array $input = [])
6363

6464
/**
6565
* @param array{
66-
* PathPrefix?: string,
67-
* Marker?: string,
68-
* MaxItems?: int,
66+
* PathPrefix?: null|string,
67+
* Marker?: null|string,
68+
* MaxItems?: null|int,
6969
* '@region'?: string|null,
7070
* }|ListUsersRequest $input
7171
*/

src/Input/UpdateUserRequest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@ final class UpdateUserRequest extends Input
5050
/**
5151
* @param array{
5252
* UserName?: string,
53-
* NewPath?: string,
54-
* NewUserName?: string,
53+
* NewPath?: null|string,
54+
* NewUserName?: null|string,
5555
* '@region'?: string|null,
5656
* } $input
5757
*/
@@ -66,8 +66,8 @@ public function __construct(array $input = [])
6666
/**
6767
* @param array{
6868
* UserName?: string,
69-
* NewPath?: string,
70-
* NewUserName?: string,
69+
* NewPath?: null|string,
70+
* NewUserName?: null|string,
7171
* '@region'?: string|null,
7272
* }|UpdateUserRequest $input
7373
*/

0 commit comments

Comments
 (0)