Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
/*
3
 * Copyright 2010-2011 Amazon.com, Inc. or its affiliates. All Rights Reserved.
4
 *
5
 * Licensed under the Apache License, Version 2.0 (the "License").
6
 * You may not use this file except in compliance with the License.
7
 * A copy of the License is located at
8
 *
9
 *  http://aws.amazon.com/apache2.0
10
 *
11
 * or in the "license" file accompanying this file. This file is distributed
12
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13
 * express or implied. See the License for the specific language governing
14
 * permissions and limitations under the License.
15
 */
16
 
17
/**
18
 * This is the Amazon Web Services (AWS) Identity and Access Management (IAM) API Reference. This
19
 * guide provides descriptions of the IAM API as well as links to related content in the guide,
20
 * 	<a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/" target="_blank">Using
21
 * IAM</a>.
22
 *
23
 * IAM is a web service that enables AWS customers to manage users and user permissions under
24
 * their AWS account. For more information about this product go to <a href=
25
 * "http://aws.amazon.com/iam/" target="_blank">AWS Identity and Access Management (IAM)</a>. For
26
 * specific information about setting up signatures and authorization through the API, go to
27
 * 	<a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html" target=
28
 * "_blank">Making Query Requests</a> in <em>Using AWS Identity and Access Management</em>.
29
 *
30
 * If you're new to AWS and need additional technical information about a specific AWS product,
31
 * you can find the product'stechnical documentation at <a href=
32
 * "http://aws.amazon.com/documentation/" target=
33
 * "_blank">http://aws.amazon.com/documentation/</a>.
34
 *
35
 * We will refer to Amazon AWS Identity and Access Management using the abbreviated form IAM. All
36
 * copyrights and legal protections still apply.
37
 *
38
 * @version 2011.12.13
39
 * @license See the included NOTICE.md file for complete information.
40
 * @copyright See the included NOTICE.md file for complete information.
41
 * @link http://aws.amazon.com/iam/ AWS Identity and Access Management
42
 * @link http://aws.amazon.com/iam/documentation/ AWS Identity and Access Management documentation
43
 */
44
class AmazonIAM extends CFRuntime
45
{
46
	/*%******************************************************************************************%*/
47
	// CLASS CONSTANTS
48
 
49
	/**
50
	 * Specify the queue URL for the United States East (Northern Virginia) Region.
51
	 */
52
	const REGION_US_E1 = 'iam.amazonaws.com';
53
 
54
	/**
55
	 * Specify the queue URL for the United States East (Northern Virginia) Region.
56
	 */
57
	const REGION_VIRGINIA = self::REGION_US_E1;
58
 
59
	/**
60
	 * Specify the queue URL for the United States GovCloud Region.
61
	 */
62
	const REGION_US_GOV1 = 'iam.us-gov.amazonaws.com';
63
 
64
	/**
65
	 * Default service endpoint.
66
	 */
67
	const DEFAULT_URL = self::REGION_US_E1;
68
 
69
 
70
	/*%******************************************************************************************%*/
71
	// CONSTRUCTOR
72
 
73
	/**
74
	 * Constructs a new instance of <AmazonIAM>.
75
	 *
76
	 * @param array $options (Optional) An associative array of parameters that can have the following keys: <ul>
77
	 * 	<li><code>certificate_authority</code> - <code>boolean</code> - Optional - Determines which Cerificate Authority file to use. A value of boolean <code>false</code> will use the Certificate Authority file available on the system. A value of boolean <code>true</code> will use the Certificate Authority provided by the SDK. Passing a file system path to a Certificate Authority file (chmodded to <code>0755</code>) will use that. Leave this set to <code>false</code> if you're not sure.</li>
78
	 * 	<li><code>credentials</code> - <code>string</code> - Optional - The name of the credential set to use for authentication.</li>
79
	 * 	<li><code>default_cache_config</code> - <code>string</code> - Optional - This option allows a preferred storage type to be configured for long-term caching. This can be changed later using the <set_cache_config()> method. Valid values are: <code>apc</code>, <code>xcache</code>, or a file system path such as <code>./cache</code> or <code>/tmp/cache/</code>.</li>
80
	 * 	<li><code>key</code> - <code>string</code> - Optional - Your AWS key, or a session key. If blank, the default credential set will be used.</li>
81
	 * 	<li><code>secret</code> - <code>string</code> - Optional - Your AWS secret key, or a session secret key. If blank, the default credential set will be used.</li>
82
	 * 	<li><code>token</code> - <code>string</code> - Optional - An AWS session token.</li></ul>
83
	 * @return void
84
	 */
85
	public function __construct(array $options = array())
86
	{
87
		$this->api_version = '2010-05-08';
88
		$this->hostname = self::DEFAULT_URL;
89
		$this->auth_class = 'AuthV2Query';
90
 
91
		return parent::__construct($options);
92
	}
93
 
94
 
95
	/*%******************************************************************************************%*/
96
	// SETTERS
97
 
98
	/**
99
	 * This allows you to explicitly sets the region for the service to use.
100
	 *
101
	 * @param string $region (Required) The region to explicitly set. Available options are <REGION_US_E1>, <REGION_US_GOV1>.
102
	 * @return $this A reference to the current instance.
103
	 */
104
	public function set_region($region)
105
	{
106
		// @codeCoverageIgnoreStart
107
		$this->set_hostname($region);
108
		return $this;
109
		// @codeCoverageIgnoreEnd
110
	}
111
 
112
 
113
	/*%******************************************************************************************%*/
114
	// SERVICE METHODS
115
 
116
	/**
117
	 * Adds the specified user to the specified group.
118
	 *
119
	 * @param string $group_name (Required) Name of the group to update. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
120
	 * @param string $user_name (Required) Name of the user to add. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
121
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
122
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
123
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
124
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
125
	 */
126
	public function add_user_to_group($group_name, $user_name, $opt = null)
127
	{
128
		if (!$opt) $opt = array();
129
		$opt['GroupName'] = $group_name;
130
		$opt['UserName'] = $user_name;
131
 
132
		return $this->authenticate('AddUserToGroup', $opt);
133
	}
134
 
135
	/**
136
	 * Creates a new AWS Secret Access Key and corresponding AWS Access Key ID for the specified user.
137
	 * The default status for new keys is <code>Active</code>.
138
	 *
139
	 * If you do not specify a user name, IAM determines the user name implicitly based on the AWS
140
	 * Access Key ID signing the request. Because this action works for access keys under the AWS
141
	 * account, you can use this API to manage root credentials even if the AWS account has no
142
	 * associated users.
143
	 *
144
	 * For information about limits on the number of keys you can create, see <a href=
145
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?LimitationsOnEntities.html"
146
	 * target="_blank">Limitations on IAM Entities</a> in <em>Using AWS Identity and Access
147
	 * Management</em>.
148
	 *
149
	 * <p class="important">
150
	 * To ensure the security of your AWS account, the Secret Access Key is accessible only during key
151
	 * and user creation. You must save the key (for example, in a text file) if you want to be able
152
	 * to access it again. If a secret key is lost, you can delete the access keys for the associated
153
	 * user and then create new keys.
154
	 * </p>
155
	 *
156
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
157
	 * 	<li><code>UserName</code> - <code>string</code> - Optional - The user name that the new key will belong to. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
158
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
159
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
160
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
161
	 */
162
	public function create_access_key($opt = null)
163
	{
164
		if (!$opt) $opt = array();
165
 
166
		return $this->authenticate('CreateAccessKey', $opt);
167
	}
168
 
169
	/**
170
	 * This action creates an alias for your AWS account. For information about using an AWS account
171
	 * alias, see <a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/AccountAlias.html"
172
	 * target="_blank">Using an Alias for Your AWS Account ID</a> in <em>Using AWS Identity and Access
173
	 * Management</em>.
174
	 *
175
	 * @param string $account_alias (Required) Name of the account alias to create. [Constraints: The value must be between 3 and 63 characters, and must match the following regular expression pattern: <code>^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$</code>]
176
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
177
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
178
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
179
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
180
	 */
181
	public function create_account_alias($account_alias, $opt = null)
182
	{
183
		if (!$opt) $opt = array();
184
		$opt['AccountAlias'] = $account_alias;
185
 
186
		return $this->authenticate('CreateAccountAlias', $opt);
187
	}
188
 
189
	/**
190
	 * Creates a new group.
191
	 *
192
	 * For information about the number of groups you can create, see <a href=
193
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?LimitationsOnEntities.html"
194
	 * target="_blank">Limitations on IAM Entities</a> in <em>Using AWS Identity and Access
195
	 * Management</em>.
196
	 *
197
	 * @param string $group_name (Required) Name of the group to create. Do not include the path in this value. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
198
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
199
	 * 	<li><code>Path</code> - <code>string</code> - Optional - The path to the group. For more information about paths, see <a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html" target="_blank">Identifiers for IAM Entities</a> in <em>Using AWS Identity and Access Management</em>. This parameter is optional. If it is not included, it defaults to a slash (/). [Constraints: The value must be between 1 and 512 characters, and must match the following regular expression pattern: <code>(\u002F)|(\u002F[\u0021-\u007F]+\u002F)</code>]</li>
200
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
201
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
202
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
203
	 */
204
	public function create_group($group_name, $opt = null)
205
	{
206
		if (!$opt) $opt = array();
207
		$opt['GroupName'] = $group_name;
208
 
209
		return $this->authenticate('CreateGroup', $opt);
210
	}
211
 
212
	/**
213
	 * Creates a login profile for the specified user, giving the user the ability to access AWS
214
	 * services such as the AWS Management Console. For more information about login profiles, see
215
	 * 	<a href=
216
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_ManagingLogins.html"
217
	 * target="_blank">Creating or Deleting a User Login Profile</a> in <em>Using AWS Identity and
218
	 * Access Management</em>.
219
	 *
220
	 * @param string $user_name (Required) Name of the user to create a login profile for. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
221
	 * @param string $password (Required) The new password for the user name. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\u0009\u000A\u000D\u0020-\u00FF]+</code>]
222
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
223
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
224
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
225
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
226
	 */
227
	public function create_login_profile($user_name, $password, $opt = null)
228
	{
229
		if (!$opt) $opt = array();
230
		$opt['UserName'] = $user_name;
231
		$opt['Password'] = $password;
232
 
233
		return $this->authenticate('CreateLoginProfile', $opt);
234
	}
235
 
236
	/**
237
	 * Creates a new user for your AWS account.
238
	 *
239
	 * For information about limitations on the number of users you can create, see <a href=
240
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?LimitationsOnEntities.html"
241
	 * target="_blank">Limitations on IAM Entities</a> in <em>Using AWS Identity and Access
242
	 * Management</em>.
243
	 *
244
	 * @param string $user_name (Required) Name of the user to create. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
245
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
246
	 * 	<li><code>Path</code> - <code>string</code> - Optional - The path for the user name. For more information about paths, see <a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html" target="_blank">Identifiers for IAM Entities</a> in <em>Using AWS Identity and Access Management</em>. This parameter is optional. If it is not included, it defaults to a slash (/). [Constraints: The value must be between 1 and 512 characters, and must match the following regular expression pattern: <code>(\u002F)|(\u002F[\u0021-\u007F]+\u002F)</code>]</li>
247
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
248
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
249
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
250
	 */
251
	public function create_user($user_name, $opt = null)
252
	{
253
		if (!$opt) $opt = array();
254
		$opt['UserName'] = $user_name;
255
 
256
		return $this->authenticate('CreateUser', $opt);
257
	}
258
 
259
	/**
260
	 * Creates a new virtual MFA device for the AWS account. After creating the virtual MFA, use
261
	 * 	<a href="http://docs.amazonwebservices.com/IAM/latest/APIReference/API_EnableMFADevice.html"
262
	 * target="_blank">EnableMFADevice</a> to attach the MFA device to an IAM user. For more
263
	 * information about creating and working with virtual MFA devices, go to <a href=
264
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_VirtualMFA.html"
265
	 * target="_blank">Using a Virtual MFA Device</a> in <em>Using AWS Identity and Access
266
	 * Management</em>.
267
	 *
268
	 * For information about limits on the number of MFA devices you can create, see <a href=
269
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?LimitationsOnEntities.html"
270
	 * target="_blank">Limitations on Entities</a> in <em>Using AWS Identity and Access
271
	 * Management</em>.
272
	 *
273
	 * <p class="important">
274
	 * The seed information contained in the QR code and the Base32 string should be treated like any
275
	 * other secret access information, such as your AWS access keys or your passwords. After you
276
	 * provision your virtual device, you should ensure that the information is destroyed following
277
	 * secure procedures.
278
	 * </p>
279
	 *
280
	 * @param string $virtual_mfa_device_name (Required) The name of the virtual MFA device. Use with path to uniquely identify a virtual MFA device. [Constraints: The value must be more than 1 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
281
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
282
	 * 	<li><code>Path</code> - <code>string</code> - Optional - The path for the virtual MFA device. For more information about paths, see <a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html" target="_blank">Identifiers for IAM Entities</a> in <em>Using AWS Identity and Access Management</em>. This parameter is optional. If it is not included, it defaults to a slash (/). [Constraints: The value must be between 1 and 512 characters, and must match the following regular expression pattern: <code>(\u002F)|(\u002F[\u0021-\u007F]+\u002F)</code>]</li>
283
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
284
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
285
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
286
	 */
287
	public function create_virtual_mfa_device($virtual_mfa_device_name, $opt = null)
288
	{
289
		if (!$opt) $opt = array();
290
		$opt['VirtualMFADeviceName'] = $virtual_mfa_device_name;
291
 
292
		return $this->authenticate('CreateVirtualMFADevice', $opt);
293
	}
294
 
295
	/**
296
	 * Deactivates the specified MFA device and removes it from association with the user name for
297
	 * which it was originally enabled.
298
	 *
299
	 * @param string $user_name (Required) Name of the user whose MFA device you want to deactivate. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
300
	 * @param string $serial_number (Required) The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN. [Constraints: The value must be between 9 and 256 characters, and must match the following regular expression pattern: <code>[\w+=/:,.@-]*</code>]
301
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
302
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
303
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
304
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
305
	 */
306
	public function deactivate_mfa_device($user_name, $serial_number, $opt = null)
307
	{
308
		if (!$opt) $opt = array();
309
		$opt['UserName'] = $user_name;
310
		$opt['SerialNumber'] = $serial_number;
311
 
312
		return $this->authenticate('DeactivateMFADevice', $opt);
313
	}
314
 
315
	/**
316
	 * Deletes the access key associated with the specified user.
317
	 *
318
	 * If you do not specify a user name, IAM determines the user name implicitly based on the AWS
319
	 * Access Key ID signing the request. Because this action works for access keys under the AWS
320
	 * account, you can use this API to manage root credentials even if the AWS account has no
321
	 * associated users.
322
	 *
323
	 * @param string $access_key_id (Required) The Access Key ID for the Access Key ID and Secret Access Key you want to delete. [Constraints: The value must be between 16 and 32 characters, and must match the following regular expression pattern: <code>[\w]*</code>]
324
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
325
	 * 	<li><code>UserName</code> - <code>string</code> - Optional - Name of the user whose key you want to delete. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
326
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
327
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
328
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
329
	 */
330
	public function delete_access_key($access_key_id, $opt = null)
331
	{
332
		if (!$opt) $opt = array();
333
		$opt['AccessKeyId'] = $access_key_id;
334
 
335
		return $this->authenticate('DeleteAccessKey', $opt);
336
	}
337
 
338
	/**
339
	 * Deletes the specified AWS account alias. For information about using an AWS account alias, see
340
	 * 	<a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/AccountAlias.html" target=
341
	 * "_blank">Using an Alias for Your AWS Account ID</a> in <em>Using AWS Identity and Access
342
	 * Management</em>.
343
	 *
344
	 * @param string $account_alias (Required) Name of the account alias to delete. [Constraints: The value must be between 3 and 63 characters, and must match the following regular expression pattern: <code>^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$</code>]
345
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
346
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
347
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
348
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
349
	 */
350
	public function delete_account_alias($account_alias, $opt = null)
351
	{
352
		if (!$opt) $opt = array();
353
		$opt['AccountAlias'] = $account_alias;
354
 
355
		return $this->authenticate('DeleteAccountAlias', $opt);
356
	}
357
 
358
	/**
359
	 * Deletes the specified group. The group must not contain any users or have any attached
360
	 * policies.
361
	 *
362
	 * @param string $group_name (Required) Name of the group to delete. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
363
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
364
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
365
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
366
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
367
	 */
368
	public function delete_group($group_name, $opt = null)
369
	{
370
		if (!$opt) $opt = array();
371
		$opt['GroupName'] = $group_name;
372
 
373
		return $this->authenticate('DeleteGroup', $opt);
374
	}
375
 
376
	/**
377
	 * Deletes the specified policy that is associated with the specified group.
378
	 *
379
	 * @param string $group_name (Required) Name of the group the policy is associated with. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
380
	 * @param string $policy_name (Required) Name of the policy document to delete. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
381
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
382
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
383
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
384
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
385
	 */
386
	public function delete_group_policy($group_name, $policy_name, $opt = null)
387
	{
388
		if (!$opt) $opt = array();
389
		$opt['GroupName'] = $group_name;
390
		$opt['PolicyName'] = $policy_name;
391
 
392
		return $this->authenticate('DeleteGroupPolicy', $opt);
393
	}
394
 
395
	/**
396
	 * Deletes the login profile for the specified user, which terminates the user's ability to access
397
	 * AWS services through the IAM login page.
398
	 *
399
	 * <p class="important">
400
	 * Deleting a user's login profile does not prevent a user from accessing IAM through the command
401
	 * line interface or the API. To prevent all user access you must also either make the access key
402
	 * inactive or delete it. For more information about making keys inactive or deleting them, see
403
	 * <code>UpdateAccessKey</code> and <code>DeleteAccessKey</code>.
404
	 * </p>
405
	 *
406
	 * @param string $user_name (Required) Name of the user whose login profile you want to delete. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
407
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
408
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
409
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
410
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
411
	 */
412
	public function delete_login_profile($user_name, $opt = null)
413
	{
414
		if (!$opt) $opt = array();
415
		$opt['UserName'] = $user_name;
416
 
417
		return $this->authenticate('DeleteLoginProfile', $opt);
418
	}
419
 
420
	/**
421
	 * Deletes the specified server certificate.
422
	 *
423
	 * <p class="important">
424
	 * If you are using a server certificate with Elastic Load Balancing, deleting the certificate
425
	 * could have implications for your application. If Elastic Load Balancing doesn't detect the
426
	 * deletion of bound certificates, it may continue to use the certificates. This could cause
427
	 * Elastic Load Balancing to stop accepting traffic. We recommend that you remove the reference to
428
	 * the certificate from Elastic Load Balancing before using this command to delete the
429
	 * certificate. For more information, go to <a href=
430
	 * "http://docs.amazonwebservices.com/ElasticLoadBalancing/latest/APIReference/API_DeleteLoadBalancerListeners.html"
431
	 * target="blank">DeleteLoadBalancerListeners</a> in the <em>Elastic Load Balancing API
432
	 * Reference</em>.
433
	 * </p>
434
	 *
435
	 * @param string $server_certificate_name (Required) The name of the server certificate you want to delete. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
436
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
437
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
438
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
439
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
440
	 */
441
	public function delete_server_certificate($server_certificate_name, $opt = null)
442
	{
443
		if (!$opt) $opt = array();
444
		$opt['ServerCertificateName'] = $server_certificate_name;
445
 
446
		return $this->authenticate('DeleteServerCertificate', $opt);
447
	}
448
 
449
	/**
450
	 * Deletes the specified signing certificate associated with the specified user.
451
	 *
452
	 * If you do not specify a user name, IAM determines the user name implicitly based on the AWS
453
	 * Access Key ID signing the request. Because this action works for access keys under the AWS
454
	 * account, you can use this API to manage root credentials even if the AWS account has no
455
	 * associated users.
456
	 *
457
	 * @param string $certificate_id (Required) ID of the signing certificate to delete. [Constraints: The value must be between 24 and 128 characters, and must match the following regular expression pattern: <code>[\w]*</code>]
458
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
459
	 * 	<li><code>UserName</code> - <code>string</code> - Optional - Name of the user the signing certificate belongs to. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
460
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
461
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
462
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
463
	 */
464
	public function delete_signing_certificate($certificate_id, $opt = null)
465
	{
466
		if (!$opt) $opt = array();
467
		$opt['CertificateId'] = $certificate_id;
468
 
469
		return $this->authenticate('DeleteSigningCertificate', $opt);
470
	}
471
 
472
	/**
473
	 * Deletes the specified user. The user must not belong to any groups, have any keys or signing
474
	 * certificates, or have any attached policies.
475
	 *
476
	 * @param string $user_name (Required) Name of the user to delete. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
477
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
478
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
479
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
480
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
481
	 */
482
	public function delete_user($user_name, $opt = null)
483
	{
484
		if (!$opt) $opt = array();
485
		$opt['UserName'] = $user_name;
486
 
487
		return $this->authenticate('DeleteUser', $opt);
488
	}
489
 
490
	/**
491
	 * Deletes the specified policy associated with the specified user.
492
	 *
493
	 * @param string $user_name (Required) Name of the user the policy is associated with. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
494
	 * @param string $policy_name (Required) Name of the policy document to delete. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
495
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
496
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
497
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
498
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
499
	 */
500
	public function delete_user_policy($user_name, $policy_name, $opt = null)
501
	{
502
		if (!$opt) $opt = array();
503
		$opt['UserName'] = $user_name;
504
		$opt['PolicyName'] = $policy_name;
505
 
506
		return $this->authenticate('DeleteUserPolicy', $opt);
507
	}
508
 
509
	/**
510
	 * Deletes a virtual MFA device.
511
	 *
512
	 * <p class="note">
513
	 * You must deactivate a user's virtual MFA device before you can delete it. For information about
514
	 * deactivating MFA devices, see <a href=
515
	 * "http://docs.amazonwebservices.com/IAM/latest/APIReference/API_DeactivateMFADevice.html">DeactivateMFADevice</a>.
516
	 * </p>
517
	 *
518
	 * @param string $serial_number (Required) The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the same as the ARN. [Constraints: The value must be between 9 and 256 characters, and must match the following regular expression pattern: <code>[\w+=/:,.@-]*</code>]
519
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
520
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
521
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
522
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
523
	 */
524
	public function delete_virtual_mfa_device($serial_number, $opt = null)
525
	{
526
		if (!$opt) $opt = array();
527
		$opt['SerialNumber'] = $serial_number;
528
 
529
		return $this->authenticate('DeleteVirtualMFADevice', $opt);
530
	}
531
 
532
	/**
533
	 * Enables the specified MFA device and associates it with the specified user name. When enabled,
534
	 * the MFA device is required for every subsequent login by the user name associated with the
535
	 * device.
536
	 *
537
	 * @param string $user_name (Required) Name of the user for whom you want to enable the MFA device. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
538
	 * @param string $serial_number (Required) The serial number that uniquely identifies the MFA device. For virtual MFA devices, the serial number is the device ARN. [Constraints: The value must be between 9 and 256 characters, and must match the following regular expression pattern: <code>[\w+=/:,.@-]*</code>]
539
	 * @param string $authentication_code1 (Required) An authentication code emitted by the device. [Constraints: The value must be between 6 and 6 characters, and must match the following regular expression pattern: <code>[\d]*</code>]
540
	 * @param string $authentication_code2 (Required) A subsequent authentication code emitted by the device. [Constraints: The value must be between 6 and 6 characters, and must match the following regular expression pattern: <code>[\d]*</code>]
541
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
542
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
543
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
544
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
545
	 */
546
	public function enable_mfa_device($user_name, $serial_number, $authentication_code1, $authentication_code2, $opt = null)
547
	{
548
		if (!$opt) $opt = array();
549
		$opt['UserName'] = $user_name;
550
		$opt['SerialNumber'] = $serial_number;
551
		$opt['AuthenticationCode1'] = $authentication_code1;
552
		$opt['AuthenticationCode2'] = $authentication_code2;
553
 
554
		return $this->authenticate('EnableMFADevice', $opt);
555
	}
556
 
557
	/**
558
	 * Retrieves account level information about account entity usage and IAM quotas.
559
	 *
560
	 * For information about limitations on IAM entities, see <a href=
561
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?LimitationsOnEntities.html"
562
	 * target="_blank">Limitations on IAM Entities</a> in <em>Using AWS Identity and Access
563
	 * Management</em>.
564
	 *
565
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
566
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
567
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
568
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
569
	 */
570
	public function get_account_summary($opt = null)
571
	{
572
		if (!$opt) $opt = array();
573
 
574
		return $this->authenticate('GetAccountSummary', $opt);
575
	}
576
 
577
	/**
578
	 * Returns a list of users that are in the specified group. You can paginate the results using the
579
	 * <code>MaxItems</code> and <code>Marker</code> parameters.
580
	 *
581
	 * @param string $group_name (Required) Name of the group. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
582
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
583
	 * 	<li><code>Marker</code> - <code>string</code> - Optional - Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the <code>Marker</code> element in the response you just received. [Constraints: The value must be between 1 and 320 characters, and must match the following regular expression pattern: <code>[\u0020-\u00FF]*</code>]</li>
584
	 * 	<li><code>MaxItems</code> - <code>integer</code> - Optional - Use this only when paginating results to indicate the maximum number of user names you want in the response. If there are additional user names beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>.</li>
585
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
586
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
587
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
588
	 */
589
	public function get_group($group_name, $opt = null)
590
	{
591
		if (!$opt) $opt = array();
592
		$opt['GroupName'] = $group_name;
593
 
594
		return $this->authenticate('GetGroup', $opt);
595
	}
596
 
597
	/**
598
	 * Retrieves the specified policy document for the specified group. The returned policy is
599
	 * URL-encoded according to RFC 3986. For more information about RFC 3986, go to <a href=
600
	 * "http://www.faqs.org/rfcs/rfc3986.html">http://www.faqs.org/rfcs/rfc3986.html</a>.
601
	 *
602
	 * @param string $group_name (Required) Name of the group the policy is associated with. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
603
	 * @param string $policy_name (Required) Name of the policy document to get. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
604
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
605
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
606
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
607
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
608
	 */
609
	public function get_group_policy($group_name, $policy_name, $opt = null)
610
	{
611
		if (!$opt) $opt = array();
612
		$opt['GroupName'] = $group_name;
613
		$opt['PolicyName'] = $policy_name;
614
 
615
		return $this->authenticate('GetGroupPolicy', $opt);
616
	}
617
 
618
	/**
619
	 * Retrieves the login profile for the specified user.
620
	 *
621
	 * @param string $user_name (Required) Name of the user whose login profile you want to retrieve. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
622
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
623
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
624
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
625
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
626
	 */
627
	public function get_login_profile($user_name, $opt = null)
628
	{
629
		if (!$opt) $opt = array();
630
		$opt['UserName'] = $user_name;
631
 
632
		return $this->authenticate('GetLoginProfile', $opt);
633
	}
634
 
635
	/**
636
	 * Retrieves information about the specified server certificate.
637
	 *
638
	 * @param string $server_certificate_name (Required) The name of the server certificate you want to retrieve information about. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
639
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
640
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
641
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
642
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
643
	 */
644
	public function get_server_certificate($server_certificate_name, $opt = null)
645
	{
646
		if (!$opt) $opt = array();
647
		$opt['ServerCertificateName'] = $server_certificate_name;
648
 
649
		return $this->authenticate('GetServerCertificate', $opt);
650
	}
651
 
652
	/**
653
	 * Retrieves information about the specified user, including the user's path, GUID, and ARN.
654
	 *
655
	 * If you do not specify a user name, IAM determines the user name implicitly based on the AWS
656
	 * Access Key ID signing the request.
657
	 *
658
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
659
	 * 	<li><code>UserName</code> - <code>string</code> - Optional - Name of the user to get information about. This parameter is optional. If it is not included, it defaults to the user making the request. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
660
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
661
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
662
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
663
	 */
664
	public function get_user($opt = null)
665
	{
666
		if (!$opt) $opt = array();
667
 
668
		return $this->authenticate('GetUser', $opt);
669
	}
670
 
671
	/**
672
	 * Retrieves the specified policy document for the specified user. The returned policy is
673
	 * URL-encoded according to RFC 3986. For more information about RFC 3986, go to <a href=
674
	 * "http://www.faqs.org/rfcs/rfc3986.html">http://www.faqs.org/rfcs/rfc3986.html</a>.
675
	 *
676
	 * @param string $user_name (Required) Name of the user who the policy is associated with. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
677
	 * @param string $policy_name (Required) Name of the policy document to get. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
678
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
679
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
680
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
681
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
682
	 */
683
	public function get_user_policy($user_name, $policy_name, $opt = null)
684
	{
685
		if (!$opt) $opt = array();
686
		$opt['UserName'] = $user_name;
687
		$opt['PolicyName'] = $policy_name;
688
 
689
		return $this->authenticate('GetUserPolicy', $opt);
690
	}
691
 
692
	/**
693
	 * Returns information about the Access Key IDs associated with the specified user. If there are
694
	 * none, the action returns an empty list.
695
	 *
696
	 * Although each user is limited to a small number of keys, you can still paginate the results
697
	 * using the <code>MaxItems</code> and <code>Marker</code> parameters.
698
	 *
699
	 * If the <code>UserName</code> field is not specified, the UserName is determined implicitly
700
	 * based on the AWS Access Key ID used to sign the request. Because this action works for access
701
	 * keys under the AWS account, this API can be used to manage root credentials even if the AWS
702
	 * account has no associated users.
703
	 *
704
	 * <p class="note">
705
	 * To ensure the security of your AWS account, the secret access key is accessible only during key
706
	 * and user creation.
707
	 * </p>
708
	 *
709
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
710
	 * 	<li><code>UserName</code> - <code>string</code> - Optional - Name of the user. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
711
	 * 	<li><code>Marker</code> - <code>string</code> - Optional - Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the <code>Marker</code> element in the response you just received. [Constraints: The value must be between 1 and 320 characters, and must match the following regular expression pattern: <code>[\u0020-\u00FF]*</code>]</li>
712
	 * 	<li><code>MaxItems</code> - <code>integer</code> - Optional - Use this parameter only when paginating results to indicate the maximum number of keys you want in the response. If there are additional keys beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>.</li>
713
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
714
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
715
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
716
	 */
717
	public function list_access_keys($opt = null)
718
	{
719
		if (!$opt) $opt = array();
720
 
721
		return $this->authenticate('ListAccessKeys', $opt);
722
	}
723
 
724
	/**
725
	 * Lists the account aliases associated with the account. For information about using an AWS
726
	 * account alias, see <a href=
727
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/AccountAlias.html" target=
728
	 * "_blank">Using an Alias for Your AWS Account ID</a> in <em>Using AWS Identity and Access
729
	 * Management</em>.
730
	 *
731
	 * You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>
732
	 * parameters.
733
	 *
734
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
735
	 * 	<li><code>Marker</code> - <code>string</code> - Optional - Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the <code>Marker</code> element in the response you just received. [Constraints: The value must be between 1 and 320 characters, and must match the following regular expression pattern: <code>[\u0020-\u00FF]*</code>]</li>
736
	 * 	<li><code>MaxItems</code> - <code>integer</code> - Optional - Use this only when paginating results to indicate the maximum number of account aliases you want in the response. If there are additional account aliases beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>.</li>
737
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
738
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
739
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
740
	 */
741
	public function list_account_aliases($opt = null)
742
	{
743
		if (!$opt) $opt = array();
744
 
745
		return $this->authenticate('ListAccountAliases', $opt);
746
	}
747
 
748
	/**
749
	 * Lists the names of the policies associated with the specified group. If there are none, the
750
	 * action returns an empty list.
751
	 *
752
	 * You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>
753
	 * parameters.
754
	 *
755
	 * @param string $group_name (Required) The name of the group to list policies for. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
756
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
757
	 * 	<li><code>Marker</code> - <code>string</code> - Optional - Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the <code>Marker</code> element in the response you just received. [Constraints: The value must be between 1 and 320 characters, and must match the following regular expression pattern: <code>[\u0020-\u00FF]*</code>]</li>
758
	 * 	<li><code>MaxItems</code> - <code>integer</code> - Optional - Use this only when paginating results to indicate the maximum number of policy names you want in the response. If there are additional policy names beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>.</li>
759
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
760
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
761
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
762
	 */
763
	public function list_group_policies($group_name, $opt = null)
764
	{
765
		if (!$opt) $opt = array();
766
		$opt['GroupName'] = $group_name;
767
 
768
		return $this->authenticate('ListGroupPolicies', $opt);
769
	}
770
 
771
	/**
772
	 * Lists the groups that have the specified path prefix.
773
	 *
774
	 * You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>
775
	 * parameters.
776
	 *
777
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
778
	 * 	<li><code>PathPrefix</code> - <code>string</code> - Optional - The path prefix for filtering the results. For example: <code>/division_abc/subdivision_xyz/</code>, which would get all groups whose path starts with <code>/division_abc/subdivision_xyz/</code>. This parameter is optional. If it is not included, it defaults to a slash (/), listing all groups. [Constraints: The value must be between 1 and 512 characters, and must match the following regular expression pattern: <code>\u002F[\u0021-\u007F]*</code>]</li>
779
	 * 	<li><code>Marker</code> - <code>string</code> - Optional - Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the <code>Marker</code> element in the response you just received. [Constraints: The value must be between 1 and 320 characters, and must match the following regular expression pattern: <code>[\u0020-\u00FF]*</code>]</li>
780
	 * 	<li><code>MaxItems</code> - <code>integer</code> - Optional - Use this only when paginating results to indicate the maximum number of groups you want in the response. If there are additional groups beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>.</li>
781
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
782
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
783
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
784
	 */
785
	public function list_groups($opt = null)
786
	{
787
		if (!$opt) $opt = array();
788
 
789
		return $this->authenticate('ListGroups', $opt);
790
	}
791
 
792
	/**
793
	 * Lists the groups the specified user belongs to.
794
	 *
795
	 * You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>
796
	 * parameters.
797
	 *
798
	 * @param string $user_name (Required) The name of the user to list groups for. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
799
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
800
	 * 	<li><code>Marker</code> - <code>string</code> - Optional - Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the <code>Marker</code> element in the response you just received. [Constraints: The value must be between 1 and 320 characters, and must match the following regular expression pattern: <code>[\u0020-\u00FF]*</code>]</li>
801
	 * 	<li><code>MaxItems</code> - <code>integer</code> - Optional - Use this only when paginating results to indicate the maximum number of groups you want in the response. If there are additional groups beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>.</li>
802
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
803
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
804
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
805
	 */
806
	public function list_groups_for_user($user_name, $opt = null)
807
	{
808
		if (!$opt) $opt = array();
809
		$opt['UserName'] = $user_name;
810
 
811
		return $this->authenticate('ListGroupsForUser', $opt);
812
	}
813
 
814
	/**
815
	 * Lists the MFA devices. If the request includes the user name, then this action lists all the
816
	 * MFA devices associated with the specified user name. If you do not specify a user name, IAM
817
	 * determines the user name implicitly based on the AWS Access Key ID signing the request.
818
	 *
819
	 * You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>
820
	 * parameters.
821
	 *
822
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
823
	 * 	<li><code>UserName</code> - <code>string</code> - Optional - Name of the user whose MFA devices you want to list. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
824
	 * 	<li><code>Marker</code> - <code>string</code> - Optional - Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the <code>Marker</code> element in the response you just received. [Constraints: The value must be between 1 and 320 characters, and must match the following regular expression pattern: <code>[\u0020-\u00FF]*</code>]</li>
825
	 * 	<li><code>MaxItems</code> - <code>integer</code> - Optional - Use this only when paginating results to indicate the maximum number of MFA devices you want in the response. If there are additional MFA devices beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>.</li>
826
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
827
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
828
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
829
	 */
830
	public function list_mfa_devices($opt = null)
831
	{
832
		if (!$opt) $opt = array();
833
 
834
		return $this->authenticate('ListMFADevices', $opt);
835
	}
836
 
837
	/**
838
	 * Lists the server certificates that have the specified path prefix. If none exist, the action
839
	 * returns an empty list.
840
	 *
841
	 * You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>
842
	 * parameters.
843
	 *
844
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
845
	 * 	<li><code>PathPrefix</code> - <code>string</code> - Optional - The path prefix for filtering the results. For example: <code>/company/servercerts</code> would get all server certificates for which the path starts with <code>/company/servercerts</code>. This parameter is optional. If it is not included, it defaults to a slash (/), listing all server certificates. [Constraints: The value must be between 1 and 512 characters, and must match the following regular expression pattern: <code>\u002F[\u0021-\u007F]*</code>]</li>
846
	 * 	<li><code>Marker</code> - <code>string</code> - Optional - Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the <code>Marker</code> element in the response you just received. [Constraints: The value must be between 1 and 320 characters, and must match the following regular expression pattern: <code>[\u0020-\u00FF]*</code>]</li>
847
	 * 	<li><code>MaxItems</code> - <code>integer</code> - Optional - Use this only when paginating results to indicate the maximum number of server certificates you want in the response. If there are additional server certificates beyond the maximum you specify, the <code>IsTruncated</code> response element will be set to <code>true</code>.</li>
848
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
849
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
850
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
851
	 */
852
	public function list_server_certificates($opt = null)
853
	{
854
		if (!$opt) $opt = array();
855
 
856
		return $this->authenticate('ListServerCertificates', $opt);
857
	}
858
 
859
	/**
860
	 * Returns information about the signing certificates associated with the specified user. If there
861
	 * are none, the action returns an empty list.
862
	 *
863
	 * Although each user is limited to a small number of signing certificates, you can still paginate
864
	 * the results using the <code>MaxItems</code> and <code>Marker</code> parameters.
865
	 *
866
	 * If the <code>UserName</code> field is not specified, the user name is determined implicitly
867
	 * based on the AWS Access Key ID used to sign the request. Because this action works for access
868
	 * keys under the AWS account, this API can be used to manage root credentials even if the AWS
869
	 * account has no associated users.
870
	 *
871
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
872
	 * 	<li><code>UserName</code> - <code>string</code> - Optional - The name of the user. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
873
	 * 	<li><code>Marker</code> - <code>string</code> - Optional - Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the <code>Marker</code> element in the response you just received. [Constraints: The value must be between 1 and 320 characters, and must match the following regular expression pattern: <code>[\u0020-\u00FF]*</code>]</li>
874
	 * 	<li><code>MaxItems</code> - <code>integer</code> - Optional - Use this only when paginating results to indicate the maximum number of certificate IDs you want in the response. If there are additional certificate IDs beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>.</li>
875
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
876
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
877
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
878
	 */
879
	public function list_signing_certificates($opt = null)
880
	{
881
		if (!$opt) $opt = array();
882
 
883
		return $this->authenticate('ListSigningCertificates', $opt);
884
	}
885
 
886
	/**
887
	 * Lists the names of the policies associated with the specified user. If there are none, the
888
	 * action returns an empty list.
889
	 *
890
	 * You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>
891
	 * parameters.
892
	 *
893
	 * @param string $user_name (Required) The name of the user to list policies for. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
894
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
895
	 * 	<li><code>Marker</code> - <code>string</code> - Optional - Use this only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the <code>Marker</code> element in the response you just received. [Constraints: The value must be between 1 and 320 characters, and must match the following regular expression pattern: <code>[\u0020-\u00FF]*</code>]</li>
896
	 * 	<li><code>MaxItems</code> - <code>integer</code> - Optional - Use this only when paginating results to indicate the maximum number of policy names you want in the response. If there are additional policy names beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>.</li>
897
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
898
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
899
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
900
	 */
901
	public function list_user_policies($user_name, $opt = null)
902
	{
903
		if (!$opt) $opt = array();
904
		$opt['UserName'] = $user_name;
905
 
906
		return $this->authenticate('ListUserPolicies', $opt);
907
	}
908
 
909
	/**
910
	 * Lists the users that have the specified path prefix. If there are none, the action returns an
911
	 * empty list.
912
	 *
913
	 * You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>
914
	 * parameters.
915
	 *
916
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
917
	 * 	<li><code>PathPrefix</code> - <code>string</code> - Optional - The path prefix for filtering the results. For example: <code>/division_abc/subdivision_xyz/</code>, which would get all user names whose path starts with <code>/division_abc/subdivision_xyz/</code>. This parameter is optional. If it is not included, it defaults to a slash (/), listing all user names. [Constraints: The value must be between 1 and 512 characters, and must match the following regular expression pattern: <code>\u002F[\u0021-\u007F]*</code>]</li>
918
	 * 	<li><code>Marker</code> - <code>string</code> - Optional - Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the <code>Marker</code> element in the response you just received. [Constraints: The value must be between 1 and 320 characters, and must match the following regular expression pattern: <code>[\u0020-\u00FF]*</code>]</li>
919
	 * 	<li><code>MaxItems</code> - <code>integer</code> - Optional - Use this parameter only when paginating results to indicate the maximum number of user names you want in the response. If there are additional user names beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>.</li>
920
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
921
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
922
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
923
	 */
924
	public function list_users($opt = null)
925
	{
926
		if (!$opt) $opt = array();
927
 
928
		return $this->authenticate('ListUsers', $opt);
929
	}
930
 
931
	/**
932
	 * Lists the virtual MFA devices under the AWS account by assignment status. If you do not specify
933
	 * an assignment status, the action returns a list of all virtual MFA devices. Assignment status
934
	 * can be <code>Assigned</code>, <code>Unassigned</code>, or <code>Any</code>.
935
	 *
936
	 * You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>
937
	 * parameters.
938
	 *
939
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
940
	 * 	<li><code>AssignmentStatus</code> - <code>string</code> - Optional - The status (unassigned or assigned) of the devices to list. If you do not specify an <code>AssignmentStatus</code>, the action defaults to <code>Any</code> which lists both assigned and unassigned virtual MFA devices. [Allowed values: <code>Assigned</code>, <code>Unassigned</code>, <code>Any</code>]</li>
941
	 * 	<li><code>Marker</code> - <code>string</code> - Optional - Use this parameter only when paginating results, and only in a subsequent request after you've received a response where the results are truncated. Set it to the value of the <code>Marker</code> element in the response you just received. [Constraints: The value must be between 1 and 320 characters, and must match the following regular expression pattern: <code>[\u0020-\u00FF]*</code>]</li>
942
	 * 	<li><code>MaxItems</code> - <code>integer</code> - Optional - Use this parameter only when paginating results to indicate the maximum number of user names you want in the response. If there are additional user names beyond the maximum you specify, the <code>IsTruncated</code> response element is <code>true</code>.</li>
943
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
944
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
945
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
946
	 */
947
	public function list_virtual_mfa_devices($opt = null)
948
	{
949
		if (!$opt) $opt = array();
950
 
951
		return $this->authenticate('ListVirtualMFADevices', $opt);
952
	}
953
 
954
	/**
955
	 * Adds (or updates) a policy document associated with the specified group. For information about
956
	 * policies, refer to <a href=
957
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?PoliciesOverview.html"
958
	 * target="_blank">Overview of Policies</a> in <em>Using AWS Identity and Access Management</em>.
959
	 *
960
	 * For information about limits on the number of policies you can associate with a group, see
961
	 * 	<a href=
962
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?LimitationsOnEntities.html"
963
	 * target="_blank">Limitations on IAM Entities</a> in <em>Using AWS Identity and Access
964
	 * Management</em>.
965
	 *
966
	 * <p class="note">
967
	 * Because policy documents can be large, you should use POST rather than GET when calling
968
	 * <code>PutGroupPolicy</code>. For more information, see <a href=
969
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?IAM_UsingQueryAPI.html"
970
	 * target="_blank">Making Query Requests</a> in <em>Using AWS Identity and Access Management</em>.
971
	 * </p>
972
	 *
973
	 * @param string $group_name (Required) Name of the group to associate the policy with. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
974
	 * @param string $policy_name (Required) Name of the policy document. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
975
	 * @param string $policy_document (Required) The policy document. [Constraints: The value must be between 1 and 131072 characters, and must match the following regular expression pattern: <code>[\u0009\u000A\u000D\u0020-\u00FF]+</code>]
976
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
977
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
978
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
979
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
980
	 */
981
	public function put_group_policy($group_name, $policy_name, $policy_document, $opt = null)
982
	{
983
		if (!$opt) $opt = array();
984
		$opt['GroupName'] = $group_name;
985
		$opt['PolicyName'] = $policy_name;
986
		$opt['PolicyDocument'] = $policy_document;
987
 
988
		return $this->authenticate('PutGroupPolicy', $opt);
989
	}
990
 
991
	/**
992
	 * Adds (or updates) a policy document associated with the specified user. For information about
993
	 * policies, refer to <a href=
994
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?PoliciesOverview.html"
995
	 * target="_blank">Overview of Policies</a> in <em>Using AWS Identity and Access Management</em>.
996
	 *
997
	 * For information about limits on the number of policies you can associate with a user, see
998
	 * 	<a href=
999
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?LimitationsOnEntities.html"
1000
	 * target="_blank">Limitations on IAM Entities</a> in <em>Using AWS Identity and Access
1001
	 * Management</em>.
1002
	 *
1003
	 * <p class="note">
1004
	 * Because policy documents can be large, you should use POST rather than GET when calling
1005
	 * <code>PutUserPolicy</code>. For more information, see <a href=
1006
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?IAM_UsingQueryAPI.html"
1007
	 * target="_blank">Making Query Requests</a> in <em>Using AWS Identity and Access Management</em>.
1008
	 * </p>
1009
	 *
1010
	 * @param string $user_name (Required) Name of the user to associate the policy with. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1011
	 * @param string $policy_name (Required) Name of the policy document. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1012
	 * @param string $policy_document (Required) The policy document. [Constraints: The value must be between 1 and 131072 characters, and must match the following regular expression pattern: <code>[\u0009\u000A\u000D\u0020-\u00FF]+</code>]
1013
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1014
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
1015
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
1016
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1017
	 */
1018
	public function put_user_policy($user_name, $policy_name, $policy_document, $opt = null)
1019
	{
1020
		if (!$opt) $opt = array();
1021
		$opt['UserName'] = $user_name;
1022
		$opt['PolicyName'] = $policy_name;
1023
		$opt['PolicyDocument'] = $policy_document;
1024
 
1025
		return $this->authenticate('PutUserPolicy', $opt);
1026
	}
1027
 
1028
	/**
1029
	 * Removes the specified user from the specified group.
1030
	 *
1031
	 * @param string $group_name (Required) Name of the group to update. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1032
	 * @param string $user_name (Required) Name of the user to remove. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1033
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1034
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
1035
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
1036
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1037
	 */
1038
	public function remove_user_from_group($group_name, $user_name, $opt = null)
1039
	{
1040
		if (!$opt) $opt = array();
1041
		$opt['GroupName'] = $group_name;
1042
		$opt['UserName'] = $user_name;
1043
 
1044
		return $this->authenticate('RemoveUserFromGroup', $opt);
1045
	}
1046
 
1047
	/**
1048
	 * Synchronizes the specified MFA device with AWS servers.
1049
	 *
1050
	 * @param string $user_name (Required) Name of the user whose MFA device you want to resynchronize. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1051
	 * @param string $serial_number (Required) Serial number that uniquely identifies the MFA device. [Constraints: The value must be between 9 and 256 characters, and must match the following regular expression pattern: <code>[\w+=/:,.@-]*</code>]
1052
	 * @param string $authentication_code1 (Required) An authentication code emitted by the device. [Constraints: The value must be between 6 and 6 characters, and must match the following regular expression pattern: <code>[\d]*</code>]
1053
	 * @param string $authentication_code2 (Required) A subsequent authentication code emitted by the device. [Constraints: The value must be between 6 and 6 characters, and must match the following regular expression pattern: <code>[\d]*</code>]
1054
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1055
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
1056
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
1057
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1058
	 */
1059
	public function resync_mfa_device($user_name, $serial_number, $authentication_code1, $authentication_code2, $opt = null)
1060
	{
1061
		if (!$opt) $opt = array();
1062
		$opt['UserName'] = $user_name;
1063
		$opt['SerialNumber'] = $serial_number;
1064
		$opt['AuthenticationCode1'] = $authentication_code1;
1065
		$opt['AuthenticationCode2'] = $authentication_code2;
1066
 
1067
		return $this->authenticate('ResyncMFADevice', $opt);
1068
	}
1069
 
1070
	/**
1071
	 * Changes the status of the specified access key from Active to Inactive, or vice versa. This
1072
	 * action can be used to disable a user's key as part of a key rotation work flow.
1073
	 *
1074
	 * If the <code>UserName</code> field is not specified, the UserName is determined implicitly
1075
	 * based on the AWS Access Key ID used to sign the request. Because this action works for access
1076
	 * keys under the AWS account, this API can be used to manage root credentials even if the AWS
1077
	 * account has no associated users.
1078
	 *
1079
	 * For information about rotating keys, see <a href=
1080
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?ManagingCredentials.html"
1081
	 * target="_blank">Managing Keys and Certificates</a> in <em>Using AWS Identity and Access
1082
	 * Management</em>.
1083
	 *
1084
	 * @param string $access_key_id (Required) The Access Key ID of the Secret Access Key you want to update. [Constraints: The value must be between 16 and 32 characters, and must match the following regular expression pattern: <code>[\w]*</code>]
1085
	 * @param string $status (Required) The status you want to assign to the Secret Access Key. <code>Active</code> means the key can be used for API calls to AWS, while <code>Inactive</code> means the key cannot be used. [Allowed values: <code>Active</code>, <code>Inactive</code>]
1086
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1087
	 * 	<li><code>UserName</code> - <code>string</code> - Optional - Name of the user whose key you want to update. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
1088
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
1089
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
1090
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1091
	 */
1092
	public function update_access_key($access_key_id, $status, $opt = null)
1093
	{
1094
		if (!$opt) $opt = array();
1095
		$opt['AccessKeyId'] = $access_key_id;
1096
		$opt['Status'] = $status;
1097
 
1098
		return $this->authenticate('UpdateAccessKey', $opt);
1099
	}
1100
 
1101
	/**
1102
	 * Updates the name and/or the path of the specified group.
1103
	 *
1104
	 * <p class="important">
1105
	 * You should understand the implications of changing a group's path or name. For more
1106
	 * information, see <a href=
1107
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Renaming.html" target=
1108
	 * "_blank">Renaming Users and Groups</a> in <em>Using AWS Identity and Access Management</em>.
1109
	 * </p>
1110
	 * <p class="note">
1111
	 * To change a group name the requester must have appropriate permissions on both the source
1112
	 * object and the target object. For example, to change Managers to MGRs, the entity making the
1113
	 * request must have permission on Managers and MGRs, or must have permission on all (*). For more
1114
	 * information about permissions, see <a href=
1115
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/PermissionsAndPolicies.html" target=
1116
	 * "blank">Permissions and Policies</a>.
1117
	 * </p>
1118
	 *
1119
	 * @param string $group_name (Required) Name of the group to update. If you're changing the name of the group, this is the original name. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1120
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1121
	 * 	<li><code>NewPath</code> - <code>string</code> - Optional - New path for the group. Only include this if changing the group's path. [Constraints: The value must be between 1 and 512 characters, and must match the following regular expression pattern: <code>(\u002F)|(\u002F[\u0021-\u007F]+\u002F)</code>]</li>
1122
	 * 	<li><code>NewGroupName</code> - <code>string</code> - Optional - New name for the group. Only include this if changing the group's name. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
1123
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
1124
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
1125
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1126
	 */
1127
	public function update_group($group_name, $opt = null)
1128
	{
1129
		if (!$opt) $opt = array();
1130
		$opt['GroupName'] = $group_name;
1131
 
1132
		return $this->authenticate('UpdateGroup', $opt);
1133
	}
1134
 
1135
	/**
1136
	 * Updates the login profile for the specified user. Use this API to change the user's password.
1137
	 *
1138
	 * @param string $user_name (Required) Name of the user whose login profile you want to update. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1139
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1140
	 * 	<li><code>Password</code> - <code>string</code> - Optional - The new password for the user name. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\u0009\u000A\u000D\u0020-\u00FF]+</code>]</li>
1141
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
1142
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
1143
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1144
	 */
1145
	public function update_login_profile($user_name, $opt = null)
1146
	{
1147
		if (!$opt) $opt = array();
1148
		$opt['UserName'] = $user_name;
1149
 
1150
		return $this->authenticate('UpdateLoginProfile', $opt);
1151
	}
1152
 
1153
	/**
1154
	 * Updates the name and/or the path of the specified server certificate.
1155
	 *
1156
	 * <p class="important">
1157
	 * You should understand the implications of changing a server certificate's path or name. For
1158
	 * more information, see <a href=
1159
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/ManagingServerCerts.html" target=
1160
	 * "_blank">Managing Server Certificates</a> in <em>Using AWS Identity and Access Management</em>.
1161
	 * </p>
1162
	 * <p class="note">
1163
	 * To change a server certificate name the requester must have appropriate permissions on both the
1164
	 * source object and the target object. For example, to change the name from ProductionCert to
1165
	 * ProdCert, the entity making the request must have permission on ProductionCert and ProdCert, or
1166
	 * must have permission on all (*). For more information about permissions, see <a href=
1167
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/PermissionsAndPolicies.html" target=
1168
	 * "blank">Permissions and Policies</a>.
1169
	 * </p>
1170
	 *
1171
	 * @param string $server_certificate_name (Required) The name of the server certificate that you want to update. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1172
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1173
	 * 	<li><code>NewPath</code> - <code>string</code> - Optional - The new path for the server certificate. Include this only if you are updating the server certificate's path. [Constraints: The value must be between 1 and 512 characters, and must match the following regular expression pattern: <code>(\u002F)|(\u002F[\u0021-\u007F]+\u002F)</code>]</li>
1174
	 * 	<li><code>NewServerCertificateName</code> - <code>string</code> - Optional - The new name for the server certificate. Include this only if you are updating the server certificate's name. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
1175
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
1176
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
1177
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1178
	 */
1179
	public function update_server_certificate($server_certificate_name, $opt = null)
1180
	{
1181
		if (!$opt) $opt = array();
1182
		$opt['ServerCertificateName'] = $server_certificate_name;
1183
 
1184
		return $this->authenticate('UpdateServerCertificate', $opt);
1185
	}
1186
 
1187
	/**
1188
	 * Changes the status of the specified signing certificate from active to disabled, or vice versa.
1189
	 * This action can be used to disable a user's signing certificate as part of a certificate
1190
	 * rotation work flow.
1191
	 *
1192
	 * If the <code>UserName</code> field is not specified, the UserName is determined implicitly
1193
	 * based on the AWS Access Key ID used to sign the request. Because this action works for access
1194
	 * keys under the AWS account, this API can be used to manage root credentials even if the AWS
1195
	 * account has no associated users.
1196
	 *
1197
	 * For information about rotating certificates, see <a href=
1198
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?ManagingCredentials.html"
1199
	 * target="_blank">Managing Keys and Certificates</a> in <em>Using AWS Identity and Access
1200
	 * Management</em>.
1201
	 *
1202
	 * @param string $certificate_id (Required) The ID of the signing certificate you want to update. [Constraints: The value must be between 24 and 128 characters, and must match the following regular expression pattern: <code>[\w]*</code>]
1203
	 * @param string $status (Required) The status you want to assign to the certificate. <code>Active</code> means the certificate can be used for API calls to AWS, while <code>Inactive</code> means the certificate cannot be used. [Allowed values: <code>Active</code>, <code>Inactive</code>]
1204
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1205
	 * 	<li><code>UserName</code> - <code>string</code> - Optional - Name of the user the signing certificate belongs to. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
1206
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
1207
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
1208
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1209
	 */
1210
	public function update_signing_certificate($certificate_id, $status, $opt = null)
1211
	{
1212
		if (!$opt) $opt = array();
1213
		$opt['CertificateId'] = $certificate_id;
1214
		$opt['Status'] = $status;
1215
 
1216
		return $this->authenticate('UpdateSigningCertificate', $opt);
1217
	}
1218
 
1219
	/**
1220
	 * Updates the name and/or the path of the specified user.
1221
	 *
1222
	 * <p class="important">
1223
	 * You should understand the implications of changing a user's path or name. For more information,
1224
	 * see <a href=
1225
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Renaming.html" target=
1226
	 * "_blank">Renaming Users and Groups</a> in <em>Using AWS Identity and Access Management</em>.
1227
	 * </p>
1228
	 * <p class="note">
1229
	 * To change a user name the requester must have appropriate permissions on both the source object
1230
	 * and the target object. For example, to change Bob to Robert, the entity making the request must
1231
	 * have permission on Bob and Robert, or must have permission on all (*). For more information
1232
	 * about permissions, see <a href=
1233
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/PermissionsAndPolicies.html" target=
1234
	 * "blank">Permissions and Policies</a>.
1235
	 * </p>
1236
	 *
1237
	 * @param string $user_name (Required) Name of the user to update. If you're changing the name of the user, this is the original user name. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1238
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1239
	 * 	<li><code>NewPath</code> - <code>string</code> - Optional - New path for the user. Include this parameter only if you're changing the user's path. [Constraints: The value must be between 1 and 512 characters, and must match the following regular expression pattern: <code>(\u002F)|(\u002F[\u0021-\u007F]+\u002F)</code>]</li>
1240
	 * 	<li><code>NewUserName</code> - <code>string</code> - Optional - New name for the user. Include this parameter only if you're changing the user's name. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
1241
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
1242
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
1243
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1244
	 */
1245
	public function update_user($user_name, $opt = null)
1246
	{
1247
		if (!$opt) $opt = array();
1248
		$opt['UserName'] = $user_name;
1249
 
1250
		return $this->authenticate('UpdateUser', $opt);
1251
	}
1252
 
1253
	/**
1254
	 * Uploads a server certificate entity for the AWS account. The server certificate entity includes
1255
	 * a public key certificate, a private key, and an optional certificate chain, which should all be
1256
	 * PEM-encoded.
1257
	 *
1258
	 * For information about the number of server certificates you can upload, see <a href=
1259
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?LimitationsOnEntities.html"
1260
	 * target="_blank">Limitations on IAM Entities</a> in <em>Using AWS Identity and Access
1261
	 * Management</em>.
1262
	 *
1263
	 * <p class="note">
1264
	 * Because the body of the public key certificate, private key, and the certificate chain can be
1265
	 * large, you should use POST rather than GET when calling <code>UploadServerCertificate</code>.
1266
	 * For more information, see <a href=
1267
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html" target=
1268
	 * "_blank">Making Query Requests</a> in <em>Using AWS Identity and Access Management</em>.
1269
	 * </p>
1270
	 *
1271
	 * @param string $server_certificate_name (Required) The name for the server certificate. Do not include the path in this value. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1272
	 * @param string $certificate_body (Required) The contents of the public key certificate in PEM-encoded format. [Constraints: The value must be between 1 and 16384 characters, and must match the following regular expression pattern: <code>[\u0009\u000A\u000D\u0020-\u00FF]+</code>]
1273
	 * @param string $private_key (Required) The contents of the private key in PEM-encoded format. [Constraints: The value must be between 1 and 16384 characters, and must match the following regular expression pattern: <code>[\u0009\u000A\u000D\u0020-\u00FF]*</code>]
1274
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1275
	 * 	<li><code>Path</code> - <code>string</code> - Optional - The path for the server certificate. For more information about paths, see <a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_Identifiers.html" target="_blank">Identifiers for IAM Entities</a> in <em>Using AWS Identity and Access Management</em>. This parameter is optional. If it is not included, it defaults to a slash (/). [Constraints: The value must be between 1 and 512 characters, and must match the following regular expression pattern: <code>(\u002F)|(\u002F[\u0021-\u007F]+\u002F)</code>]</li>
1276
	 * 	<li><code>CertificateChain</code> - <code>string</code> - Optional - The contents of the certificate chain. This is typically a concatenation of the PEM-encoded public key certificates of the chain. [Constraints: The value must be between 1 and 2097152 characters, and must match the following regular expression pattern: <code>[\u0009\u000A\u000D\u0020-\u00FF]*</code>]</li>
1277
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
1278
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
1279
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1280
	 */
1281
	public function upload_server_certificate($server_certificate_name, $certificate_body, $private_key, $opt = null)
1282
	{
1283
		if (!$opt) $opt = array();
1284
		$opt['ServerCertificateName'] = $server_certificate_name;
1285
		$opt['CertificateBody'] = $certificate_body;
1286
		$opt['PrivateKey'] = $private_key;
1287
 
1288
		return $this->authenticate('UploadServerCertificate', $opt);
1289
	}
1290
 
1291
	/**
1292
	 * Uploads an X.509 signing certificate and associates it with the specified user. Some AWS
1293
	 * services use X.509 signing certificates to validate requests that are signed with a
1294
	 * corresponding private key. When you upload the certificate, its default status is
1295
	 * <code>Active</code>.
1296
	 *
1297
	 * If the <code>UserName</code> field is not specified, the user name is determined implicitly
1298
	 * based on the AWS Access Key ID used to sign the request. Because this action works for access
1299
	 * keys under the AWS account, this API can be used to manage root credentials even if the AWS
1300
	 * account has no associated users.
1301
	 *
1302
	 * <p class="note">
1303
	 * Because the body of a X.509 certificate can be large, you should use POST rather than GET when
1304
	 * calling <code>UploadSigningCertificate</code>. For more information, see <a href=
1305
	 * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?IAM_UsingQueryAPI.html"
1306
	 * target="_blank">Making Query Requests</a> in <em>Using AWS Identity and Access Management</em>.
1307
	 * </p>
1308
	 *
1309
	 * @param string $certificate_body (Required) The contents of the signing certificate. [Constraints: The value must be between 1 and 16384 characters, and must match the following regular expression pattern: <code>[\u0009\u000A\u000D\u0020-\u00FF]+</code>]
1310
	 * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1311
	 * 	<li><code>UserName</code> - <code>string</code> - Optional - Name of the user the signing certificate is for. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
1312
	 * 	<li><code>curlopts</code> - <code>array</code> - Optional - A set of values to pass directly into <code>curl_setopt()</code>, where the key is a pre-defined <code>CURLOPT_*</code> constant.</li>
1313
	 * 	<li><code>returnCurlHandle</code> - <code>boolean</code> - Optional - A private toggle specifying that the cURL handle be returned rather than actually completing the request. This toggle is useful for manually managed batch requests.</li></ul>
1314
	 * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1315
	 */
1316
	public function upload_signing_certificate($certificate_body, $opt = null)
1317
	{
1318
		if (!$opt) $opt = array();
1319
		$opt['CertificateBody'] = $certificate_body;
1320
 
1321
		return $this->authenticate('UploadSigningCertificate', $opt);
1322
	}
1323
}
1324
 
1325
 
1326
/*%******************************************************************************************%*/
1327
// EXCEPTIONS
1328
 
1329
class IAM_Exception extends Exception {}