Skip to content

Commit

Permalink
Added support for credential reports and password rotation policies t…
Browse files Browse the repository at this point in the history
…o the AWS IAM client.
  • Loading branch information
jeremeamia committed Jul 15, 2014
1 parent ae13b3b commit 6af4d69
Show file tree
Hide file tree
Showing 3 changed files with 158 additions and 1 deletion.
2 changes: 2 additions & 0 deletions CHANGELOG.md
Expand Up @@ -4,6 +4,8 @@ CHANGELOG
Next Release:
-------------

* Added support for credential reports and password rotation policies to the
AWS IAM client.
* Added a `listFilter` stream context option that can be used when using
`opendir()` and the Amazon S3 stream wrapper. This option is used to filter
out specific objects from the files yielded from the stream wrapper.
Expand Down
2 changes: 2 additions & 0 deletions src/Aws/Iam/IamClient.php
Expand Up @@ -55,8 +55,10 @@
* @method Model deleteUserPolicy(array $args = array()) {@command Iam DeleteUserPolicy}
* @method Model deleteVirtualMFADevice(array $args = array()) {@command Iam DeleteVirtualMFADevice}
* @method Model enableMFADevice(array $args = array()) {@command Iam EnableMFADevice}
* @method Model generateCredentialReport(array $args = array()) {@command Iam GenerateCredentialReport}
* @method Model getAccountPasswordPolicy(array $args = array()) {@command Iam GetAccountPasswordPolicy}
* @method Model getAccountSummary(array $args = array()) {@command Iam GetAccountSummary}
* @method Model getCredentialReport(array $args = array()) {@command Iam GetCredentialReport}
* @method Model getGroup(array $args = array()) {@command Iam GetGroup}
* @method Model getGroupPolicy(array $args = array()) {@command Iam GetGroupPolicy}
* @method Model getInstanceProfile(array $args = array()) {@command Iam GetInstanceProfile}
Expand Down
155 changes: 154 additions & 1 deletion src/Aws/Iam/Resources/iam-2010-05-08.php
Expand Up @@ -216,6 +216,10 @@
'reason' => 'The request was rejected because it referenced an entity that is temporarily unmodifiable, such as a user name that was deleted and then recreated. The error indicates that the request is likely to succeed if you try again after waiting several minutes. The error message describes the entity.',
'class' => 'EntityTemporarilyUnmodifiableException',
),
array(
'reason' => 'The request was rejected because the provided password did not meet the requirements imposed by the account password policy.',
'class' => 'PasswordPolicyViolationException',
),
),
),
'CreateAccessKey' => array(
Expand Down Expand Up @@ -408,6 +412,11 @@
'minLength' => 1,
'maxLength' => 128,
),
'PasswordResetRequired' => array(
'type' => 'boolean',
'format' => 'boolean-string',
'location' => 'aws.query',
),
),
'errorResponses' => array(
array(
Expand Down Expand Up @@ -762,6 +771,10 @@
'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.',
'class' => 'NoSuchEntityException',
),
array(
'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.',
'class' => 'LimitExceededException',
),
),
),
'DeleteGroup' => array(
Expand Down Expand Up @@ -1039,6 +1052,14 @@
array(
'class' => 'InvalidInputException',
),
array(
'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.',
'class' => 'LimitExceededException',
),
array(
'reason' => 'The request was rejected because it referenced an entity that does not exist. The error message describes the entity.',
'class' => 'NoSuchEntityException',
),
),
),
'DeleteServerCertificate' => array(
Expand Down Expand Up @@ -1315,6 +1336,31 @@
),
),
),
'GenerateCredentialReport' => array(
'httpMethod' => 'POST',
'uri' => '/',
'class' => 'Aws\\Common\\Command\\QueryCommand',
'responseClass' => 'GenerateCredentialReportResponse',
'responseType' => 'model',
'parameters' => array(
'Action' => array(
'static' => true,
'location' => 'aws.query',
'default' => 'GenerateCredentialReport',
),
'Version' => array(
'static' => true,
'location' => 'aws.query',
'default' => '2010-05-08',
),
),
'errorResponses' => array(
array(
'reason' => 'The request was rejected because it attempted to create resources beyond the current AWS account limits. The error message describes the limit exceeded.',
'class' => 'LimitExceededException',
),
),
),
'GetAccountPasswordPolicy' => array(
'httpMethod' => 'POST',
'uri' => '/',
Expand Down Expand Up @@ -1359,6 +1405,39 @@
),
),
),
'GetCredentialReport' => array(
'httpMethod' => 'POST',
'uri' => '/',
'class' => 'Aws\\Common\\Command\\QueryCommand',
'responseClass' => 'GetCredentialReportResponse',
'responseType' => 'model',
'parameters' => array(
'Action' => array(
'static' => true,
'location' => 'aws.query',
'default' => 'GetCredentialReport',
),
'Version' => array(
'static' => true,
'location' => 'aws.query',
'default' => '2010-05-08',
),
),
'errorResponses' => array(
array(
'reason' => 'The request was rejected because the credential report does not exist. To generate a credential report, use GenerateCredentialReport.',
'class' => 'CredentialReportNotPresentException',
),
array(
'reason' => 'The request was rejected because the most recent credential report has expired. To generate a new credential report, use GenerateCredentialReport. For more information about credential report expiration, see Getting Credential Reports in the Using IAM guide.',
'class' => 'CredentialReportExpiredException',
),
array(
'reason' => 'The request was rejected because the credential report is still being generated.',
'class' => 'CredentialReportNotReadyException',
),
),
),
'GetGroup' => array(
'httpMethod' => 'POST',
'uri' => '/',
Expand Down Expand Up @@ -2737,6 +2816,23 @@
'format' => 'boolean-string',
'location' => 'aws.query',
),
'MaxPasswordAge' => array(
'type' => 'numeric',
'location' => 'aws.query',
'minimum' => 1,
'maximum' => 1095,
),
'PasswordReusePrevention' => array(
'type' => 'numeric',
'location' => 'aws.query',
'minimum' => 1,
'maximum' => 24,
),
'HardExpiry' => array(
'type' => 'boolean',
'format' => 'boolean-string',
'location' => 'aws.query',
),
),
'errorResponses' => array(
array(
Expand Down Expand Up @@ -2877,12 +2973,16 @@
'maxLength' => 64,
),
'Password' => array(
'required' => true,
'type' => 'string',
'location' => 'aws.query',
'minLength' => 1,
'maxLength' => 128,
),
'PasswordResetRequired' => array(
'type' => 'boolean',
'format' => 'boolean-string',
'location' => 'aws.query',
),
),
'errorResponses' => array(
array(
Expand Down Expand Up @@ -3361,6 +3461,9 @@
'CreateDate' => array(
'type' => 'string',
),
'PasswordResetRequired' => array(
'type' => 'boolean',
),
),
),
),
Expand Down Expand Up @@ -3476,6 +3579,20 @@
),
),
),
'GenerateCredentialReportResponse' => array(
'type' => 'object',
'additionalProperties' => true,
'properties' => array(
'State' => array(
'type' => 'string',
'location' => 'xml',
),
'Description' => array(
'type' => 'string',
'location' => 'xml',
),
),
),
'GetAccountPasswordPolicyResponse' => array(
'type' => 'object',
'additionalProperties' => true,
Expand Down Expand Up @@ -3508,6 +3625,12 @@
'MaxPasswordAge' => array(
'type' => 'numeric',
),
'PasswordReusePrevention' => array(
'type' => 'numeric',
),
'HardExpiry' => array(
'type' => 'boolean',
),
),
),
),
Expand Down Expand Up @@ -3566,6 +3689,24 @@
),
),
),
'GetCredentialReportResponse' => array(
'type' => 'object',
'additionalProperties' => true,
'properties' => array(
'Content' => array(
'type' => 'string',
'location' => 'xml',
),
'ReportFormat' => array(
'type' => 'string',
'location' => 'xml',
),
'GeneratedTime' => array(
'type' => 'string',
'location' => 'xml',
),
),
),
'GetGroupResponse' => array(
'type' => 'object',
'additionalProperties' => true,
Expand Down Expand Up @@ -3714,6 +3855,9 @@
'CreateDate' => array(
'type' => 'string',
),
'PasswordResetRequired' => array(
'type' => 'boolean',
),
),
),
),
Expand Down Expand Up @@ -3810,6 +3954,9 @@
'UploadDate' => array(
'type' => 'string',
),
'Expiration' => array(
'type' => 'string',
),
),
),
'CertificateBody' => array(
Expand Down Expand Up @@ -4319,6 +4466,9 @@
'UploadDate' => array(
'type' => 'string',
),
'Expiration' => array(
'type' => 'string',
),
),
),
),
Expand Down Expand Up @@ -4525,6 +4675,9 @@
'UploadDate' => array(
'type' => 'string',
),
'Expiration' => array(
'type' => 'string',
),
),
),
),
Expand Down

0 comments on commit 6af4d69

Please sign in to comment.