BackWPup – WordPress Backup Plugin - Version 2.1.11

Version Description

  • fixed bug in contextual help
  • Updated AWS lib to 1.5.6
  • changes for WordPress 3.4
Download this release

Release Info

Developer danielhuesken
Plugin Icon 128x128 BackWPup – WordPress Backup Plugin
Version 2.1.11
Comparing to
See all releases

Code changes from version 2.1.10 to 2.1.11

Files changed (36) hide show
  1. backwpup-functions.php +11 -15
  2. backwpup.php +4 -4
  3. css/backwpupeditjob.css +2 -1
  4. job/backup_create.php +19 -12
  5. libs/aws/authentication/signature_v3json.class.php +2 -2
  6. libs/aws/authentication/signature_v4json.class.php +353 -0
  7. libs/aws/authentication/signature_v4query.class.php +345 -0
  8. libs/aws/extensions/dynamodbsessionhandler.class.php +513 -0
  9. libs/aws/lib/cachecore/cacheapc.class.php +5 -5
  10. libs/aws/lib/cachecore/cachecore.class.php +21 -9
  11. libs/aws/lib/cachecore/cachefile.class.php +5 -5
  12. libs/aws/lib/cachecore/cachemc.class.php +5 -5
  13. libs/aws/lib/cachecore/cachepdo.class.php +5 -5
  14. libs/aws/lib/cachecore/cachexcache.class.php +5 -5
  15. libs/aws/lib/dom/ArrayToDOMDocument.php +5 -5
  16. libs/aws/lib/requestcore/requestcore.class.php +1 -1
  17. libs/aws/sdk.class.php +35 -4
  18. libs/aws/services/as.class.php +71 -85
  19. libs/aws/services/cloudformation.class.php +22 -39
  20. libs/aws/services/cloudfront.class.php +58 -2
  21. libs/aws/services/cloudsearch.class.php +573 -0
  22. libs/aws/services/dynamodb.class.php +394 -217
  23. libs/aws/services/ec2.class.php +595 -25
  24. libs/aws/services/elasticache.class.php +22 -2
  25. libs/aws/services/elasticbeanstalk.class.php +12 -2
  26. libs/aws/services/elb.class.php +3 -3
  27. libs/aws/services/iam.class.php +151 -60
  28. libs/aws/services/s3.class.php +78 -42
  29. libs/aws/services/ses.class.php +120 -11
  30. libs/aws/services/storagegateway.class.php +863 -0
  31. libs/aws/services/sts.class.php +24 -16
  32. libs/aws/services/swf.class.php +279 -228
  33. libs/aws/utilities/request.class.php +0 -1
  34. libs/aws/utilities/simplexml.class.php +33 -0
  35. pages/page_backwpupeditjob.php +153 -131
  36. readme.txt +10 -3
backwpup-functions.php CHANGED
@@ -137,7 +137,7 @@ function backwpup_contextual_help($help='') {
137
  add_contextual_help( $current_screen,$help.
138
  '<p><a href="http://backwpup.de" target="_blank">BackWPup</a> v. ' . BACKWPUP_VERSION . ', <a href="http://www.gnu.org/licenses/gpl-2.0" target="_blank">GPLv2</a> &copy 2009-' . date( 'Y' ) . ' <a href="http://danielhuesken.de" target="_blank">Daniel H&uuml;sken</a></p><p>' . __( 'BackWPup comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions.', 'backwpup' ) . '</p>' .
139
  '<p><strong>' . __( 'For more information:', 'backwpup' ) . '</strong></p><p>' .
140
- ' <a href="' . BackWPup::get_plugin_data('PluginURI') . '" target="_blank">' . BackWPup::get_plugin_data('Name') . '</a> |' .
141
  ' <a href="http://backwpup.de/handbuch/" target="_blank">'.__('Documentation', 'backwpup').'</a> |' .
142
  ' <a href="http://backwpup.de/faq/" target="_blank">'.__('FAQ', 'backwpup').'</a> |' .
143
  ' <a href="http://backwpup.de/forums/" target="_blank">'.__('Support Forums', 'backwpup').'</a> |' .
@@ -149,7 +149,7 @@ function backwpup_contextual_help($help='') {
149
  add_contextual_help( $current_screen,$help.
150
  '<p><a href="http://backwpup.com" target="_blank">BackWPup</a> v. ' . BACKWPUP_VERSION . ', <a href="http://www.gnu.org/licenses/gpl-2.0" target="_blank">GPLv2</a> &copy 2009-' . date( 'Y' ) . ' <a href="http://danielhuesken.de" target="_blank">Daniel H&uuml;sken</a></p><p>' . __( 'BackWPup comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions.', 'backwpup' ) . '</p>' .
151
  '<p><strong>' . __( 'For more information:', 'backwpup' ) . '</strong></p><p>' .
152
- ' <a href="' . BackWPup::get_plugin_data('PluginURI') . '" target="_blank">' . BackWPup::get_plugin_data('Name') . '</a> |' .
153
  ' <a href="http://backwpup.com/manual/" target="_blank">'.__('Documentation', 'backwpup').'</a> |' .
154
  ' <a href="http://backwpup.com/faq/" target="_blank">'.__('FAQ', 'backwpup').'</a> |' .
155
  ' <a href="http://backwpup.com/forums/" target="_blank">'.__('Support Forums', 'backwpup').'</a> |' .
@@ -190,7 +190,7 @@ function backwpup_plugin_activate() {
190
  if (empty($cfg['mailsndname'])) $cfg['mailsndname']='BackWPup '.get_bloginfo( 'name' );
191
  if (empty($cfg['mailmethod'])) $cfg['mailmethod']='mail';
192
  if (empty($cfg['mailsendmail'])) $cfg['mailsendmail']=substr(ini_get('sendmail_path'),0,strpos(ini_get('sendmail_path'),' -'));
193
- if (false !== strpos($cfg['mailhost'],':'))
194
  list($cfg['mailhost'],$cfg['mailhostport'])=explode(':',$cfg['mailhost'],2);
195
  if (!isset($cfg['mailhost'])) $cfg['mailhost']='';
196
  if (!isset($cfg['mailhostport'])) $cfg['mailhostport']=25;
@@ -264,18 +264,14 @@ function backwpup_check_open_basedir($dir) {
264
 
265
  //Backwpup API
266
  function backwpup_api($active=false) {
267
- global $wp_version;
268
  $cfg=get_option('backwpup');
269
- $blugurl=get_option('siteurl');
270
- if (defined('WP_SITEURL'))
271
- $blugurl=WP_SITEURL;
272
- $post['URL']=$blugurl;
273
  $post['WP_VER']=$wp_version;
274
  $post['BACKWPUP_VER']=BACKWPUP_VERSION;
275
  if (!empty($cfg['apicronservice'])) {
276
- $post['ACTION']='cronupdate';
277
  $post['OFFSET']=get_option('gmt_offset');
278
- if (!empty($cfg['apicronservice']) and !empty($cfg['httpauthuser']) and !empty($cfg['httpauthpassword']))
279
  $post['httpauth']=base64_encode($cfg['httpauthuser'].':'.base64_decode($cfg['httpauthpassword']));
280
  $jobs=get_option('backwpup_jobs');
281
  if (!empty($jobs)) {
@@ -538,11 +534,11 @@ function backwpup_add_adminbar() {
538
  /* Add the main siteadmin menu item */
539
  $wp_admin_bar->add_menu(array( 'id' => 'backwpup', 'title' => __( 'BackWPup', 'textdomain' ), 'href' => backwpup_admin_url('admin.php').'?page=backwpup'));
540
  if (backwpup_get_working_file())
541
- $wp_admin_bar->add_menu(array( 'parent' => 'backwpup', 'title' => __('See Working!','backwpup'), 'href' => backwpup_admin_url('admin.php').'?page=backwpupworking'));
542
- $wp_admin_bar->add_menu(array( 'parent' => 'backwpup', 'title' => __('Jobs','backwpup'), 'href' => backwpup_admin_url('admin.php').'?page=backwpup'));
543
- $wp_admin_bar->add_menu(array( 'parent' => 'backwpup', 'title' => __('Logs','backwpup'), 'href' => backwpup_admin_url('admin.php').'?page=backwpuplogs'));
544
- $wp_admin_bar->add_menu(array( 'parent' => 'backwpup', 'title' => __('Backups','backwpup'), 'href' => backwpup_admin_url('admin.php').'?page=backwpupbackups'));
545
- $wp_admin_bar->add_menu(array( 'parent' => 'new-content', 'title' => __('BackWPup Job','backwpup'), 'href' => backwpup_admin_url('admin.php').'?page=backwpupeditjob'));
546
  }
547
 
548
  function backwpup_get_upload_dir() {
137
  add_contextual_help( $current_screen,$help.
138
  '<p><a href="http://backwpup.de" target="_blank">BackWPup</a> v. ' . BACKWPUP_VERSION . ', <a href="http://www.gnu.org/licenses/gpl-2.0" target="_blank">GPLv2</a> &copy 2009-' . date( 'Y' ) . ' <a href="http://danielhuesken.de" target="_blank">Daniel H&uuml;sken</a></p><p>' . __( 'BackWPup comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions.', 'backwpup' ) . '</p>' .
139
  '<p><strong>' . __( 'For more information:', 'backwpup' ) . '</strong></p><p>' .
140
+ ' <a href="http://backwpup.de" target="_blank">BackWPup</a> |' .
141
  ' <a href="http://backwpup.de/handbuch/" target="_blank">'.__('Documentation', 'backwpup').'</a> |' .
142
  ' <a href="http://backwpup.de/faq/" target="_blank">'.__('FAQ', 'backwpup').'</a> |' .
143
  ' <a href="http://backwpup.de/forums/" target="_blank">'.__('Support Forums', 'backwpup').'</a> |' .
149
  add_contextual_help( $current_screen,$help.
150
  '<p><a href="http://backwpup.com" target="_blank">BackWPup</a> v. ' . BACKWPUP_VERSION . ', <a href="http://www.gnu.org/licenses/gpl-2.0" target="_blank">GPLv2</a> &copy 2009-' . date( 'Y' ) . ' <a href="http://danielhuesken.de" target="_blank">Daniel H&uuml;sken</a></p><p>' . __( 'BackWPup comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions.', 'backwpup' ) . '</p>' .
151
  '<p><strong>' . __( 'For more information:', 'backwpup' ) . '</strong></p><p>' .
152
+ ' <a href="http://backwpup.com" target="_blank">BackWPup</a> |' .
153
  ' <a href="http://backwpup.com/manual/" target="_blank">'.__('Documentation', 'backwpup').'</a> |' .
154
  ' <a href="http://backwpup.com/faq/" target="_blank">'.__('FAQ', 'backwpup').'</a> |' .
155
  ' <a href="http://backwpup.com/forums/" target="_blank">'.__('Support Forums', 'backwpup').'</a> |' .
190
  if (empty($cfg['mailsndname'])) $cfg['mailsndname']='BackWPup '.get_bloginfo( 'name' );
191
  if (empty($cfg['mailmethod'])) $cfg['mailmethod']='mail';
192
  if (empty($cfg['mailsendmail'])) $cfg['mailsendmail']=substr(ini_get('sendmail_path'),0,strpos(ini_get('sendmail_path'),' -'));
193
+ if (isset($cfg['mailhost']) && false !== strpos($cfg['mailhost'],':'))
194
  list($cfg['mailhost'],$cfg['mailhostport'])=explode(':',$cfg['mailhost'],2);
195
  if (!isset($cfg['mailhost'])) $cfg['mailhost']='';
196
  if (!isset($cfg['mailhostport'])) $cfg['mailhostport']=25;
264
 
265
  //Backwpup API
266
  function backwpup_api($active=false) {
267
+ include(ABSPATH . WPINC . '/version.php'); // include an unmodified $wp_version
268
  $cfg=get_option('backwpup');
269
+ $post['URL']=site_url();
 
 
 
270
  $post['WP_VER']=$wp_version;
271
  $post['BACKWPUP_VER']=BACKWPUP_VERSION;
272
  if (!empty($cfg['apicronservice'])) {
 
273
  $post['OFFSET']=get_option('gmt_offset');
274
+ if (!empty($cfg['httpauthuser']) and !empty($cfg['httpauthpassword']))
275
  $post['httpauth']=base64_encode($cfg['httpauthuser'].':'.base64_decode($cfg['httpauthpassword']));
276
  $jobs=get_option('backwpup_jobs');
277
  if (!empty($jobs)) {
534
  /* Add the main siteadmin menu item */
535
  $wp_admin_bar->add_menu(array( 'id' => 'backwpup', 'title' => __( 'BackWPup', 'textdomain' ), 'href' => backwpup_admin_url('admin.php').'?page=backwpup'));
536
  if (backwpup_get_working_file())
537
+ $wp_admin_bar->add_menu(array( 'id' => 'backwpup_working','parent' => 'backwpup', 'title' => __('See Working!','backwpup'), 'href' => backwpup_admin_url('admin.php').'?page=backwpupworking'));
538
+ $wp_admin_bar->add_menu(array( 'id' => 'backwpup_jobs', 'parent' => 'backwpup', 'title' => __('Jobs','backwpup'), 'href' => backwpup_admin_url('admin.php').'?page=backwpup'));
539
+ $wp_admin_bar->add_menu(array( 'id' => 'backwpup_logs', 'parent' => 'backwpup', 'title' => __('Logs','backwpup'), 'href' => backwpup_admin_url('admin.php').'?page=backwpuplogs'));
540
+ $wp_admin_bar->add_menu(array( 'id' => 'backwpup_backups', 'parent' => 'backwpup', 'title' => __('Backups','backwpup'), 'href' => backwpup_admin_url('admin.php').'?page=backwpupbackups'));
541
+ $wp_admin_bar->add_menu(array( 'id' => 'backwpup_newjob', 'parent' => 'new-content', 'title' => __('BackWPup Job','backwpup'), 'href' => backwpup_admin_url('admin.php').'?page=backwpupeditjob'));
542
  }
543
 
544
  function backwpup_get_upload_dir() {
backwpup.php CHANGED
@@ -4,7 +4,7 @@ Plugin Name: BackWPup
4
  Plugin URI: http://backwpup.com
5
  Description: WordPress Backup and more...
6
  Author: Daniel H&uuml;sken
7
- Version: 2.1.10
8
  Author URI: http://danielhuesken.de
9
  Text Domain: backwpup
10
  Domain Path: /lang/
@@ -32,7 +32,7 @@ Domain Path: /lang/
32
  define('BACKWPUP_PLUGIN_BASEDIR', dirname(plugin_basename(__FILE__)));
33
  define('BACKWPUP_PLUGIN_BASEURL',plugins_url('',__FILE__));
34
  //Set Plugin Version
35
- define('BACKWPUP_VERSION', '2.1.10');
36
  //Set Min Wordpress Version
37
  define('BACKWPUP_MIN_WORDPRESS_VERSION', '3.1');
38
  //Set User Capability
@@ -64,7 +64,7 @@ if (is_multisite())
64
  else
65
  add_action('admin_notices', 'backwpup_admin_notice');
66
  //add cron intervals
67
- add_filter('cron_schedules', 'backwpup_intervals');
68
  //call activation settings
69
  backwpup_plugin_activate();
70
  //Check if plugin can activated
@@ -98,7 +98,7 @@ if (backwpup_env_checks()) {
98
  if (!empty($cfg['disablewpcron']))
99
  define('DISABLE_WP_CRON',true);
100
  //bypass Google Analytics by Yoast oauth
101
- if ( isset($_GET['oauth_token']) && $_GET['page'] == 'backwpupeditjob' ) {
102
  $_GET['oauth_token_backwpup'] = $_GET['oauth_token'];
103
  unset($_GET['oauth_token']);
104
  unset($_REQUEST['oauth_token']);
4
  Plugin URI: http://backwpup.com
5
  Description: WordPress Backup and more...
6
  Author: Daniel H&uuml;sken
7
+ Version: 2.1.11
8
  Author URI: http://danielhuesken.de
9
  Text Domain: backwpup
10
  Domain Path: /lang/
32
  define('BACKWPUP_PLUGIN_BASEDIR', dirname(plugin_basename(__FILE__)));
33
  define('BACKWPUP_PLUGIN_BASEURL',plugins_url('',__FILE__));
34
  //Set Plugin Version
35
+ define('BACKWPUP_VERSION', '2.1.11');
36
  //Set Min Wordpress Version
37
  define('BACKWPUP_MIN_WORDPRESS_VERSION', '3.1');
38
  //Set User Capability
64
  else
65
  add_action('admin_notices', 'backwpup_admin_notice');
66
  //add cron intervals
67
+ add_filter('cron_schedules', 'backwpup_intervals',20);
68
  //call activation settings
69
  backwpup_plugin_activate();
70
  //Check if plugin can activated
98
  if (!empty($cfg['disablewpcron']))
99
  define('DISABLE_WP_CRON',true);
100
  //bypass Google Analytics by Yoast oauth
101
+ if ( isset($_GET['oauth_token']) && isset($_GET['page']) && $_GET['page'] == 'backwpupeditjob' ) {
102
  $_GET['oauth_token_backwpup'] = $_GET['oauth_token'];
103
  unset($_GET['oauth_token']);
104
  unset($_REQUEST['oauth_token']);
css/backwpupeditjob.css CHANGED
@@ -1,6 +1,7 @@
1
  #icon-backwpup {
2
  background: url('BackWPup32.png') no-repeat;
3
  }
 
4
  #cron-min, #cron-hour, #cron-day, #cron-month, #cron-weekday {
5
  overflow:auto;
6
  white-space:nowrap;
@@ -44,4 +45,4 @@
44
  border-color:#CEE1EF;
45
  border-style:solid;
46
  border-width:2px;
47
- }
1
  #icon-backwpup {
2
  background: url('BackWPup32.png') no-repeat;
3
  }
4
+
5
  #cron-min, #cron-hour, #cron-day, #cron-month, #cron-weekday {
6
  overflow:auto;
7
  white-space:nowrap;
45
  border-color:#CEE1EF;
46
  border-style:solid;
47
  border-width:2px;
48
+ }
job/backup_create.php CHANGED
@@ -96,7 +96,7 @@ function backup_create() {
96
  need_free_memory(2097152); //2MB free memory for tar
97
  $files=$filelist[$index];
98
  //check file readable
99
- if (!is_readable($files['FILE']) or empty($files['FILE'])) {
100
  trigger_error(sprintf(__('File "%s" not readable!','backwpup'),$files['FILE']),E_USER_WARNING);
101
  $WORKING['STEPDONE']++;
102
  continue;
@@ -163,20 +163,27 @@ function backup_create() {
163
  }
164
 
165
  // read/write files in 512K Blocks
166
- $fd=fopen($files['FILE'],'rb');
167
- while(!feof($fd)) {
168
- $filedata=fread($fd,512);
169
- if (strlen($filedata)>0) {
170
- if (strtolower($STATIC['JOB']['fileformart'])=='.tar.gz') {
171
- gzwrite($tarbackup,pack("a512", $filedata));
172
- } elseif (strtolower($STATIC['JOB']['fileformart'])=='.tar.bz2') {
173
- bzwrite($tarbackup,pack("a512", $filedata));
174
- } else {
175
- fwrite($tarbackup,pack("a512", $filedata));
 
 
 
 
 
 
 
176
  }
177
  }
 
178
  }
179
- fclose($fd);
180
  $WORKING['STEPDONE']++;
181
  update_working_file();
182
  }
96
  need_free_memory(2097152); //2MB free memory for tar
97
  $files=$filelist[$index];
98
  //check file readable
99
+ if ( empty($files['FILE']) or !file_exists($files['FILE']) or !is_readable($files['FILE'])) {
100
  trigger_error(sprintf(__('File "%s" not readable!','backwpup'),$files['FILE']),E_USER_WARNING);
101
  $WORKING['STEPDONE']++;
102
  continue;
163
  }
164
 
165
  // read/write files in 512K Blocks
166
+ if ($fd=fopen($files['FILE'],'rb')) {
167
+ if (!flock($fd, LOCK_EX | LOCK_NB)) {
168
+ trigger_error( sprintf( __( 'File "%1$s" is locked and can\'t unlocked. Skipped!', 'backwpup' ), $files['FILE']), E_USER_WARNING );
169
+ fclose($fd);
170
+ $WORKING['STEPDONE']++;
171
+ continue;
172
+ }
173
+ while(!feof($fd)) {
174
+ $filedata=fread($fd,512);
175
+ if (strlen($filedata)>0) {
176
+ if (strtolower($STATIC['JOB']['fileformart'])=='.tar.gz') {
177
+ gzwrite($tarbackup,pack("a512", $filedata));
178
+ } elseif (strtolower($STATIC['JOB']['fileformart'])=='.tar.bz2') {
179
+ bzwrite($tarbackup,pack("a512", $filedata));
180
+ } else {
181
+ fwrite($tarbackup,pack("a512", $filedata));
182
+ }
183
  }
184
  }
185
+ fclose($fd);
186
  }
 
187
  $WORKING['STEPDONE']++;
188
  update_working_file();
189
  }
libs/aws/authentication/signature_v3json.class.php CHANGED
@@ -149,8 +149,8 @@ class AuthV3JSON extends Signer implements Signable
149
  // Instantiate the request class
150
  $request = new $this->request_class($request_url, $this->proxy, $helpers, $this->credentials);
151
  $request->set_method('POST');
152
- $request->set_body($this->querystring);
153
- $headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8';
154
 
155
  // Signing using X-Amz-Target is handled differently.
156
  $headers['X-Amz-Target'] = $x_amz_target;
149
  // Instantiate the request class
150
  $request = new $this->request_class($request_url, $this->proxy, $helpers, $this->credentials);
151
  $request->set_method('POST');
152
+ //$request->set_body($this->querystring);
153
+ //$headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8';
154
 
155
  // Signing using X-Amz-Target is handled differently.
156
  $headers['X-Amz-Target'] = $x_amz_target;
libs/aws/authentication/signature_v4json.class.php ADDED
@@ -0,0 +1,353 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Copyright 2010-2012 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
+ /*%******************************************************************************************%*/
19
+ // CLASS
20
+
21
+ /**
22
+ * Implements support for Signature v4 (Query).
23
+ *
24
+ * @version 2011.01.03
25
+ * @license See the included NOTICE.md file for more information.
26
+ * @copyright See the included NOTICE.md file for more information.
27
+ * @link http://aws.amazon.com/php/ PHP Developer Center
28
+ */
29
+ class AuthV4JSON extends Signer implements Signable
30
+ {
31
+ /**
32
+ * Constructs a new instance of the <AuthV4Query> class.
33
+ *
34
+ * @param string $endpoint (Required) The endpoint to direct the request to.
35
+ * @param string $operation (Required) The operation to execute as a result of this request.
36
+ * @param array $payload (Required) The options to use as part of the payload in the request.
37
+ * @param CFCredential $credentials (Required) The credentials to use for signing and making requests.
38
+ * @return void
39
+ */
40
+ public function __construct($endpoint, $operation, $payload, CFCredential $credentials)
41
+ {
42
+ parent::__construct($endpoint, $operation, $payload, $credentials);
43
+ }
44
+
45
+ /**
46
+ * Generates a cURL handle with all of the required authentication bits set.
47
+ *
48
+ * @return resource A cURL handle ready for executing.
49
+ */
50
+ public function authenticate()
51
+ {
52
+ // Determine signing values
53
+ $current_time = time();
54
+ $timestamp = gmdate(CFUtilities::DATE_FORMAT_SIGV4, $current_time);
55
+
56
+ // Initialize
57
+ $x_amz_target = null;
58
+
59
+ $this->headers = array();
60
+ $this->signed_headers = array();
61
+ $this->canonical_headers = array();
62
+ $this->query = array();
63
+
64
+ // Prepare JSON structure
65
+ $decoded = json_decode($this->payload, true);
66
+ $data = (array) (is_array($decoded) ? $decoded : $this->payload);
67
+ unset($data['curlopts']);
68
+ unset($data['returnCurlHandle']);
69
+ $this->body = json_encode($data);
70
+ if ($this->body === '' || $this->body === '[]')
71
+ {
72
+ $this->body = '{}';
73
+ }
74
+
75
+ // Do we have an authentication token?
76
+ if ($this->auth_token)
77
+ {
78
+ $this->headers['X-Amz-Security-Token'] = $this->auth_token;
79
+ $this->query['SecurityToken'] = $this->auth_token;
80
+ }
81
+
82
+ // Manage the key-value pairs that are used in the query.
83
+ if (stripos($this->operation, 'x-amz-target') !== false)
84
+ {
85
+ $x_amz_target = trim(str_ireplace('x-amz-target:', '', $this->operation));
86
+ }
87
+ else
88
+ {
89
+ $this->query['Action'] = $this->operation;
90
+ }
91
+
92
+ // Only add it if it exists.
93
+ if ($this->api_version)
94
+ {
95
+ $this->query['Version'] = $this->api_version;
96
+ }
97
+
98
+ // Do a case-sensitive, natural order sort on the array keys.
99
+ uksort($this->query, 'strcmp');
100
+
101
+ // Remove the default scheme from the domain.
102
+ $domain = str_replace(array('http://', 'https://'), '', $this->endpoint);
103
+
104
+ // Parse our request.
105
+ $parsed_url = parse_url('http://' . $domain);
106
+
107
+ // Set the proper host header.
108
+ if (isset($parsed_url['port']) && (integer) $parsed_url['port'] !== 80 && (integer) $parsed_url['port'] !== 443)
109
+ {
110
+ $host_header = strtolower($parsed_url['host']) . ':' . $parsed_url['port'];
111
+ }
112
+ else
113
+ {
114
+ $host_header = strtolower($parsed_url['host']);
115
+ }
116
+
117
+ // Generate the querystring from $this->query
118
+ $this->querystring = $this->util->to_query_string($this->query);
119
+
120
+ // Gather information to pass along to other classes.
121
+ $helpers = array(
122
+ 'utilities' => $this->utilities_class,
123
+ 'request' => $this->request_class,
124
+ 'response' => $this->response_class,
125
+ );
126
+
127
+ // Compose the request.
128
+ $request_url = ($this->use_ssl ? 'https://' : 'http://') . $domain;
129
+ $request_url .= !isset($parsed_url['path']) ? '/' : '';
130
+
131
+ // Instantiate the request class
132
+ $request = new $this->request_class($request_url, $this->proxy, $helpers, $this->credentials);
133
+ $request->set_method('POST');
134
+ $request->set_body($this->body);
135
+ $this->querystring = $this->body;
136
+ $this->headers['Content-Type'] = 'application/x-amz-json-1.1';
137
+ $this->headers['X-Amz-Target'] = $x_amz_target;
138
+
139
+ // Pass along registered stream callbacks
140
+ if ($this->registered_streaming_read_callback)
141
+ {
142
+ $request->register_streaming_read_callback($this->registered_streaming_read_callback);
143
+ }
144
+
145
+ if ($this->registered_streaming_write_callback)
146
+ {
147
+ $request->register_streaming_write_callback($this->registered_streaming_write_callback);
148
+ }
149
+
150
+ // Add authentication headers
151
+ $this->headers['X-Amz-Date'] = $timestamp;
152
+ $this->headers['Content-Length'] = strlen($this->querystring);
153
+ $this->headers['Host'] = $host_header;
154
+
155
+ // Sort headers
156
+ uksort($this->headers, 'strnatcasecmp');
157
+
158
+ // Add headers to request and compute the string to sign
159
+ foreach ($this->headers as $header_key => $header_value)
160
+ {
161
+ // Strip linebreaks from header values as they're illegal and can allow for security issues
162
+ $header_value = str_replace(array("\r", "\n"), '', $header_value);
163
+
164
+ $request->add_header($header_key, $header_value);
165
+ $this->canonical_headers[] = strtolower($header_key) . ':' . $header_value;
166
+
167
+ $this->signed_headers[] = strtolower($header_key);
168
+ }
169
+
170
+ $this->headers['Authorization'] = $this->authorization($timestamp);
171
+ $request->add_header('Authorization', $this->headers['Authorization']);
172
+ $request->request_headers = $this->headers;
173
+
174
+ return $request;
175
+ }
176
+
177
+ /**
178
+ * Generates the authorization string to use for the request.
179
+ *
180
+ * @param string $datetime (Required) The current timestamp.
181
+ * @return string The authorization string.
182
+ */
183
+ protected function authorization($datetime)
184
+ {
185
+ $access_key_id = $this->key;
186
+
187
+ $parts = array();
188
+ $parts[] = "AWS4-HMAC-SHA256 Credential=${access_key_id}/" . $this->credential_string($datetime);
189
+ $parts[] = 'SignedHeaders=' . implode(';', $this->signed_headers);
190
+ $parts[] = 'Signature=' . $this->hex16($this->signature($datetime));
191
+
192
+ return implode(',', $parts);
193
+ }
194
+
195
+ /**
196
+ * Calculate the signature.
197
+ *
198
+ * @param string $datetime (Required) The current timestamp.
199
+ * @return string The signature.
200
+ */
201
+ protected function signature($datetime)
202
+ {
203
+ $k_date = $this->hmac('AWS4' . $this->secret_key, substr($datetime, 0, 8));
204
+ $k_region = $this->hmac($k_date, $this->region());
205
+ $k_service = $this->hmac($k_region, $this->service());
206
+ $k_credentials = $this->hmac($k_service, 'aws4_request');
207
+ $signature = $this->hmac($k_credentials, $this->string_to_sign($datetime));
208
+
209
+ return $signature;
210
+ }
211
+
212
+ /**
213
+ * Calculate the string to sign.
214
+ *
215
+ * @param string $datetime (Required) The current timestamp.
216
+ * @return string The string to sign.
217
+ */
218
+ protected function string_to_sign($datetime)
219
+ {
220
+ $parts = array();
221
+ $parts[] = 'AWS4-HMAC-SHA256';
222
+ $parts[] = $datetime;
223
+ $parts[] = $this->credential_string($datetime);
224
+ $parts[] = $this->hex16($this->hash($this->canonical_request()));
225
+
226
+ $this->string_to_sign = implode("\n", $parts);
227
+
228
+ return $this->string_to_sign;
229
+ }
230
+
231
+ /**
232
+ * Generates the credential string to use for signing.
233
+ *
234
+ * @param string $datetime (Required) The current timestamp.
235
+ * @return string The credential string.
236
+ */
237
+ protected function credential_string($datetime)
238
+ {
239
+ $parts = array();
240
+ $parts[] = substr($datetime, 0, 8);
241
+ $parts[] = $this->region();
242
+ $parts[] = $this->service();
243
+ $parts[] = 'aws4_request';
244
+
245
+ return implode('/', $parts);
246
+ }
247
+
248
+ /**
249
+ * Calculate the canonical request.
250
+ *
251
+ * @return string The canonical request.
252
+ */
253
+ protected function canonical_request()
254
+ {
255
+ $parts = array();
256
+ $parts[] = 'POST';
257
+ $parts[] = $this->canonical_uri();
258
+ $parts[] = ''; // $parts[] = $this->canonical_querystring();
259
+ $parts[] = implode("\n", $this->canonical_headers) . "\n";
260
+ $parts[] = implode(';', $this->signed_headers);
261
+ $parts[] = $this->hex16($this->hash($this->body));
262
+
263
+ $this->canonical_request = implode("\n", $parts);
264
+
265
+ return $this->canonical_request;
266
+ }
267
+
268
+ /**
269
+ * The region ID to use in the signature.
270
+ *
271
+ * @return return The region ID.
272
+ */
273
+ protected function region()
274
+ {
275
+ $pieces = explode('.', $this->endpoint);
276
+
277
+ // Handle cases with single/no region (i.e. service.region.amazonaws.com vs. service.amazonaws.com)
278
+ if (count($pieces < 4))
279
+ {
280
+ return 'us-east-1';
281
+ }
282
+
283
+ return $pieces[1];
284
+ }
285
+
286
+ /**
287
+ * The service ID to use in the signature.
288
+ *
289
+ * @return return The service ID.
290
+ */
291
+ protected function service()
292
+ {
293
+ $pieces = explode('.', $this->endpoint);
294
+ return $pieces[0];
295
+ }
296
+
297
+ /**
298
+ * The request URI path.
299
+ *
300
+ * @return string The request URI path.
301
+ */
302
+ protected function canonical_uri()
303
+ {
304
+ return '/';
305
+ }
306
+
307
+ /**
308
+ * The canonical query string.
309
+ *
310
+ * @return string The canonical query string.
311
+ */
312
+ protected function canonical_querystring()
313
+ {
314
+ if (!isset($this->canonical_querystring))
315
+ {
316
+ $this->canonical_querystring = $this->util->to_signable_string($this->query);
317
+ }
318
+
319
+ return $this->canonical_querystring;
320
+ }
321
+
322
+ /**
323
+ * Hex16-pack the data.
324
+ *
325
+ * @param string $value (Required) The data to hex16 pack.
326
+ * @return string The hex16-packed data.
327
+ */
328
+ protected function hex16($value)
329
+ {
330
+ $result = unpack('H*', $value);
331
+ return reset($result);
332
+ }
333
+
334
+ /**
335
+ * Applies HMAC SHA-256 encryption to the string, salted by the key.
336
+ *
337
+ * @return string Raw HMAC SHA-256 hashed string.
338
+ */
339
+ protected function hmac($key, $string)
340
+ {
341
+ return hash_hmac('sha256', $string, $key, true);
342
+ }
343
+
344
+ /**
345
+ * SHA-256 hashes the string.
346
+ *
347
+ * @return string Raw SHA-256 hashed string.
348
+ */
349
+ protected function hash($string)
350
+ {
351
+ return hash('sha256', $string, true);
352
+ }
353
+ }
libs/aws/authentication/signature_v4query.class.php ADDED
@@ -0,0 +1,345 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Copyright 2010-2012 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
+ /*%******************************************************************************************%*/
19
+ // CLASS
20
+
21
+ /**
22
+ * Implements support for Signature v4 (Query).
23
+ *
24
+ * @version 2011.01.03
25
+ * @license See the included NOTICE.md file for more information.
26
+ * @copyright See the included NOTICE.md file for more information.
27
+ * @link http://aws.amazon.com/php/ PHP Developer Center
28
+ */
29
+ class AuthV4Query extends Signer implements Signable
30
+ {
31
+ /**
32
+ * Constructs a new instance of the <AuthV4Query> class.
33
+ *
34
+ * @param string $endpoint (Required) The endpoint to direct the request to.
35
+ * @param string $operation (Required) The operation to execute as a result of this request.
36
+ * @param array $payload (Required) The options to use as part of the payload in the request.
37
+ * @param CFCredential $credentials (Required) The credentials to use for signing and making requests.
38
+ * @return void
39
+ */
40
+ public function __construct($endpoint, $operation, $payload, CFCredential $credentials)
41
+ {
42
+ parent::__construct($endpoint, $operation, $payload, $credentials);
43
+ }
44
+
45
+ /**
46
+ * Generates a cURL handle with all of the required authentication bits set.
47
+ *
48
+ * @return resource A cURL handle ready for executing.
49
+ */
50
+ public function authenticate()
51
+ {
52
+ // Determine signing values
53
+ $current_time = time();
54
+ $timestamp = gmdate(CFUtilities::DATE_FORMAT_SIGV4, $current_time);
55
+
56
+ // Initialize
57
+ $x_amz_target = null;
58
+
59
+ $this->headers = array();
60
+ $this->signed_headers = array();
61
+ $this->canonical_headers = array();
62
+ $this->query = array('body' => is_array($this->payload) ? $this->payload : array());
63
+
64
+ // Do we have an authentication token?
65
+ if ($this->auth_token)
66
+ {
67
+ $this->headers['X-Amz-Security-Token'] = $this->auth_token;
68
+ $this->query['body']['SecurityToken'] = $this->auth_token;
69
+ }
70
+
71
+ // Manage the key-value pairs that are used in the query.
72
+ if (stripos($this->operation, 'x-amz-target') !== false)
73
+ {
74
+ $x_amz_target = trim(str_ireplace('x-amz-target:', '', $this->operation));
75
+ }
76
+ else
77
+ {
78
+ $this->query['body']['Action'] = $this->operation;
79
+ }
80
+
81
+ // Only add it if it exists.
82
+ if ($this->api_version)
83
+ {
84
+ $this->query['body']['Version'] = $this->api_version;
85
+ }
86
+
87
+ // Do a case-sensitive, natural order sort on the array keys.
88
+ uksort($this->query['body'], 'strcmp');
89
+
90
+ // Remove the default scheme from the domain.
91
+ $domain = str_replace(array('http://', 'https://'), '', $this->endpoint);
92
+
93
+ // Parse our request.
94
+ $parsed_url = parse_url('http://' . $domain);
95
+
96
+ // Set the proper host header.
97
+ if (isset($parsed_url['port']) && (integer) $parsed_url['port'] !== 80 && (integer) $parsed_url['port'] !== 443)
98
+ {
99
+ $host_header = strtolower($parsed_url['host']) . ':' . $parsed_url['port'];
100
+ }
101
+ else
102
+ {
103
+ $host_header = strtolower($parsed_url['host']);
104
+ }
105
+
106
+ // Generate the querystring from $this->query
107
+ $this->querystring = $this->util->to_query_string($this->query);
108
+
109
+ // Gather information to pass along to other classes.
110
+ $helpers = array(
111
+ 'utilities' => $this->utilities_class,
112
+ 'request' => $this->request_class,
113
+ 'response' => $this->response_class,
114
+ );
115
+
116
+ // Compose the request.
117
+ $request_url = ($this->use_ssl ? 'https://' : 'http://') . $domain;
118
+ $request_url .= !isset($parsed_url['path']) ? '/' : '';
119
+
120
+ // Instantiate the request class
121
+ $request = new $this->request_class($request_url, $this->proxy, $helpers, $this->credentials);
122
+ $request->set_method('POST');
123
+ $request->set_body($this->canonical_querystring());
124
+ $this->querystring = $this->canonical_querystring();
125
+
126
+ $this->headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=utf-8';
127
+ $this->headers['X-Amz-Target'] = $x_amz_target;
128
+
129
+ // Pass along registered stream callbacks
130
+ if ($this->registered_streaming_read_callback)
131
+ {
132
+ $request->register_streaming_read_callback($this->registered_streaming_read_callback);
133
+ }
134
+
135
+ if ($this->registered_streaming_write_callback)
136
+ {
137
+ $request->register_streaming_write_callback($this->registered_streaming_write_callback);
138
+ }
139
+
140
+ // Add authentication headers
141
+ $this->headers['X-Amz-Date'] = $timestamp;
142
+ $this->headers['Content-Length'] = strlen($this->querystring);
143
+ $this->headers['Content-MD5'] = $this->util->hex_to_base64(md5($this->querystring));
144
+ $this->headers['Host'] = $host_header;
145
+
146
+ // Sort headers
147
+ uksort($this->headers, 'strnatcasecmp');
148
+
149
+ // Add headers to request and compute the string to sign
150
+ foreach ($this->headers as $header_key => $header_value)
151
+ {
152
+ // Strip linebreaks from header values as they're illegal and can allow for security issues
153
+ $header_value = str_replace(array("\r", "\n"), '', $header_value);
154
+
155
+ $request->add_header($header_key, $header_value);
156
+ $this->canonical_headers[] = strtolower($header_key) . ':' . $header_value;
157
+
158
+ $this->signed_headers[] = strtolower($header_key);
159
+ }
160
+
161
+ $this->headers['Authorization'] = $this->authorization($timestamp);
162
+
163
+ $request->add_header('Authorization', $this->headers['Authorization']);
164
+ $request->request_headers = $this->headers;
165
+
166
+ return $request;
167
+ }
168
+
169
+ /**
170
+ * Generates the authorization string to use for the request.
171
+ *
172
+ * @param string $datetime (Required) The current timestamp.
173
+ * @return string The authorization string.
174
+ */
175
+ protected function authorization($datetime)
176
+ {
177
+ $access_key_id = $this->key;
178
+
179
+ $parts = array();
180
+ $parts[] = "AWS4-HMAC-SHA256 Credential=${access_key_id}/" . $this->credential_string($datetime);
181
+ $parts[] = 'SignedHeaders=' . implode(';', $this->signed_headers);
182
+ $parts[] = 'Signature=' . $this->hex16($this->signature($datetime));
183
+
184
+ return implode(',', $parts);
185
+ }
186
+
187
+ /**
188
+ * Calculate the signature.
189
+ *
190
+ * @param string $datetime (Required) The current timestamp.
191
+ * @return string The signature.
192
+ */
193
+ protected function signature($datetime)
194
+ {
195
+ $k_date = $this->hmac('AWS4' . $this->secret_key, substr($datetime, 0, 8));
196
+ $k_region = $this->hmac($k_date, $this->region());
197
+ $k_service = $this->hmac($k_region, $this->service());
198
+ $k_credentials = $this->hmac($k_service, 'aws4_request');
199
+ $signature = $this->hmac($k_credentials, $this->string_to_sign($datetime));
200
+
201
+ return $signature;
202
+ }
203
+
204
+ /**
205
+ * Calculate the string to sign.
206
+ *
207
+ * @param string $datetime (Required) The current timestamp.
208
+ * @return string The string to sign.
209
+ */
210
+ protected function string_to_sign($datetime)
211
+ {
212
+ $parts = array();
213
+ $parts[] = 'AWS4-HMAC-SHA256';
214
+ $parts[] = $datetime;
215
+ $parts[] = $this->credential_string($datetime);
216
+ $parts[] = $this->hex16($this->hash($this->canonical_request()));
217
+
218
+ $this->string_to_sign = implode("\n", $parts);
219
+
220
+ return $this->string_to_sign;
221
+ }
222
+
223
+ /**
224
+ * Generates the credential string to use for signing.
225
+ *
226
+ * @param string $datetime (Required) The current timestamp.
227
+ * @return string The credential string.
228
+ */
229
+ protected function credential_string($datetime)
230
+ {
231
+ $parts = array();
232
+ $parts[] = substr($datetime, 0, 8);
233
+ $parts[] = $this->region();
234
+ $parts[] = $this->service();
235
+ $parts[] = 'aws4_request';
236
+
237
+ return implode('/', $parts);
238
+ }
239
+
240
+ /**
241
+ * Calculate the canonical request.
242
+ *
243
+ * @return string The canonical request.
244
+ */
245
+ protected function canonical_request()
246
+ {
247
+ $parts = array();
248
+ $parts[] = 'POST';
249
+ $parts[] = $this->canonical_uri();
250
+ $parts[] = ''; // $parts[] = $this->canonical_querystring();
251
+ $parts[] = implode("\n", $this->canonical_headers) . "\n";
252
+ $parts[] = implode(';', $this->signed_headers);
253
+ $parts[] = $this->hex16($this->hash($this->canonical_querystring()));
254
+
255
+ $this->canonical_request = implode("\n", $parts);
256
+
257
+ return $this->canonical_request;
258
+ }
259
+
260
+ /**
261
+ * The region ID to use in the signature.
262
+ *
263
+ * @return return The region ID.
264
+ */
265
+ protected function region()
266
+ {
267
+ $pieces = explode('.', $this->endpoint);
268
+
269
+ // Handle cases with single/no region (i.e. service.region.amazonaws.com vs. service.amazonaws.com)
270
+ if (count($pieces < 4))
271
+ {
272
+ return 'us-east-1';
273
+ }
274
+
275
+ return $pieces[1];
276
+ }
277
+
278
+ /**
279
+ * The service ID to use in the signature.
280
+ *
281
+ * @return return The service ID.
282
+ */
283
+ protected function service()
284
+ {
285
+ $pieces = explode('.', $this->endpoint);
286
+ return ($pieces[0] === 'email') ? 'ses' : $pieces[0];
287
+ }
288
+
289
+ /**
290
+ * The request URI path.
291
+ *
292
+ * @return string The request URI path.
293
+ */
294
+ protected function canonical_uri()
295
+ {
296
+ return '/';
297
+ }
298
+
299
+ /**
300
+ * The canonical query string.
301
+ *
302
+ * @return string The canonical query string.
303
+ */
304
+ protected function canonical_querystring()
305
+ {
306
+ if (!isset($this->canonical_querystring))
307
+ {
308
+ $this->canonical_querystring = $this->util->to_signable_string($this->query['body']);
309
+ }
310
+
311
+ return $this->canonical_querystring;
312
+ }
313
+
314
+ /**
315
+ * Hex16-pack the data.
316
+ *
317
+ * @param string $value (Required) The data to hex16 pack.
318
+ * @return string The hex16-packed data.
319
+ */
320
+ protected function hex16($value)
321
+ {
322
+ $result = unpack('H*', $value);
323
+ return reset($result);
324
+ }
325
+
326
+ /**
327
+ * Applies HMAC SHA-256 encryption to the string, salted by the key.
328
+ *
329
+ * @return string Raw HMAC SHA-256 hashed string.
330
+ */
331
+ protected function hmac($key, $string)
332
+ {
333
+ return hash_hmac('sha256', $string, $key, true);
334
+ }
335
+
336
+ /**
337
+ * SHA-256 hashes the string.
338
+ *
339
+ * @return string Raw SHA-256 hashed string.
340
+ */
341
+ protected function hash($string)
342
+ {
343
+ return hash('sha256', $string, true);
344
+ }
345
+ }
libs/aws/extensions/dynamodbsessionhandler.class.php ADDED
@@ -0,0 +1,513 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Copyright 2011-2012 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
+ /**
19
+ * Provides an interface for using Amazon DynamoDB as a session store by hooking into
20
+ * PHP's session handler hooks. This class is not auto-loaded, and must be included
21
+ * manually or via the <code>AmazonDynamoDB::register_session_hander()</code> method.
22
+ *
23
+ * Once registered, You may use the native <code>$_SESSION</code> superglobal and
24
+ * session functions, and the sessions will be stored automatically in DynamoDB.
25
+ */
26
+ class DynamoDBSessionHandler
27
+ {
28
+ /**
29
+ * @var AmazonDynamoDB The DyanamoDB client.
30
+ */
31
+ protected $_dynamodb = null;
32
+
33
+ /**
34
+ * @var string The session save path (see <php:session_save_path()>).
35
+ */
36
+ protected $_save_path = null;
37
+
38
+ /**
39
+ * @var string The session name (see <php:session_name()>).
40
+ */
41
+ protected $_session_name = null;
42
+
43
+ /**
44
+ * @var boolean Keeps track of if the session is open.
45
+ */
46
+ protected $_open_session = null;
47
+
48
+ /**
49
+ * @var boolean Keeps track of whether the session is open.
50
+ */
51
+ protected $_session_written = false;
52
+
53
+ /**
54
+ * @var string The name of the DynamoDB table in which to store sessions.
55
+ */
56
+ protected $_table_name = 'sessions';
57
+
58
+ /**
59
+ * @var string The name of the hash key in the DynamoDB sessions table.
60
+ */
61
+ protected $_hash_key = 'id';
62
+
63
+ /**
64
+ * @var integer The lifetime of an inactive session before it should be garbage collected.
65
+ */
66
+ protected $_session_lifetime = 0;
67
+
68
+ /**
69
+ * @var boolean Whether or not the session handler should do consistent reads from DynamoDB.
70
+ */
71
+ protected $_consistent_reads = true;
72
+
73
+ /**
74
+ * @var boolean Whether or not the session handler should do session locking.
75
+ */
76
+ protected $_session_locking = true;
77
+
78
+ /**
79
+ * @var integer Maximum time, in seconds, that the session handler should take to acquire a lock.
80
+ */
81
+ protected $_max_lock_wait_time = 30;
82
+
83
+ /**
84
+ * @var integer Minimum time, in microseconds, that the session handler should wait to retry acquiring a lock.
85
+ */
86
+ protected $_min_lock_retry_utime = 10000;
87
+
88
+ /**
89
+ * @var integer Maximum time, in microseconds, that the session handler should wait to retry acquiring a lock.
90
+ */
91
+ protected $_max_lock_retry_utime = 100000;
92
+
93
+ /**
94
+ * @var array Type for casting the configuration options.
95
+ */
96
+ protected static $_option_types = array(
97
+ 'table_name' => 'string',
98
+ 'hash_key' => 'string',
99
+ 'session_lifetime' => 'integer',
100
+ 'consistent_reads' => 'boolean',
101
+ 'session_locking' => 'boolean',
102
+ 'max_lock_wait_time' => 'integer',
103
+ 'min_lock_retry_utime' => 'integer',
104
+ 'max_lock_retry_utime' => 'integer',
105
+ );
106
+
107
+ /**
108
+ * Initializes the session handler and prepares the configuration options.
109
+ *
110
+ * @param AmazonDynamoDB $dynamodb (Required) An instance of the DynamoDB client.
111
+ * @param array $options (Optional) Configuration options.
112
+ */
113
+ public function __construct(AmazonDynamoDB $dynamodb, array $options = array())
114
+ {
115
+ // Store the AmazonDynamoDB client for use in the session handler
116
+ $this->_dynamodb = $dynamodb;
117
+
118
+ // Do type conversions on options and store the values
119
+ foreach ($options as $key => $value)
120
+ {
121
+ if (isset(self::$_option_types[$key]))
122
+ {
123
+ settype($value, self::$_option_types[$key]);
124
+ $this->{'_' . $key} = $value;
125
+ }
126
+ }
127
+
128
+ // Make sure the lifetime is positive. Use the gc_maxlifetime otherwise
129
+ if ($this->_session_lifetime <= 0)
130
+ {
131
+ $this->_session_lifetime = (integer) ini_get('session.gc_maxlifetime');
132
+ }
133
+ }
134
+
135
+ /**
136
+ * Destruct the session handler and make sure the session gets written.
137
+ *
138
+ * NOTE: It is usually better practice to call <code>session_write_close()</code>
139
+ * manually in your application as soon as session modifications are complete. This
140
+ * is especially true if session locking is enabled (which it is by default).
141
+ *
142
+ * @see http://php.net/manual/en/function.session-set-save-handler.php#refsect1-function.session-set-save-handler-notes
143
+ */
144
+ public function __destruct()
145
+ {
146
+ session_write_close();
147
+ }
148
+
149
+ /**
150
+ * Register DynamoDB as a session handler.
151
+ *
152
+ * Uses the PHP-provided method to register this class as a session handler.
153
+ *
154
+ * @return DynamoDBSessionHandler Chainable.
155
+ */
156
+ public function register()
157
+ {
158
+ session_set_save_handler(
159
+ array($this, 'open'),
160
+ array($this, 'close'),
161
+ array($this, 'read'),
162
+ array($this, 'write'),
163
+ array($this, 'destroy'),
164
+ array($this, 'garbage_collect')
165
+ );
166
+
167
+ return $this;
168
+ }
169
+
170
+ /**
171
+ * Checks if the session is open and writable.
172
+ *
173
+ * @return boolean Whether or not the session is still open for writing.
174
+ */
175
+ public function is_session_open()
176
+ {
177
+ return (boolean) $this->_open_session;
178
+ }
179
+
180
+ /**
181
+ * Delegates to <code>session_start()</code>
182
+ *
183
+ * @return DynamoDBSessionHandler Chainable.
184
+ */
185
+ public function open_session()
186
+ {
187
+ session_start();
188
+
189
+ return $this;
190
+ }
191
+
192
+ /**
193
+ * Delegates to <code>session_commit()</code>
194
+ *
195
+ * @return DynamoDBSessionHandler Chainable.
196
+ */
197
+ public function close_session()
198
+ {
199
+ session_commit();
200
+
201
+ return $this;
202
+ }
203
+
204
+ /**
205
+ * Delegates to <code>session_destroy()</code>
206
+ *
207
+ * @return DynamoDBSessionHandler Chainable.
208
+ */
209
+ public function destroy_session()
210
+ {
211
+ session_destroy();
212
+
213
+ return $this;
214
+ }
215
+
216
+ /**
217
+ * Open a session for writing. Triggered by <php:session_start()>.
218
+ *
219
+ * Part of the standard PHP session handler interface.
220
+ *
221
+ * @param string $save_path (Required) The session save path (see <php:session_save_path()>).
222
+ * @param string $session_name (Required) The session name (see <php:session_name()>).
223
+ * @return boolean Whether or not the operation succeeded.
224
+ */
225
+ public function open($save_path, $session_name)
226
+ {
227
+ $this->_save_path = $save_path;
228
+ $this->_session_name = $session_name;
229
+ $this->_open_session = session_id();
230
+
231
+ return true;
232
+ }
233
+
234
+ /**
235
+ * Close a session from writing
236
+ *
237
+ * Part of the standard PHP session handler interface
238
+ *
239
+ * @return boolean Success
240
+ */
241
+ public function close()
242
+ {
243
+ if (!$this->_session_written)
244
+ {
245
+ // Ensure that the session is unlocked even if the write did not happen
246
+ $id = $this->_open_session;
247
+ $response = $this->_dynamodb->update_item(array(
248
+ 'TableName' => $this->_table_name,
249
+ 'Key' => array('HashKeyElement' => $this->_dynamodb->attribute($this->_id($id))),
250
+ 'AttributeUpdates' => array(
251
+ 'expires' => $this->_dynamodb->attribute(time() + $this->_session_lifetime, 'update'),
252
+ 'lock' => array('Action' => AmazonDynamoDB::ACTION_DELETE)
253
+ ),
254
+ ));
255
+
256
+ $this->_session_written = $response->isOK();
257
+ }
258
+
259
+ $this->_open_session = null;
260
+
261
+ return $this->_session_written;
262
+ }
263
+
264
+ /**
265
+ * Read a session stored in DynamoDB
266
+ *
267
+ * Part of the standard PHP session handler interface
268
+ *
269
+ * @param string $id (Required) The session ID.
270
+ * @return string The session data.
271
+ */
272
+ public function read($id)
273
+ {
274
+ $result = '';
275
+
276
+ // Get the session data from DynamoDB (acquire a lock if locking is enabled)
277
+ if ($this->_session_locking)
278
+ {
279
+ $response = $this->_lock_and_read($id);
280
+ $node_name = 'Attributes';
281
+ }
282
+ else
283
+ {
284
+ $response = $this->_dynamodb->get_item(array(
285
+ 'TableName' => $this->_table_name,
286
+ 'Key' => array('HashKeyElement' => $this->_dynamodb->attribute($this->_id($id))),
287
+ 'ConsistentRead' => $this->_consistent_reads,
288
+ ));
289
+ $node_name = 'Item';
290
+ }
291
+
292
+ if ($response->isOK())
293
+ {
294
+ $item = array();
295
+
296
+ // Get the data from the DynamoDB response
297
+ if ($response->body->{$node_name})
298
+ {
299
+ foreach ($response->body->{$node_name}->children() as $key => $value)
300
+ {
301
+ $item[$key] = (string) current($value);
302
+ }
303
+ }
304
+
305
+ if (isset($item['expires']) && isset($item['data']))
306
+ {
307
+ // Check the expiration date before using
308
+ if ($item['expires'] > time())
309
+ {
310
+ $result = $item['data'];
311
+ }
312
+ else
313
+ {
314
+ $this->destroy($id);
315
+ }
316
+ }
317
+ }
318
+
319
+ return $result;
320
+ }
321
+
322
+ /**
323
+ * Write a session to DynamoDB.
324
+ *
325
+ * Part of the standard PHP session handler interface.
326
+ *
327
+ * @param string $id (Required) The session ID.
328
+ * @param string $data (Required) The session data.
329
+ * @return boolean Whether or not the operation succeeded.
330
+ */
331
+ public function write($id, $data)
332
+ {
333
+ // Write the session data to DynamoDB
334
+ $response = $this->_dynamodb->put_item(array(
335
+ 'TableName' => $this->_table_name,
336
+ 'Item' => $this->_dynamodb->attributes(array(
337
+ $this->_hash_key => $this->_id($id),
338
+ 'expires' => time() + $this->_session_lifetime,
339
+ 'data' => $data,
340
+ )),
341
+ ));
342
+
343
+ $this->_session_written = $response->isOK();
344
+
345
+ return $this->_session_written;
346
+ }
347
+
348
+ /**
349
+ * Delete a session stored in DynamoDB.
350
+ *
351
+ * Part of the standard PHP session handler interface.
352
+ *
353
+ * @param string $id (Required) The session ID.
354
+ * @param boolean $garbage_collect_mode (Optional) Whether or not the handler is doing garbage collection.
355
+ * @return boolean Whether or not the operation succeeded.
356
+ */
357
+ public function destroy($id, $garbage_collect_mode = false)
358
+ {
359
+ // Make sure we don't prefix the ID a second time
360
+ if (!$garbage_collect_mode)
361
+ {
362
+ $id = $this->_id($id);
363
+ }
364
+
365
+ $delete_options = array(
366
+ 'TableName' => $this->_table_name,
367
+ 'Key' => array('HashKeyElement' => $this->_dynamodb->attribute($id)),
368
+ );
369
+
370
+ // Make sure not to garbage collect locked sessions
371
+ if ($garbage_collect_mode && $this->_session_locking)
372
+ {
373
+ $delete_options['Expected'] = array('lock' => array('Exists' => false));
374
+ }
375
+
376
+ // Send the delete request to DynamoDB
377
+ $response = $this->_dynamodb->delete_item($delete_options);
378
+
379
+ $this->_session_written = $response->isOK();
380
+
381
+ return $this->_session_written;
382
+ }
383
+
384
+ /**
385
+ * Performs garbage collection on the sessions stored in the DynamoDB table.
386
+ *
387
+ * Part of the standard PHP session handler interface.
388
+ *
389
+ * @param integer $maxlifetime (Required) The value of <code>session.gc_maxlifetime</code>. Ignored.
390
+ * @return boolean Whether or not the operation succeeded.
391
+ */
392
+ public function garbage_collect($maxlifetime = null)
393
+ {
394
+ // Send a search request to DynamoDB looking for expired sessions
395
+ $response = $this->_dynamodb->scan(array(
396
+ 'TableName' => $this->_table_name,
397
+ 'ScanFilter' => array('expires' => array(
398
+ 'AttributeValueList' => array($this->_dynamodb->attribute(time())),
399
+ 'ComparisonOperator' => AmazonDynamoDB::CONDITION_LESS_THAN,
400
+ )),
401
+ ));
402
+
403
+ // Delete the expired sessions
404
+ if ($response->isOK())
405
+ {
406
+ $deleted = array();
407
+
408
+ // Get the ID of and delete each session that is expired
409
+ foreach ($response->body->Items as $item)
410
+ {
411
+ $id = (string) $item->{$this->_hash_key}->{AmazonDynamoDB::TYPE_STRING};
412
+ $deleted[$id] = $this->destroy($id, true);
413
+ }
414
+
415
+ // Return true if all of the expired sessions were deleted
416
+ return (array_sum($deleted) === count($deleted));
417
+ }
418
+
419
+ return false;
420
+ }
421
+
422
+ /**
423
+ * Creates a table in DynamoDB for session storage according to provided configuration options.
424
+ *
425
+ * Note: Table creation may also be done via the AWS Console, which might make the most sense for this use case.
426
+ *
427
+ * @param integer $read_capacity_units (Required) Read capacity units for table throughput.
428
+ * @param integer $write_capacity_units (Required) Write capacity units for table throughput.
429
+ * @return boolean Returns <code>true</code> on success.
430
+ */
431
+ public function create_sessions_table($read_capacity_units = 10, $write_capacity_units = 5)
432
+ {
433
+ $response = $this->_dynamodb->create_table(array(
434
+ 'TableName' => $this->_table_name,
435
+ 'KeySchema' => array(
436
+ 'HashKeyElement' => array(
437
+ 'AttributeName' => $this->_hash_key,
438
+ 'AttributeType' => AmazonDynamoDB::TYPE_STRING,
439
+ )
440
+ ),
441
+ 'ProvisionedThroughput' => array(
442
+ 'ReadCapacityUnits' => $read_capacity_units,
443
+ 'WriteCapacityUnits' => $write_capacity_units,
444
+ )
445
+ ));
446
+
447
+ return $response->isOK();
448
+ }
449
+
450
+ /**
451
+ * Deletes the session storage table from DynamoDB.
452
+ *
453
+ * Note: Table deletion may also be done via the AWS Console, which might make the most sense for this use case.
454
+ *
455
+ * @return boolean Returns <code>true</code> on success.
456
+ */
457
+ public function delete_sessions_table()
458
+ {
459
+ $response = $this->_dynamodb->delete_table(array('TableName' => $this->_table_name));
460
+
461
+ return $response->isOK();
462
+ }
463
+
464
+ /**
465
+ * Prefix the session ID with the session name and prepare for DynamoDB usage
466
+ *
467
+ * @param string $id (Required) The session ID.
468
+ * @return array The HashKeyElement value formatted as an array.
469
+ */
470
+ protected function _id($id)
471
+ {
472
+ return trim($this->_session_name . '_' . $id, '_');
473
+ }
474
+
475
+ /**
476
+ * Acquires a lock on a session in DynamoDB using conditional updates.
477
+ *
478
+ * WARNING: There is a <code>while(true);</code> in here.
479
+ *
480
+ * @param string $id (Required) The session ID.
481
+ * @return CFResponse The response from DynamoDB.
482
+ */
483
+ protected function _lock_and_read($id)
484
+ {
485
+ $now = time();
486
+ $timeout = $now + $this->_max_lock_wait_time;
487
+
488
+ do
489
+ {
490
+ // Acquire the lock
491
+ $response = $this->_dynamodb->update_item(array(
492
+ 'TableName' => $this->_table_name,
493
+ 'Key' => array('HashKeyElement' => $this->_dynamodb->attribute($this->_id($id))),
494
+ 'AttributeUpdates' => array('lock' => $this->_dynamodb->attribute(1, 'update')),
495
+ 'Expected' => array('lock' => array('Exists' => false)),
496
+ 'ReturnValues' => 'ALL_NEW',
497
+ ));
498
+
499
+ // If lock succeeds (or times out), exit the loop, otherwise sleep and try again
500
+ if ($response->isOK() || $now >= $timeout)
501
+ {
502
+ return $response;
503
+ }
504
+ else
505
+ {
506
+ usleep(rand($this->_min_lock_retry_utime, $this->_max_lock_retry_utime));
507
+
508
+ $now = time();
509
+ }
510
+ }
511
+ while(true);
512
+ }
513
+ }
libs/aws/lib/cachecore/cacheapc.class.php CHANGED
@@ -3,7 +3,7 @@
3
  * Container for all APC-based cache methods. Inherits additional methods from <CacheCore>. Adheres
4
  * to the ICacheCore interface.
5
  *
6
- * @version 2012.01.28
7
  * @copyright 2006-2012 Ryan Parman
8
  * @copyright 2006-2010 Foleeo, Inc.
9
  * @copyright 2012 Amazon.com, Inc. or its affiliates.
@@ -23,12 +23,12 @@ class CacheAPC extends CacheCore implements ICacheCore
23
  * Constructs a new instance of this class.
24
  *
25
  * @param string $name (Required) A name to uniquely identify the cache object.
26
- * @param string $location (Required) The location to store the cache object in. This may vary by cache method.
27
- * @param integer $expires (Required) The number of seconds until a cache object is considered stale.
28
- * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. Defaults to true.
29
  * @return object Reference to the cache object.
30
  */
31
- public function __construct($name, $location, $expires, $gzip = true)
32
  {
33
  parent::__construct($name, null, $expires, $gzip);
34
  $this->id = $this->name;
3
  * Container for all APC-based cache methods. Inherits additional methods from <CacheCore>. Adheres
4
  * to the ICacheCore interface.
5
  *
6
+ * @version 2012.04.17
7
  * @copyright 2006-2012 Ryan Parman
8
  * @copyright 2006-2010 Foleeo, Inc.
9
  * @copyright 2012 Amazon.com, Inc. or its affiliates.
23
  * Constructs a new instance of this class.
24
  *
25
  * @param string $name (Required) A name to uniquely identify the cache object.
26
+ * @param string $location (Optional) The location to store the cache object in. This may vary by cache method. The default value is NULL.
27
+ * @param integer $expires (Optional) The number of seconds until a cache object is considered stale. The default value is 0.
28
+ * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. The default value is true.
29
  * @return object Reference to the cache object.
30
  */
31
+ public function __construct($name, $location = null, $expires = 0, $gzip = true)
32
  {
33
  parent::__construct($name, null, $expires, $gzip);
34
  $this->id = $this->name;
libs/aws/lib/cachecore/cachecore.class.php CHANGED
@@ -3,7 +3,7 @@
3
  * Container for all shared caching methods. This is not intended to be instantiated directly, but is
4
  * extended by the cache-specific classes.
5
  *
6
- * @version 2012.01.28
7
  * @copyright 2006-2012 Ryan Parman
8
  * @copyright 2006-2010 Foleeo, Inc.
9
  * @copyright 2012 Amazon.com, Inc. or its affiliates.
@@ -52,12 +52,12 @@ class CacheCore
52
  * Constructs a new instance of this class.
53
  *
54
  * @param string $name (Required) A name to uniquely identify the cache object.
55
- * @param string $location (Required) The location to store the cache object in. This may vary by cache method.
56
- * @param integer $expires (Required) The number of seconds until a cache object is considered stale.
57
- * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. Defaults to true.
58
  * @return object Reference to the cache object.
59
  */
60
- public function __construct($name, $location, $expires, $gzip = true)
61
  {
62
  if (!extension_loaded('zlib'))
63
  {
@@ -76,12 +76,12 @@ class CacheCore
76
  * Allows for chaining from the constructor. Requires PHP 5.3 or newer.
77
  *
78
  * @param string $name (Required) A name to uniquely identify the cache object.
79
- * @param string $location (Required) The location to store the cache object in. This may vary by cache method.
80
- * @param integer $expires (Required) The number of seconds until a cache object is considered stale.
81
- * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. Defaults to true.
82
  * @return object Reference to the cache object.
83
  */
84
- public static function init($name, $location, $expires, $gzip = true)
85
  {
86
  if (version_compare(PHP_VERSION, '5.3.0', '<'))
87
  {
@@ -92,6 +92,18 @@ class CacheCore
92
  return new $self($name, $location, $expires, $gzip);
93
  }
94
 
 
 
 
 
 
 
 
 
 
 
 
 
95
  /**
96
  * Provides a simple, straightforward cache-logic mechanism. Useful for non-complex response caches.
97
  *
3
  * Container for all shared caching methods. This is not intended to be instantiated directly, but is
4
  * extended by the cache-specific classes.
5
  *
6
+ * @version 2012.04.17
7
  * @copyright 2006-2012 Ryan Parman
8
  * @copyright 2006-2010 Foleeo, Inc.
9
  * @copyright 2012 Amazon.com, Inc. or its affiliates.
52
  * Constructs a new instance of this class.
53
  *
54
  * @param string $name (Required) A name to uniquely identify the cache object.
55
+ * @param string $location (Optional) The location to store the cache object in. This may vary by cache method. The default value is NULL.
56
+ * @param integer $expires (Optional) The number of seconds until a cache object is considered stale. The default value is 0.
57
+ * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. The default value is true.
58
  * @return object Reference to the cache object.
59
  */
60
+ public function __construct($name, $location = null, $expires = 0, $gzip = true)
61
  {
62
  if (!extension_loaded('zlib'))
63
  {
76
  * Allows for chaining from the constructor. Requires PHP 5.3 or newer.
77
  *
78
  * @param string $name (Required) A name to uniquely identify the cache object.
79
+ * @param string $location (Optional) The location to store the cache object in. This may vary by cache method. The default value is NULL.
80
+ * @param integer $expires (Optional) The number of seconds until a cache object is considered stale. The default value is 0.
81
+ * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. The default value is true.
82
  * @return object Reference to the cache object.
83
  */
84
+ public static function init($name, $location = null, $expires = 0, $gzip = true)
85
  {
86
  if (version_compare(PHP_VERSION, '5.3.0', '<'))
87
  {
92
  return new $self($name, $location, $expires, $gzip);
93
  }
94
 
95
+ /**
96
+ * Set the number of seconds until a cache expires.
97
+ *
98
+ * @param integer $expires (Optional) The number of seconds until a cache object is considered stale. The default value is 0.
99
+ * @return $this
100
+ */
101
+ public function expire_in($seconds)
102
+ {
103
+ $this->expires = $seconds;
104
+ return $this;
105
+ }
106
+
107
  /**
108
  * Provides a simple, straightforward cache-logic mechanism. Useful for non-complex response caches.
109
  *
libs/aws/lib/cachecore/cachefile.class.php CHANGED
@@ -3,7 +3,7 @@
3
  * Container for all file-based cache methods. Inherits additional methods from <CacheCore>. Adheres
4
  * to the ICacheCore interface.
5
  *
6
- * @version 2012.01.28
7
  * @copyright 2006-2012 Ryan Parman
8
  * @copyright 2006-2010 Foleeo, Inc.
9
  * @copyright 2012 Amazon.com, Inc. or its affiliates.
@@ -22,12 +22,12 @@ class CacheFile extends CacheCore implements ICacheCore
22
  * Constructs a new instance of this class.
23
  *
24
  * @param string $name (Required) A name to uniquely identify the cache object.
25
- * @param string $location (Required) The location to store the cache object in. This may vary by cache method.
26
- * @param integer $expires (Required) The number of seconds until a cache object is considered stale.
27
- * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. Defaults to true.
28
  * @return object Reference to the cache object.
29
  */
30
- public function __construct($name, $location, $expires, $gzip = true)
31
  {
32
  parent::__construct($name, $location, $expires, $gzip);
33
  $this->id = $this->location . '/' . $this->name . '.cache';
3
  * Container for all file-based cache methods. Inherits additional methods from <CacheCore>. Adheres
4
  * to the ICacheCore interface.
5
  *
6
+ * @version 2012.04.17
7
  * @copyright 2006-2012 Ryan Parman
8
  * @copyright 2006-2010 Foleeo, Inc.
9
  * @copyright 2012 Amazon.com, Inc. or its affiliates.
22
  * Constructs a new instance of this class.
23
  *
24
  * @param string $name (Required) A name to uniquely identify the cache object.
25
+ * @param string $location (Optional) The location to store the cache object in. This may vary by cache method. The default value is NULL.
26
+ * @param integer $expires (Optional) The number of seconds until a cache object is considered stale. The default value is 0.
27
+ * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. The default value is true.
28
  * @return object Reference to the cache object.
29
  */
30
+ public function __construct($name, $location = null, $expires = 0, $gzip = true)
31
  {
32
  parent::__construct($name, $location, $expires, $gzip);
33
  $this->id = $this->location . '/' . $this->name . '.cache';
libs/aws/lib/cachecore/cachemc.class.php CHANGED
@@ -3,7 +3,7 @@
3
  * Container for all Memcache-based cache methods. Inherits additional methods from <CacheCore>. Adheres
4
  * to the ICacheCore interface.
5
  *
6
- * @version 2012.01.28
7
  * @copyright 2006-2012 Ryan Parman
8
  * @copyright 2006-2010 Foleeo, Inc.
9
  * @copyright 2012 Amazon.com, Inc. or its affiliates.
@@ -34,12 +34,12 @@ class CacheMC extends CacheCore implements ICacheCore
34
  * Constructs a new instance of this class.
35
  *
36
  * @param string $name (Required) A name to uniquely identify the cache object.
37
- * @param string $location (Required) The location to store the cache object in. This may vary by cache method.
38
- * @param integer $expires (Required) The number of seconds until a cache object is considered stale.
39
- * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. Defaults to true.
40
  * @return object Reference to the cache object.
41
  */
42
- public function __construct($name, $location, $expires, $gzip = true)
43
  {
44
  parent::__construct($name, null, $expires, $gzip);
45
  $this->id = $this->name;
3
  * Container for all Memcache-based cache methods. Inherits additional methods from <CacheCore>. Adheres
4
  * to the ICacheCore interface.
5
  *
6
+ * @version 2012.04.17
7
  * @copyright 2006-2012 Ryan Parman
8
  * @copyright 2006-2010 Foleeo, Inc.
9
  * @copyright 2012 Amazon.com, Inc. or its affiliates.
34
  * Constructs a new instance of this class.
35
  *
36
  * @param string $name (Required) A name to uniquely identify the cache object.
37
+ * @param string $location (Optional) The location to store the cache object in. This may vary by cache method. The default value is NULL.
38
+ * @param integer $expires (Optional) The number of seconds until a cache object is considered stale. The default value is 0.
39
+ * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. The default value is true.
40
  * @return object Reference to the cache object.
41
  */
42
+ public function __construct($name, $location = null, $expires = 0, $gzip = true)
43
  {
44
  parent::__construct($name, null, $expires, $gzip);
45
  $this->id = $this->name;
libs/aws/lib/cachecore/cachepdo.class.php CHANGED
@@ -3,7 +3,7 @@
3
  * Container for all PDO-based cache methods. Inherits additional methods from <CacheCore>. Adheres
4
  * to the ICacheCore interface.
5
  *
6
- * @version 2012.01.28
7
  * @copyright 2006-2012 Ryan Parman
8
  * @copyright 2006-2010 Foleeo, Inc.
9
  * @copyright 2012 Amazon.com, Inc. or its affiliates.
@@ -76,12 +76,12 @@ class CachePDO extends CacheCore implements ICacheCore
76
  * See <http://php.net/pdo> for more information.
77
  *
78
  * @param string $name (Required) A name to uniquely identify the cache object.
79
- * @param string $location (Required) The location to store the cache object in. This may vary by cache method.
80
- * @param integer $expires (Required) The number of seconds until a cache object is considered stale.
81
- * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. Defaults to true.
82
  * @return object Reference to the cache object.
83
  */
84
- public function __construct($name, $location, $expires, $gzip = true)
85
  {
86
  // Make sure the name is no longer than 40 characters.
87
  $name = sha1($name);
3
  * Container for all PDO-based cache methods. Inherits additional methods from <CacheCore>. Adheres
4
  * to the ICacheCore interface.
5
  *
6
+ * @version 2012.04.17
7
  * @copyright 2006-2012 Ryan Parman
8
  * @copyright 2006-2010 Foleeo, Inc.
9
  * @copyright 2012 Amazon.com, Inc. or its affiliates.
76
  * See <http://php.net/pdo> for more information.
77
  *
78
  * @param string $name (Required) A name to uniquely identify the cache object.
79
+ * @param string $location (Optional) The location to store the cache object in. This may vary by cache method. The default value is NULL.
80
+ * @param integer $expires (Optional) The number of seconds until a cache object is considered stale. The default value is 0.
81
+ * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. The default value is true.
82
  * @return object Reference to the cache object.
83
  */
84
+ public function __construct($name, $location = null, $expires = 0, $gzip = true)
85
  {
86
  // Make sure the name is no longer than 40 characters.
87
  $name = sha1($name);
libs/aws/lib/cachecore/cachexcache.class.php CHANGED
@@ -3,7 +3,7 @@
3
  * Container for all XCache-based cache methods. Inherits additional methods from <CacheCore>. Adheres
4
  * to the ICacheCore interface.
5
  *
6
- * @version 2012.01.28
7
  * @copyright 2006-2012 Ryan Parman
8
  * @copyright 2006-2010 Foleeo, Inc.
9
  * @copyright 2012 Amazon.com, Inc. or its affiliates.
@@ -23,12 +23,12 @@ class CacheXCache extends CacheCore implements ICacheCore
23
  * Constructs a new instance of this class.
24
  *
25
  * @param string $name (Required) A name to uniquely identify the cache object.
26
- * @param string $location (Required) The location to store the cache object in. This may vary by cache method.
27
- * @param integer $expires (Required) The number of seconds until a cache object is considered stale.
28
- * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. Defaults to true.
29
  * @return object Reference to the cache object.
30
  */
31
- public function __construct($name, $location, $expires, $gzip = true)
32
  {
33
  parent::__construct($name, null, $expires, $gzip);
34
  $this->id = $this->name;
3
  * Container for all XCache-based cache methods. Inherits additional methods from <CacheCore>. Adheres
4
  * to the ICacheCore interface.
5
  *
6
+ * @version 2012.04.17
7
  * @copyright 2006-2012 Ryan Parman
8
  * @copyright 2006-2010 Foleeo, Inc.
9
  * @copyright 2012 Amazon.com, Inc. or its affiliates.
23
  * Constructs a new instance of this class.
24
  *
25
  * @param string $name (Required) A name to uniquely identify the cache object.
26
+ * @param string $location (Optional) The location to store the cache object in. This may vary by cache method. The default value is NULL.
27
+ * @param integer $expires (Optional) The number of seconds until a cache object is considered stale. The default value is 0.
28
+ * @param boolean $gzip (Optional) Whether data should be gzipped before being stored. The default value is true.
29
  * @return object Reference to the cache object.
30
  */
31
+ public function __construct($name, $location = null, $expires = 0, $gzip = true)
32
  {
33
  parent::__construct($name, null, $expires, $gzip);
34
  $this->id = $this->name;
libs/aws/lib/dom/ArrayToDOMDocument.php CHANGED
@@ -78,7 +78,7 @@ class Array2DOM
78
  {
79
  if (is_string($key) && !is_numeric($key))
80
  {
81
- if ($key == self::ATTRIBUTES)
82
  {
83
  foreach ($value as $attributeName => $attributeValue)
84
  {
@@ -121,7 +121,7 @@ class Array2DOM
121
  $value = $value ? 'true' : 'false';
122
  }
123
 
124
- $element->appendChild(self::createDOMElement((string) $value, $key, $document));
125
  }
126
  }
127
  else
@@ -145,13 +145,13 @@ class Array2DOM
145
  {
146
  $item = $domNode->childNodes->item($i);
147
 
148
- if ($item->nodeType == XML_ELEMENT_NODE)
149
  {
150
  $arrayElement = array();
151
 
152
  for ($attributeIndex = 0; !is_null($attribute = $item->attributes->item($attributeIndex)); $attributeIndex++)
153
  {
154
- if ($attribute->nodeType == XML_ATTRIBUTE_NODE)
155
  {
156
  $arrayElement[self::ATTRIBUTES][$attribute->nodeName] = $attribute->nodeValue;
157
  }
@@ -170,7 +170,7 @@ class Array2DOM
170
 
171
  $array[$item->nodeName][] = $arrayElement;
172
  }
173
- elseif ($item->nodeType == XML_CDATA_SECTION_NODE || ($item->nodeType == XML_TEXT_NODE && trim($item->nodeValue) != ''))
174
  {
175
  return $item->nodeValue;
176
  }
78
  {
79
  if (is_string($key) && !is_numeric($key))
80
  {
81
+ if ($key === self::ATTRIBUTES)
82
  {
83
  foreach ($value as $attributeName => $attributeValue)
84
  {
121
  $value = $value ? 'true' : 'false';
122
  }
123
 
124
+ $element->appendChild(self::createDOMElement($value, $key, $document));
125
  }
126
  }
127
  else
145
  {
146
  $item = $domNode->childNodes->item($i);
147
 
148
+ if ($item->nodeType === XML_ELEMENT_NODE)
149
  {
150
  $arrayElement = array();
151
 
152
  for ($attributeIndex = 0; !is_null($attribute = $item->attributes->item($attributeIndex)); $attributeIndex++)
153
  {
154
+ if ($attribute->nodeType === XML_ATTRIBUTE_NODE)
155
  {
156
  $arrayElement[self::ATTRIBUTES][$attribute->nodeName] = $attribute->nodeValue;
157
  }
170
 
171
  $array[$item->nodeName][] = $arrayElement;
172
  }
173
+ elseif ($item->nodeType === XML_CDATA_SECTION_NODE || ($item->nodeType === XML_TEXT_NODE && trim($item->nodeValue) !== ''))
174
  {
175
  return $item->nodeValue;
176
  }
libs/aws/lib/requestcore/requestcore.class.php CHANGED
@@ -622,7 +622,7 @@ class RequestCore
622
  if ($this->ssl_verification)
623
  {
624
  curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, true);
625
- curl_setopt($curl_handle, CURLOPT_SSL_VERIFYHOST, true);
626
  }
627
  else
628
  {
622
  if ($this->ssl_verification)
623
  {
624
  curl_setopt($curl_handle, CURLOPT_SSL_VERIFYPEER, true);
625
+ curl_setopt($curl_handle, CURLOPT_SSL_VERIFYHOST, 2);
626
  }
627
  else
628
  {
libs/aws/sdk.class.php CHANGED
@@ -115,9 +115,8 @@ function __aws_sdk_ua_callback()
115
  // INTERMEDIARY CONSTANTS
116
 
117
  define('CFRUNTIME_NAME', 'aws-sdk-php');
118
- define('CFRUNTIME_VERSION', '1.5.3');
119
- // define('CFRUNTIME_BUILD', gmdate('YmdHis', filemtime(__FILE__))); // @todo: Hardcode for release.
120
- define('CFRUNTIME_BUILD', '20120222005519');
121
  define('CFRUNTIME_USERAGENT', CFRUNTIME_NAME . '/' . CFRUNTIME_VERSION . ' PHP/' . PHP_VERSION . ' ' . str_replace(' ', '_', php_uname('s')) . '/' . str_replace(' ', '_', php_uname('r')) . ' Arch/' . php_uname('m') . ' SAPI/' . php_sapi_name() . ' Integer/' . PHP_INT_MAX . ' Build/' . CFRUNTIME_BUILD . __aws_sdk_ua_callback());
122
 
123
 
@@ -128,7 +127,7 @@ define('CFRUNTIME_USERAGENT', CFRUNTIME_NAME . '/' . CFRUNTIME_VERSION . ' PHP/'
128
  * Core functionality and default settings shared across all SDK classes. All methods and properties in this
129
  * class are inherited by the service-specific classes.
130
  *
131
- * @version 2012.02.21
132
  * @license See the included NOTICE.md file for more information.
133
  * @copyright See the included NOTICE.md file for more information.
134
  * @link http://aws.amazon.com/php/ PHP Developer Center
@@ -692,6 +691,38 @@ class CFRuntime
692
  return $this;
693
  }
694
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
695
 
696
  /*%******************************************************************************************%*/
697
  // SET CUSTOM CLASSES
115
  // INTERMEDIARY CONSTANTS
116
 
117
  define('CFRUNTIME_NAME', 'aws-sdk-php');
118
+ define('CFRUNTIME_VERSION', 'Gershwin');
119
+ define('CFRUNTIME_BUILD', '20120515180000');
 
120
  define('CFRUNTIME_USERAGENT', CFRUNTIME_NAME . '/' . CFRUNTIME_VERSION . ' PHP/' . PHP_VERSION . ' ' . str_replace(' ', '_', php_uname('s')) . '/' . str_replace(' ', '_', php_uname('r')) . ' Arch/' . php_uname('m') . ' SAPI/' . php_sapi_name() . ' Integer/' . PHP_INT_MAX . ' Build/' . CFRUNTIME_BUILD . __aws_sdk_ua_callback());
121
 
122
 
127
  * Core functionality and default settings shared across all SDK classes. All methods and properties in this
128
  * class are inherited by the service-specific classes.
129
  *
130
+ * @version 2012.04.19
131
  * @license See the included NOTICE.md file for more information.
132
  * @copyright See the included NOTICE.md file for more information.
133
  * @link http://aws.amazon.com/php/ PHP Developer Center
691
  return $this;
692
  }
693
 
694
+ /**
695
+ * Fetches and caches STS credentials. This is meant to be used by the constructor, and is not to be
696
+ * manually invoked.
697
+ *
698
+ * @param CacheCore $cache (Required) The a reference to the cache object that is being used to handle the caching.
699
+ * @param array $options (Required) The options that were passed into the constructor.
700
+ * @return mixed The data to be cached, or NULL.
701
+ */
702
+ public function cache_sts_credentials($cache, $options)
703
+ {
704
+ $token = new AmazonSTS($options);
705
+ $response = $token->get_session_token();
706
+
707
+ if ($response->isOK())
708
+ {
709
+ // Update the expiration
710
+ $expiration_time = strtotime((string) $response->body->GetSessionTokenResult->Credentials->Expiration);
711
+ $expiration_duration = round(($expiration_time - time()) * 0.85);
712
+ $cache->expire_in($expiration_duration);
713
+
714
+ // Return the important data
715
+ return array(
716
+ 'key' => (string) $response->body->GetSessionTokenResult->Credentials->AccessKeyId,
717
+ 'secret' => (string) $response->body->GetSessionTokenResult->Credentials->SecretAccessKey,
718
+ 'token' => (string) $response->body->GetSessionTokenResult->Credentials->SessionToken,
719
+ 'expires' => (string) $response->body->GetSessionTokenResult->Credentials->Expiration,
720
+ );
721
+ }
722
+
723
+ return null;
724
+ }
725
+
726
 
727
  /*%******************************************************************************************%*/
728
  // SET CUSTOM CLASSES
libs/aws/services/as.class.php CHANGED
@@ -36,7 +36,7 @@
36
  * "http://docs.amazonwebservices.com/general/latest/gr/index.html?rande.html">Regions and
37
  * Endpoints</a> in the Amazon Web Services General Reference.
38
  *
39
- * @version 2012.01.17
40
  * @license See the included NOTICE.md file for complete information.
41
  * @copyright See the included NOTICE.md file for complete information.
42
  * @link http://aws.amazon.com/as/ Auto Scaling
@@ -170,8 +170,8 @@ class AmazonAS extends CFRuntime
170
  // SERVICE METHODS
171
 
172
  /**
173
- * Creates a new Auto Scaling group with the specified name and other attributes. When the
174
- * creation request is completed, the Auto Scaling group is ready to be used in other calls.
175
  *
176
  * <p class="note">
177
  * The Auto Scaling group name must be unique within the scope of your AWS account, and under the
@@ -182,22 +182,22 @@ class AmazonAS extends CFRuntime
182
  * @param string $launch_configuration_name (Required) The name of the launch configuration to use with the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
183
  * @param integer $min_size (Required) The minimum size of the Auto Scaling group.
184
  * @param integer $max_size (Required) The maximum size of the Auto Scaling group.
185
- * @param string|array $availability_zones (Required) A list of Availability Zones for the Auto Scaling group. Pass a string for a single value, or an indexed array for multiple values.
186
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
187
  * <li><code>DesiredCapacity</code> - <code>integer</code> - Optional - The number of Amazon EC2 instances that should be running in the group.</li>
188
  * <li><code>DefaultCooldown</code> - <code>integer</code> - Optional - The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start.</li>
189
- * <li><code>LoadBalancerNames</code> - <code>string|array</code> - Optional - A list of load balancers to use. Pass a string for a single value, or an indexed array for multiple values.</li>
190
  * <li><code>HealthCheckType</code> - <code>string</code> - Optional - The service you want the health status from, Amazon EC2 or Elastic Load Balancer. Valid values are <code>EC2</code> or <code>ELB</code>. [Constraints: The value must be between 1 and 32 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
191
- * <li><code>HealthCheckGracePeriod</code> - <code>integer</code> - Optional - Length of time in seconds after a new Amazon EC2 instance comes into service that Auto Scaling starts checking its health.</li>
192
  * <li><code>PlacementGroup</code> - <code>string</code> - Optional - Physical location of your cluster placement group created in Amazon EC2. For more information about cluster placement group, see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using_cluster_computing.html">Using Cluster Instances</a> [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
193
  * <li><code>VPCZoneIdentifier</code> - <code>string</code> - Optional - A comma-separated list of subnet identifiers of Amazon Virtual Private Clouds (Amazon VPCs). When you specify subnets and Availability Zones with this call, ensure that the subnets' Availability Zones match the Availability Zones specified. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
194
- * <li><code>Tags</code> - <code>array</code> - Optional - The tag to be created. Each tag should be defined by its resource ID, resource type, key, value, and a propagate flag. The <code>PropagateAtLaunch</code> flag defines whether the new tag will be applied to instances launched after the tag is created. <ul>
195
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
196
- * <li><code>ResourceId</code> - <code>string</code> - Optional - The name of the tag. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
197
- * <li><code>ResourceType</code> - <code>string</code> - Optional - The kind of resource to which the tag is applied. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
198
- * <li><code>Key</code> - <code>string</code> - Required - The key of the tag. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
199
- * <li><code>Value</code> - <code>string</code> - Optional - The value of the tag. [Constraints: The value must be between 0 and 256 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
200
- * <li><code>PropagateAtLaunch</code> - <code>boolean</code> - Optional - Specifies whether the new tag will be applied to instances launched after the tag is created. The same behavior applies to updates: If you change a tag, the changed tag will be applied to all instances launched after you made the change.</li>
201
  * </ul></li>
202
  * </ul></li>
203
  * <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>
@@ -249,27 +249,27 @@ class AmazonAS extends CFRuntime
249
  * security groups, or vice versa.
250
  *
251
  * <p class="note">
252
- * At this time, Auto Scaling launch configurations don't support compressed (e.g. zipped) user
253
  * data files.
254
  * </p>
255
  *
256
  * @param string $launch_configuration_name (Required) The name of the launch configuration to create. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
257
- * @param string $image_id (Required) Unique ID of the <em>Amazon Machine Image</em> (AMI) which was assigned during registration. For more information about Amazon EC2 images, please see <a href="http://aws.amazon.com/ec2/">Amazon EC2 product documentation</a>. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
258
- * @param string $instance_type (Required) The instance type of the Amazon EC2 instance. For more information about Amazon EC2 instance types, please see <a href="http://aws.amazon.com/ec2/">Amazon EC2 product documentation</a> [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
259
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
260
- * <li><code>KeyName</code> - <code>string</code> - Optional - The name of the Amazon EC2 key pair. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
261
  * <li><code>SecurityGroups</code> - <code>string|array</code> - Optional - The names of the security groups with which to associate Amazon EC2 or Amazon VPC instances. Specify Amazon EC2 security groups using security group names, such as <code>websrv</code>. Specify Amazon VPC security groups using security group IDs, such as <code>sg-12345678</code>. For more information about Amazon EC2 security groups, go to <a href="http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?using-network-security.html">Using Security Groups</a> in the Amazon EC2 product documentation. For more information about Amazon VPC security groups, go to <a href="http://docs.amazonwebservices.com/AmazonVPC/latest/UserGuide/index.html?VPC_SecurityGroups.html">Security Groups</a> in the Amazon VPC product documentation. Pass a string for a single value, or an indexed array for multiple values.</li>
262
  * <li><code>UserData</code> - <code>string</code> - Optional - The user data available to the launched Amazon EC2 instances. For more information about Amazon EC2 user data, please see <a href="http://aws.amazon.com/ec2/">Amazon EC2 product documentation</a>. [Constraints: The value must be between 0 and 21847 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
263
- * <li><code>KernelId</code> - <code>string</code> - Optional - The ID of the kernel associated with the Amazon EC2 AMI. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
264
- * <li><code>RamdiskId</code> - <code>string</code> - Optional - The ID of the RAM disk associated with the Amazon EC2 AMI. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
265
- * <li><code>BlockDeviceMappings</code> - <code>array</code> - Optional - A list of mappings that specify how block devices are exposed to the instance. Each mapping is made up of a <em>VirtualName</em>, a <em>DeviceName</em>, and an <em>ebs</em> data structure that contains information about the associated Elastic Block Storage volume. For more information about Amazon EC2 BlockDeviceMappings, go to <a href="http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?block-device-mapping-concepts.html">Block Device Mapping</a> in the Amazon EC2 product documentation. <ul>
266
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
267
  * <li><code>VirtualName</code> - <code>string</code> - Optional - The virtual name associated with the device. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
268
  * <li><code>DeviceName</code> - <code>string</code> - Required - The name of the device within Amazon EC2. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
269
  * <li><code>Ebs</code> - <code>array</code> - Optional - The Elastic Block Storage volume information. <ul>
270
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
271
- * <li><code>SnapshotId</code> - <code>string</code> - Optional - The snapshot ID. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
272
- * <li><code>VolumeSize</code> - <code>integer</code> - Optional - The volume size, in gigabytes.</li>
273
  * </ul></li>
274
  * </ul></li>
275
  * </ul></li>
@@ -279,6 +279,7 @@ class AmazonAS extends CFRuntime
279
  * <li><code>Enabled</code> - <code>boolean</code> - Optional - If <code>True</code>, instance monitoring is enabled.</li>
280
  * </ul></li>
281
  * </ul></li>
 
282
  * <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>
283
  * <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>
284
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -321,21 +322,15 @@ class AmazonAS extends CFRuntime
321
  }
322
 
323
  /**
324
- * Creates new tags or updates existing tags for an Auto Scaling group.
325
- *
326
- * When you use the <code>PropagateAtLaunch</code> flag, the tag you create will be applied to new
327
- * instances launched by the Auto Scaling group. However, instances already running will not get
328
- * the new or updated tag. Likewise, when you modify a tag, the updated version will be applied to
329
- * new instances launched by the Auto Scaling group after the change. Instances that are already
330
- * running that had the previous version of the tag will continue to have the older tag.
331
  *
332
- * @param array $tags (Required) The tag to be created or updated. Each tag should be defined by its resource ID, resource type, key, value, and a propagate flag. The <code>PropagateAtLaunch</code> flag defines whether the new tag will be applied to instances launched after the tag is created. <ul>
333
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
334
- * <li><code>ResourceId</code> - <code>string</code> - Optional - The name of the tag. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
335
- * <li><code>ResourceType</code> - <code>string</code> - Optional - The kind of resource to which the tag is applied. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
336
- * <li><code>Key</code> - <code>string</code> - Required - The key of the tag. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
337
- * <li><code>Value</code> - <code>string</code> - Optional - The value of the tag. [Constraints: The value must be between 0 and 256 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
338
- * <li><code>PropagateAtLaunch</code> - <code>boolean</code> - Optional - Specifies whether the new tag will be applied to instances launched after the tag is created. The same behavior applies to updates: If you change a tag, the changed tag will be applied to all instances launched after you made the change.</li>
339
  * </ul></li>
340
  * </ul>
341
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
@@ -356,7 +351,7 @@ class AmazonAS extends CFRuntime
356
  }
357
 
358
  /**
359
- * Deletes the specified Auto Scaling group if the group has no instances and no scaling
360
  * activities in progress.
361
  *
362
  * <p class="note">
@@ -420,9 +415,9 @@ class AmazonAS extends CFRuntime
420
  }
421
 
422
  /**
423
- * Deletes a policy created by <code>PutScalingPolicy</code>.
424
  *
425
- * @param string $policy_name (Required) The name or PolicyARN of the policy you want to delete. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
426
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
427
  * <li><code>AutoScalingGroupName</code> - <code>string</code> - Optional - The name of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
428
  * <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>
@@ -443,7 +438,7 @@ class AmazonAS extends CFRuntime
443
  *
444
  * @param string $scheduled_action_name (Required) The name of the action you want to delete. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
445
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
446
- * <li><code>AutoScalingGroupName</code> - <code>string</code> - Optional - The name of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
447
  * <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>
448
  * <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>
449
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -457,15 +452,15 @@ class AmazonAS extends CFRuntime
457
  }
458
 
459
  /**
460
- * Removes the specified tags or a set of tags from a set of resources.
461
  *
462
- * @param array $tags (Required) The tag to be deleted. Each tag should be defined by its resource ID, resource type, key, value, and a propagate flag. The <code>PropagateAtLaunch</code> flag defines whether the new tag will be applied to instances launched after the tag is created. <ul>
463
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
464
- * <li><code>ResourceId</code> - <code>string</code> - Optional - The name of the tag. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
465
- * <li><code>ResourceType</code> - <code>string</code> - Optional - The kind of resource to which the tag is applied. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
466
- * <li><code>Key</code> - <code>string</code> - Required - The key of the tag. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
467
- * <li><code>Value</code> - <code>string</code> - Optional - The value of the tag. [Constraints: The value must be between 0 and 256 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
468
- * <li><code>PropagateAtLaunch</code> - <code>boolean</code> - Optional - Specifies whether the new tag will be applied to instances launched after the tag is created. The same behavior applies to updates: If you change a tag, the changed tag will be applied to all instances launched after you made the change.</li>
469
  * </ul></li>
470
  * </ul>
471
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
@@ -582,10 +577,9 @@ class AmazonAS extends CFRuntime
582
  }
583
 
584
  /**
585
- * Returns a full description of the launch configurations, or the specified launch
586
- * configurations, if they exist.
587
  *
588
- * If no name is specified, then the full details of all launch configurations are returned.
589
  *
590
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
591
  * <li><code>LaunchConfigurationNames</code> - <code>string|array</code> - Optional - A list of launch configuration names. Pass a string for a single value, or an indexed array for multiple values.</li>
@@ -661,7 +655,7 @@ class AmazonAS extends CFRuntime
661
  *
662
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
663
  * <li><code>AutoScalingGroupName</code> - <code>string</code> - Optional - The name of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
664
- * <li><code>PolicyNames</code> - <code>string|array</code> - Optional - A list of policy names or policy ARNs to be described. If this list is omitted, all policy names are described. If an auto scaling group name is provided, the results are limited to that group. The list of requested policy names cannot contain more than 50 items. If unknown policy names are requested, they are ignored with no error. Pass a string for a single value, or an indexed array for multiple values.</li>
665
  * <li><code>NextToken</code> - <code>string</code> - Optional - A string that is used to mark the start of the next batch of returned results for pagination. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
666
  * <li><code>MaxRecords</code> - <code>integer</code> - Optional - The maximum number of policies that will be described with each call.</li>
667
  * <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>
@@ -696,7 +690,7 @@ class AmazonAS extends CFRuntime
696
  * <code>NextToken</code> parameter.
697
  *
698
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
699
- * <li><code>ActivityIds</code> - <code>string|array</code> - Optional - A list containing the activity IDs of the desired scaling activities. If this list is omitted, all activities are described. If an <code>AutoScalingGroupName</code> is provided, the results are limited to that group. The list of requested activities cannot contain more than 50 items. If unknown activities are requested, they are ignored with no error. Pass a string for a single value, or an indexed array for multiple values.</li>
700
  * <li><code>AutoScalingGroupName</code> - <code>string</code> - Optional - The name of the <code>AutoScalingGroup</code>. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
701
  * <li><code>MaxRecords</code> - <code>integer</code> - Optional - The maximum number of scaling activities to return.</li>
702
  * <li><code>NextToken</code> - <code>string</code> - Optional - A string that marks the start of the next batch of returned results for pagination. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
@@ -738,14 +732,14 @@ class AmazonAS extends CFRuntime
738
 
739
  /**
740
  * Lists all the actions scheduled for your Auto Scaling group that haven't been executed. To see
741
- * a list of actions already executed, see the activity record returned in
742
  * <code>DescribeScalingActivities</code>.
743
  *
744
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
745
  * <li><code>AutoScalingGroupName</code> - <code>string</code> - Optional - The name of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
746
  * <li><code>ScheduledActionNames</code> - <code>string|array</code> - Optional - A list of scheduled actions to be described. If this list is omitted, all scheduled actions are described. The list of requested scheduled actions cannot contain more than 50 items. If an auto scaling group name is provided, the results are limited to that group. If unknown scheduled actions are requested, they are ignored with no error. Pass a string for a single value, or an indexed array for multiple values.</li>
747
  * <li><code>StartTime</code> - <code>string</code> - Optional - The earliest scheduled start time to return. If scheduled action names are provided, this field will be ignored. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
748
- * <li><code>EndTime</code> - <code>string</code> - Optional - The latest scheduled start time to return. If scheduled action names are provided, this field is ignored. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
749
  * <li><code>NextToken</code> - <code>string</code> - Optional - A string that marks the start of the next batch of returned results. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
750
  * <li><code>MaxRecords</code> - <code>integer</code> - Optional - The maximum number of scheduled actions to return.</li>
751
  * <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>
@@ -781,24 +775,17 @@ class AmazonAS extends CFRuntime
781
  }
782
 
783
  /**
784
- * Lists the Auto Scaling tags.
785
- *
786
- * You can use filters to limit results when describing tags. For example, you can query for tags
787
- * of a particular Auto Scaling group. You can specify multiple values for a filter. A tag must
788
- * match at least one of the specified values for it to be included in the results.
789
- *
790
- * You can also specify multiple filters. The result includes information for a particular tag
791
- * only if it matches all your filters. If there's no match, no special message is returned.
792
  *
793
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
794
- * <li><code>Filters</code> - <code>array</code> - Optional - The value of the filter type used to identify the tags to be returned. For example, you can filter so that<c>DescribeTags</c>returns tags according to Auto Scaling group, the key and value, or whether the new tag will be applied to instances launched after the tag is created (PropagateAtLaunch). <ul>
795
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
796
- * <li><code>Name</code> - <code>string</code> - Optional - The name of the filter. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
797
- * <li><code>Values</code> - <code>string|array</code> - Optional - The value of the filter. Pass a string for a single value, or an indexed array for multiple values.</li>
798
  * </ul></li>
799
  * </ul></li>
800
- * <li><code>NextToken</code> - <code>string</code> - Optional - A string that marks the start of the next batch of returned results. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
801
- * <li><code>MaxRecords</code> - <code>integer</code> - Optional - The maximum number of records to return.</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.
@@ -821,8 +808,7 @@ class AmazonAS extends CFRuntime
821
 
822
  /**
823
  * Disables monitoring of group metrics for the Auto Scaling group specified in
824
- * <code>AutoScalingGroupName</code>. You can specify the list of affected metrics with the
825
- * <code>Metrics</code> parameter.
826
  *
827
  * @param string $auto_scaling_group_name (Required) The name or ARN of the Auto Scaling Group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
828
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
@@ -850,13 +836,12 @@ class AmazonAS extends CFRuntime
850
 
851
  /**
852
  * Enables monitoring of group metrics for the Auto Scaling group specified in
853
- * <code>AutoScalingGroupName</code>. You can specify the list of enabled metrics with the
854
- * <code>Metrics</code> parameter.
855
  *
856
  * Auto scaling metrics collection can be turned on only if the <code>InstanceMonitoring</code>
857
  * flag, in the Auto Scaling group's launch configuration, is set to <code>True</code>.
858
  *
859
- * @param string $auto_scaling_group_name (Required) The name or ARN of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
860
  * @param string $granularity (Required) The granularity to associate with the metrics to collect. Currently, the only legal granularity is "1Minute". [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
861
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
862
  * <li><code>Metrics</code> - <code>string|array</code> - Optional - The list of metrics to collect. If no metrics are specified, all metrics are enabled. The following metrics are supported:<ul><li>GroupMinSize</li><li>GroupMaxSize</li><li>GroupDesiredCapacity</li><li>GroupInServiceInstances</li><li>GroupPendingInstances</li><li>GroupTerminatingInstances</li><li>GroupTotalInstances</li></ul> Pass a string for a single value, or an indexed array for multiple values.</li>
@@ -887,8 +872,8 @@ class AmazonAS extends CFRuntime
887
  *
888
  * @param string $policy_name (Required) The name or PolicyARN of the policy you want to run. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
889
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
890
- * <li><code>AutoScalingGroupName</code> - <code>string</code> - Optional - The name or ARN of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
891
- * <li><code>HonorCooldown</code> - <code>boolean</code> - Optional - Set to <code>True</code> if you want Auto Scaling to reject this request when the Auto Scaling group is in cooldown.</li>
892
  * <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>
893
  * <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>
894
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -908,7 +893,7 @@ class AmazonAS extends CFRuntime
908
  *
909
  * A new <code>PutNotificationConfiguration</code> overwrites an existing configuration.
910
  *
911
- * @param string $auto_scaling_group_name (Required) The name of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
912
  * @param string $topic_arn (Required) The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
913
  * @param string|array $notification_types (Required) The type of events that will trigger the notification. For more information, go to <code>DescribeAutoScalingNotificationTypes</code>. Pass a string for a single value, or an indexed array for multiple values.
914
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
@@ -935,12 +920,13 @@ class AmazonAS extends CFRuntime
935
  * existing policy name and set the parameter(s) you want to change. Any existing parameter not
936
  * changed in an update to an existing policy is not changed in this update request.
937
  *
938
- * @param string $auto_scaling_group_name (Required) The name or ARN of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
939
  * @param string $policy_name (Required) The name of the policy you want to create or update. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
940
  * @param integer $scaling_adjustment (Required) The number of instances by which to scale. <code>AdjustmentType</code> determines the interpretation of this number (e.g., as an absolute number or as a percentage of the existing Auto Scaling group size). A positive increment adds to the current capacity and a negative value removes from the current capacity.
941
  * @param string $adjustment_type (Required) Specifies whether the <code>ScalingAdjustment</code> is an absolute number or a percentage of the current capacity. Valid values are <code>ChangeInCapacity</code>, <code>ExactCapacity</code>, and <code>PercentChangeInCapacity</code>. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
942
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
943
  * <li><code>Cooldown</code> - <code>integer</code> - Optional - The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start.</li>
 
944
  * <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>
945
  * <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>
946
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -957,10 +943,10 @@ class AmazonAS extends CFRuntime
957
  }
958
 
959
  /**
960
- * Creates a scheduled scaling action for an Auto Scaling group. If you leave a parameter
961
  * unspecified, the corresponding value remains unchanged in the affected Auto Scaling group.
962
  *
963
- * @param string $auto_scaling_group_name (Required) The name or ARN of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
964
  * @param string $scheduled_action_name (Required) The name of this scaling action. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
965
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
966
  * <li><code>Time</code> - <code>string</code> - Optional - <code>Time</code> is deprecated. The time for this action to start. <code>Time</code> is an alias for <code>StartTime</code> and can be specified instead of <code>StartTime</code>, or vice versa. If both <code>Time</code> and <code>StartTime</code> are specified, their values should be identical. Otherwise, <code>PutScheduledUpdateGroupAction</code> will return an error. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
@@ -1031,8 +1017,8 @@ class AmazonAS extends CFRuntime
1031
 
1032
  /**
1033
  * Adjusts the desired size of the <code>AutoScalingGroup</code> by initiating scaling activities.
1034
- * When reducing the size of the group, it is not possible to define which Amazon EC2 instances
1035
- * will be terminated. This applies to any Auto Scaling decisions that might result in terminating
1036
  * instances.
1037
  *
1038
  * There are two common use cases for <code>SetDesiredCapacity</code>: one for users of the Auto
@@ -1043,7 +1029,7 @@ class AmazonAS extends CFRuntime
1043
  * <code>SetDesiredCapacity</code> changes the size of your Auto Scaling group without regard to
1044
  * the cooldown period. This could be useful, for example, if Auto Scaling did something
1045
  * unexpected for some reason. If your cooldown period is 10 minutes, Auto Scaling would normally
1046
- * reject requests to change the size of the group for that entire 10-minute period. The
1047
  * <code>SetDesiredCapacity</code> command allows you to circumvent this restriction and change
1048
  * the size of the group before the end of the cooldown period.
1049
  *
@@ -1053,10 +1039,10 @@ class AmazonAS extends CFRuntime
1053
  * <code>SetDesiredCapacity</code> to honor cooldown by setting the <code>HonorCooldown</code>
1054
  * parameter to <code>true</code>.
1055
  *
1056
- * @param string $auto_scaling_group_name (Required) The name of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
1057
- * @param integer $desired_capacity (Required) The new capacity setting for the Auto Scaling group.
1058
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1059
- * <li><code>HonorCooldown</code> - <code>boolean</code> - Optional - By default, <code>SetDesiredCapacity</code> overrides any cooldown period. Set to <code>True</code> if you want Auto Scaling to reject this request when the Auto Scaling group is in cooldown.</li>
1060
  * <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>
1061
  * <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>
1062
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -1073,7 +1059,7 @@ class AmazonAS extends CFRuntime
1073
  /**
1074
  * Sets the health status of an instance.
1075
  *
1076
- * @param string $instance_id (Required) The identifier of the Amazon EC2 instance. [Constraints: The value must be between 1 and 16 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
1077
  * @param string $health_status (Required) The health status of the instance. "Healthy" means that the instance is healthy and should remain in service. "Unhealthy" means that the instance is unhealthy. Auto Scaling should terminate and replace it. [Constraints: The value must be between 1 and 32 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
1078
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1079
  * <li><code>ShouldRespectGracePeriod</code> - <code>boolean</code> - Optional - If True, this call should respect the grace period associated with the group.</li>
@@ -1134,7 +1120,7 @@ class AmazonAS extends CFRuntime
1134
  * immediately.
1135
  * </p>
1136
  *
1137
- * @param string $instance_id (Required) The ID of the Amazon EC2 instance to be terminated. [Constraints: The value must be between 1 and 16 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
1138
  * @param boolean $should_decrement_desired_capacity (Required) Specifies whether (<em>true</em>) or not (<em>false</em>) terminating this instance should also decrement the size of the <code>AutoScalingGroup</code>.
1139
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1140
  * <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>
@@ -1178,7 +1164,7 @@ class AmazonAS extends CFRuntime
1178
  * <li><code>MaxSize</code> - <code>integer</code> - Optional - The maximum size of the Auto Scaling group.</li>
1179
  * <li><code>DesiredCapacity</code> - <code>integer</code> - Optional - The desired capacity for the Auto Scaling group.</li>
1180
  * <li><code>DefaultCooldown</code> - <code>integer</code> - Optional - The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start.</li>
1181
- * <li><code>AvailabilityZones</code> - <code>string|array</code> - Optional - Availability Zones for the group. Pass a string for a single value, or an indexed array for multiple values.</li>
1182
  * <li><code>HealthCheckType</code> - <code>string</code> - Optional - The service of interest for the health status check, either "EC2" for Amazon EC2 or "ELB" for Elastic Load Balancing. [Constraints: The value must be between 1 and 32 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
1183
  * <li><code>HealthCheckGracePeriod</code> - <code>integer</code> - Optional - The length of time that Auto Scaling waits before checking an instance's health status. The grace period begins when an instance comes into service.</li>
1184
  * <li><code>PlacementGroup</code> - <code>string</code> - Optional - The name of the cluster placement group, if applicable. For more information, go to <a href="http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using_cluster_computing.html">Using Cluster Instances</a> in the Amazon EC2 User Guide. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
36
  * "http://docs.amazonwebservices.com/general/latest/gr/index.html?rande.html">Regions and
37
  * Endpoints</a> in the Amazon Web Services General Reference.
38
  *
39
+ * @version 2012.05.09
40
  * @license See the included NOTICE.md file for complete information.
41
  * @copyright See the included NOTICE.md file for complete information.
42
  * @link http://aws.amazon.com/as/ Auto Scaling
170
  // SERVICE METHODS
171
 
172
  /**
173
+ * Creates a new Auto Scaling group with the specified name. When the creation request is
174
+ * completed, the Auto Scaling group is ready to be used in other calls.
175
  *
176
  * <p class="note">
177
  * The Auto Scaling group name must be unique within the scope of your AWS account, and under the
182
  * @param string $launch_configuration_name (Required) The name of the launch configuration to use with the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
183
  * @param integer $min_size (Required) The minimum size of the Auto Scaling group.
184
  * @param integer $max_size (Required) The maximum size of the Auto Scaling group.
185
+ * @param string|array $availability_zones (Required) A list of availability zones for the Auto Scaling group. Pass a string for a single value, or an indexed array for multiple values.
186
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
187
  * <li><code>DesiredCapacity</code> - <code>integer</code> - Optional - The number of Amazon EC2 instances that should be running in the group.</li>
188
  * <li><code>DefaultCooldown</code> - <code>integer</code> - Optional - The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start.</li>
189
+ * <li><code>LoadBalancerNames</code> - <code>string|array</code> - Optional - A list of LoadBalancers to use. Pass a string for a single value, or an indexed array for multiple values.</li>
190
  * <li><code>HealthCheckType</code> - <code>string</code> - Optional - The service you want the health status from, Amazon EC2 or Elastic Load Balancer. Valid values are <code>EC2</code> or <code>ELB</code>. [Constraints: The value must be between 1 and 32 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
191
+ * <li><code>HealthCheckGracePeriod</code> - <code>integer</code> - Optional - Length of time in seconds after a new EC2 instance comes into service that Auto Scaling starts checking its health.</li>
192
  * <li><code>PlacementGroup</code> - <code>string</code> - Optional - Physical location of your cluster placement group created in Amazon EC2. For more information about cluster placement group, see <a href="http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using_cluster_computing.html">Using Cluster Instances</a> [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
193
  * <li><code>VPCZoneIdentifier</code> - <code>string</code> - Optional - A comma-separated list of subnet identifiers of Amazon Virtual Private Clouds (Amazon VPCs). When you specify subnets and Availability Zones with this call, ensure that the subnets' Availability Zones match the Availability Zones specified. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
194
+ * <li><code>Tags</code> - <code>array</code> - Optional - <ul>
195
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
196
+ * <li><code>ResourceId</code> - <code>string</code> - Optional - [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
197
+ * <li><code>ResourceType</code> - <code>string</code> - Optional - [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
198
+ * <li><code>Key</code> - <code>string</code> - Required - [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
199
+ * <li><code>Value</code> - <code>string</code> - Optional - [Constraints: The value must be between 0 and 256 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
200
+ * <li><code>PropagateAtLaunch</code> - <code>boolean</code> - Optional - </li>
201
  * </ul></li>
202
  * </ul></li>
203
  * <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>
249
  * security groups, or vice versa.
250
  *
251
  * <p class="note">
252
+ * At this time, Auto Scaling launch configurations don't support compressed (e.g. gzipped) user
253
  * data files.
254
  * </p>
255
  *
256
  * @param string $launch_configuration_name (Required) The name of the launch configuration to create. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
257
+ * @param string $image_id (Required) Unique ID of the <em>Amazon Machine Image</em> (AMI) which was assigned during registration. For more information about Amazon EC2 images, please see <a href="http://aws.amazon.com/ec2/">Amazon EC2 product documentation</a> [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
258
+ * @param string $instance_type (Required) The instance type of the EC2 instance. For more information about Amazon EC2 instance types, please see <a href="http://aws.amazon.com/ec2/">Amazon EC2 product documentation</a> [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
259
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
260
+ * <li><code>KeyName</code> - <code>string</code> - Optional - The name of the EC2 key pair. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
261
  * <li><code>SecurityGroups</code> - <code>string|array</code> - Optional - The names of the security groups with which to associate Amazon EC2 or Amazon VPC instances. Specify Amazon EC2 security groups using security group names, such as <code>websrv</code>. Specify Amazon VPC security groups using security group IDs, such as <code>sg-12345678</code>. For more information about Amazon EC2 security groups, go to <a href="http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?using-network-security.html">Using Security Groups</a> in the Amazon EC2 product documentation. For more information about Amazon VPC security groups, go to <a href="http://docs.amazonwebservices.com/AmazonVPC/latest/UserGuide/index.html?VPC_SecurityGroups.html">Security Groups</a> in the Amazon VPC product documentation. Pass a string for a single value, or an indexed array for multiple values.</li>
262
  * <li><code>UserData</code> - <code>string</code> - Optional - The user data available to the launched Amazon EC2 instances. For more information about Amazon EC2 user data, please see <a href="http://aws.amazon.com/ec2/">Amazon EC2 product documentation</a>. [Constraints: The value must be between 0 and 21847 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
263
+ * <li><code>KernelId</code> - <code>string</code> - Optional - The ID of the kernel associated with the EC2 AMI. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
264
+ * <li><code>RamdiskId</code> - <code>string</code> - Optional - The ID of the RAM disk associated with the EC2 AMI. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
265
+ * <li><code>BlockDeviceMappings</code> - <code>array</code> - Optional - A list of mappings that specify how block devices are exposed to the instance. Each mapping is made up of a <em>VirtualName</em>, a <em>DeviceName</em>, and an <em>ebs</em> data structure that contains information about the associated Elastic Block Storage volume. For more information about Amazon EC2 BlockDeviceMappings, please go to <a href="http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/index.html?block-device-mapping-concepts.html">Block Device Mapping</a> in the Amazon EC2 product documentation. <ul>
266
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
267
  * <li><code>VirtualName</code> - <code>string</code> - Optional - The virtual name associated with the device. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
268
  * <li><code>DeviceName</code> - <code>string</code> - Required - The name of the device within Amazon EC2. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
269
  * <li><code>Ebs</code> - <code>array</code> - Optional - The Elastic Block Storage volume information. <ul>
270
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
271
+ * <li><code>SnapshotId</code> - <code>string</code> - Optional - The Snapshot ID. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
272
+ * <li><code>VolumeSize</code> - <code>integer</code> - Optional - The volume size, in GigaBytes.</li>
273
  * </ul></li>
274
  * </ul></li>
275
  * </ul></li>
279
  * <li><code>Enabled</code> - <code>boolean</code> - Optional - If <code>True</code>, instance monitoring is enabled.</li>
280
  * </ul></li>
281
  * </ul></li>
282
+ * <li><code>SpotPrice</code> - <code>string</code> - Optional - </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.
322
  }
323
 
324
  /**
325
+ *
 
 
 
 
 
 
326
  *
327
+ * @param array $tags (Required) <ul>
328
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
329
+ * <li><code>ResourceId</code> - <code>string</code> - Optional - [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
330
+ * <li><code>ResourceType</code> - <code>string</code> - Optional - [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
331
+ * <li><code>Key</code> - <code>string</code> - Required - [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
332
+ * <li><code>Value</code> - <code>string</code> - Optional - [Constraints: The value must be between 0 and 256 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
333
+ * <li><code>PropagateAtLaunch</code> - <code>boolean</code> - Optional - </li>
334
  * </ul></li>
335
  * </ul>
336
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
351
  }
352
 
353
  /**
354
+ * Deletes the specified auto scaling group if the group has no instances and no scaling
355
  * activities in progress.
356
  *
357
  * <p class="note">
415
  }
416
 
417
  /**
418
+ * Deletes a policy created by <code>PutScalingPolicy</code>
419
  *
420
+ * @param string $policy_name (Required) The name or PolicyARN of the policy you want to delete [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
421
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
422
  * <li><code>AutoScalingGroupName</code> - <code>string</code> - Optional - The name of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
423
  * <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
  *
439
  * @param string $scheduled_action_name (Required) The name of the action you want to delete. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
440
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
441
+ * <li><code>AutoScalingGroupName</code> - <code>string</code> - Optional - The name of the Auto Scaling group [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
442
  * <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>
443
  * <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>
444
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
452
  }
453
 
454
  /**
455
+ *
456
  *
457
+ * @param array $tags (Required) <ul>
458
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
459
+ * <li><code>ResourceId</code> - <code>string</code> - Optional - [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
460
+ * <li><code>ResourceType</code> - <code>string</code> - Optional - [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
461
+ * <li><code>Key</code> - <code>string</code> - Required - [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
462
+ * <li><code>Value</code> - <code>string</code> - Optional - [Constraints: The value must be between 0 and 256 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
463
+ * <li><code>PropagateAtLaunch</code> - <code>boolean</code> - Optional - </li>
464
  * </ul></li>
465
  * </ul>
466
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
577
  }
578
 
579
  /**
580
+ * Returns a full description of the launch configurations given the specified names.
 
581
  *
582
+ * If no names are specified, then the full details of all launch configurations are returned.
583
  *
584
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
585
  * <li><code>LaunchConfigurationNames</code> - <code>string|array</code> - Optional - A list of launch configuration names. Pass a string for a single value, or an indexed array for multiple values.</li>
655
  *
656
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
657
  * <li><code>AutoScalingGroupName</code> - <code>string</code> - Optional - The name of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
658
+ * <li><code>PolicyNames</code> - <code>string|array</code> - Optional - A list of policy names or policy ARNs to be described. If this list is omitted, all policy names are described. If an auto scaling group name is provided, the results are limited to that group.The list of requested policy names cannot contain more than 50 items. If unknown policy names are requested, they are ignored with no error. Pass a string for a single value, or an indexed array for multiple values.</li>
659
  * <li><code>NextToken</code> - <code>string</code> - Optional - A string that is used to mark the start of the next batch of returned results for pagination. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
660
  * <li><code>MaxRecords</code> - <code>integer</code> - Optional - The maximum number of policies that will be described with each call.</li>
661
  * <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>
690
  * <code>NextToken</code> parameter.
691
  *
692
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
693
+ * <li><code>ActivityIds</code> - <code>string|array</code> - Optional - A list containing the activity IDs of the desired scaling activities. If this list is omitted, all activities are described. If an AutoScalingGroupName is provided, the results are limited to that group. The list of requested activities cannot contain more than 50 items. If unknown activities are requested, they are ignored with no error. Pass a string for a single value, or an indexed array for multiple values.</li>
694
  * <li><code>AutoScalingGroupName</code> - <code>string</code> - Optional - The name of the <code>AutoScalingGroup</code>. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
695
  * <li><code>MaxRecords</code> - <code>integer</code> - Optional - The maximum number of scaling activities to return.</li>
696
  * <li><code>NextToken</code> - <code>string</code> - Optional - A string that marks the start of the next batch of returned results for pagination. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
732
 
733
  /**
734
  * Lists all the actions scheduled for your Auto Scaling group that haven't been executed. To see
735
+ * a list of action already executed, see the activity record returned in
736
  * <code>DescribeScalingActivities</code>.
737
  *
738
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
739
  * <li><code>AutoScalingGroupName</code> - <code>string</code> - Optional - The name of the Auto Scaling group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
740
  * <li><code>ScheduledActionNames</code> - <code>string|array</code> - Optional - A list of scheduled actions to be described. If this list is omitted, all scheduled actions are described. The list of requested scheduled actions cannot contain more than 50 items. If an auto scaling group name is provided, the results are limited to that group. If unknown scheduled actions are requested, they are ignored with no error. Pass a string for a single value, or an indexed array for multiple values.</li>
741
  * <li><code>StartTime</code> - <code>string</code> - Optional - The earliest scheduled start time to return. If scheduled action names are provided, this field will be ignored. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
742
+ * <li><code>EndTime</code> - <code>string</code> - Optional - The latest scheduled start time to return. If scheduled action names are provided, this field will be ignored. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
743
  * <li><code>NextToken</code> - <code>string</code> - Optional - A string that marks the start of the next batch of returned results. [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
744
  * <li><code>MaxRecords</code> - <code>integer</code> - Optional - The maximum number of scheduled actions to return.</li>
745
  * <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>
775
  }
776
 
777
  /**
778
+ *
 
 
 
 
 
 
 
779
  *
780
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
781
+ * <li><code>Filters</code> - <code>array</code> - Optional - <ul>
782
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
783
+ * <li><code>Name</code> - <code>string</code> - Optional - [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
784
+ * <li><code>Values</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
785
  * </ul></li>
786
  * </ul></li>
787
+ * <li><code>NextToken</code> - <code>string</code> - Optional - [Constraints: The value must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
788
+ * <li><code>MaxRecords</code> - <code>integer</code> - Optional - </li>
789
  * <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>
790
  * <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>
791
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
808
 
809
  /**
810
  * Disables monitoring of group metrics for the Auto Scaling group specified in
811
+ * AutoScalingGroupName. You can specify the list of affected metrics with the Metrics parameter.
 
812
  *
813
  * @param string $auto_scaling_group_name (Required) The name or ARN of the Auto Scaling Group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
814
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
836
 
837
  /**
838
  * Enables monitoring of group metrics for the Auto Scaling group specified in
839
+ * AutoScalingGroupName. You can specify the list of enabled metrics with the Metrics parameter.
 
840
  *
841
  * Auto scaling metrics collection can be turned on only if the <code>InstanceMonitoring</code>
842
  * flag, in the Auto Scaling group's launch configuration, is set to <code>True</code>.
843
  *
844
+ * @param string $auto_scaling_group_name (Required) The name or ARN of the Auto Scaling Group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
845
  * @param string $granularity (Required) The granularity to associate with the metrics to collect. Currently, the only legal granularity is "1Minute". [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
846
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
847
  * <li><code>Metrics</code> - <code>string|array</code> - Optional - The list of metrics to collect. If no metrics are specified, all metrics are enabled. The following metrics are supported:<ul><li>GroupMinSize</li><li>GroupMaxSize</li><li>GroupDesiredCapacity</li><li>GroupInServiceInstances</li><li>GroupPendingInstances</li><li>GroupTerminatingInstances</li><li>GroupTotalInstances</li></ul> Pass a string for a single value, or an indexed array for multiple values.</li>
872
  *
873
  * @param string $policy_name (Required) The name or PolicyARN of the policy you want to run. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
874
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
875
+ * <li><code>AutoScalingGroupName</code> - <code>string</code> - Optional - The name or ARN of the Auto Scaling Group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
876
+ * <li><code>HonorCooldown</code> - <code>boolean</code> - Optional - Set to True if you want Auto Scaling to reject this request when the Auto Scaling group is in cooldown.</li>
877
  * <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>
878
  * <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>
879
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
893
  *
894
  * A new <code>PutNotificationConfiguration</code> overwrites an existing configuration.
895
  *
896
+ * @param string $auto_scaling_group_name (Required) The name of the Auto Scaling Group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
897
  * @param string $topic_arn (Required) The Amazon Resource Name (ARN) of the Amazon Simple Notification Service (SNS) topic. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
898
  * @param string|array $notification_types (Required) The type of events that will trigger the notification. For more information, go to <code>DescribeAutoScalingNotificationTypes</code>. Pass a string for a single value, or an indexed array for multiple values.
899
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
920
  * existing policy name and set the parameter(s) you want to change. Any existing parameter not
921
  * changed in an update to an existing policy is not changed in this update request.
922
  *
923
+ * @param string $auto_scaling_group_name (Required) The name or ARN of the Auto Scaling Group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
924
  * @param string $policy_name (Required) The name of the policy you want to create or update. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
925
  * @param integer $scaling_adjustment (Required) The number of instances by which to scale. <code>AdjustmentType</code> determines the interpretation of this number (e.g., as an absolute number or as a percentage of the existing Auto Scaling group size). A positive increment adds to the current capacity and a negative value removes from the current capacity.
926
  * @param string $adjustment_type (Required) Specifies whether the <code>ScalingAdjustment</code> is an absolute number or a percentage of the current capacity. Valid values are <code>ChangeInCapacity</code>, <code>ExactCapacity</code>, and <code>PercentChangeInCapacity</code>. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
927
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
928
  * <li><code>Cooldown</code> - <code>integer</code> - Optional - The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start.</li>
929
+ * <li><code>MinAdjustmentMagnitude</code> - <code>integer</code> - Optional - </li>
930
  * <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>
931
  * <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>
932
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
943
  }
944
 
945
  /**
946
+ * Creates a scheduled scaling action for a Auto Scaling group. If you leave a parameter
947
  * unspecified, the corresponding value remains unchanged in the affected Auto Scaling group.
948
  *
949
+ * @param string $auto_scaling_group_name (Required) The name or ARN of the Auto Scaling Group. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
950
  * @param string $scheduled_action_name (Required) The name of this scaling action. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
951
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
952
  * <li><code>Time</code> - <code>string</code> - Optional - <code>Time</code> is deprecated. The time for this action to start. <code>Time</code> is an alias for <code>StartTime</code> and can be specified instead of <code>StartTime</code>, or vice versa. If both <code>Time</code> and <code>StartTime</code> are specified, their values should be identical. Otherwise, <code>PutScheduledUpdateGroupAction</code> will return an error. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
1017
 
1018
  /**
1019
  * Adjusts the desired size of the <code>AutoScalingGroup</code> by initiating scaling activities.
1020
+ * When reducing the size of the group, it is not possible to define which EC2 instances will be
1021
+ * terminated. This applies to any Auto Scaling decisions that might result in terminating
1022
  * instances.
1023
  *
1024
  * There are two common use cases for <code>SetDesiredCapacity</code>: one for users of the Auto
1029
  * <code>SetDesiredCapacity</code> changes the size of your Auto Scaling group without regard to
1030
  * the cooldown period. This could be useful, for example, if Auto Scaling did something
1031
  * unexpected for some reason. If your cooldown period is 10 minutes, Auto Scaling would normally
1032
+ * reject requests to change the size of the group for that entire 10 minute period. The
1033
  * <code>SetDesiredCapacity</code> command allows you to circumvent this restriction and change
1034
  * the size of the group before the end of the cooldown period.
1035
  *
1039
  * <code>SetDesiredCapacity</code> to honor cooldown by setting the <code>HonorCooldown</code>
1040
  * parameter to <code>true</code>.
1041
  *
1042
+ * @param string $auto_scaling_group_name (Required) The name of the AutoScalingGroup. [Constraints: The value must be between 1 and 1600 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
1043
+ * @param integer $desired_capacity (Required) The new capacity setting for the AutoScalingGroup.
1044
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1045
+ * <li><code>HonorCooldown</code> - <code>boolean</code> - Optional - By default, <code>SetDesiredCapacity</code> overrides any cooldown period. Set to True if you want Auto Scaling to reject this request when the Auto Scaling group is in cooldown.</li>
1046
  * <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>
1047
  * <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>
1048
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1059
  /**
1060
  * Sets the health status of an instance.
1061
  *
1062
+ * @param string $instance_id (Required) The identifier of the EC2 instance. [Constraints: The value must be between 1 and 16 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
1063
  * @param string $health_status (Required) The health status of the instance. "Healthy" means that the instance is healthy and should remain in service. "Unhealthy" means that the instance is unhealthy. Auto Scaling should terminate and replace it. [Constraints: The value must be between 1 and 32 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
1064
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1065
  * <li><code>ShouldRespectGracePeriod</code> - <code>boolean</code> - Optional - If True, this call should respect the grace period associated with the group.</li>
1120
  * immediately.
1121
  * </p>
1122
  *
1123
+ * @param string $instance_id (Required) The ID of the EC2 instance to be terminated. [Constraints: The value must be between 1 and 16 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]
1124
  * @param boolean $should_decrement_desired_capacity (Required) Specifies whether (<em>true</em>) or not (<em>false</em>) terminating this instance should also decrement the size of the <code>AutoScalingGroup</code>.
1125
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1126
  * <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>
1164
  * <li><code>MaxSize</code> - <code>integer</code> - Optional - The maximum size of the Auto Scaling group.</li>
1165
  * <li><code>DesiredCapacity</code> - <code>integer</code> - Optional - The desired capacity for the Auto Scaling group.</li>
1166
  * <li><code>DefaultCooldown</code> - <code>integer</code> - Optional - The amount of time, in seconds, after a scaling activity completes before any further trigger-related scaling activities can start.</li>
1167
+ * <li><code>AvailabilityZones</code> - <code>string|array</code> - Optional - Availability zones for the group. Pass a string for a single value, or an indexed array for multiple values.</li>
1168
  * <li><code>HealthCheckType</code> - <code>string</code> - Optional - The service of interest for the health status check, either "EC2" for Amazon EC2 or "ELB" for Elastic Load Balancing. [Constraints: The value must be between 1 and 32 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
1169
  * <li><code>HealthCheckGracePeriod</code> - <code>integer</code> - Optional - The length of time that Auto Scaling waits before checking an instance's health status. The grace period begins when an instance comes into service.</li>
1170
  * <li><code>PlacementGroup</code> - <code>string</code> - Optional - The name of the cluster placement group, if applicable. For more information, go to <a href="http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/using_cluster_computing.html">Using Cluster Instances</a> in the Amazon EC2 User Guide. [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*</code>]</li>
libs/aws/services/cloudformation.class.php CHANGED
@@ -1,6 +1,6 @@
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.
@@ -15,34 +15,16 @@
15
  */
16
 
17
  /**
18
- * This is the AWS CloudFormation API Reference. The major sections of this guide are described in
19
- * the following table.
20
- *
21
- * <ul>
22
- * <li><a href=
23
- * "http://docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_Operations.html">
24
- * Actions</a>: Alphabetical list of CloudFormation actions</li>
25
- * <li><a href=
26
- * "http://docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/API_Types.html">Data
27
- * Types</a>: Alphabetical list of CloudFormation data types</li>
28
- * <li><a href=
29
- * "http://docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/CommonParameters.html">
30
- * Common Parameters</a>: Parameters that all Query actions can use</li>
31
- * <li><a href=
32
- * "http://docs.amazonwebservices.com/AWSCloudFormation/latest/APIReference/CommonErrors.html">
33
- * Common Errors</a>: Client and server errors that all actions can return</li>
34
- * </ul>
35
- *
36
- * This guide is for programmers who need detailed information about the CloudFormation APIs. You
37
- * use AWS CloudFormation to create and manage AWS infrastructure deployments predictably and
38
- * repeatedly. CloudFormation helps you leverage AWS products such as Amazon EC2, EBS, Amazon SNS,
39
- * ELB, and Auto Scaling to build highly-reliable, highly scalable, cost effective applications
40
- * without worrying about creating and configuring the underlying the AWS infrastructure.
41
  *
42
- * Through the use of a template file you write, and a few AWS CloudFormation commands or API
43
- * actions, AWS CloudFormation enables you to manage a collection of resources together as a
44
- * single unit called a stack. AWS CloudFormation creates and deletes all member resources of the
45
- * stack together and manages all dependencies between the resources for you.
46
  *
47
  * For more information about this product, go to the <a href=
48
  * "http://aws.amazon.com/cloudformation/">CloudFormation Product Page</a>.
@@ -51,7 +33,7 @@
51
  * information about a specific AWS product, you can find the product's technical documentation at
52
  * <a href="http://aws.amazon.com/documentation/">http://aws.amazon.com/documentation/</a>.
53
  *
54
- * @version 2011.12.13
55
  * @license See the included NOTICE.md file for complete information.
56
  * @copyright See the included NOTICE.md file for complete information.
57
  * @link http://aws.amazon.com/cloudformation/ AWS CloudFormation
@@ -157,7 +139,7 @@ class AmazonCloudFormation extends CFRuntime
157
  {
158
  $this->api_version = '2010-05-15';
159
  $this->hostname = self::DEFAULT_URL;
160
- $this->auth_class = 'AuthV2Query';
161
 
162
  return parent::__construct($options);
163
  }
@@ -202,10 +184,11 @@ class AmazonCloudFormation extends CFRuntime
202
  * <li><code>ParameterValue</code> - <code>string</code> - Optional - The value associated with the parameter.</li>
203
  * </ul></li>
204
  * </ul></li>
205
- * <li><code>DisableRollback</code> - <code>boolean</code> - Optional - Boolean to enable or disable rollback on stack creation failures.<br/>Default: <code>false</code></li>
206
  * <li><code>TimeoutInMinutes</code> - <code>integer</code> - Optional - The amount of time that can pass before the stack status becomes CREATE_FAILED; if <code>DisableRollback</code> is not set or is set to <code>false</code>, the stack will be rolled back.</li>
207
  * <li><code>NotificationARNs</code> - <code>string|array</code> - Optional - The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the <a href="http://console.aws.amazon.com/sns">SNS console</a> or your Command Line Interface (CLI). Pass a string for a single value, or an indexed array for multiple values.</li>
208
  * <li><code>Capabilities</code> - <code>string|array</code> - Optional - The list of capabilities that you want to allow in the stack. If your template contains IAM resources, you must specify the CAPABILITY_IAM value for this parameter; otherwise, this action returns an InsufficientCapabilities error. IAM resources are the following: <a href="http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html">AWS::IAM::AccessKey</a>, <a href="http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html">AWS::IAM::Group</a>, <a href="http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html">AWS::IAM::Policy</a>, <a href="http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html">AWS::IAM::User</a>, and <a href="http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html">AWS::IAM::UserToGroupAddition</a>. Pass a string for a single value, or an indexed array for multiple values.</li>
 
209
  * <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>
210
  * <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>
211
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -277,8 +260,8 @@ class AmazonCloudFormation extends CFRuntime
277
  * </p>
278
  *
279
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
280
- * <li><code>StackName</code> - <code>string</code> - Optional - The name or the unique identifier associated with the stack.<br/>Default: There is no default value.</li>
281
- * <li><code>NextToken</code> - <code>string</code> - Optional - String that identifies the start of the next list of events, if there is one.<br/>Default: There is no default value.</li>
282
  * <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>
283
  * <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>
284
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -297,7 +280,7 @@ class AmazonCloudFormation extends CFRuntime
297
  * the stack has been deleted.
298
  *
299
  * @param string $stack_name (Required) The name or the unique identifier associated with the stack. Default: There is no default value.
300
- * @param string $logical_resource_id (Required) The logical name of the resource as specified in the template.<br/>Default: There is on default value.
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>
@@ -334,7 +317,7 @@ class AmazonCloudFormation extends CFRuntime
334
  *
335
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
336
  * <li><code>StackName</code> - <code>string</code> - Optional - The name or the unique identifier associated with the stack. Default: There is no default value.</li>
337
- * <li><code>LogicalResourceId</code> - <code>string</code> - Optional - The logical name of the resource as specified in the template.<br/>Default: There is on default value.</li>
338
  * <li><code>PhysicalResourceId</code> - <code>string</code> - Optional - The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation. For example, for an Amazon Elastic Compute Cloud (EC2) instance, <code>PhysicalResourceId</code> corresponds to the <code>InstanceId</code>. You can pass the EC2 <code>InstanceId</code> to <code>DescribeStackResources</code> to find which stack the instance belongs to and what other resources are part of the stack. Default: There is no default value.</li>
339
  * <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>
340
  * <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>
@@ -365,7 +348,7 @@ class AmazonCloudFormation extends CFRuntime
365
  }
366
 
367
  /**
368
- * Returns the estimated monthly cost of a template. The return value is an AWS Simply Monthly
369
  * Calculator URL with a query string that describes the resources required to run the template.
370
  *
371
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
@@ -430,7 +413,7 @@ class AmazonCloudFormation extends CFRuntime
430
  *
431
  * @param string $stack_name (Required) The name or the unique identifier associated with the stack. Default: There is no default value.
432
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
433
- * <li><code>NextToken</code> - <code>string</code> - Optional - String that identifies the start of the next list of events, if there is one. Default: There is no default value.</li>
434
  * <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>
435
  * <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>
436
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -450,8 +433,8 @@ class AmazonCloudFormation extends CFRuntime
450
  * stacks is returned (including existing stacks and stacks that have been deleted).
451
  *
452
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
453
- * <li><code>NextToken</code> - <code>string</code> - Optional - </li>
454
- * <li><code>StackStatusFilter</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
455
  * <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>
456
  * <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>
457
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1
  <?php
2
  /*
3
+ * Copyright 2010-2012 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.
15
  */
16
 
17
  /**
18
+ * AWS CloudFormation enables you to create and manage AWS infrastructure deployments predictably
19
+ * and repeatedly. AWS CloudFormation helps you leverage AWS products such as Amazon EC2, EBS,
20
+ * Amazon SNS, ELB, and Auto Scaling to build highly-reliable, highly scalable, cost effective
21
+ * applications without worrying about creating and configuring the underlying the AWS
22
+ * infrastructure.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
  *
24
+ * With AWS CloudFormation, you declare all of your resources and dependencies in a template file.
25
+ * The template defines a collection of resources as a single unit called a stack. AWS
26
+ * CloudFormation creates and deletes all member resources of the stack together and manages all
27
+ * dependencies between the resources for you.
28
  *
29
  * For more information about this product, go to the <a href=
30
  * "http://aws.amazon.com/cloudformation/">CloudFormation Product Page</a>.
33
  * information about a specific AWS product, you can find the product's technical documentation at
34
  * <a href="http://aws.amazon.com/documentation/">http://aws.amazon.com/documentation/</a>.
35
  *
36
+ * @version 2012.05.09
37
  * @license See the included NOTICE.md file for complete information.
38
  * @copyright See the included NOTICE.md file for complete information.
39
  * @link http://aws.amazon.com/cloudformation/ AWS CloudFormation
139
  {
140
  $this->api_version = '2010-05-15';
141
  $this->hostname = self::DEFAULT_URL;
142
+ $this->auth_class = 'AuthV4Query';
143
 
144
  return parent::__construct($options);
145
  }
184
  * <li><code>ParameterValue</code> - <code>string</code> - Optional - The value associated with the parameter.</li>
185
  * </ul></li>
186
  * </ul></li>
187
+ * <li><code>DisableRollback</code> - <code>boolean</code> - Optional - Boolean to enable or disable rollback on stack creation failures. Default: <code>false</code></li>
188
  * <li><code>TimeoutInMinutes</code> - <code>integer</code> - Optional - The amount of time that can pass before the stack status becomes CREATE_FAILED; if <code>DisableRollback</code> is not set or is set to <code>false</code>, the stack will be rolled back.</li>
189
  * <li><code>NotificationARNs</code> - <code>string|array</code> - Optional - The Simple Notification Service (SNS) topic ARNs to publish stack related events. You can find your SNS topic ARNs using the <a href="http://console.aws.amazon.com/sns">SNS console</a> or your Command Line Interface (CLI). Pass a string for a single value, or an indexed array for multiple values.</li>
190
  * <li><code>Capabilities</code> - <code>string|array</code> - Optional - The list of capabilities that you want to allow in the stack. If your template contains IAM resources, you must specify the CAPABILITY_IAM value for this parameter; otherwise, this action returns an InsufficientCapabilities error. IAM resources are the following: <a href="http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html">AWS::IAM::AccessKey</a>, <a href="http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-group.html">AWS::IAM::Group</a>, <a href="http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-policy.html">AWS::IAM::Policy</a>, <a href="http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user.html">AWS::IAM::User</a>, and <a href="http://docs.amazonwebservices.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html">AWS::IAM::UserToGroupAddition</a>. Pass a string for a single value, or an indexed array for multiple values.</li>
191
+ * <li><code>OnFailure</code> - <code>string</code> - Optional - [Allowed values: <code>DO_NOTHING</code>, <code>ROLLBACK</code>, <code>DELETE</code>]</li>
192
  * <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>
193
  * <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>
194
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
260
  * </p>
261
  *
262
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
263
+ * <li><code>StackName</code> - <code>string</code> - Optional - The name or the unique identifier associated with the stack. Default: There is no default value.</li>
264
+ * <li><code>NextToken</code> - <code>string</code> - Optional - String that identifies the start of the next list of events, if there is one. Default: There is no default value.</li>
265
  * <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>
266
  * <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>
267
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
280
  * the stack has been deleted.
281
  *
282
  * @param string $stack_name (Required) The name or the unique identifier associated with the stack. Default: There is no default value.
283
+ * @param string $logical_resource_id (Required) The logical name of the resource as specified in the template. Default: There is no default value.
284
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
285
  * <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>
286
  * <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>
317
  *
318
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
319
  * <li><code>StackName</code> - <code>string</code> - Optional - The name or the unique identifier associated with the stack. Default: There is no default value.</li>
320
+ * <li><code>LogicalResourceId</code> - <code>string</code> - Optional - The logical name of the resource as specified in the template. Default: There is no default value.</li>
321
  * <li><code>PhysicalResourceId</code> - <code>string</code> - Optional - The name or unique identifier that corresponds to a physical instance ID of a resource supported by AWS CloudFormation. For example, for an Amazon Elastic Compute Cloud (EC2) instance, <code>PhysicalResourceId</code> corresponds to the <code>InstanceId</code>. You can pass the EC2 <code>InstanceId</code> to <code>DescribeStackResources</code> to find which stack the instance belongs to and what other resources are part of the stack. Default: There is no default value.</li>
322
  * <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>
323
  * <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
  }
349
 
350
  /**
351
+ * Returns the estimated monthly cost of a template. The return value is an AWS Simple Monthly
352
  * Calculator URL with a query string that describes the resources required to run the template.
353
  *
354
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
413
  *
414
  * @param string $stack_name (Required) The name or the unique identifier associated with the stack. Default: There is no default value.
415
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
416
+ * <li><code>NextToken</code> - <code>string</code> - Optional - String that identifies the start of the next list of stack resource summaries, if there is one. Default: There is no default value.</li>
417
  * <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>
418
  * <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>
419
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
433
  * stacks is returned (including existing stacks and stacks that have been deleted).
434
  *
435
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
436
+ * <li><code>NextToken</code> - <code>string</code> - Optional - String that identifies the start of the next list of stacks, if there is one. Default: There is no default value.</li>
437
+ * <li><code>StackStatusFilter</code> - <code>string|array</code> - Optional - Stack status to use as a filter. Specify one or more stack status codes to list only stacks with the specified status codes. For a complete list of stack status codes, see the <code>StackStatus</code> parameter of the <code>Stack</code> data type. Pass a string for a single value, or an indexed array for multiple values.</li>
438
  * <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>
439
  * <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>
440
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
libs/aws/services/cloudfront.class.php CHANGED
@@ -36,7 +36,7 @@ class CloudFront_Exception extends Exception {}
36
  * seamlessly with the Amazon Simple Storage Service, which durably stores the original, definitive versions
37
  * of your files.
38
  *
39
- * @version 2012.01.17
40
  * @license See the included NOTICE.md file for more information.
41
  * @copyright See the included NOTICE.md file for more information.
42
  * @link http://aws.amazon.com/cloudfront/ Amazon CloudFront
@@ -97,7 +97,7 @@ class AmazonCloudFront extends CFRuntime
97
  */
98
  public function __construct(array $options = array())
99
  {
100
- $this->api_version = '2010-11-01';
101
  $this->hostname = self::DEFAULT_URL;
102
  $this->auth_class = 'AuthV2REST';
103
 
@@ -432,6 +432,24 @@ class AmazonCloudFront extends CFRuntime
432
  $required_protocols->addChild('Protocol', $opt['RequiredProtocols']);
433
  }
434
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
435
  // Trusted Signers
436
  if (isset($opt['TrustedSigners']))
437
  {
@@ -612,6 +630,41 @@ class AmazonCloudFront extends CFRuntime
612
  $logging->addChild('Prefix', $xml->Logging->Prefix);
613
  }
614
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
615
  // Trusted Signers
616
  if (isset($opt['TrustedSigners']))
617
  {
@@ -828,7 +881,10 @@ class AmazonCloudFront extends CFRuntime
828
  * <li><code>OriginAccessIdentity</code> - <code>string</code> - Optional - The origin access identity (OAI) associated with this distribution. Use the Identity ID from the OAI, not the <code>CanonicalId</code>. Requires an S3 origin.</li>
829
  * <li><code>OriginProtocolPolicy</code> - <code>string</code> - Optional - The origin protocol policy to apply to your origin. If you specify <code>http-only</code>, CloudFront will use HTTP only to access the origin. If you specify <code>match-viewer</code>, CloudFront will fetch from your origin using HTTP or HTTPS, based on the protocol of the viewer request. [Allowed values: <code>http-only</code>, <code>match-viewer</code>]. The default value is <code>match-viewer</code>. Requires a non-S3 origin.</li>
830
  * <li><code>Streaming</code> - <code>boolean</code> - Optional - Whether or not this should be for a streaming distribution. A value of <code>true</code> creates a streaming distribution. A value of <code>false</code> creates a standard distribution. The default value is <code>false</code>.</li>
 
831
  * <li><code>TrustedSigners</code> - <code>array</code> - Optional - An array of AWS account numbers for users who are trusted signers. Explicity add the value <code>Self</code> to the array to add your own account as a trusted signer.</li>
 
 
832
  * <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>
833
  * <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>
834
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
36
  * seamlessly with the Amazon Simple Storage Service, which durably stores the original, definitive versions
37
  * of your files.
38
  *
39
+ * @version 2012.04.20
40
  * @license See the included NOTICE.md file for more information.
41
  * @copyright See the included NOTICE.md file for more information.
42
  * @link http://aws.amazon.com/cloudfront/ Amazon CloudFront
97
  */
98
  public function __construct(array $options = array())
99
  {
100
+ $this->api_version = '2012-03-15';
101
  $this->hostname = self::DEFAULT_URL;
102
  $this->auth_class = 'AuthV2REST';
103
 
432
  $required_protocols->addChild('Protocol', $opt['RequiredProtocols']);
433
  }
434
 
435
+ // Caching Behavior
436
+ if (isset($opt['CachingBehavior']) && is_array($opt['CachingBehavior']))
437
+ {
438
+ $caching_behavior = $xml->addChild('CachingBehavior');
439
+
440
+ if (isset($opt['CachingBehavior']['MinTTL']))
441
+ {
442
+ $min_ttl = $opt['CachingBehavior']['MinTTL'];
443
+
444
+ if (is_string($min_ttl))
445
+ {
446
+ $min_ttl = strtotime($min_ttl);
447
+ }
448
+
449
+ $caching_behavior->addChild('MinTTL', $min_ttl);
450
+ }
451
+ }
452
+
453
  // Trusted Signers
454
  if (isset($opt['TrustedSigners']))
455
  {
630
  $logging->addChild('Prefix', $xml->Logging->Prefix);
631
  }
632
 
633
+ // Required Protocols
634
+ if (isset($opt['RequiredProtocols']))
635
+ {
636
+ $required_protocols = $xml->addChild('RequiredProtocols');
637
+ $required_protocols->addChild('Protocol', $opt['RequiredProtocols']);
638
+ }
639
+ elseif (isset($xml->RequiredProtocols))
640
+ {
641
+ $required_protocols = $update->addChild('RequiredProtocols');
642
+ $required_protocols->addChild('Protocol', $xml->RequiredProtocols->Protocol);
643
+ }
644
+
645
+ // Caching Behavior
646
+ if (isset($opt['CachingBehavior']) && is_array($opt['CachingBehavior']))
647
+ {
648
+ $caching_behavior = $xml->addChild('CachingBehavior');
649
+
650
+ if (isset($opt['CachingBehavior']['MinTTL']))
651
+ {
652
+ $min_ttl = $opt['CachingBehavior']['MinTTL'];
653
+
654
+ if (is_string($min_ttl))
655
+ {
656
+ $min_ttl = strtotime($min_ttl);
657
+ }
658
+
659
+ $caching_behavior->addChild('MinTTL', $min_ttl);
660
+ }
661
+ }
662
+ elseif (isset($xml->CachingBehavior))
663
+ {
664
+ $caching_behavior = $update->addChild('CachingBehavior');
665
+ $caching_behavior->addChild('MinTTL', $xml->CachingBehavior->MinTTL);
666
+ }
667
+
668
  // Trusted Signers
669
  if (isset($opt['TrustedSigners']))
670
  {
881
  * <li><code>OriginAccessIdentity</code> - <code>string</code> - Optional - The origin access identity (OAI) associated with this distribution. Use the Identity ID from the OAI, not the <code>CanonicalId</code>. Requires an S3 origin.</li>
882
  * <li><code>OriginProtocolPolicy</code> - <code>string</code> - Optional - The origin protocol policy to apply to your origin. If you specify <code>http-only</code>, CloudFront will use HTTP only to access the origin. If you specify <code>match-viewer</code>, CloudFront will fetch from your origin using HTTP or HTTPS, based on the protocol of the viewer request. [Allowed values: <code>http-only</code>, <code>match-viewer</code>]. The default value is <code>match-viewer</code>. Requires a non-S3 origin.</li>
883
  * <li><code>Streaming</code> - <code>boolean</code> - Optional - Whether or not this should be for a streaming distribution. A value of <code>true</code> creates a streaming distribution. A value of <code>false</code> creates a standard distribution. The default value is <code>false</code>.</li>
884
+ * <li><code>Logging</code> - <code>array</code> - Optional - Controls whether access logs are written for the distribution. If you want to turn on access logs, include this element; if you want to turn off access logs, remove this element.</li>
885
  * <li><code>TrustedSigners</code> - <code>array</code> - Optional - An array of AWS account numbers for users who are trusted signers. Explicity add the value <code>Self</code> to the array to add your own account as a trusted signer.</li>
886
+ * <li><code>RequiredProtocols</code> - <code>string<code> - Optional - Use this element to restrict access to your distribution solely to HTTPS requests. Without this element, CloudFront can use any available protocol to serve the request.</li>
887
+ * <li><code>CachingBehavior</code> - <code>array</code> - Optional - Determines the minimum TTL for objects in the CloudFront cache. This value specifies a lower bound for values in the headers for an object, for example, in the Cache-Control max-age directive.</li>
888
  * <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>
889
  * <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>
890
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
libs/aws/services/cloudsearch.class.php ADDED
@@ -0,0 +1,573 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Copyright 2010-2012 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
+ * You use the Configuration Service to create, configure, and manage search domains. Amazon
19
+ * CloudSearch configuration requests are submitted to
20
+ * <code>cloudsearch.us-east-1.amazonaws.com</code> using the AWS Query protocol.
21
+ *
22
+ * @version 2012.04.18
23
+ * @license See the included NOTICE.md file for complete information.
24
+ * @copyright See the included NOTICE.md file for complete information.
25
+ * @link http://aws.amazon.com/cloudsearch/ Amazon CloudSearch
26
+ * @link http://aws.amazon.com/cloudsearch/documentation/ Amazon CloudSearch documentation
27
+ */
28
+ class AmazonCloudSearch extends CFRuntime
29
+ {
30
+ /*%******************************************************************************************%*/
31
+ // CLASS CONSTANTS
32
+
33
+ /**
34
+ * Specify the queue URL for the United States East (Northern Virginia) Region.
35
+ */
36
+ const REGION_US_E1 = 'cloudsearch.us-east-1.amazonaws.com';
37
+
38
+ /**
39
+ * Specify the queue URL for the United States East (Northern Virginia) Region.
40
+ */
41
+ const REGION_VIRGINIA = self::REGION_US_E1;
42
+
43
+ /**
44
+ * Default service endpoint.
45
+ */
46
+ const DEFAULT_URL = self::REGION_US_E1;
47
+
48
+
49
+ /*%******************************************************************************************%*/
50
+ // CONSTRUCTOR
51
+
52
+ /**
53
+ * Constructs a new instance of <AmazonCloudSearch>.
54
+ *
55
+ * @param array $options (Optional) An associative array of parameters that can have the following keys: <ul>
56
+ * <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>
57
+ * <li><code>credentials</code> - <code>string</code> - Optional - The name of the credential set to use for authentication.</li>
58
+ * <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>
59
+ * <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>
60
+ * <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>
61
+ * <li><code>token</code> - <code>string</code> - Optional - An AWS session token.</li></ul>
62
+ * @return void
63
+ */
64
+ public function __construct(array $options = array())
65
+ {
66
+ $this->api_version = '2011-02-01';
67
+ $this->hostname = self::DEFAULT_URL;
68
+ $this->auth_class = 'AuthV4Query';
69
+
70
+ return parent::__construct($options);
71
+ }
72
+
73
+
74
+ /*%******************************************************************************************%*/
75
+ // SETTERS
76
+
77
+ /**
78
+ * This allows you to explicitly sets the region for the service to use.
79
+ *
80
+ * @param string $region (Required) The region to explicitly set. Available options are <REGION_US_E1>.
81
+ * @return $this A reference to the current instance.
82
+ */
83
+ public function set_region($region)
84
+ {
85
+ // @codeCoverageIgnoreStart
86
+ $this->set_hostname($region);
87
+ return $this;
88
+ // @codeCoverageIgnoreEnd
89
+ }
90
+
91
+
92
+ /*%******************************************************************************************%*/
93
+ // SERVICE METHODS
94
+
95
+ /**
96
+ * Creates a new search domain.
97
+ *
98
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
99
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
100
+ * <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>
101
+ * <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>
102
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
103
+ */
104
+ public function create_domain($domain_name, $opt = null)
105
+ {
106
+ if (!$opt) $opt = array();
107
+ $opt['DomainName'] = $domain_name;
108
+
109
+ return $this->authenticate('CreateDomain', $opt);
110
+ }
111
+
112
+ /**
113
+ * Configures an <code>IndexField</code> for the search domain. Used to create new fields and
114
+ * modify existing ones. If the field exists, the new configuration replaces the old one. You can
115
+ * configure a maximum of 200 index fields.
116
+ *
117
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
118
+ * @param array $index_field (Required) Defines a field in the index, including its name, type, and the source of its data. The <code>IndexFieldType</code> indicates which of the options will be present. It is invalid to specify options for a type other than the <code>IndexFieldType</code>. <ul>
119
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
120
+ * <li><code>IndexFieldName</code> - <code>string</code> - Required - The name of a field in the search index. Field names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Uppercase letters and hyphens are not allowed. The names "body", "docid", and "text_relevance" are reserved and cannot be specified as field or rank expression names. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9_]*</code>]</li>
121
+ * <li><code>IndexFieldType</code> - <code>string</code> - Required - The type of field. Based on this type, exactly one of the <code>UIntOptions</code>, <code>LiteralOptions</code> or <code>TextOptions</code> must be present. [Allowed values: <code>uint</code>, <code>literal</code>, <code>text</code>]</li>
122
+ * <li><code>UIntOptions</code> - <code>array</code> - Optional - Options for an unsigned integer field. Present if <code>IndexFieldType</code> specifies the field is of type unsigned integer. <ul>
123
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
124
+ * <li><code>DefaultValue</code> - <code>integer</code> - Optional - The default value for an unsigned integer field.</li>
125
+ * </ul></li>
126
+ * </ul></li>
127
+ * <li><code>LiteralOptions</code> - <code>array</code> - Optional - Options for literal field. Present if <code>IndexFieldType</code> specifies the field is of type literal. <ul>
128
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
129
+ * <li><code>DefaultValue</code> - <code>string</code> - Optional - The default value for a literal field.</li>
130
+ * <li><code>SearchEnabled</code> - <code>boolean</code> - Optional - Specifies whether search is enabled for this field.</li>
131
+ * <li><code>FacetEnabled</code> - <code>boolean</code> - Optional - Specifies whether facets are enabled for this field.</li>
132
+ * <li><code>ResultEnabled</code> - <code>boolean</code> - Optional - Specifies whether values of this field can be returned in search results and used for ranking.</li>
133
+ * </ul></li>
134
+ * </ul></li>
135
+ * <li><code>TextOptions</code> - <code>array</code> - Optional - Options for text field. Present if <code>IndexFieldType</code> specifies the field is of type text. <ul>
136
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
137
+ * <li><code>DefaultValue</code> - <code>string</code> - Optional - The default value for a text field.</li>
138
+ * <li><code>FacetEnabled</code> - <code>boolean</code> - Optional - Specifies whether facets are enabled for this field.</li>
139
+ * <li><code>ResultEnabled</code> - <code>boolean</code> - Optional - Specifies whether values of this field can be returned in search results and used for ranking.</li>
140
+ * </ul></li>
141
+ * </ul></li>
142
+ * <li><code>SourceAttributes</code> - <code>array</code> - Optional - An optional list of source attributes that provide data for this index field. If not specified, the data is pulled from a source attribute with the same name as this <code>IndexField</code>. When one or more source attributes are specified, an optional data transformation can be applied to the source data when populating the index field. You can configure a maximum of 20 sources for an <code>IndexField</code>. <ul>
143
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
144
+ * <li><code>SourceDataFunction</code> - <code>string</code> - Required - Identifies the transformation to apply when copying data from a source attribute. [Allowed values: <code>Copy</code>, <code>TrimTitle</code>, <code>Map</code>]</li>
145
+ * <li><code>SourceDataCopy</code> - <code>array</code> - Optional - Copies data from a source document attribute to an <code>IndexField</code>. <ul>
146
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
147
+ * <li><code>SourceName</code> - <code>string</code> - Required - The name of the document source field to add to this <code>IndexField</code>. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9_]*</code>]</li>
148
+ * <li><code>DefaultValue</code> - <code>string</code> - Optional - The value of a field or source document attribute.</li>
149
+ * </ul></li>
150
+ * </ul></li>
151
+ * <li><code>SourceDataTrimTitle</code> - <code>array</code> - Optional - Trims common title words from a source document attribute when populating an <code>IndexField</code>. This can be used to create an <code>IndexField</code> you can use for sorting. <ul>
152
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
153
+ * <li><code>SourceName</code> - <code>string</code> - Required - The name of the document source field to add to this <code>IndexField</code>. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9_]*</code>]</li>
154
+ * <li><code>DefaultValue</code> - <code>string</code> - Optional - The value of a field or source document attribute.</li>
155
+ * <li><code>Separator</code> - <code>string</code> - Optional - The separator that follows the text to trim.</li>
156
+ * <li><code>Language</code> - <code>string</code> - Optional - An <a href="http://tools.ietf.org/html/rfc4646">IETF RFC 4646</a> language code. Only the primary language is considered. English (en) is currently the only supported language. [Constraints: The value must match the following regular expression pattern: <code>[a-zA-Z]{2,8}(?:-[a-zA-Z]{2,8})*</code>]</li>
157
+ * </ul></li>
158
+ * </ul></li>
159
+ * <li><code>SourceDataMap</code> - <code>array</code> - Optional - Maps source document attribute values to new values when populating the <code>IndexField</code>. <ul>
160
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
161
+ * <li><code>SourceName</code> - <code>string</code> - Required - The name of the document source field to add to this <code>IndexField</code>. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9_]*</code>]</li>
162
+ * <li><code>DefaultValue</code> - <code>string</code> - Optional - The value of a field or source document attribute.</li>
163
+ * <li><code>Cases</code> - <code>array</code> - Optional - A map that translates source field values to custom values. <ul>
164
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
165
+ * <li><code>[custom-key]</code> - <code>string</code> - Optional - The value of a field or source document attribute.</li>
166
+ * </ul></li>
167
+ * </ul></li>
168
+ * </ul></li>
169
+ * </ul></li>
170
+ * </ul></li>
171
+ * </ul></li>
172
+ * </ul></li>
173
+ * </ul>
174
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
175
+ * <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>
176
+ * <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>
177
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
178
+ */
179
+ public function define_index_field($domain_name, $index_field, $opt = null)
180
+ {
181
+ if (!$opt) $opt = array();
182
+ $opt['DomainName'] = $domain_name;
183
+
184
+ // Required map (non-list)
185
+ $opt = array_merge($opt, CFComplexType::map(array(
186
+ 'IndexField' => (is_array($index_field) ? $index_field : array($index_field))
187
+ ), 'member'));
188
+
189
+ return $this->authenticate('DefineIndexField', $opt);
190
+ }
191
+
192
+ /**
193
+ * Configures a <code>RankExpression</code> for the search domain. Used to create new rank
194
+ * expressions and modify existing ones. If the expression exists, the new configuration replaces
195
+ * the old one. You can configure a maximum of 50 rank expressions.
196
+ *
197
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
198
+ * @param array $rank_expression (Required) A named expression that can be evaluated at search time and used for ranking or thresholding in a search query. <ul>
199
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
200
+ * <li><code>RankName</code> - <code>string</code> - Required - The name of a rank expression. Rank expression names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Uppercase letters and hyphens are not allowed. The names "body", "docid", and "text_relevance" are reserved and cannot be specified as field or rank expression names. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9_]*</code>]</li>
201
+ * <li><code>RankExpression</code> - <code>string</code> - Required - The expression to evaluate for ranking or thresholding while processing a search request. The <code>RankExpression</code> syntax is based on JavaScript expressions and supports:<ul><li>Integer, floating point, hex and octal literals</li><li>Shortcut evaluation of logical operators such that an expression <code>a || b</code> evaluates to the value <code>a</code> if <code>a</code> is <code>true</code> without evaluting <code>b</code> at all</li><li>JavaScript order of precendence for operators</li><li>Arithmetic operators: <code>+ - * / %</code> </li><li>Boolean operators (including the ternary operator)</li><li>Bitwise operators</li><li>Comparison operators</li><li>Common mathematic functions: <code>abs ceil erf exp floor lgamma ln log2 log10 max min sqrt pow</code> </li><li>Trigonometric library functions: <code>acosh acos asinh asin atanh atan cosh cos sinh sin tanh tan</code> </li><li>Random generation of a number between 0 and 1: <code>rand</code> </li><li>Current time in epoch: <code>time</code> </li><li>The <code>min max</code> functions that operate on a variable argument list</li></ul>Intermediate results are calculated as double precision floating point values. The final return value of a <code>RankExpression</code> is automatically converted from floating point to a 32-bit unsigned integer by rounding to the nearest integer, with a natural floor of 0 and a ceiling of max(uint32_t), 4294967295. Mathematical errors such as dividing by 0 will fail during evaluation and return a value of 0. The source data for a <code>RankExpression</code> can be the name of an <code>IndexField</code> of type uint, another <code>RankExpression</code> or the reserved name <em>text_relevance</em>. The text_relevance source is defined to return an integer from 0 to 1000 (inclusive) to indicate how relevant a document is to the search request, taking into account repetition of search terms in the document and proximity of search terms to each other in each matching <code>IndexField</code> in the document. For more information about using rank expressions to customize ranking, see the Amazon CloudSearch Developer Guide.</li>
202
+ * </ul></li>
203
+ * </ul>
204
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
205
+ * <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>
206
+ * <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>
207
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
208
+ */
209
+ public function define_rank_expression($domain_name, $rank_expression, $opt = null)
210
+ {
211
+ if (!$opt) $opt = array();
212
+ $opt['DomainName'] = $domain_name;
213
+
214
+ // Required map (non-list)
215
+ $opt = array_merge($opt, CFComplexType::map(array(
216
+ 'RankExpression' => (is_array($rank_expression) ? $rank_expression : array($rank_expression))
217
+ ), 'member'));
218
+
219
+ return $this->authenticate('DefineRankExpression', $opt);
220
+ }
221
+
222
+ /**
223
+ * Permanently deletes a search domain and all of its data.
224
+ *
225
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
226
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
227
+ * <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>
228
+ * <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>
229
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
230
+ */
231
+ public function delete_domain($domain_name, $opt = null)
232
+ {
233
+ if (!$opt) $opt = array();
234
+ $opt['DomainName'] = $domain_name;
235
+
236
+ return $this->authenticate('DeleteDomain', $opt);
237
+ }
238
+
239
+ /**
240
+ * Removes an <code>IndexField</code> from the search domain.
241
+ *
242
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
243
+ * @param string $index_field_name (Required) A string that represents the name of an index field. Field names must begin with a letter and can contain the following characters: a-z (lowercase), 0-9, and _ (underscore). Uppercase letters and hyphens are not allowed. The names "body", "docid", and "text_relevance" are reserved and cannot be specified as field or rank expression names. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9_]*</code>]
244
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
245
+ * <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>
246
+ * <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>
247
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
248
+ */
249
+ public function delete_index_field($domain_name, $index_field_name, $opt = null)
250
+ {
251
+ if (!$opt) $opt = array();
252
+ $opt['DomainName'] = $domain_name;
253
+ $opt['IndexFieldName'] = $index_field_name;
254
+
255
+ return $this->authenticate('DeleteIndexField', $opt);
256
+ }
257
+
258
+ /**
259
+ * Removes a <code>RankExpression</code> from the search domain.
260
+ *
261
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
262
+ * @param string $rank_name (Required) The name of the <code>RankExpression</code> to delete. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9_]*</code>]
263
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
264
+ * <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>
265
+ * <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>
266
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
267
+ */
268
+ public function delete_rank_expression($domain_name, $rank_name, $opt = null)
269
+ {
270
+ if (!$opt) $opt = array();
271
+ $opt['DomainName'] = $domain_name;
272
+ $opt['RankName'] = $rank_name;
273
+
274
+ return $this->authenticate('DeleteRankExpression', $opt);
275
+ }
276
+
277
+ /**
278
+ * Gets the default search field configured for the search domain.
279
+ *
280
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
281
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
282
+ * <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>
283
+ * <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>
284
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
285
+ */
286
+ public function describe_default_search_field($domain_name, $opt = null)
287
+ {
288
+ if (!$opt) $opt = array();
289
+ $opt['DomainName'] = $domain_name;
290
+
291
+ return $this->authenticate('DescribeDefaultSearchField', $opt);
292
+ }
293
+
294
+ /**
295
+ * Gets information about the search domains owned by this account. Can be limited to specific
296
+ * domains. Shows all domains by default.
297
+ *
298
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
299
+ * <li><code>DomainNames</code> - <code>string|array</code> - Optional - Limits the DescribeDomains response to the specified search domains. Pass a string for a single value, or an indexed array for multiple values.</li>
300
+ * <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>
301
+ * <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>
302
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
303
+ */
304
+ public function describe_domains($opt = null)
305
+ {
306
+ if (!$opt) $opt = array();
307
+
308
+ // Optional list (non-map)
309
+ if (isset($opt['DomainNames']))
310
+ {
311
+ $opt = array_merge($opt, CFComplexType::map(array(
312
+ 'DomainNames' => (is_array($opt['DomainNames']) ? $opt['DomainNames'] : array($opt['DomainNames']))
313
+ ), 'member'));
314
+ unset($opt['DomainNames']);
315
+ }
316
+
317
+ return $this->authenticate('DescribeDomains', $opt);
318
+ }
319
+
320
+ /**
321
+ * Gets information about the index fields configured for the search domain. Can be limited to
322
+ * specific fields by name. Shows all fields by default.
323
+ *
324
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
325
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
326
+ * <li><code>FieldNames</code> - <code>string|array</code> - Optional - Limits the <code>DescribeIndexFields</code> response to the specified fields. Pass a string for a single value, or an indexed array for multiple values.</li>
327
+ * <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>
328
+ * <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>
329
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
330
+ */
331
+ public function describe_index_fields($domain_name, $opt = null)
332
+ {
333
+ if (!$opt) $opt = array();
334
+ $opt['DomainName'] = $domain_name;
335
+
336
+ // Optional list (non-map)
337
+ if (isset($opt['FieldNames']))
338
+ {
339
+ $opt = array_merge($opt, CFComplexType::map(array(
340
+ 'FieldNames' => (is_array($opt['FieldNames']) ? $opt['FieldNames'] : array($opt['FieldNames']))
341
+ ), 'member'));
342
+ unset($opt['FieldNames']);
343
+ }
344
+
345
+ return $this->authenticate('DescribeIndexFields', $opt);
346
+ }
347
+
348
+ /**
349
+ * Gets the rank expressions configured for the search domain. Can be limited to specific rank
350
+ * expressions by name. Shows all rank expressions by default.
351
+ *
352
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
353
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
354
+ * <li><code>RankNames</code> - <code>string|array</code> - Optional - Limits the <code>DescribeRankExpressions</code> response to the specified fields. Pass a string for a single value, or an indexed array for multiple values.</li>
355
+ * <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>
356
+ * <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>
357
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
358
+ */
359
+ public function describe_rank_expressions($domain_name, $opt = null)
360
+ {
361
+ if (!$opt) $opt = array();
362
+ $opt['DomainName'] = $domain_name;
363
+
364
+ // Optional list (non-map)
365
+ if (isset($opt['RankNames']))
366
+ {
367
+ $opt = array_merge($opt, CFComplexType::map(array(
368
+ 'RankNames' => (is_array($opt['RankNames']) ? $opt['RankNames'] : array($opt['RankNames']))
369
+ ), 'member'));
370
+ unset($opt['RankNames']);
371
+ }
372
+
373
+ return $this->authenticate('DescribeRankExpressions', $opt);
374
+ }
375
+
376
+ /**
377
+ * Gets information about the resource-based policies that control access to the domain's document
378
+ * and search services.
379
+ *
380
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</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 describe_service_access_policies($domain_name, $opt = null)
387
+ {
388
+ if (!$opt) $opt = array();
389
+ $opt['DomainName'] = $domain_name;
390
+
391
+ return $this->authenticate('DescribeServiceAccessPolicies', $opt);
392
+ }
393
+
394
+ /**
395
+ * Gets the stemming dictionary configured for the search domain.
396
+ *
397
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
398
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
399
+ * <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>
400
+ * <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>
401
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
402
+ */
403
+ public function describe_stemming_options($domain_name, $opt = null)
404
+ {
405
+ if (!$opt) $opt = array();
406
+ $opt['DomainName'] = $domain_name;
407
+
408
+ return $this->authenticate('DescribeStemmingOptions', $opt);
409
+ }
410
+
411
+ /**
412
+ * Gets the stopwords configured for the search domain.
413
+ *
414
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
415
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
416
+ * <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>
417
+ * <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>
418
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
419
+ */
420
+ public function describe_stopword_options($domain_name, $opt = null)
421
+ {
422
+ if (!$opt) $opt = array();
423
+ $opt['DomainName'] = $domain_name;
424
+
425
+ return $this->authenticate('DescribeStopwordOptions', $opt);
426
+ }
427
+
428
+ /**
429
+ * Gets the synonym dictionary configured for the search domain.
430
+ *
431
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
432
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
433
+ * <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>
434
+ * <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>
435
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
436
+ */
437
+ public function describe_synonym_options($domain_name, $opt = null)
438
+ {
439
+ if (!$opt) $opt = array();
440
+ $opt['DomainName'] = $domain_name;
441
+
442
+ return $this->authenticate('DescribeSynonymOptions', $opt);
443
+ }
444
+
445
+ /**
446
+ * Tells the search domain to start indexing its documents using the latest text processing
447
+ * options and <code>IndexFields</code>. This operation must be invoked to make options whose
448
+ * <code>OptionStatus</code> has <code>OptionState</code> of <code>RequiresIndexDocuments</code>
449
+ * visible in search results.
450
+ *
451
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
452
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
453
+ * <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>
454
+ * <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>
455
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
456
+ */
457
+ public function index_documents($domain_name, $opt = null)
458
+ {
459
+ if (!$opt) $opt = array();
460
+ $opt['DomainName'] = $domain_name;
461
+
462
+ return $this->authenticate('IndexDocuments', $opt);
463
+ }
464
+
465
+ /**
466
+ * Configures the default search field for the search domain. The default search field is used
467
+ * when a search request does not specify which fields to search. By default, it is configured to
468
+ * include the contents of all of the domain's text fields.
469
+ *
470
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
471
+ * @param string $default_search_field (Required) The <code>IndexField</code> to use for search requests issued with the <code>q</code> parameter. The default is an empty string, which automatically searches all text fields.
472
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
473
+ * <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>
474
+ * <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>
475
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
476
+ */
477
+ public function update_default_search_field($domain_name, $default_search_field, $opt = null)
478
+ {
479
+ if (!$opt) $opt = array();
480
+ $opt['DomainName'] = $domain_name;
481
+ $opt['DefaultSearchField'] = $default_search_field;
482
+
483
+ return $this->authenticate('UpdateDefaultSearchField', $opt);
484
+ }
485
+
486
+ /**
487
+ * Configures the policies that control access to the domain's document and search services. The
488
+ * maximum size of an access policy document is 100KB.
489
+ *
490
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
491
+ * @param string $access_policies (Required) An IAM access policy as described in <a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?AccessPolicyLanguage.html" target="_blank">The Access Policy Language</a> in <em>Using AWS Identity and Access Management</em>. The maximum size of an access policy document is 100KB. Example: <code>{"Statement": [{"Effect":"Allow", "Action": "*", "Resource": "arn:aws:cs:us-east-1:1234567890:search/movies", "Condition": { "IpAddress": { aws:SourceIp": ["203.0.113.1/32"] } }}, {"Effect":"Allow", "Action": "*", "Resource": "arn:aws:cs:us-east-1:1234567890:documents/movies", "Condition": { "IpAddress": { aws:SourceIp": ["203.0.113.1/32"] } }} ]}</code>
492
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
493
+ * <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>
494
+ * <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>
495
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
496
+ */
497
+ public function update_service_access_policies($domain_name, $access_policies, $opt = null)
498
+ {
499
+ if (!$opt) $opt = array();
500
+ $opt['DomainName'] = $domain_name;
501
+ $opt['AccessPolicies'] = $access_policies;
502
+
503
+ return $this->authenticate('UpdateServiceAccessPolicies', $opt);
504
+ }
505
+
506
+ /**
507
+ * Configures a stemming dictionary for the search domain. The stemming dictionary is used during
508
+ * indexing and when processing search requests. The maximum size of the stemming dictionary is
509
+ * 500KB.
510
+ *
511
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
512
+ * @param string $stems (Required) Maps terms to their stems, serialized as a JSON document. The document has a single object with one property "stems" whose value is an object mapping terms to their stems. The maximum size of a stemming document is 500KB. Example: <code>{ "stems": {"people": "person", "walking": "walk"} }</code>
513
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
514
+ * <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>
515
+ * <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>
516
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
517
+ */
518
+ public function update_stemming_options($domain_name, $stems, $opt = null)
519
+ {
520
+ if (!$opt) $opt = array();
521
+ $opt['DomainName'] = $domain_name;
522
+ $opt['Stems'] = $stems;
523
+
524
+ return $this->authenticate('UpdateStemmingOptions', $opt);
525
+ }
526
+
527
+ /**
528
+ * Configures stopwords for the search domain. Stopwords are used during indexing and when
529
+ * processing search requests. The maximum size of the stopwords dictionary is 10KB.
530
+ *
531
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
532
+ * @param string $stopwords (Required) Lists stopwords serialized as a JSON document. The document has a single object with one property "stopwords" whose value is an array of strings. The maximum size of a stopwords document is 10KB. Example: <code>{ "stopwords": ["a", "an", "the", "of"] }</code>
533
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
534
+ * <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>
535
+ * <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>
536
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
537
+ */
538
+ public function update_stopword_options($domain_name, $stopwords, $opt = null)
539
+ {
540
+ if (!$opt) $opt = array();
541
+ $opt['DomainName'] = $domain_name;
542
+ $opt['Stopwords'] = $stopwords;
543
+
544
+ return $this->authenticate('UpdateStopwordOptions', $opt);
545
+ }
546
+
547
+ /**
548
+ * Configures a synonym dictionary for the search domain. The synonym dictionary is used during
549
+ * indexing to configure mappings for terms that occur in text fields. The maximum size of the
550
+ * synonym dictionary is 100KB.
551
+ *
552
+ * @param string $domain_name (Required) A string that represents the name of a domain. Domain names must be unique across the domains owned by an account within an AWS region. Domain names must start with a letter or number and can contain the following characters: a-z (lowercase), 0-9, and - (hyphen). Uppercase letters and underscores are not allowed. [Constraints: The value must be between 3 and 28 characters, and must match the following regular expression pattern: <code>[a-z][a-z0-9\-]+</code>]
553
+ * @param string $synonyms (Required) Maps terms to their synonyms, serialized as a JSON document. The document has a single object with one property "synonyms" whose value is an object mapping terms to their synonyms. Each synonym is a simple string or an array of strings. The maximum size of a stopwords document is 100KB. Example: <code>{ "synonyms": {"cat": ["feline", "kitten"], "puppy": "dog"} }</code>
554
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
555
+ * <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>
556
+ * <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>
557
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
558
+ */
559
+ public function update_synonym_options($domain_name, $synonyms, $opt = null)
560
+ {
561
+ if (!$opt) $opt = array();
562
+ $opt['DomainName'] = $domain_name;
563
+ $opt['Synonyms'] = $synonyms;
564
+
565
+ return $this->authenticate('UpdateSynonymOptions', $opt);
566
+ }
567
+ }
568
+
569
+
570
+ /*%******************************************************************************************%*/
571
+ // EXCEPTIONS
572
+
573
+ class CloudSearch_Exception extends Exception {}
libs/aws/services/dynamodb.class.php CHANGED
@@ -17,11 +17,11 @@
17
  /**
18
  * Amazon DynamoDB is a fast, highly scalable, highly available, cost-effective non-relational
19
  * database service.
20
- *
21
  * Amazon DynamoDB removes traditional scalability limitations on data storage while maintaining
22
  * low latency and predictable performance.
23
  *
24
- * @version 2012.01.16
25
  * @license See the included NOTICE.md file for complete information.
26
  * @copyright See the included NOTICE.md file for complete information.
27
  * @link http://aws.amazon.com/dynamodb/ Amazon DynamoDB
@@ -42,6 +42,26 @@ class AmazonDynamoDB extends CFRuntime
42
  */
43
  const REGION_VIRGINIA = self::REGION_US_E1;
44
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  /**
46
  * Default service endpoint.
47
  */
@@ -221,13 +241,18 @@ class AmazonDynamoDB extends CFRuntime
221
  // @codeCoverageIgnoreEnd
222
  }
223
 
224
- $token = new AmazonSTS($options);
225
- $token->set_cache_config($this->credentials->default_cache_config);
226
- $response = $token->cache(3600)->get_session_token();
 
 
 
 
227
 
228
- $this->key = (string) $response->body->GetSessionTokenResult->Credentials->AccessKeyId;
229
- $this->secret_key = (string) $response->body->GetSessionTokenResult->Credentials->SecretAccessKey;
230
- $this->auth_token = (string) $response->body->GetSessionTokenResult->Credentials->SessionToken;
 
231
  }
232
 
233
 
@@ -237,7 +262,7 @@ class AmazonDynamoDB extends CFRuntime
237
  /**
238
  * This allows you to explicitly sets the region for the service to use.
239
  *
240
- * @param string $region (Required) The region to explicitly set. Available options are <REGION_US_E1>.
241
  * @return $this A reference to the current instance.
242
  */
243
  public function set_region($region)
@@ -249,18 +274,177 @@ class AmazonDynamoDB extends CFRuntime
249
  }
250
 
251
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
252
  /*%******************************************************************************************%*/
253
  // SERVICE METHODS
254
 
255
  /**
256
  * Retrieves the attributes for multiple items from multiple tables using their primary keys.
257
- *
258
  * The maximum number of item attributes that can be retrieved for a single operation is 100.
259
  * Also, the number of items retrieved is constrained by a 1 MB the size limit. If the response
260
  * size limit is exceeded or a partial result is returned due to an internal processing failure,
261
  * Amazon DynamoDB returns an <code>UnprocessedKeys</code> value so you can retry the operation
262
  * starting with the next item to get.
263
- *
264
  * Amazon DynamoDB automatically adjusts the number of items returned per page to enforce this
265
  * limit. For example, even if you ask to retrieve 100 items, but each individual item is 50k in
266
  * size, the system returns 20 items and an appropriate <code>UnprocessedKeys</code> value so you
@@ -269,19 +453,68 @@ class AmazonDynamoDB extends CFRuntime
269
  *
270
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
271
  * <li><code>RequestItems</code> - <code>array</code> - Required - A map of the table name and corresponding items to get by primary key. While requesting items, each table name can be invoked only once per operation. <ul>
272
- * <li><code>[table_name]</code> - <code>array</code> - Optional - The name of the table to use for the lookup. <ul>
273
- * <li><code>Keys</code> - <code>array</code> - Required - <p>The primary key that uniquely identifies each item in a table. A primary key can be a one attribute (hash) primary key or a two attribute (hash-and-range) primary key.</p> <ul>
274
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
275
  * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
276
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
277
  * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
278
  * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
279
  * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
280
  * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
281
  * </ul></li>
282
  * </ul></li>
283
- * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
284
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
 
 
 
 
 
 
 
 
285
  * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
286
  * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
287
  * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
@@ -290,27 +523,32 @@ class AmazonDynamoDB extends CFRuntime
290
  * </ul></li>
291
  * </ul></li>
292
  * </ul></li>
293
- * <li><code>AttributesToGet</code> - <code>string|array</code> - Optional - List of <code>Attribute</code> names. If attribute names are not specified then all attributes will be returned. If some attributes are not found, they will not appear in the result. Pass a string for a single value, or an indexed array for multiple values.</li>
 
 
 
 
 
294
  * </ul></li>
295
  * </ul></li>
296
  * <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>
297
  * <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>
298
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
299
  */
300
- public function batch_get_item($opt = null)
301
  {
302
  if (!$opt) $opt = array();
303
-
304
  $opt = json_encode($opt);
305
- return $this->authenticate('BatchGetItem', $opt);
306
  }
307
 
308
  /**
309
  * Adds a new table to your account.
310
- *
311
  * The table name must be unique among those associated with the AWS Account issuing the request,
312
  * and the AWS Region that receives the request (e.g. <code>us-east-1</code>).
313
- *
314
  * The <code>CreateTable</code> operation triggers an asynchronous workflow to begin creating the
315
  * table. Amazon DynamoDB immediately returns the state of the table (<code>CREATING</code>) until
316
  * the table is in the <code>ACTIVE</code> state. Once the table is in the <code>ACTIVE</code>
@@ -319,26 +557,18 @@ class AmazonDynamoDB extends CFRuntime
319
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
320
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table you want to create. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
321
  * <li><code>KeySchema</code> - <code>array</code> - Required - The KeySchema identifies the primary key as a one attribute primary key (hash) or a composite two attribute (hash-and-range) primary key. Single attribute primary keys have one index value: a <code>HashKeyElement</code>. A composite hash-and-range primary key contains two attribute values: a <code>HashKeyElement</code> and a <code>RangeKeyElement</code>. <ul>
322
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
323
- * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
324
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
325
- * <li><code>AttributeName</code> - <code>string</code> - Required - The <code>AttributeName</code> of the <code>KeySchemaElement</code>.</li>
326
- * <li><code>AttributeType</code> - <code>string</code> - Required - The <code>AttributeType</code> of the <code>KeySchemaElement</code> which can be a <code>String</code> or a <code>Number</code>. [Allowed values: <code>S</code>, <code>N</code>]</li>
327
- * </ul></li>
328
- * </ul></li>
329
- * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
330
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
331
- * <li><code>AttributeName</code> - <code>string</code> - Required - The <code>AttributeName</code> of the <code>KeySchemaElement</code>.</li>
332
- * <li><code>AttributeType</code> - <code>string</code> - Required - The <code>AttributeType</code> of the <code>KeySchemaElement</code> which can be a <code>String</code> or a <code>Number</code>. [Allowed values: <code>S</code>, <code>N</code>]</li>
333
- * </ul></li>
334
- * </ul></li>
335
  * </ul></li>
336
  * </ul></li>
337
  * <li><code>ProvisionedThroughput</code> - <code>array</code> - Required - Provisioned throughput reserves the required read and write resources for your table in terms of <code>ReadCapacityUnits</code> and <code>WriteCapacityUnits</code>. Values for provisioned throughput depend upon your expected read/write rates, item size, and consistency. Provide the expected number of read and write operations, assuming an item size of 1k and strictly consistent reads. For 2k item size, double the value. For 3k, triple the value, etc. Eventually-consistent reads consume half the resources of strictly consistent reads. <ul>
338
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
339
- * <li><code>ReadCapacityUnits</code> - <code>long</code> - Required - <code>ReadCapacityUnits</code> are in terms of strictly consistent reads, assuming items of 1k. 2k items require twice the <code>ReadCapacityUnits</code>. Eventually-consistent reads only require half the <code>ReadCapacityUnits</code> of stirctly consistent reads.</li>
340
- * <li><code>WriteCapacityUnits</code> - <code>long</code> - Required - <code>WriteCapacityUnits</code> are in terms of strictly consistent reads, assuming items of 1k. 2k items require twice the <code>WriteCapacityUnits</code>.</li>
341
- * </ul></li>
342
  * </ul></li>
343
  * <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>
344
  * <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>
@@ -347,55 +577,42 @@ class AmazonDynamoDB extends CFRuntime
347
  public function create_table($opt = null)
348
  {
349
  if (!$opt) $opt = array();
350
-
351
  $opt = json_encode($opt);
352
  return $this->authenticate('CreateTable', $opt);
353
  }
354
 
355
  /**
356
  * Deletes a single item in a table by primary key.
357
- *
358
  * You can perform a conditional delete operation that deletes the item if it exists, or if it has
359
  * an expected attribute value.
360
  *
361
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
362
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table in which you want to delete an item. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
363
  * <li><code>Key</code> - <code>array</code> - Required - The primary key that uniquely identifies each item in a table. A primary key can be a one attribute (hash) primary key or a two attribute (hash-and-range) primary key. <ul>
364
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
365
- * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
366
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
367
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
368
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
369
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
370
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
371
- * </ul></li>
372
- * </ul></li>
373
- * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
374
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
375
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
376
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
377
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
378
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
379
- * </ul></li>
380
- * </ul></li>
381
  * </ul></li>
382
  * </ul></li>
383
  * <li><code>Expected</code> - <code>array</code> - Optional - Designates an attribute for a conditional modification. The <code>Expected</code> parameter allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute has a particular value before modifying it. <ul>
384
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
385
- * <li><code>key</code> - <code>string</code> - Optional - </li>
386
- * <li><code>value</code> - <code>array</code> - Optional - Allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute value already exists; or if the attribute value exists and has a particular value before changing it. <ul>
387
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
388
- * <li><code>Value</code> - <code>array</code> - Optional - Specify whether or not a value already exists and has a specific content for the attribute name-value pair. <ul>
389
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
390
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
391
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
392
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
393
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
394
- * </ul></li>
395
- * </ul></li>
396
- * <li><code>Exists</code> - <code>boolean</code> - Optional - Specify whether or not a value already exists for the attribute name-value pair.</li>
397
- * </ul></li>
398
  * </ul></li>
 
399
  * </ul></li>
400
  * </ul></li>
401
  * <li><code>ReturnValues</code> - <code>string</code> - Optional - Use this parameter if you want to get the attribute name-value pairs before or after they are modified. For <code>PUT</code> operations, the possible parameter values are <code>NONE</code> (default) or <code>ALL_OLD</code>. For update operations, the possible parameter values are <code>NONE</code> (default) or <code>ALL_OLD</code>, <code>UPDATED_OLD</code>, <code>ALL_NEW</code> or <code>UPDATED_NEW</code>.<ul><li> <code>NONE</code>: Nothing is returned.</li><li> <code>ALL_OLD</code>: Returns the attributes of the item as they were before the operation.</li><li> <code>UPDATED_OLD</code>: Returns the values of the updated attributes, only, as they were before the operation.</li><li> <code>ALL_NEW</code>: Returns all the attributes and their new values after the operation.</li><li> <code>UPDATED_NEW</code>: Returns the values of the updated attributes, only, as they are after the operation.</li></ul> [Allowed values: <code>NONE</code>, <code>ALL_OLD</code>, <code>UPDATED_OLD</code>, <code>ALL_NEW</code>, <code>UPDATED_NEW</code>]</li>
@@ -406,16 +623,16 @@ class AmazonDynamoDB extends CFRuntime
406
  public function delete_item($opt = null)
407
  {
408
  if (!$opt) $opt = array();
409
-
410
  $opt = json_encode($opt);
411
  return $this->authenticate('DeleteItem', $opt);
412
  }
413
 
414
  /**
415
  * Deletes a table and all of its items.
416
- *
417
  * If the table is in the <code>ACTIVE</code> state, you can delete it. If a table is in
418
- * <code>CREATING</code> or <code>UPDATING</code> states then <code>DeleteTable</code> returns a
419
  * <code>ResourceInUseException</code>. If the specified table does not exist, Amazon DynamoDB
420
  * returns a <code>ResourceNotFoundException</code>.
421
  *
@@ -428,7 +645,7 @@ class AmazonDynamoDB extends CFRuntime
428
  public function delete_table($opt = null)
429
  {
430
  if (!$opt) $opt = array();
431
-
432
  $opt = json_encode($opt);
433
  return $this->authenticate('DeleteTable', $opt);
434
  }
@@ -436,8 +653,8 @@ class AmazonDynamoDB extends CFRuntime
436
  /**
437
  * Retrieves information about the table, including the current status of the table, the primary
438
  * key schema and when the table was created.
439
- *
440
- * If the table does not exist, the server returns a <code>ResourceNotFoundException</code>.
441
  *
442
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
443
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table you want to describe. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
@@ -448,14 +665,14 @@ class AmazonDynamoDB extends CFRuntime
448
  public function describe_table($opt = null)
449
  {
450
  if (!$opt) $opt = array();
451
-
452
  $opt = json_encode($opt);
453
  return $this->authenticate('DescribeTable', $opt);
454
  }
455
 
456
  /**
457
  * Retrieves a set of Attributes for an item that matches the primary key.
458
- *
459
  * The <code>GetItem</code> operation provides an eventually-consistent read by default. If
460
  * eventually-consistent reads are not acceptable for your application, use
461
  * <code>ConsistentRead</code>. Although this operation might take longer than a standard read, it
@@ -464,23 +681,17 @@ class AmazonDynamoDB extends CFRuntime
464
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
465
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table in which you want to get an item. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
466
  * <li><code>Key</code> - <code>array</code> - Required - The primary key that uniquely identifies each item in a table. A primary key can be a one attribute (hash) primary key or a two attribute (hash-and-range) primary key. <ul>
467
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
468
- * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
469
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
470
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
471
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
472
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
473
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
474
- * </ul></li>
475
- * </ul></li>
476
- * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
477
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
478
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
479
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
480
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
481
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
482
- * </ul></li>
483
- * </ul></li>
484
  * </ul></li>
485
  * </ul></li>
486
  * <li><code>AttributesToGet</code> - <code>string|array</code> - Optional - List of <code>Attribute</code> names. If attribute names are not specified then all attributes will be returned. If some attributes are not found, they will not appear in the result. Pass a string for a single value, or an indexed array for multiple values.</li>
@@ -492,7 +703,7 @@ class AmazonDynamoDB extends CFRuntime
492
  public function get_item($opt = null)
493
  {
494
  if (!$opt) $opt = array();
495
-
496
  // List (non-map)
497
  if (isset($opt['AttributesToGet']))
498
  {
@@ -517,14 +728,14 @@ class AmazonDynamoDB extends CFRuntime
517
  public function list_tables($opt = null)
518
  {
519
  if (!$opt) $opt = array();
520
-
521
  $opt = json_encode($opt);
522
  return $this->authenticate('ListTables', $opt);
523
  }
524
 
525
  /**
526
  * Creates a new item, or replaces an old item with a new item (including all the attributes).
527
- *
528
  * If an item already exists in the specified table with the same primary key, the new item
529
  * completely replaces the existing item. You can perform a conditional put (insert a new item if
530
  * one with the specified primary key doesn't exist), or replace an existing item if it has
@@ -533,28 +744,22 @@ class AmazonDynamoDB extends CFRuntime
533
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
534
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table in which you want to put an item. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
535
  * <li><code>Item</code> - <code>array</code> - Required - A map of the attributes for the item, and must include the primary key values that define the item. Other attribute name-value pairs can be provided for the item. <ul>
536
- * <li><code>[attribute_name]</code> - <code>array</code> - Optional - The name of the attribute to use for the lookup. <ul>
537
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
 
 
 
 
 
 
 
 
538
  * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
539
  * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
540
  * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
541
  * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
542
  * </ul></li>
543
- * </ul></li>
544
- * </ul></li>
545
- * <li><code>Expected</code> - <code>array</code> - Optional - Designates an attribute for a conditional modification. The <code>Expected</code> parameter allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute has a particular value before modifying it. <ul>
546
- * <li><code>[attribute_name]</code> - <code>array</code> - Optional - Allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute value already exists; or if the attribute value exists and has a particular value before changing it. <ul>
547
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
548
- * <li><code>Value</code> - <code>array</code> - Optional - Specify whether or not a value already exists and has a specific content for the attribute name-value pair. <ul>
549
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
550
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
551
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
552
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
553
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
554
- * </ul></li>
555
- * </ul></li>
556
- * <li><code>Exists</code> - <code>boolean</code> - Optional - Specify whether or not a value already exists for the attribute name-value pair.</li>
557
- * </ul></li>
558
  * </ul></li>
559
  * </ul></li>
560
  * <li><code>ReturnValues</code> - <code>string</code> - Optional - Use this parameter if you want to get the attribute name-value pairs before or after they are modified. For <code>PUT</code> operations, the possible parameter values are <code>NONE</code> (default) or <code>ALL_OLD</code>. For update operations, the possible parameter values are <code>NONE</code> (default) or <code>ALL_OLD</code>, <code>UPDATED_OLD</code>, <code>ALL_NEW</code> or <code>UPDATED_NEW</code>.<ul><li> <code>NONE</code>: Nothing is returned.</li><li> <code>ALL_OLD</code>: Returns the attributes of the item as they were before the operation.</li><li> <code>UPDATED_OLD</code>: Returns the values of the updated attributes, only, as they were before the operation.</li><li> <code>ALL_NEW</code>: Returns all the attributes and their new values after the operation.</li><li> <code>UPDATED_NEW</code>: Returns the values of the updated attributes, only, as they are after the operation.</li></ul> [Allowed values: <code>NONE</code>, <code>ALL_OLD</code>, <code>UPDATED_OLD</code>, <code>ALL_NEW</code>, <code>UPDATED_NEW</code>]</li>
@@ -565,7 +770,7 @@ class AmazonDynamoDB extends CFRuntime
565
  public function put_item($opt = null)
566
  {
567
  if (!$opt) $opt = array();
568
-
569
  $opt = json_encode($opt);
570
  return $this->authenticate('PutItem', $opt);
571
  }
@@ -573,7 +778,7 @@ class AmazonDynamoDB extends CFRuntime
573
  /**
574
  * Gets the values of one or more items and its attributes by primary key (composite primary key,
575
  * only).
576
- *
577
  * Narrow the scope of the query using comparison operators on the <code>RangeKeyValue</code> of
578
  * the composite key. Use the <code>ScanIndexForward</code> parameter to get results in forward or
579
  * reverse order by range key.
@@ -583,47 +788,37 @@ class AmazonDynamoDB extends CFRuntime
583
  * <li><code>AttributesToGet</code> - <code>string|array</code> - Optional - List of <code>Attribute</code> names. If attribute names are not specified then all attributes will be returned. If some attributes are not found, they will not appear in the result. Pass a string for a single value, or an indexed array for multiple values.</li>
584
  * <li><code>Limit</code> - <code>integer</code> - Optional - The maximum number of items to return. If Amazon DynamoDB hits this limit while querying the table, it stops the query and returns the matching values up to the limit, and a <code>LastEvaluatedKey</code> to apply in a subsequent operation to continue the query. Also, if the result set size exceeds 1MB before Amazon DynamoDB hits this limit, it stops the query and returns the matching values, and a <code>LastEvaluatedKey</code> to apply in a subsequent operation to continue the query.</li>
585
  * <li><code>ConsistentRead</code> - <code>boolean</code> - Optional - If set to <code>true</code>, then a consistent read is issued. Otherwise eventually-consistent is used.</li>
586
- * <li><code>Count</code> - <code>boolean</code> - Optional - If set to <code>true</code>, Amazon DynamoDB returns a total number of items that match the query parameters, instead of a list of the matching items and their attributes. Do not set <code>Count</code> to true while providing a list of <code>AttributesToGet</code>, otherwise Amazon DynamoDB returns a validation error.</li>
587
  * <li><code>HashKeyValue</code> - <code>array</code> - Required - Attribute value of the hash component of the composite primary key. <ul>
588
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
589
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
590
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
591
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
592
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
593
- * </ul></li>
594
  * </ul></li>
595
  * <li><code>RangeKeyCondition</code> - <code>array</code> - Optional - A container for the attribute values and comparison operators to use for the query. <ul>
596
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
597
- * <li><code>AttributeValueList</code> - <code>array</code> - Optional - A list of attribute values to be used with a comparison operator for a scan or query operation. For comparisons that require more than one value, such as a <code>BETWEEN</code> comparison, the AttributeValueList contains two attribute values and the comparison operator. <ul>
598
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
599
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
600
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
601
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
602
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
603
- * </ul></li>
604
  * </ul></li>
605
- * <li><code>ComparisonOperator</code> - <code>string</code> - Required - A comparison operator is an enumeration of several operations:<ul><li> <code>EQ</code> for <em>equal</em> </li><li> <code>NE</code> for <em>not equal</em> </li><li> <code>IN</code> checks for exact matches</li><li> <code>LE</code> for <em>less than or equal to</em> </li><li> <code>LT</code> for <em>less than</em> </li><li> <code>GE</code> for <em>greater than or equal to</em> </li><li> <code>GT</code> for <em>greater than</em> </li><li> <code>BETWEEN</code> for <em>between</em> </li><li> <code>NOT_NULL</code> for <em>exists</em> </li><li> <code>NULL</code> for <em>not exists</em> </li><li> <code>CONTAINS</code> for substring or value in a set</li><li> <code>NOT_CONTAINS</code> for absence of a substring or absence of a value in a set</li><li> <code>BEGINS_WITH</code> for a substring prefix.</li></ul> [Allowed values: <code>EQ</code>, <code>NE</code>, <code>IN</code>, <code>LE</code>, <code>LT</code>, <code>GE</code>, <code>GT</code>, <code>BETWEEN</code>, <code>NOT_NULL</code>, <code>NULL</code>, <code>CONTAINS</code>, <code>NOT_CONTAINS</code>, <code>BEGINS_WITH</code>]</li>
606
  * </ul></li>
 
607
  * </ul></li>
608
  * <li><code>ScanIndexForward</code> - <code>boolean</code> - Optional - Specifies forward or backward traversal of the index. Amazon DynamoDB returns results reflecting the requested order, determined by the range key. The default value is <code>true</code> (forward).</li>
609
  * <li><code>ExclusiveStartKey</code> - <code>array</code> - Optional - Primary key of the item from which to continue an earlier query. An earlier query might provide this value as the <code>LastEvaluatedKey</code> if that query operation was interrupted before completing the query; either because of the result set size or the <code>Limit</code> parameter. The <code>LastEvaluatedKey</code> can be passed back in a new query request to continue the operation from that point. <ul>
610
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
611
- * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
612
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
613
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
614
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
615
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
616
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
617
- * </ul></li>
618
- * </ul></li>
619
- * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
620
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
621
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
622
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
623
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
624
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
625
- * </ul></li>
626
- * </ul></li>
627
  * </ul></li>
628
  * </ul></li>
629
  * <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>
@@ -633,7 +828,7 @@ class AmazonDynamoDB extends CFRuntime
633
  public function query($opt = null)
634
  {
635
  if (!$opt) $opt = array();
636
-
637
  // List (non-map)
638
  if (isset($opt['AttributesToGet']))
639
  {
@@ -646,16 +841,16 @@ class AmazonDynamoDB extends CFRuntime
646
 
647
  /**
648
  * Retrieves one or more items and its attributes by performing a full scan of a table.
649
- *
650
- * Limit the returned results by specifying a filter.
651
  *
652
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
653
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table in which you want to scan. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
654
  * <li><code>AttributesToGet</code> - <code>string|array</code> - Optional - List of <code>Attribute</code> names. If attribute names are not specified then all attributes will be returned. If some attributes are not found, they will not appear in the result. Pass a string for a single value, or an indexed array for multiple values.</li>
655
  * <li><code>Limit</code> - <code>integer</code> - Optional - The maximum number of items to return. If Amazon DynamoDB hits this limit while scanning the table, it stops the scan and returns the matching values up to the limit, and a <code>LastEvaluatedKey</code> to apply in a subsequent operation to continue the scan. Also, if the scanned data set size exceeds 1 MB before Amazon DynamoDB hits this limit, it stops the scan and returns the matching values up to the limit, and a <code>LastEvaluatedKey</code> to apply in a subsequent operation to continue the scan.</li>
656
- * <li><code>Count</code> - <code>boolean</code> - Optional - If set to true, Amazon DynamoDB returns a total number of items for the <code>Scan</code> operation, even if the operation has no matching items for the assigned filter. Do not set <code>Count</code> to true while providing a list of <code>AttributesToGet</code>, otherwise Amazon DynamoDB returns a validation error.</li>
657
  * <li><code>ScanFilter</code> - <code>array</code> - Optional - Evaluates the scan results and returns only the desired values. <ul>
658
- * <li><code>[attribute_name]</code> - <code>array</code> - Optional - The name of the attribute to use for the lookup. <ul>
659
  * <li><code>AttributeValueList</code> - <code>array</code> - Optional - A list of attribute values to be used with a comparison operator for a scan or query operation. For comparisons that require more than one value, such as a <code>BETWEEN</code> comparison, the AttributeValueList contains two attribute values and the comparison operator. <ul>
660
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
661
  * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
@@ -664,27 +859,21 @@ class AmazonDynamoDB extends CFRuntime
664
  * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
665
  * </ul></li>
666
  * </ul></li>
667
- * <li><code>ComparisonOperator</code> - <code>string</code> - Required - A comparison operator is an enumeration of several operations:<ul><li> <code>EQ</code> for <em>equal</em> </li><li> <code>NE</code> for <em>not equal</em> </li><li> <code>IN</code> checks for exact matches</li><li> <code>LE</code> for <em>less than or equal to</em> </li><li> <code>LT</code> for <em>less than</em> </li><li> <code>GE</code> for <em>greater than or equal to</em> </li><li> <code>GT</code> for <em>greater than</em> </li><li> <code>BETWEEN</code> for <em>between</em> </li><li> <code>NOT_NULL</code> for <em>exists</em> </li><li> <code>NULL</code> for <em>not exists</em> </li><li> <code>CONTAINS</code> for substring or value in a set</li><li> <code>NOT_CONTAINS</code> for absence of a substring or absence of a value in a set</li><li> <code>BEGINS_WITH</code> for a substring prefix.</li></ul> [Allowed values: <code>EQ</code>, <code>NE</code>, <code>IN</code>, <code>LE</code>, <code>LT</code>, <code>GE</code>, <code>GT</code>, <code>BETWEEN</code>, <code>NOT_NULL</code>, <code>NULL</code>, <code>CONTAINS</code>, <code>NOT_CONTAINS</code>, <code>BEGINS_WITH</code>]</li>
668
  * </ul></li>
669
  * </ul></li>
670
  * <li><code>ExclusiveStartKey</code> - <code>array</code> - Optional - Primary key of the item from which to continue an earlier scan. An earlier scan might provide this value if that scan operation was interrupted before scanning the entire table; either because of the result set size or the <code>Limit</code> parameter. The <code>LastEvaluatedKey</code> can be passed back in a new scan request to continue the operation from that point. <ul>
671
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
672
- * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
673
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
674
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
675
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
676
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
677
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
678
- * </ul></li>
679
- * </ul></li>
680
- * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
681
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
682
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
683
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
684
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
685
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
686
- * </ul></li>
687
- * </ul></li>
688
  * </ul></li>
689
  * </ul></li>
690
  * <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>
@@ -694,7 +883,7 @@ class AmazonDynamoDB extends CFRuntime
694
  public function scan($opt = null)
695
  {
696
  if (!$opt) $opt = array();
697
-
698
  // List (non-map)
699
  if (isset($opt['AttributesToGet']))
700
  {
@@ -707,54 +896,44 @@ class AmazonDynamoDB extends CFRuntime
707
 
708
  /**
709
  * Edits an existing item's attributes.
710
- *
711
  * You can perform a conditional update (insert a new attribute name-value pair if it doesn't
712
  * exist, or replace an existing name-value pair if it has certain expected attribute values).
713
  *
714
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
715
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table in which you want to update an item. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
716
  * <li><code>Key</code> - <code>array</code> - Required - The primary key that uniquely identifies each item in a table. A primary key can be a one attribute (hash) primary key or a two attribute (hash-and-range) primary key. <ul>
717
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
718
- * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
719
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
720
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
721
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
722
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
723
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
724
- * </ul></li>
725
- * </ul></li>
726
- * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
727
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
728
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
729
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
730
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
731
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
732
- * </ul></li>
733
- * </ul></li>
734
  * </ul></li>
735
  * </ul></li>
736
  * <li><code>AttributeUpdates</code> - <code>array</code> - Required - Map of attribute name to the new value and action for the update. The attribute names specify the attributes to modify, and cannot contain any primary key attributes. <ul>
737
- * <li><code>[attribute_name]</code> - <code>array</code> - Optional - The name of the attribute to use for the lookup. <ul>
738
- * <li><code>Action</code> - <code>string</code> - Optional - The type of action for an item update operation. Only use the add action for numbers or sets; the specified value is added to the existing value. If a set of values is specified, the values are added to the existing set. Adds the specified attribute. If the attribute exists, it is replaced by the new value. If no value is specified, this removes the attribute and its value. If a set of values is specified, then the values in the specified set are removed from the old set. [Allowed values: <code>ADD</code>, <code>PUT</code>, <code>DELETE</code>]</li>
739
  * <li><code>Value</code> - <code>array</code> - Optional - AttributeValue can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
740
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
741
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
742
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
743
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
744
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
745
- * </ul></li>
746
  * </ul></li>
 
747
  * </ul></li>
748
  * </ul></li>
749
  * <li><code>Expected</code> - <code>array</code> - Optional - Designates an attribute for a conditional modification. The <code>Expected</code> parameter allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute has a particular value before modifying it. <ul>
750
- * <li><code>[attribute_name]</code> - <code>array</code> - Optional - The name of the attribute to use for the lookup. <ul>
751
  * <li><code>Value</code> - <code>array</code> - Optional - Specify whether or not a value already exists and has a specific content for the attribute name-value pair. <ul>
752
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
753
- * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
754
- * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
755
- * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
756
- * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
757
- * </ul></li>
758
  * </ul></li>
759
  * <li><code>Exists</code> - <code>boolean</code> - Optional - Specify whether or not a value already exists for the attribute name-value pair.</li>
760
  * </ul></li>
@@ -767,24 +946,22 @@ class AmazonDynamoDB extends CFRuntime
767
  public function update_item($opt = null)
768
  {
769
  if (!$opt) $opt = array();
770
-
771
  $opt = json_encode($opt);
772
  return $this->authenticate('UpdateItem', $opt);
773
  }
774
 
775
  /**
776
  * Updates the provisioned throughput for the given table.
777
- *
778
  * Setting the throughput for a table helps you manage performance and is part of the Provisioned
779
- * Capacity feature of Amazon DynamoDB.
780
  *
781
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
782
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table you want to update. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
783
  * <li><code>ProvisionedThroughput</code> - <code>array</code> - Required - Provisioned throughput reserves the required read and write resources for your table in terms of <code>ReadCapacityUnits</code> and <code>WriteCapacityUnits</code>. Values for provisioned throughput depend upon your expected read/write rates, item size, and consistency. Provide the expected number of read and write operations, assuming an item size of 1k and strictly consistent reads. For 2k item size, double the value. For 3k, triple the value, etc. Eventually-consistent reads consume half the resources of strictly consistent reads. <ul>
784
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
785
- * <li><code>ReadCapacityUnits</code> - <code>long</code> - Required - <code>ReadCapacityUnits</code> are in terms of strictly consistent reads, assuming items of 1k. 2k items require twice the <code>ReadCapacityUnits</code>. Eventually-consistent reads only require half the <code>ReadCapacityUnits</code> of stirctly consistent reads.</li>
786
- * <li><code>WriteCapacityUnits</code> - <code>long</code> - Required - <code>WriteCapacityUnits</code> are in terms of strictly consistent reads, assuming items of 1k. 2k items require twice the <code>WriteCapacityUnits</code>.</li>
787
- * </ul></li>
788
  * </ul></li>
789
  * <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>
790
  * <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>
@@ -793,7 +970,7 @@ class AmazonDynamoDB extends CFRuntime
793
  public function update_table($opt = null)
794
  {
795
  if (!$opt) $opt = array();
796
-
797
  $opt = json_encode($opt);
798
  return $this->authenticate('UpdateTable', $opt);
799
  }
17
  /**
18
  * Amazon DynamoDB is a fast, highly scalable, highly available, cost-effective non-relational
19
  * database service.
20
+ *
21
  * Amazon DynamoDB removes traditional scalability limitations on data storage while maintaining
22
  * low latency and predictable performance.
23
  *
24
+ * @version 2012.04.18
25
  * @license See the included NOTICE.md file for complete information.
26
  * @copyright See the included NOTICE.md file for complete information.
27
  * @link http://aws.amazon.com/dynamodb/ Amazon DynamoDB
42
  */
43
  const REGION_VIRGINIA = self::REGION_US_E1;
44
 
45
+ /**
46
+ * Specify the queue URL for the Europe West (Ireland) Region.
47
+ */
48
+ const REGION_EU_W1 = 'dynamodb.eu-west-1.amazonaws.com';
49
+
50
+ /**
51
+ * Specify the queue URL for the Europe West (Ireland) Region.
52
+ */
53
+ const REGION_IRELAND = self::REGION_EU_W1;
54
+
55
+ /**
56
+ * Specify the queue URL for the Asia Pacific Northeast (Tokyo) Region.
57
+ */
58
+ const REGION_APAC_NE1 = 'dynamodb.ap-northeast-1.amazonaws.com';
59
+
60
+ /**
61
+ * Specify the queue URL for the Asia Pacific Northeast (Tokyo) Region.
62
+ */
63
+ const REGION_TOKYO = self::REGION_APAC_NE1;
64
+
65
  /**
66
  * Default service endpoint.
67
  */
241
  // @codeCoverageIgnoreEnd
242
  }
243
 
244
+ // Configure cache
245
+ $this->set_cache_config($this->credentials->default_cache_config);
246
+ $cache_id = $this->key . '_sts_credentials_' . sha1(serialize($options));
247
+
248
+ // Instantiate and invoke the cache
249
+ $cache = new $this->cache_class($cache_id, $this->cache_location, 0, $this->cache_compress);
250
+ $sts_credentials = $cache->response_manager(array($this, 'cache_sts_credentials'), array($cache, $options));
251
 
252
+ // Store the credentials inside the class
253
+ $this->key = $sts_credentials['key'];
254
+ $this->secret_key = $sts_credentials['secret'];
255
+ $this->auth_token = $sts_credentials['token'];
256
  }
257
 
258
 
262
  /**
263
  * This allows you to explicitly sets the region for the service to use.
264
  *
265
+ * @param string $region (Required) The region to explicitly set. Available options are <REGION_US_E1>, <REGION_EU_W1>, <REGION_APAC_NE1>.
266
  * @return $this A reference to the current instance.
267
  */
268
  public function set_region($region)
274
  }
275
 
276
 
277
+ /*%******************************************************************************************%*/
278
+ // CONVENIENCE METHODS
279
+
280
+ /**
281
+ * Registers DynamoDB as the default session handler for PHP.
282
+ *
283
+ * @param array $config (Optional) An array of configuration items for the session handler.
284
+ * @return DynamoDBSessionHandler The session handler object.
285
+ */
286
+ public function register_session_handler(array $config = array())
287
+ {
288
+ require_once dirname(dirname(__FILE__)) . DIRECTORY_SEPARATOR . 'extensions'
289
+ . DIRECTORY_SEPARATOR . 'dynamodbsessionhandler.class.php';
290
+
291
+ $dynamo_session_handler = new DynamoDBSessionHandler($this, $config);
292
+ $dynamo_session_handler->register();
293
+
294
+ return $dynamo_session_handler;
295
+ }
296
+
297
+ /**
298
+ * Formats a value into the DynamoDB attribute value format (e.g. <code>array('S' => 'value')</code> ).
299
+ *
300
+ * @param mixed $value (Required) The value to be formatted.
301
+ * @param string $format (Optional) The format of the result (based loosely on the type of operation)
302
+ * @param string $type_override (Optional) Any valid attribute type to override the calculated type.
303
+ * @return array An attribute value suitable for DynamoDB.
304
+ */
305
+ public function attribute($value, $format = 'put', $type_override = null)
306
+ {
307
+ $info = $this->get_attribute_value_info($value);
308
+
309
+ if (!$info)
310
+ {
311
+ return null;
312
+ }
313
+
314
+ if ($type_override)
315
+ {
316
+ static $valid_types = array(
317
+ self::TYPE_STRING,
318
+ self::TYPE_NUMBER,
319
+ self::TYPE_ARRAY_OF_STRINGS,
320
+ self::TYPE_ARRAY_OF_NUMBERS
321
+ );
322
+
323
+ $info['type'] = in_array($type_override, $valid_types) ? $type_override : $info['type'];
324
+ }
325
+
326
+ $result = array($info['type'] => $info['value']);
327
+
328
+ // In some cases the result needs to be wrapped with "Value"
329
+ if ($format === 'update' || $format === 'expected')
330
+ {
331
+ $result = array('Value' => $result);
332
+ }
333
+
334
+ return $result;
335
+ }
336
+
337
+ /**
338
+ * Formats a set of values into the DynamoDB attribute value format.
339
+ *
340
+ * @param array $values (Required) The values to be formatted.
341
+ * @param string $format (Optional) The format of the result (based loosely on the type of operation)
342
+ * @return array The formatted array.
343
+ */
344
+ public function attributes(array $values, $format = 'put')
345
+ {
346
+ $results = array();
347
+
348
+ foreach ($values as $key => $value)
349
+ {
350
+ $results[$key] = $this->attribute($value, $format);
351
+ }
352
+
353
+ $results = array_filter($results);
354
+
355
+ return $results;
356
+ }
357
+
358
+ /**
359
+ * An internal, recursive function for doing the attribute value formatting.
360
+ *
361
+ * @param mixed $value (Required) The value being formatted.
362
+ * @param integer $depth (Optional) The current recursion level. Anything higher than one will terminate the function.
363
+ * @return array An array of information about the attribute value, including it's string value and type.
364
+ */
365
+ protected function get_attribute_value_info($value, $depth = 0)
366
+ {
367
+ // If the recursion limit is succeeded, then the value is invalid
368
+ if ($depth > 1)
369
+ {
370
+ return null;
371
+ }
372
+
373
+ // Do some validation on the value up-front. Only non-empty, string-friendly values allowed.
374
+ $value_is_empty = ($value === null || $value === array() || $value === '');
375
+ $value_is_complex = (is_resource($value) || (is_object($value) && !method_exists($value, '__toString')));
376
+
377
+ if ($value_is_empty || $value_is_complex)
378
+ {
379
+ return null;
380
+ }
381
+
382
+ // Create the info to return. Treat all values as strings by default
383
+ $info = array('value' => (string) $value, 'type' => self::TYPE_STRING);
384
+
385
+ // Handle boolean values
386
+ if (is_bool($value))
387
+ {
388
+ $info['type'] = self::TYPE_NUMBER;
389
+ $info['value'] = $value ? '1' : '0';
390
+ }
391
+ // Handle numeric values
392
+ elseif (is_int($value) || is_float($value))
393
+ {
394
+ $info['type'] = self::TYPE_NUMBER;
395
+ }
396
+ // Handle arrays
397
+ elseif (is_array($value))
398
+ {
399
+ $set_type = null;
400
+ $info['value'] = array();
401
+
402
+ // Loop through each value to analyze and prepare it
403
+ foreach ($value as $sub_value)
404
+ {
405
+ // Recursively get the info for this sub-value. The depth param only allows one level of recursion
406
+ $sub_info = $this->get_attribute_value_info($sub_value, $depth + 1);
407
+
408
+ // If a sub-value is invalid, the whole array is invalid as well
409
+ if ($sub_info === null)
410
+ {
411
+ return null;
412
+ }
413
+
414
+ // The type of each sub-value must be the same, or else the whole array is invalid
415
+ if ($set_type === null)
416
+ {
417
+ $set_type = $sub_info['type'];
418
+ }
419
+ elseif ($set_type !== $sub_info['type'])
420
+ {
421
+ return null;
422
+ }
423
+
424
+ // Save the value for the upstream array
425
+ $info['value'][] = $sub_info['value'];
426
+ }
427
+
428
+ // Make sure the type is changed to be the appropriate array type
429
+ $info['type'] = ($set_type == self::TYPE_STRING) ? self::TYPE_ARRAY_OF_STRINGS : self::TYPE_ARRAY_OF_NUMBERS;
430
+ }
431
+
432
+ return $info;
433
+ }
434
+
435
+
436
  /*%******************************************************************************************%*/
437
  // SERVICE METHODS
438
 
439
  /**
440
  * Retrieves the attributes for multiple items from multiple tables using their primary keys.
441
+ *
442
  * The maximum number of item attributes that can be retrieved for a single operation is 100.
443
  * Also, the number of items retrieved is constrained by a 1 MB the size limit. If the response
444
  * size limit is exceeded or a partial result is returned due to an internal processing failure,
445
  * Amazon DynamoDB returns an <code>UnprocessedKeys</code> value so you can retry the operation
446
  * starting with the next item to get.
447
+ *
448
  * Amazon DynamoDB automatically adjusts the number of items returned per page to enforce this
449
  * limit. For example, even if you ask to retrieve 100 items, but each individual item is 50k in
450
  * size, the system returns 20 items and an appropriate <code>UnprocessedKeys</code> value so you
453
  *
454
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
455
  * <li><code>RequestItems</code> - <code>array</code> - Required - A map of the table name and corresponding items to get by primary key. While requesting items, each table name can be invoked only once per operation. <ul>
456
+ * <li><code>[custom-key]</code> - <code>array</code> - Optional - This key is variable (e.g., user-specified). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>] <ul>
457
+ * <li><code>Keys</code> - <code>array</code> - Required - The primary key that uniquely identifies each item in a table. A primary key can be a one attribute (hash) primary key or a two attribute (hash-and-range) primary key. <ul>
458
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
459
  * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
460
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
461
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
462
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
463
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
464
+ * </ul></li>
465
+ * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
466
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
467
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
468
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
469
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
470
+ * </ul></li>
471
+ * </ul></li>
472
+ * </ul></li>
473
+ * <li><code>AttributesToGet</code> - <code>string|array</code> - Optional - List of <code>Attribute</code> names. If attribute names are not specified then all attributes will be returned. If some attributes are not found, they will not appear in the result. Pass a string for a single value, or an indexed array for multiple values.</li>
474
+ * </ul></li>
475
+ * </ul></li>
476
+ * <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>
477
+ * <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>
478
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
479
+ */
480
+ public function batch_get_item($opt = null)
481
+ {
482
+ if (!$opt) $opt = array();
483
+
484
+ $opt = json_encode($opt);
485
+ return $this->authenticate('BatchGetItem', $opt);
486
+ }
487
+
488
+ /**
489
+ * Allows to execute a batch of Put and/or Delete Requests for many tables in a single call. A
490
+ * total of 25 requests are allowed.
491
+ *
492
+ * There are no transaction guarantees provided by this API. It does not allow conditional puts
493
+ * nor does it support return values.
494
+ *
495
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
496
+ * <li><code>RequestItems</code> - <code>array</code> - Required - A map of table name to list-of-write-requests. Used as input to the <code>BatchWriteItem</code> API call <ul>
497
+ * <li><code>[custom-key]</code> - <code>array</code> - Optional - This key is variable (e.g., user-specified). <ul>
498
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
499
+ * <li><code>PutRequest</code> - <code>array</code> - Optional - A container for a Put BatchWrite request <ul>
500
+ * <li><code>Item</code> - <code>array</code> - Required - The item to put <ul>
501
+ * <li><code>[custom-key]</code> - <code>array</code> - Optional - AttributeValue can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
502
  * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
503
  * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
504
  * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
505
  * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
506
  * </ul></li>
507
  * </ul></li>
508
+ * </ul></li>
509
+ * <li><code>DeleteRequest</code> - <code>array</code> - Optional - A container for a Delete BatchWrite request <ul>
510
+ * <li><code>Key</code> - <code>array</code> - Required - The item's key to be delete <ul>
511
+ * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
512
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
513
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
514
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
515
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
516
+ * </ul></li>
517
+ * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
518
  * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
519
  * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
520
  * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
523
  * </ul></li>
524
  * </ul></li>
525
  * </ul></li>
526
+ * </ul></li>
527
+ * <li><code>value</code> - <code>array</code> - Optional - AttributeValue can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
528
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
529
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
530
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
531
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
532
  * </ul></li>
533
  * </ul></li>
534
  * <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>
535
  * <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>
536
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
537
  */
538
+ public function batch_write_item($opt = null)
539
  {
540
  if (!$opt) $opt = array();
541
+
542
  $opt = json_encode($opt);
543
+ return $this->authenticate('BatchWriteItem', $opt);
544
  }
545
 
546
  /**
547
  * Adds a new table to your account.
548
+ *
549
  * The table name must be unique among those associated with the AWS Account issuing the request,
550
  * and the AWS Region that receives the request (e.g. <code>us-east-1</code>).
551
+ *
552
  * The <code>CreateTable</code> operation triggers an asynchronous workflow to begin creating the
553
  * table. Amazon DynamoDB immediately returns the state of the table (<code>CREATING</code>) until
554
  * the table is in the <code>ACTIVE</code> state. Once the table is in the <code>ACTIVE</code>
557
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
558
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table you want to create. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
559
  * <li><code>KeySchema</code> - <code>array</code> - Required - The KeySchema identifies the primary key as a one attribute primary key (hash) or a composite two attribute (hash-and-range) primary key. Single attribute primary keys have one index value: a <code>HashKeyElement</code>. A composite hash-and-range primary key contains two attribute values: a <code>HashKeyElement</code> and a <code>RangeKeyElement</code>. <ul>
560
+ * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
561
+ * <li><code>AttributeName</code> - <code>string</code> - Required - The <code>AttributeName</code> of the <code>KeySchemaElement</code>.</li>
562
+ * <li><code>AttributeType</code> - <code>string</code> - Required - The <code>AttributeType</code> of the <code>KeySchemaElement</code> which can be a <code>String</code> or a <code>Number</code>. [Allowed values: <code>S</code>, <code>N</code>]</li>
563
+ * </ul></li>
564
+ * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
565
+ * <li><code>AttributeName</code> - <code>string</code> - Required - The <code>AttributeName</code> of the <code>KeySchemaElement</code>.</li>
566
+ * <li><code>AttributeType</code> - <code>string</code> - Required - The <code>AttributeType</code> of the <code>KeySchemaElement</code> which can be a <code>String</code> or a <code>Number</code>. [Allowed values: <code>S</code>, <code>N</code>]</li>
 
 
 
 
 
 
567
  * </ul></li>
568
  * </ul></li>
569
  * <li><code>ProvisionedThroughput</code> - <code>array</code> - Required - Provisioned throughput reserves the required read and write resources for your table in terms of <code>ReadCapacityUnits</code> and <code>WriteCapacityUnits</code>. Values for provisioned throughput depend upon your expected read/write rates, item size, and consistency. Provide the expected number of read and write operations, assuming an item size of 1k and strictly consistent reads. For 2k item size, double the value. For 3k, triple the value, etc. Eventually-consistent reads consume half the resources of strictly consistent reads. <ul>
570
+ * <li><code>ReadCapacityUnits</code> - <code>long</code> - Required - <code>ReadCapacityUnits</code> are in terms of strictly consistent reads, assuming items of 1k. 2k items require twice the <code>ReadCapacityUnits</code>. Eventually-consistent reads only require half the <code>ReadCapacityUnits</code> of stirctly consistent reads.</li>
571
+ * <li><code>WriteCapacityUnits</code> - <code>long</code> - Required - <code>WriteCapacityUnits</code> are in terms of strictly consistent reads, assuming items of 1k. 2k items require twice the <code>WriteCapacityUnits</code>.</li>
 
 
572
  * </ul></li>
573
  * <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>
574
  * <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>
577
  public function create_table($opt = null)
578
  {
579
  if (!$opt) $opt = array();
580
+
581
  $opt = json_encode($opt);
582
  return $this->authenticate('CreateTable', $opt);
583
  }
584
 
585
  /**
586
  * Deletes a single item in a table by primary key.
587
+ *
588
  * You can perform a conditional delete operation that deletes the item if it exists, or if it has
589
  * an expected attribute value.
590
  *
591
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
592
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table in which you want to delete an item. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
593
  * <li><code>Key</code> - <code>array</code> - Required - The primary key that uniquely identifies each item in a table. A primary key can be a one attribute (hash) primary key or a two attribute (hash-and-range) primary key. <ul>
594
+ * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
595
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
596
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
597
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
598
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
599
+ * </ul></li>
600
+ * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
601
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
602
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
603
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
604
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
 
 
 
 
 
 
605
  * </ul></li>
606
  * </ul></li>
607
  * <li><code>Expected</code> - <code>array</code> - Optional - Designates an attribute for a conditional modification. The <code>Expected</code> parameter allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute has a particular value before modifying it. <ul>
608
+ * <li><code>[custom-key]</code> - <code>array</code> - Optional - Allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute value already exists; or if the attribute value exists and has a particular value before changing it. <ul>
609
+ * <li><code>Value</code> - <code>array</code> - Optional - Specify whether or not a value already exists and has a specific content for the attribute name-value pair. <ul>
610
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
611
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
612
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
613
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
 
 
 
 
 
 
 
 
614
  * </ul></li>
615
+ * <li><code>Exists</code> - <code>boolean</code> - Optional - Specify whether or not a value already exists for the attribute name-value pair.</li>
616
  * </ul></li>
617
  * </ul></li>
618
  * <li><code>ReturnValues</code> - <code>string</code> - Optional - Use this parameter if you want to get the attribute name-value pairs before or after they are modified. For <code>PUT</code> operations, the possible parameter values are <code>NONE</code> (default) or <code>ALL_OLD</code>. For update operations, the possible parameter values are <code>NONE</code> (default) or <code>ALL_OLD</code>, <code>UPDATED_OLD</code>, <code>ALL_NEW</code> or <code>UPDATED_NEW</code>.<ul><li> <code>NONE</code>: Nothing is returned.</li><li> <code>ALL_OLD</code>: Returns the attributes of the item as they were before the operation.</li><li> <code>UPDATED_OLD</code>: Returns the values of the updated attributes, only, as they were before the operation.</li><li> <code>ALL_NEW</code>: Returns all the attributes and their new values after the operation.</li><li> <code>UPDATED_NEW</code>: Returns the values of the updated attributes, only, as they are after the operation.</li></ul> [Allowed values: <code>NONE</code>, <code>ALL_OLD</code>, <code>UPDATED_OLD</code>, <code>ALL_NEW</code>, <code>UPDATED_NEW</code>]</li>
623
  public function delete_item($opt = null)
624
  {
625
  if (!$opt) $opt = array();
626
+
627
  $opt = json_encode($opt);
628
  return $this->authenticate('DeleteItem', $opt);
629
  }
630
 
631
  /**
632
  * Deletes a table and all of its items.
633
+ *
634
  * If the table is in the <code>ACTIVE</code> state, you can delete it. If a table is in
635
+ * <code>CREATING</code> or <code>UPDATING</code> states then Amazon DynamoDB returns a
636
  * <code>ResourceInUseException</code>. If the specified table does not exist, Amazon DynamoDB
637
  * returns a <code>ResourceNotFoundException</code>.
638
  *
645
  public function delete_table($opt = null)
646
  {
647
  if (!$opt) $opt = array();
648
+
649
  $opt = json_encode($opt);
650
  return $this->authenticate('DeleteTable', $opt);
651
  }
653
  /**
654
  * Retrieves information about the table, including the current status of the table, the primary
655
  * key schema and when the table was created.
656
+ *
657
+ * If the table does not exist, Amazon DynamoDB returns a <code>ResourceNotFoundException</code>.
658
  *
659
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
660
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table you want to describe. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
665
  public function describe_table($opt = null)
666
  {
667
  if (!$opt) $opt = array();
668
+
669
  $opt = json_encode($opt);
670
  return $this->authenticate('DescribeTable', $opt);
671
  }
672
 
673
  /**
674
  * Retrieves a set of Attributes for an item that matches the primary key.
675
+ *
676
  * The <code>GetItem</code> operation provides an eventually-consistent read by default. If
677
  * eventually-consistent reads are not acceptable for your application, use
678
  * <code>ConsistentRead</code>. Although this operation might take longer than a standard read, it
681
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
682
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table in which you want to get an item. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
683
  * <li><code>Key</code> - <code>array</code> - Required - The primary key that uniquely identifies each item in a table. A primary key can be a one attribute (hash) primary key or a two attribute (hash-and-range) primary key. <ul>
684
+ * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
685
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
686
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
687
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
688
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
689
+ * </ul></li>
690
+ * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
691
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
692
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
693
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
694
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
 
 
 
 
 
 
695
  * </ul></li>
696
  * </ul></li>
697
  * <li><code>AttributesToGet</code> - <code>string|array</code> - Optional - List of <code>Attribute</code> names. If attribute names are not specified then all attributes will be returned. If some attributes are not found, they will not appear in the result. Pass a string for a single value, or an indexed array for multiple values.</li>
703
  public function get_item($opt = null)
704
  {
705
  if (!$opt) $opt = array();
706
+
707
  // List (non-map)
708
  if (isset($opt['AttributesToGet']))
709
  {
728
  public function list_tables($opt = null)
729
  {
730
  if (!$opt) $opt = array();
731
+
732
  $opt = json_encode($opt);
733
  return $this->authenticate('ListTables', $opt);
734
  }
735
 
736
  /**
737
  * Creates a new item, or replaces an old item with a new item (including all the attributes).
738
+ *
739
  * If an item already exists in the specified table with the same primary key, the new item
740
  * completely replaces the existing item. You can perform a conditional put (insert a new item if
741
  * one with the specified primary key doesn't exist), or replace an existing item if it has
744
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
745
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table in which you want to put an item. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
746
  * <li><code>Item</code> - <code>array</code> - Required - A map of the attributes for the item, and must include the primary key values that define the item. Other attribute name-value pairs can be provided for the item. <ul>
747
+ * <li><code>[custom-key]</code> - <code>array</code> - Optional - AttributeValue can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
748
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
749
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
750
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
751
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
752
+ * </ul></li>
753
+ * </ul></li>
754
+ * <li><code>Expected</code> - <code>array</code> - Optional - Designates an attribute for a conditional modification. The <code>Expected</code> parameter allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute has a particular value before modifying it. <ul>
755
+ * <li><code>[custom-key]</code> - <code>array</code> - Optional - Allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute value already exists; or if the attribute value exists and has a particular value before changing it. <ul>
756
+ * <li><code>Value</code> - <code>array</code> - Optional - Specify whether or not a value already exists and has a specific content for the attribute name-value pair. <ul>
757
  * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
758
  * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
759
  * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
760
  * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
761
  * </ul></li>
762
+ * <li><code>Exists</code> - <code>boolean</code> - Optional - Specify whether or not a value already exists for the attribute name-value pair.</li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
763
  * </ul></li>
764
  * </ul></li>
765
  * <li><code>ReturnValues</code> - <code>string</code> - Optional - Use this parameter if you want to get the attribute name-value pairs before or after they are modified. For <code>PUT</code> operations, the possible parameter values are <code>NONE</code> (default) or <code>ALL_OLD</code>. For update operations, the possible parameter values are <code>NONE</code> (default) or <code>ALL_OLD</code>, <code>UPDATED_OLD</code>, <code>ALL_NEW</code> or <code>UPDATED_NEW</code>.<ul><li> <code>NONE</code>: Nothing is returned.</li><li> <code>ALL_OLD</code>: Returns the attributes of the item as they were before the operation.</li><li> <code>UPDATED_OLD</code>: Returns the values of the updated attributes, only, as they were before the operation.</li><li> <code>ALL_NEW</code>: Returns all the attributes and their new values after the operation.</li><li> <code>UPDATED_NEW</code>: Returns the values of the updated attributes, only, as they are after the operation.</li></ul> [Allowed values: <code>NONE</code>, <code>ALL_OLD</code>, <code>UPDATED_OLD</code>, <code>ALL_NEW</code>, <code>UPDATED_NEW</code>]</li>
770
  public function put_item($opt = null)
771
  {
772
  if (!$opt) $opt = array();
773
+
774
  $opt = json_encode($opt);
775
  return $this->authenticate('PutItem', $opt);
776
  }
778
  /**
779
  * Gets the values of one or more items and its attributes by primary key (composite primary key,
780
  * only).
781
+ *
782
  * Narrow the scope of the query using comparison operators on the <code>RangeKeyValue</code> of
783
  * the composite key. Use the <code>ScanIndexForward</code> parameter to get results in forward or
784
  * reverse order by range key.
788
  * <li><code>AttributesToGet</code> - <code>string|array</code> - Optional - List of <code>Attribute</code> names. If attribute names are not specified then all attributes will be returned. If some attributes are not found, they will not appear in the result. Pass a string for a single value, or an indexed array for multiple values.</li>
789
  * <li><code>Limit</code> - <code>integer</code> - Optional - The maximum number of items to return. If Amazon DynamoDB hits this limit while querying the table, it stops the query and returns the matching values up to the limit, and a <code>LastEvaluatedKey</code> to apply in a subsequent operation to continue the query. Also, if the result set size exceeds 1MB before Amazon DynamoDB hits this limit, it stops the query and returns the matching values, and a <code>LastEvaluatedKey</code> to apply in a subsequent operation to continue the query.</li>
790
  * <li><code>ConsistentRead</code> - <code>boolean</code> - Optional - If set to <code>true</code>, then a consistent read is issued. Otherwise eventually-consistent is used.</li>
791
+ * <li><code>Count</code> - <code>boolean</code> - Optional - If set to <code>true</code>, Amazon DynamoDB returns a total number of items that match the query parameters, instead of a list of the matching items and their attributes. Do not set <code>Count</code> to <code>true</code> while providing a list of <code>AttributesToGet</code>, otherwise Amazon DynamoDB returns a validation error.</li>
792
  * <li><code>HashKeyValue</code> - <code>array</code> - Required - Attribute value of the hash component of the composite primary key. <ul>
793
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
794
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
795
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
796
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
 
 
797
  * </ul></li>
798
  * <li><code>RangeKeyCondition</code> - <code>array</code> - Optional - A container for the attribute values and comparison operators to use for the query. <ul>
799
+ * <li><code>AttributeValueList</code> - <code>array</code> - Optional - A list of attribute values to be used with a comparison operator for a scan or query operation. For comparisons that require more than one value, such as a <code>BETWEEN</code> comparison, the AttributeValueList contains two attribute values and the comparison operator. <ul>
800
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
801
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
802
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
803
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
804
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
 
 
805
  * </ul></li>
 
806
  * </ul></li>
807
+ * <li><code>ComparisonOperator</code> - <code>string</code> - Required - A comparison operator is an enumeration of several operations:<ul><li> <code>EQ</code> for <em>equal</em>.</li><li> <code>NE</code> for <em>not equal</em>.</li><li> <code>IN</code> checks for exact matches.</li><li> <code>LE</code> for <em>less than or equal to</em>.</li><li> <code>LT</code> for <em>less than</em>.</li><li> <code>GE</code> for <em>greater than or equal to</em>.</li><li> <code>GT</code> for <em>greater than</em>.</li><li> <code>BETWEEN</code> for <em>between</em>.</li><li> <code>NOT_NULL</code> for <em>exists</em>.</li><li> <code>NULL</code> for <em>not exists</em>.</li><li> <code>CONTAINS</code> for substring or value in a set.</li><li> <code>NOT_CONTAINS</code> for absence of a substring or absence of a value in a set.</li><li> <code>BEGINS_WITH</code> for a substring prefix.</li></ul>Scan operations support all available comparison operators. Query operations support a subset of the available comparison operators: EQ, LE, LT, GE, GT, BETWEEN, and BEGINS_WITH. [Allowed values: <code>EQ</code>, <code>NE</code>, <code>IN</code>, <code>LE</code>, <code>LT</code>, <code>GE</code>, <code>GT</code>, <code>BETWEEN</code>, <code>NOT_NULL</code>, <code>NULL</code>, <code>CONTAINS</code>, <code>NOT_CONTAINS</code>, <code>BEGINS_WITH</code>]</li>
808
  * </ul></li>
809
  * <li><code>ScanIndexForward</code> - <code>boolean</code> - Optional - Specifies forward or backward traversal of the index. Amazon DynamoDB returns results reflecting the requested order, determined by the range key. The default value is <code>true</code> (forward).</li>
810
  * <li><code>ExclusiveStartKey</code> - <code>array</code> - Optional - Primary key of the item from which to continue an earlier query. An earlier query might provide this value as the <code>LastEvaluatedKey</code> if that query operation was interrupted before completing the query; either because of the result set size or the <code>Limit</code> parameter. The <code>LastEvaluatedKey</code> can be passed back in a new query request to continue the operation from that point. <ul>
811
+ * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
812
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
813
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
814
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
815
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
816
+ * </ul></li>
817
+ * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
818
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
819
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
820
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
821
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
 
 
 
 
 
 
822
  * </ul></li>
823
  * </ul></li>
824
  * <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>
828
  public function query($opt = null)
829
  {
830
  if (!$opt) $opt = array();
831
+
832
  // List (non-map)
833
  if (isset($opt['AttributesToGet']))
834
  {
841
 
842
  /**
843
  * Retrieves one or more items and its attributes by performing a full scan of a table.
844
+ *
845
+ * Provide a <code>ScanFilter</code> to get more specific results.
846
  *
847
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
848
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table in which you want to scan. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
849
  * <li><code>AttributesToGet</code> - <code>string|array</code> - Optional - List of <code>Attribute</code> names. If attribute names are not specified then all attributes will be returned. If some attributes are not found, they will not appear in the result. Pass a string for a single value, or an indexed array for multiple values.</li>
850
  * <li><code>Limit</code> - <code>integer</code> - Optional - The maximum number of items to return. If Amazon DynamoDB hits this limit while scanning the table, it stops the scan and returns the matching values up to the limit, and a <code>LastEvaluatedKey</code> to apply in a subsequent operation to continue the scan. Also, if the scanned data set size exceeds 1 MB before Amazon DynamoDB hits this limit, it stops the scan and returns the matching values up to the limit, and a <code>LastEvaluatedKey</code> to apply in a subsequent operation to continue the scan.</li>
851
+ * <li><code>Count</code> - <code>boolean</code> - Optional - If set to <code>true</code>, Amazon DynamoDB returns a total number of items for the <code>Scan</code> operation, even if the operation has no matching items for the assigned filter. Do not set <code>Count</code> to <code>true</code> while providing a list of <code>AttributesToGet</code>, otherwise Amazon DynamoDB returns a validation error.</li>
852
  * <li><code>ScanFilter</code> - <code>array</code> - Optional - Evaluates the scan results and returns only the desired values. <ul>
853
+ * <li><code>[custom-key]</code> - <code>array</code> - Optional - This key is variable (e.g., user-specified). <ul>
854
  * <li><code>AttributeValueList</code> - <code>array</code> - Optional - A list of attribute values to be used with a comparison operator for a scan or query operation. For comparisons that require more than one value, such as a <code>BETWEEN</code> comparison, the AttributeValueList contains two attribute values and the comparison operator. <ul>
855
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
856
  * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
859
  * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
860
  * </ul></li>
861
  * </ul></li>
862
+ * <li><code>ComparisonOperator</code> - <code>string</code> - Required - A comparison operator is an enumeration of several operations:<ul><li> <code>EQ</code> for <em>equal</em>.</li><li> <code>NE</code> for <em>not equal</em>.</li><li> <code>IN</code> checks for exact matches.</li><li> <code>LE</code> for <em>less than or equal to</em>.</li><li> <code>LT</code> for <em>less than</em>.</li><li> <code>GE</code> for <em>greater than or equal to</em>.</li><li> <code>GT</code> for <em>greater than</em>.</li><li> <code>BETWEEN</code> for <em>between</em>.</li><li> <code>NOT_NULL</code> for <em>exists</em>.</li><li> <code>NULL</code> for <em>not exists</em>.</li><li> <code>CONTAINS</code> for substring or value in a set.</li><li> <code>NOT_CONTAINS</code> for absence of a substring or absence of a value in a set.</li><li> <code>BEGINS_WITH</code> for a substring prefix.</li></ul>Scan operations support all available comparison operators. Query operations support a subset of the available comparison operators: EQ, LE, LT, GE, GT, BETWEEN, and BEGINS_WITH. [Allowed values: <code>EQ</code>, <code>NE</code>, <code>IN</code>, <code>LE</code>, <code>LT</code>, <code>GE</code>, <code>GT</code>, <code>BETWEEN</code>, <code>NOT_NULL</code>, <code>NULL</code>, <code>CONTAINS</code>, <code>NOT_CONTAINS</code>, <code>BEGINS_WITH</code>]</li>
863
  * </ul></li>
864
  * </ul></li>
865
  * <li><code>ExclusiveStartKey</code> - <code>array</code> - Optional - Primary key of the item from which to continue an earlier scan. An earlier scan might provide this value if that scan operation was interrupted before scanning the entire table; either because of the result set size or the <code>Limit</code> parameter. The <code>LastEvaluatedKey</code> can be passed back in a new scan request to continue the operation from that point. <ul>
866
+ * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
867
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
868
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
869
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
870
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
871
+ * </ul></li>
872
+ * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
873
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
874
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
875
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
876
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
 
 
 
 
 
 
877
  * </ul></li>
878
  * </ul></li>
879
  * <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>
883
  public function scan($opt = null)
884
  {
885
  if (!$opt) $opt = array();
886
+
887
  // List (non-map)
888
  if (isset($opt['AttributesToGet']))
889
  {
896
 
897
  /**
898
  * Edits an existing item's attributes.
899
+ *
900
  * You can perform a conditional update (insert a new attribute name-value pair if it doesn't
901
  * exist, or replace an existing name-value pair if it has certain expected attribute values).
902
  *
903
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
904
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table in which you want to update an item. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
905
  * <li><code>Key</code> - <code>array</code> - Required - The primary key that uniquely identifies each item in a table. A primary key can be a one attribute (hash) primary key or a two attribute (hash-and-range) primary key. <ul>
906
+ * <li><code>HashKeyElement</code> - <code>array</code> - Required - A hash key element is treated as the primary key, and can be a string or a number. Single attribute primary keys have one index value. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
907
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
908
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
909
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
910
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
911
+ * </ul></li>
912
+ * <li><code>RangeKeyElement</code> - <code>array</code> - Optional - A range key element is treated as a secondary key (used in conjunction with the primary key), and can be a string or a number, and is only used for hash-and-range primary keys. The value can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
913
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
914
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
915
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
916
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
 
 
 
 
 
 
917
  * </ul></li>
918
  * </ul></li>
919
  * <li><code>AttributeUpdates</code> - <code>array</code> - Required - Map of attribute name to the new value and action for the update. The attribute names specify the attributes to modify, and cannot contain any primary key attributes. <ul>
920
+ * <li><code>[custom-key]</code> - <code>array</code> - Optional - Specifies the attribute to update and how to perform the update. Possible values: <code>PUT</code> (default), <code>ADD</code> or <code>DELETE</code>. <ul>
 
921
  * <li><code>Value</code> - <code>array</code> - Optional - AttributeValue can be <code>String</code>, <code>Number</code>, <code>StringSet</code>, <code>NumberSet</code>. <ul>
922
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
923
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
924
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
925
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
 
 
926
  * </ul></li>
927
+ * <li><code>Action</code> - <code>string</code> - Optional - The type of action for an item update operation. Only use the add action for numbers or sets; the specified value is added to the existing value. If a set of values is specified, the values are added to the existing set. Adds the specified attribute. If the attribute exists, it is replaced by the new value. If no value is specified, this removes the attribute and its value. If a set of values is specified, then the values in the specified set are removed from the old set. [Allowed values: <code>ADD</code>, <code>PUT</code>, <code>DELETE</code>]</li>
928
  * </ul></li>
929
  * </ul></li>
930
  * <li><code>Expected</code> - <code>array</code> - Optional - Designates an attribute for a conditional modification. The <code>Expected</code> parameter allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute has a particular value before modifying it. <ul>
931
+ * <li><code>[custom-key]</code> - <code>array</code> - Optional - Allows you to provide an attribute name, and whether or not Amazon DynamoDB should check to see if the attribute value already exists; or if the attribute value exists and has a particular value before changing it. <ul>
932
  * <li><code>Value</code> - <code>array</code> - Optional - Specify whether or not a value already exists and has a specific content for the attribute name-value pair. <ul>
933
+ * <li><code>S</code> - <code>string</code> - Optional - Strings are Unicode with UTF-8 binary encoding. The maximum size is limited by the size of the primary key (1024 bytes as a range part of a key or 2048 bytes as a single part hash key) or the item size (64k).</li>
934
+ * <li><code>N</code> - <code>string</code> - Optional - Numbers are positive or negative exact-value decimals and integers. A number can have up to 38 digits precision and can be between 10^-128 to 10^+126.</li>
935
+ * <li><code>SS</code> - <code>string|array</code> - Optional - A set of strings. Pass a string for a single value, or an indexed array for multiple values.</li>
936
+ * <li><code>NS</code> - <code>string|array</code> - Optional - A set of numbers. Pass a string for a single value, or an indexed array for multiple values.</li>
 
 
937
  * </ul></li>
938
  * <li><code>Exists</code> - <code>boolean</code> - Optional - Specify whether or not a value already exists for the attribute name-value pair.</li>
939
  * </ul></li>
946
  public function update_item($opt = null)
947
  {
948
  if (!$opt) $opt = array();
949
+
950
  $opt = json_encode($opt);
951
  return $this->authenticate('UpdateItem', $opt);
952
  }
953
 
954
  /**
955
  * Updates the provisioned throughput for the given table.
956
+ *
957
  * Setting the throughput for a table helps you manage performance and is part of the Provisioned
958
+ * Throughput feature of Amazon DynamoDB.
959
  *
960
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
961
  * <li><code>TableName</code> - <code>string</code> - Required - The name of the table you want to update. Allowed characters are <code>a-z</code>, <code>A-Z</code>, <code>0-9</code>, <code>_</code> (underscore), <code>-</code> (hyphen) and <code>.</code> (period). [Constraints: The value must be between 3 and 255 characters, and must match the following regular expression pattern: <code>[a-zA-Z0-9_.-]+</code>]</li>
962
  * <li><code>ProvisionedThroughput</code> - <code>array</code> - Required - Provisioned throughput reserves the required read and write resources for your table in terms of <code>ReadCapacityUnits</code> and <code>WriteCapacityUnits</code>. Values for provisioned throughput depend upon your expected read/write rates, item size, and consistency. Provide the expected number of read and write operations, assuming an item size of 1k and strictly consistent reads. For 2k item size, double the value. For 3k, triple the value, etc. Eventually-consistent reads consume half the resources of strictly consistent reads. <ul>
963
+ * <li><code>ReadCapacityUnits</code> - <code>long</code> - Required - <code>ReadCapacityUnits</code> are in terms of strictly consistent reads, assuming items of 1k. 2k items require twice the <code>ReadCapacityUnits</code>. Eventually-consistent reads only require half the <code>ReadCapacityUnits</code> of stirctly consistent reads.</li>
964
+ * <li><code>WriteCapacityUnits</code> - <code>long</code> - Required - <code>WriteCapacityUnits</code> are in terms of strictly consistent reads, assuming items of 1k. 2k items require twice the <code>WriteCapacityUnits</code>.</li>
 
 
965
  * </ul></li>
966
  * <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>
967
  * <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>
970
  public function update_table($opt = null)
971
  {
972
  if (!$opt) $opt = array();
973
+
974
  $opt = json_encode($opt);
975
  return $this->authenticate('UpdateTable', $opt);
976
  }
libs/aws/services/ec2.class.php CHANGED
@@ -29,7 +29,7 @@
29
  *
30
  * Visit <a href="http://aws.amazon.com/ec2/">http://aws.amazon.com/ec2/</a> for more information.
31
  *
32
- * @version 2012.01.17
33
  * @license See the included NOTICE.md file for complete information.
34
  * @copyright See the included NOTICE.md file for complete information.
35
  * @link http://aws.amazon.com/ec2/ Amazon EC2
@@ -138,7 +138,7 @@ class AmazonEC2 extends CFRuntime
138
  */
139
  public function __construct(array $options = array())
140
  {
141
- $this->api_version = '2011-11-01';
142
  $this->hostname = self::DEFAULT_URL;
143
  $this->auth_class = 'AuthV2Query';
144
 
@@ -163,6 +163,7 @@ class AmazonEC2 extends CFRuntime
163
  // Standard
164
  const INSTANCE_MICRO = 't1.micro';
165
  const INSTANCE_SMALL = 'm1.small';
 
166
  const INSTANCE_LARGE = 'm1.large';
167
  const INSTANCE_XLARGE = 'm1.xlarge';
168
 
@@ -248,6 +249,7 @@ class AmazonEC2 extends CFRuntime
248
  * @param string $public_ip (Required) IP address that you are assigning to the instance.
249
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
250
  * <li><code>AllocationId</code> - <code>string</code> - Optional - The allocation ID that AWS returned when you allocated the elastic IP address for use with Amazon VPC.</li>
 
251
  * <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>
252
  * <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>
253
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -334,6 +336,27 @@ class AmazonEC2 extends CFRuntime
334
  return $this->authenticate('AttachInternetGateway', $opt);
335
  }
336
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
337
  /**
338
  * Attach a previously created volume to a running instance.
339
  *
@@ -532,6 +555,24 @@ class AmazonEC2 extends CFRuntime
532
  return $this->authenticate('CancelBundleTask', $opt);
533
  }
534
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
535
  /**
536
  * Cancels one or more Spot Instance requests.
537
  *
@@ -801,6 +842,35 @@ class AmazonEC2 extends CFRuntime
801
  return $this->authenticate('CreateNetworkAclEntry', $opt);
802
  }
803
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
804
  /**
805
  * Creates a <code>PlacementGroup</code> into which multiple Amazon EC2 instances can be launched.
806
  * Users must give the group a name unique within the scope of the user account.
@@ -846,6 +916,7 @@ class AmazonEC2 extends CFRuntime
846
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
847
  * <li><code>GatewayId</code> - <code>string</code> - Optional - The ID of a VPN or Internet gateway attached to your VPC. You must provide either <code>GatewayId</code> or <code>InstanceId</code>, but not both.</li>
848
  * <li><code>InstanceId</code> - <code>string</code> - Optional - The ID of a NAT instance in your VPC. You must provide either <code>GatewayId</code> or <code>InstanceId</code>, but not both.</li>
 
849
  * <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>
850
  * <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>
851
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -1260,6 +1331,23 @@ class AmazonEC2 extends CFRuntime
1260
  return $this->authenticate('DeleteNetworkAclEntry', $opt);
1261
  }
1262
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1263
  /**
1264
  * Deletes a <code>PlacementGroup</code> from a user's account. Terminate all Amazon EC2 instances
1265
  * in the placement group before deletion.
@@ -1674,6 +1762,46 @@ class AmazonEC2 extends CFRuntime
1674
  return $this->authenticate('DescribeBundleTasks', $opt);
1675
  }
1676
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1677
  /**
1678
  * Gives you information about your customer gateways. You can filter the results to return
1679
  * information only about customer gateways that match criteria you specify. For example, you
@@ -2230,6 +2358,67 @@ class AmazonEC2 extends CFRuntime
2230
  return $this->authenticate('DescribeNetworkAcls', $opt);
2231
  }
2232
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2233
  /**
2234
  * Returns information about one or more <code>PlacementGroup</code> instances in a user's
2235
  * account.
@@ -2362,7 +2551,7 @@ class AmazonEC2 extends CFRuntime
2362
  *
2363
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
2364
  * <li><code>ReservedInstancesOfferingId</code> - <code>string|array</code> - Optional - An optional list of the unique IDs of the Reserved Instance offerings to describe. Pass a string for a single value, or an indexed array for multiple values.</li>
2365
- * <li><code>InstanceType</code> - <code>string</code> - Optional - The instance type on which the Reserved Instance can be used. [Allowed values: <code>t1.micro</code>, <code>m1.small</code>, <code>m1.large</code>, <code>m1.xlarge</code>, <code>m2.xlarge</code>, <code>m2.2xlarge</code>, <code>m2.4xlarge</code>, <code>c1.medium</code>, <code>c1.xlarge</code>, <code>cc1.4xlarge</code>, <code>cc2.8xlarge</code>, <code>cg1.4xlarge</code>]</li>
2366
  * <li><code>AvailabilityZone</code> - <code>string</code> - Optional - The Availability Zone in which the Reserved Instance can be used.</li>
2367
  * <li><code>ProductDescription</code> - <code>string</code> - Optional - The Reserved Instance product description.</li>
2368
  * <li><code>Filter</code> - <code>array</code> - Optional - A list of filters used to match properties for ReservedInstancesOfferings. For a complete reference to the available filter keys for this operation, see the <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/">Amazon EC2 API reference</a>. <ul>
@@ -2834,6 +3023,66 @@ class AmazonEC2 extends CFRuntime
2834
  return $this->authenticate('DescribeTags', $opt);
2835
  }
2836
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
2837
  /**
2838
  * Describes the status of the indicated volume or, in lieu of any specified, all volumes
2839
  * belonging to the caller. Volumes that have been deleted are not described.
@@ -3049,6 +3298,24 @@ class AmazonEC2 extends CFRuntime
3049
  return $this->authenticate('DetachInternetGateway', $opt);
3050
  }
3051
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3052
  /**
3053
  * Detach a previously attached volume from a running instance.
3054
  *
@@ -3136,6 +3403,23 @@ class AmazonEC2 extends CFRuntime
3136
  return $this->authenticate('DisassociateRouteTable', $opt);
3137
  }
3138
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3139
  /**
3140
  * The GetConsoleOutput operation retrieves console output for the specified instance.
3141
  *
@@ -3216,6 +3500,94 @@ class AmazonEC2 extends CFRuntime
3216
  }
3217
  }
3218
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3219
  /**
3220
  * Imports the public key from an RSA key pair created with a third-party tool. This operation differs
3221
  * from CreateKeyPair as the private key is never transferred between the caller and AWS servers.
@@ -3248,6 +3620,53 @@ class AmazonEC2 extends CFRuntime
3248
  return $this->authenticate('ImportKeyPair', $opt, $this->hostname);
3249
  }
3250
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3251
  /**
3252
  * The ModifyImageAttribute operation modifies an attribute of an AMI.
3253
  *
@@ -3261,17 +3680,13 @@ class AmazonEC2 extends CFRuntime
3261
  * <li><code>Value</code> - <code>string</code> - Optional - The value of the attribute being modified. Only valid when the description attribute is being modified.</li>
3262
  * <li><code>LaunchPermission</code> - <code>array</code> - Optional - <ul>
3263
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3264
- * <li><code>Add</code> - <code>array</code> - Optional - <p>
3265
- Describes a permission to launch an Amazon Machine Image (AMI).
3266
- </p> <ul>
3267
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3268
  * <li><code>UserId</code> - <code>string</code> - Optional - The AWS user ID of the user involved in this launch permission.</li>
3269
  * <li><code>Group</code> - <code>string</code> - Optional - The AWS group of the user involved in this launch permission. Available groups: <code>all</code></li>
3270
  * </ul></li>
3271
  * </ul></li>
3272
- * <li><code>Remove</code> - <code>array</code> - Optional - <p>
3273
- Describes a permission to launch an Amazon Machine Image (AMI).
3274
- </p> <ul>
3275
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3276
  * <li><code>UserId</code> - <code>string</code> - Optional - The AWS user ID of the user involved in this launch permission.</li>
3277
  * <li><code>Group</code> - <code>string</code> - Optional - The AWS group of the user involved in this launch permission. Available groups: <code>all</code></li>
@@ -3386,6 +3801,50 @@ class AmazonEC2 extends CFRuntime
3386
  return $this->authenticate('ModifyInstanceAttribute', $opt);
3387
  }
3388
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3389
  /**
3390
  * Adds or remove permission settings for the specified snapshot.
3391
  *
@@ -3397,19 +3856,13 @@ class AmazonEC2 extends CFRuntime
3397
  * <li><code>UserGroup</code> - <code>string|array</code> - Optional - The AWS group names to add to or remove from the list of groups that have permission to create EBS volumes from the specified snapshot. Currently supports "all". <p class="note">Only valid when the <code>createVolumePermission</code> attribute is being modified.</p> Pass a string for a single value, or an indexed array for multiple values.</li>
3398
  * <li><code>CreateVolumePermission</code> - <code>array</code> - Optional - <ul>
3399
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3400
- * <li><code>Add</code> - <code>array</code> - Optional - <p>
3401
- Describes a permission allowing either a user or group to create a new EBS
3402
- volume from a snapshot.
3403
- </p> <ul>
3404
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3405
  * <li><code>UserId</code> - <code>string</code> - Optional - The user ID of the user that can create volumes from the snapshot.</li>
3406
  * <li><code>Group</code> - <code>string</code> - Optional - The group that is allowed to create volumes from the snapshot (currently supports "all").</li>
3407
  * </ul></li>
3408
  * </ul></li>
3409
- * <li><code>Remove</code> - <code>array</code> - Optional - <p>
3410
- Describes a permission allowing either a user or group to create a new EBS
3411
- volume from a snapshot.
3412
- </p> <ul>
3413
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3414
  * <li><code>UserId</code> - <code>string</code> - Optional - The user ID of the user that can create volumes from the snapshot.</li>
3415
  * <li><code>Group</code> - <code>string</code> - Optional - The group that is allowed to create volumes from the snapshot (currently supports "all").</li>
@@ -3456,6 +3909,24 @@ class AmazonEC2 extends CFRuntime
3456
  return $this->authenticate('ModifySnapshotAttribute', $opt);
3457
  }
3458
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3459
  /**
3460
  * Enables monitoring for a running instance.
3461
  *
@@ -3696,6 +4167,7 @@ class AmazonEC2 extends CFRuntime
3696
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
3697
  * <li><code>GatewayId</code> - <code>string</code> - Optional - The ID of a VPN or Internet gateway attached to your VPC.</li>
3698
  * <li><code>InstanceId</code> - <code>string</code> - Optional - The ID of a NAT instance in your VPC.</li>
 
3699
  * <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>
3700
  * <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>
3701
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -3736,6 +4208,57 @@ class AmazonEC2 extends CFRuntime
3736
  return $this->authenticate('ReplaceRouteTableAssociation', $opt);
3737
  }
3738
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3739
  /**
3740
  * Creates a Spot Instance request.
3741
  *
@@ -3761,19 +4284,16 @@ class AmazonEC2 extends CFRuntime
3761
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3762
  * <li><code>ImageId</code> - <code>string</code> - Optional - The AMI ID.</li>
3763
  * <li><code>KeyName</code> - <code>string</code> - Optional - The name of the key pair.</li>
3764
- * <li><code>GroupSet</code> - <code>array</code> - Optional - <p>
3765
-
3766
- </p> <ul>
3767
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3768
  * <li><code>GroupName</code> - <code>string</code> - Optional - </li>
3769
  * <li><code>GroupId</code> - <code>string</code> - Optional - </li>
3770
  * </ul></li>
3771
  * </ul></li>
3772
- * <li><code>SecurityGroup</code> - <code>string|array</code> - Optional - <p>
3773
-
3774
- </p> Pass a string for a single value, or an indexed array for multiple values.</li>
3775
  * <li><code>UserData</code> - <code>string</code> - Optional - Optional data, specific to a user's application, to provide in the launch request. All instances that collectively comprise the launch request have access to this data. User data is never returned through API responses.</li>
3776
- * <li><code>InstanceType</code> - <code>string</code> - Optional - Specifies the instance type. [Allowed values: <code>t1.micro</code>, <code>m1.small</code>, <code>m1.large</code>, <code>m1.xlarge</code>, <code>m2.xlarge</code>, <code>m2.2xlarge</code>, <code>m2.4xlarge</code>, <code>c1.medium</code>, <code>c1.xlarge</code>, <code>cc1.4xlarge</code>, <code>cc2.8xlarge</code>, <code>cg1.4xlarge</code>]</li>
 
3777
  * <li><code>Placement</code> - <code>array</code> - Optional - Defines a placement item. <ul>
3778
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3779
  * <li><code>AvailabilityZone</code> - <code>string</code> - Optional - The availability zone in which an Amazon EC2 instance runs.</li>
@@ -3798,6 +4318,17 @@ class AmazonEC2 extends CFRuntime
3798
  * </ul></li>
3799
  * <li><code>Monitoring.Enabled</code> - <code>boolean</code> - Optional - Enables monitoring for the instance.</li>
3800
  * <li><code>SubnetId</code> - <code>string</code> - Optional - Specifies the Amazon VPC subnet ID within which to launch the instance(s) for Amazon Virtual Private Cloud.</li>
 
 
 
 
 
 
 
 
 
 
 
3801
  * </ul></li>
3802
  * </ul></li>
3803
  * <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>
@@ -3875,6 +4406,24 @@ class AmazonEC2 extends CFRuntime
3875
  return $this->authenticate('ResetInstanceAttribute', $opt);
3876
  }
3877
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3878
  /**
3879
  * Resets permission settings for the specified snapshot.
3880
  *
@@ -4049,7 +4598,8 @@ class AmazonEC2 extends CFRuntime
4049
  * <li><code>SecurityGroup</code> - <code>string|array</code> - Optional - The names of the security groups into which the instances will be launched. Pass a string for a single value, or an indexed array for multiple values.</li>
4050
  * <li><code>SecurityGroupId</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
4051
  * <li><code>UserData</code> - <code>string</code> - Optional - Specifies additional information to make available to the instance(s).</li>
4052
- * <li><code>InstanceType</code> - <code>string</code> - Optional - Specifies the instance type for the launched instances. [Allowed values: <code>t1.micro</code>, <code>m1.small</code>, <code>m1.large</code>, <code>m1.xlarge</code>, <code>m2.xlarge</code>, <code>m2.2xlarge</code>, <code>m2.4xlarge</code>, <code>c1.medium</code>, <code>c1.xlarge</code>, <code>cc1.4xlarge</code>, <code>cc2.8xlarge</code>, <code>cg1.4xlarge</code>]</li>
 
4053
  * <li><code>Placement</code> - <code>array</code> - Optional - Specifies the placement constraints (Availability Zones) for launching the instances. <ul>
4054
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
4055
  * <li><code>AvailabilityZone</code> - <code>string</code> - Optional - The availability zone in which an Amazon EC2 instance runs.</li>
@@ -4084,6 +4634,17 @@ class AmazonEC2 extends CFRuntime
4084
  * </ul></li>
4085
  * <li><code>PrivateIpAddress</code> - <code>string</code> - Optional - If you're using Amazon Virtual Private Cloud, you can optionally use this parameter to assign the instance a specific available IP address from the subnet.</li>
4086
  * <li><code>ClientToken</code> - <code>string</code> - Optional - Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, go to How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.</li>
 
 
 
 
 
 
 
 
 
 
 
4087
  * <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>
4088
  * <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>
4089
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -4139,6 +4700,15 @@ class AmazonEC2 extends CFRuntime
4139
  )));
4140
  unset($opt['License']);
4141
  }
 
 
 
 
 
 
 
 
 
4142
 
4143
  return $this->authenticate('RunInstances', $opt);
4144
  }
29
  *
30
  * Visit <a href="http://aws.amazon.com/ec2/">http://aws.amazon.com/ec2/</a> for more information.
31
  *
32
+ * @version 2012.04.18
33
  * @license See the included NOTICE.md file for complete information.
34
  * @copyright See the included NOTICE.md file for complete information.
35
  * @link http://aws.amazon.com/ec2/ Amazon EC2
138
  */
139
  public function __construct(array $options = array())
140
  {
141
+ $this->api_version = '2012-03-01';
142
  $this->hostname = self::DEFAULT_URL;
143
  $this->auth_class = 'AuthV2Query';
144
 
163
  // Standard
164
  const INSTANCE_MICRO = 't1.micro';
165
  const INSTANCE_SMALL = 'm1.small';
166
+ const INSTANCE_MEDIUM = 'm1.medium';
167
  const INSTANCE_LARGE = 'm1.large';
168
  const INSTANCE_XLARGE = 'm1.xlarge';
169
 
249
  * @param string $public_ip (Required) IP address that you are assigning to the instance.
250
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
251
  * <li><code>AllocationId</code> - <code>string</code> - Optional - The allocation ID that AWS returned when you allocated the elastic IP address for use with Amazon VPC.</li>
252
+ * <li><code>NetworkInterfaceId</code> - <code>string</code> - Optional - </li>
253
  * <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>
254
  * <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>
255
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
336
  return $this->authenticate('AttachInternetGateway', $opt);
337
  }
338
 
339
+ /**
340
+ *
341
+ *
342
+ * @param string $network_interface_id (Required)
343
+ * @param string $instance_id (Required)
344
+ * @param integer $device_index (Required)
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 attach_network_interface($network_interface_id, $instance_id, $device_index, $opt = null)
351
+ {
352
+ if (!$opt) $opt = array();
353
+ $opt['NetworkInterfaceId'] = $network_interface_id;
354
+ $opt['InstanceId'] = $instance_id;
355
+ $opt['DeviceIndex'] = $device_index;
356
+
357
+ return $this->authenticate('AttachNetworkInterface', $opt);
358
+ }
359
+
360
  /**
361
  * Attach a previously created volume to a running instance.
362
  *
555
  return $this->authenticate('CancelBundleTask', $opt);
556
  }
557
 
558
+ /**
559
+ *
560
+ *
561
+ * @param string $conversion_task_id (Required)
562
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
563
+ * <li><code>ReasonMessage</code> - <code>string</code> - Optional - </li>
564
+ * <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>
565
+ * <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>
566
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
567
+ */
568
+ public function cancel_conversion_task($conversion_task_id, $opt = null)
569
+ {
570
+ if (!$opt) $opt = array();
571
+ $opt['ConversionTaskId'] = $conversion_task_id;
572
+
573
+ return $this->authenticate('CancelConversionTask', $opt);
574
+ }
575
+
576
  /**
577
  * Cancels one or more Spot Instance requests.
578
  *
842
  return $this->authenticate('CreateNetworkAclEntry', $opt);
843
  }
844
 
845
+ /**
846
+ *
847
+ *
848
+ * @param string $subnet_id (Required)
849
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
850
+ * <li><code>Description</code> - <code>string</code> - Optional - </li>
851
+ * <li><code>PrivateIpAddress</code> - <code>string</code> - Optional - </li>
852
+ * <li><code>SecurityGroupId</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
853
+ * <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>
854
+ * <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>
855
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
856
+ */
857
+ public function create_network_interface($subnet_id, $opt = null)
858
+ {
859
+ if (!$opt) $opt = array();
860
+ $opt['SubnetId'] = $subnet_id;
861
+
862
+ // Optional list (non-map)
863
+ if (isset($opt['SecurityGroupId']))
864
+ {
865
+ $opt = array_merge($opt, CFComplexType::map(array(
866
+ 'SecurityGroupId' => (is_array($opt['SecurityGroupId']) ? $opt['SecurityGroupId'] : array($opt['SecurityGroupId']))
867
+ )));
868
+ unset($opt['SecurityGroupId']);
869
+ }
870
+
871
+ return $this->authenticate('CreateNetworkInterface', $opt);
872
+ }
873
+
874
  /**
875
  * Creates a <code>PlacementGroup</code> into which multiple Amazon EC2 instances can be launched.
876
  * Users must give the group a name unique within the scope of the user account.
916
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
917
  * <li><code>GatewayId</code> - <code>string</code> - Optional - The ID of a VPN or Internet gateway attached to your VPC. You must provide either <code>GatewayId</code> or <code>InstanceId</code>, but not both.</li>
918
  * <li><code>InstanceId</code> - <code>string</code> - Optional - The ID of a NAT instance in your VPC. You must provide either <code>GatewayId</code> or <code>InstanceId</code>, but not both.</li>
919
+ * <li><code>NetworkInterfaceId</code> - <code>string</code> - Optional - </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.
1331
  return $this->authenticate('DeleteNetworkAclEntry', $opt);
1332
  }
1333
 
1334
+ /**
1335
+ *
1336
+ *
1337
+ * @param string $network_interface_id (Required)
1338
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1339
+ * <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>
1340
+ * <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>
1341
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1342
+ */
1343
+ public function delete_network_interface($network_interface_id, $opt = null)
1344
+ {
1345
+ if (!$opt) $opt = array();
1346
+ $opt['NetworkInterfaceId'] = $network_interface_id;
1347
+
1348
+ return $this->authenticate('DeleteNetworkInterface', $opt);
1349
+ }
1350
+
1351
  /**
1352
  * Deletes a <code>PlacementGroup</code> from a user's account. Terminate all Amazon EC2 instances
1353
  * in the placement group before deletion.
1762
  return $this->authenticate('DescribeBundleTasks', $opt);
1763
  }
1764
 
1765
+ /**
1766
+ *
1767
+ *
1768
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1769
+ * <li><code>Filter</code> - <code>array</code> - Optional - A filter used to limit results when describing tags. Multiple values can be specified per filter. A tag must match at least one of the specified values for it to be returned from an operation. Wildcards can be included in filter values; <code>*</code> specifies that zero or more characters must match, and <code>?</code> specifies that exactly one character must match. Use a backslash to escape special characters. For example, a filter value of <code>\*amazon\?\\</code> specifies the literal string <code>*amazon?\</code>. <ul>
1770
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1771
+ * <li><code>Name</code> - <code>string</code> - Optional - Specifies the name of the filter.</li>
1772
+ * <li><code>Value</code> - <code>string|array</code> - Optional - Contains one or more values for the filter. Pass a string for a single value, or an indexed array for multiple values.</li>
1773
+ * </ul></li>
1774
+ * </ul></li>
1775
+ * <li><code>ConversionTaskId</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
1776
+ * <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>
1777
+ * <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>
1778
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1779
+ */
1780
+ public function describe_conversion_tasks($opt = null)
1781
+ {
1782
+ if (!$opt) $opt = array();
1783
+
1784
+ // Optional list + map
1785
+ if (isset($opt['Filter']))
1786
+ {
1787
+ $opt = array_merge($opt, CFComplexType::map(array(
1788
+ 'Filter' => $opt['Filter']
1789
+ )));
1790
+ unset($opt['Filter']);
1791
+ }
1792
+
1793
+ // Optional list (non-map)
1794
+ if (isset($opt['ConversionTaskId']))
1795
+ {
1796
+ $opt = array_merge($opt, CFComplexType::map(array(
1797
+ 'ConversionTaskId' => (is_array($opt['ConversionTaskId']) ? $opt['ConversionTaskId'] : array($opt['ConversionTaskId']))
1798
+ )));
1799
+ unset($opt['ConversionTaskId']);
1800
+ }
1801
+
1802
+ return $this->authenticate('DescribeConversionTasks', $opt);
1803
+ }
1804
+
1805
  /**
1806
  * Gives you information about your customer gateways. You can filter the results to return
1807
  * information only about customer gateways that match criteria you specify. For example, you
2358
  return $this->authenticate('DescribeNetworkAcls', $opt);
2359
  }
2360
 
2361
+ /**
2362
+ *
2363
+ *
2364
+ * @param string $network_interface_id (Required)
2365
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
2366
+ * <li><code>Description</code> - <code>string</code> - Optional - </li>
2367
+ * <li><code>SourceDestCheck</code> - <code>string</code> - Optional - </li>
2368
+ * <li><code>GroupSet</code> - <code>string</code> - Optional - </li>
2369
+ * <li><code>Attachment</code> - <code>string</code> - Optional - </li>
2370
+ * <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>
2371
+ * <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>
2372
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
2373
+ */
2374
+ public function describe_network_interface_attribute($network_interface_id, $opt = null)
2375
+ {
2376
+ if (!$opt) $opt = array();
2377
+ $opt['NetworkInterfaceId'] = $network_interface_id;
2378
+
2379
+ return $this->authenticate('DescribeNetworkInterfaceAttribute', $opt);
2380
+ }
2381
+
2382
+ /**
2383
+ *
2384
+ *
2385
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
2386
+ * <li><code>NetworkInterfaceId</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
2387
+ * <li><code>Filter</code> - <code>array</code> - Optional - A filter used to limit results when describing tags. Multiple values can be specified per filter. A tag must match at least one of the specified values for it to be returned from an operation. Wildcards can be included in filter values; <code>*</code> specifies that zero or more characters must match, and <code>?</code> specifies that exactly one character must match. Use a backslash to escape special characters. For example, a filter value of <code>\*amazon\?\\</code> specifies the literal string <code>*amazon?\</code>. <ul>
2388
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
2389
+ * <li><code>Name</code> - <code>string</code> - Optional - Specifies the name of the filter.</li>
2390
+ * <li><code>Value</code> - <code>string|array</code> - Optional - Contains one or more values for the filter. Pass a string for a single value, or an indexed array for multiple values.</li>
2391
+ * </ul></li>
2392
+ * </ul></li>
2393
+ * <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>
2394
+ * <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>
2395
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
2396
+ */
2397
+ public function describe_network_interfaces($opt = null)
2398
+ {
2399
+ if (!$opt) $opt = array();
2400
+
2401
+ // Optional list (non-map)
2402
+ if (isset($opt['NetworkInterfaceId']))
2403
+ {
2404
+ $opt = array_merge($opt, CFComplexType::map(array(
2405
+ 'NetworkInterfaceId' => (is_array($opt['NetworkInterfaceId']) ? $opt['NetworkInterfaceId'] : array($opt['NetworkInterfaceId']))
2406
+ )));
2407
+ unset($opt['NetworkInterfaceId']);
2408
+ }
2409
+
2410
+ // Optional list + map
2411
+ if (isset($opt['Filter']))
2412
+ {
2413
+ $opt = array_merge($opt, CFComplexType::map(array(
2414
+ 'Filter' => $opt['Filter']
2415
+ )));
2416
+ unset($opt['Filter']);
2417
+ }
2418
+
2419
+ return $this->authenticate('DescribeNetworkInterfaces', $opt);
2420
+ }
2421
+
2422
  /**
2423
  * Returns information about one or more <code>PlacementGroup</code> instances in a user's
2424
  * account.
2551
  *
2552
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
2553
  * <li><code>ReservedInstancesOfferingId</code> - <code>string|array</code> - Optional - An optional list of the unique IDs of the Reserved Instance offerings to describe. Pass a string for a single value, or an indexed array for multiple values.</li>
2554
+ * <li><code>InstanceType</code> - <code>string</code> - Optional - The instance type on which the Reserved Instance can be used. [Allowed values: <code>t1.micro</code>, <code>m1.small</code>, <code>m1.medium</code>, <code>m1.large</code>, <code>m1.xlarge</code>, <code>m2.xlarge</code>, <code>m2.2xlarge</code>, <code>m2.4xlarge</code>, <code>c1.medium</code>, <code>c1.xlarge</code>, <code>cc1.4xlarge</code>, <code>cc2.8xlarge</code>, <code>cg1.4xlarge</code>]</li>
2555
  * <li><code>AvailabilityZone</code> - <code>string</code> - Optional - The Availability Zone in which the Reserved Instance can be used.</li>
2556
  * <li><code>ProductDescription</code> - <code>string</code> - Optional - The Reserved Instance product description.</li>
2557
  * <li><code>Filter</code> - <code>array</code> - Optional - A list of filters used to match properties for ReservedInstancesOfferings. For a complete reference to the available filter keys for this operation, see the <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/">Amazon EC2 API reference</a>. <ul>
3023
  return $this->authenticate('DescribeTags', $opt);
3024
  }
3025
 
3026
+ /**
3027
+ *
3028
+ *
3029
+ * @param string $volume_id (Required)
3030
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
3031
+ * <li><code>Attribute</code> - <code>string</code> - Optional - </li>
3032
+ * <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>
3033
+ * <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>
3034
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
3035
+ */
3036
+ public function describe_volume_attribute($volume_id, $opt = null)
3037
+ {
3038
+ if (!$opt) $opt = array();
3039
+ $opt['VolumeId'] = $volume_id;
3040
+
3041
+ return $this->authenticate('DescribeVolumeAttribute', $opt);
3042
+ }
3043
+
3044
+ /**
3045
+ * Describes the status of a volume.
3046
+ *
3047
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
3048
+ * <li><code>VolumeId</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
3049
+ * <li><code>Filter</code> - <code>array</code> - Optional - A filter used to limit results when describing tags. Multiple values can be specified per filter. A tag must match at least one of the specified values for it to be returned from an operation. Wildcards can be included in filter values; <code>*</code> specifies that zero or more characters must match, and <code>?</code> specifies that exactly one character must match. Use a backslash to escape special characters. For example, a filter value of <code>\*amazon\?\\</code> specifies the literal string <code>*amazon?\</code>. <ul>
3050
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3051
+ * <li><code>Name</code> - <code>string</code> - Optional - Specifies the name of the filter.</li>
3052
+ * <li><code>Value</code> - <code>string|array</code> - Optional - Contains one or more values for the filter. Pass a string for a single value, or an indexed array for multiple values.</li>
3053
+ * </ul></li>
3054
+ * </ul></li>
3055
+ * <li><code>NextToken</code> - <code>string</code> - Optional - </li>
3056
+ * <li><code>MaxResults</code> - <code>integer</code> - Optional - </li>
3057
+ * <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>
3058
+ * <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>
3059
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
3060
+ */
3061
+ public function describe_volume_status($opt = null)
3062
+ {
3063
+ if (!$opt) $opt = array();
3064
+
3065
+ // Optional list (non-map)
3066
+ if (isset($opt['VolumeId']))
3067
+ {
3068
+ $opt = array_merge($opt, CFComplexType::map(array(
3069
+ 'VolumeId' => (is_array($opt['VolumeId']) ? $opt['VolumeId'] : array($opt['VolumeId']))
3070
+ )));
3071
+ unset($opt['VolumeId']);
3072
+ }
3073
+
3074
+ // Optional list + map
3075
+ if (isset($opt['Filter']))
3076
+ {
3077
+ $opt = array_merge($opt, CFComplexType::map(array(
3078
+ 'Filter' => $opt['Filter']
3079
+ )));
3080
+ unset($opt['Filter']);
3081
+ }
3082
+
3083
+ return $this->authenticate('DescribeVolumeStatus', $opt);
3084
+ }
3085
+
3086
  /**
3087
  * Describes the status of the indicated volume or, in lieu of any specified, all volumes
3088
  * belonging to the caller. Volumes that have been deleted are not described.
3298
  return $this->authenticate('DetachInternetGateway', $opt);
3299
  }
3300
 
3301
+ /**
3302
+ *
3303
+ *
3304
+ * @param string $attachment_id (Required)
3305
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
3306
+ * <li><code>Force</code> - <code>boolean</code> - Optional - </li>
3307
+ * <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>
3308
+ * <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>
3309
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
3310
+ */
3311
+ public function detach_network_interface($attachment_id, $opt = null)
3312
+ {
3313
+ if (!$opt) $opt = array();
3314
+ $opt['AttachmentId'] = $attachment_id;
3315
+
3316
+ return $this->authenticate('DetachNetworkInterface', $opt);
3317
+ }
3318
+
3319
  /**
3320
  * Detach a previously attached volume from a running instance.
3321
  *
3403
  return $this->authenticate('DisassociateRouteTable', $opt);
3404
  }
3405
 
3406
+ /**
3407
+ * Enable IO on the volume after an event has occured.
3408
+ *
3409
+ * @param string $volume_id (Required)
3410
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
3411
+ * <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>
3412
+ * <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>
3413
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
3414
+ */
3415
+ public function enable_volume_io($volume_id, $opt = null)
3416
+ {
3417
+ if (!$opt) $opt = array();
3418
+ $opt['VolumeId'] = $volume_id;
3419
+
3420
+ return $this->authenticate('EnableVolumeIO', $opt);
3421
+ }
3422
+
3423
  /**
3424
  * The GetConsoleOutput operation retrieves console output for the specified instance.
3425
  *
3500
  }
3501
  }
3502
 
3503
+ /**
3504
+ *
3505
+ *
3506
+ * @param string $platform (Required)
3507
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
3508
+ * <li><code>Description</code> - <code>string</code> - Optional - </li>
3509
+ * <li><code>LaunchSpecification</code> - <code>array</code> - Optional - <ul>
3510
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3511
+ * <li><code>Architecture</code> - <code>string</code> - Optional - </li>
3512
+ * <li><code>SecurityGroup</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
3513
+ * <li><code>AdditionalInfo</code> - <code>string</code> - Optional - </li>
3514
+ * <li><code>UserData</code> - <code>string</code> - Optional - </li>
3515
+ * <li><code>InstanceType</code> - <code>string</code> - Optional - [Allowed values: <code>t1.micro</code>, <code>m1.small</code>, <code>m1.medium</code>, <code>m1.large</code>, <code>m1.xlarge</code>, <code>m2.xlarge</code>, <code>m2.2xlarge</code>, <code>m2.4xlarge</code>, <code>c1.medium</code>, <code>c1.xlarge</code>, <code>cc1.4xlarge</code>, <code>cc2.8xlarge</code>, <code>cg1.4xlarge</code>]</li>
3516
+ * <li><code>Placement</code> - <code>array</code> - Optional - Describes where an Amazon EC2 instance is running within an Amazon EC2 region. <ul>
3517
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3518
+ * <li><code>AvailabilityZone</code> - <code>string</code> - Optional - The availability zone in which an Amazon EC2 instance runs.</li>
3519
+ * <li><code>GroupName</code> - <code>string</code> - Optional - The name of the <code>PlacementGroup</code> in which an Amazon EC2 instance runs. Placement groups are primarily used for launching High Performance Computing instances in the same group to ensure fast connection speeds.</li>
3520
+ * <li><code>Tenancy</code> - <code>string</code> - Optional - The allowed tenancy of instances launched into the VPC. A value of default means instances can be launched with any tenancy; a value of dedicated means instances must be launched with tenancy as dedicated.</li>
3521
+ * </ul></li>
3522
+ * </ul></li>
3523
+ * <li><code>BlockDeviceMapping</code> - <code>array</code> - Optional - The BlockDeviceMappingItemType data type. <ul>
3524
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3525
+ * <li><code>VirtualName</code> - <code>string</code> - Optional - Specifies the virtual device name.</li>
3526
+ * <li><code>DeviceName</code> - <code>string</code> - Optional - Specifies the device name (e.g., <code>/dev/sdh</code>).</li>
3527
+ * <li><code>Ebs</code> - <code>array</code> - Optional - Specifies parameters used to automatically setup Amazon EBS volumes when the instance is launched. <ul>
3528
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3529
+ * <li><code>SnapshotId</code> - <code>string</code> - Optional - The ID of the snapshot from which the volume will be created.</li>
3530
+ * <li><code>VolumeSize</code> - <code>integer</code> - Optional - The size of the volume, in gigabytes.</li>
3531
+ * <li><code>DeleteOnTermination</code> - <code>boolean</code> - Optional - Specifies whether the Amazon EBS volume is deleted on instance termination.</li>
3532
+ * </ul></li>
3533
+ * </ul></li>
3534
+ * <li><code>NoDevice</code> - <code>string</code> - Optional - Specifies the device name to suppress during instance launch.</li>
3535
+ * </ul></li>
3536
+ * </ul></li>
3537
+ * <li><code>Monitoring</code> - <code>boolean</code> - Optional - </li>
3538
+ * <li><code>SubnetId</code> - <code>string</code> - Optional - </li>
3539
+ * <li><code>DisableApiTermination</code> - <code>boolean</code> - Optional - </li>
3540
+ * <li><code>InstanceInitiatedShutdownBehavior</code> - <code>string</code> - Optional - </li>
3541
+ * <li><code>PrivateIpAddress</code> - <code>string</code> - Optional - </li>
3542
+ * </ul></li>
3543
+ * </ul></li>
3544
+ * <li><code>DiskImage</code> - <code>array</code> - Optional - <ul>
3545
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3546
+ * <li><code>Image</code> - <code>array</code> - Optional - <ul>
3547
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3548
+ * <li><code>Format</code> - <code>string</code> - Required - </li>
3549
+ * <li><code>Bytes</code> - <code>long</code> - Required - </li>
3550
+ * <li><code>ImportManifestUrl</code> - <code>string</code> - Required - </li>
3551
+ * </ul></li>
3552
+ * </ul></li>
3553
+ * <li><code>Description</code> - <code>string</code> - Optional - </li>
3554
+ * <li><code>Volume</code> - <code>array</code> - Optional - <ul>
3555
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3556
+ * <li><code>Size</code> - <code>long</code> - Required - </li>
3557
+ * </ul></li>
3558
+ * </ul></li>
3559
+ * </ul></li>
3560
+ * </ul></li>
3561
+ * <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>
3562
+ * <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>
3563
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
3564
+ */
3565
+ public function import_instance($platform, $opt = null)
3566
+ {
3567
+ if (!$opt) $opt = array();
3568
+ $opt['Platform'] = $platform;
3569
+
3570
+ // Optional map (non-list)
3571
+ if (isset($opt['LaunchSpecification']))
3572
+ {
3573
+ $opt = array_merge($opt, CFComplexType::map(array(
3574
+ 'LaunchSpecification' => $opt['LaunchSpecification']
3575
+ )));
3576
+ unset($opt['LaunchSpecification']);
3577
+ }
3578
+
3579
+ // Optional list + map
3580
+ if (isset($opt['DiskImage']))
3581
+ {
3582
+ $opt = array_merge($opt, CFComplexType::map(array(
3583
+ 'DiskImage' => $opt['DiskImage']
3584
+ )));
3585
+ unset($opt['DiskImage']);
3586
+ }
3587
+
3588
+ return $this->authenticate('ImportInstance', $opt);
3589
+ }
3590
+
3591
  /**
3592
  * Imports the public key from an RSA key pair created with a third-party tool. This operation differs
3593
  * from CreateKeyPair as the private key is never transferred between the caller and AWS servers.
3620
  return $this->authenticate('ImportKeyPair', $opt, $this->hostname);
3621
  }
3622
 
3623
+ /**
3624
+ *
3625
+ *
3626
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
3627
+ * <li><code>AvailabilityZone</code> - <code>string</code> - Optional - </li>
3628
+ * <li><code>Image</code> - <code>array</code> - Optional - <ul>
3629
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3630
+ * <li><code>Format</code> - <code>string</code> - Required - </li>
3631
+ * <li><code>Bytes</code> - <code>long</code> - Required - </li>
3632
+ * <li><code>ImportManifestUrl</code> - <code>string</code> - Required - </li>
3633
+ * </ul></li>
3634
+ * </ul></li>
3635
+ * <li><code>Description</code> - <code>string</code> - Optional - </li>
3636
+ * <li><code>Volume</code> - <code>array</code> - Optional - <ul>
3637
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3638
+ * <li><code>Size</code> - <code>long</code> - Required - </li>
3639
+ * </ul></li>
3640
+ * </ul></li>
3641
+ * <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>
3642
+ * <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>
3643
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
3644
+ */
3645
+ public function import_volume($opt = null)
3646
+ {
3647
+ if (!$opt) $opt = array();
3648
+
3649
+ // Optional map (non-list)
3650
+ if (isset($opt['Image']))
3651
+ {
3652
+ $opt = array_merge($opt, CFComplexType::map(array(
3653
+ 'Image' => $opt['Image']
3654
+ )));
3655
+ unset($opt['Image']);
3656
+ }
3657
+
3658
+ // Optional map (non-list)
3659
+ if (isset($opt['Volume']))
3660
+ {
3661
+ $opt = array_merge($opt, CFComplexType::map(array(
3662
+ 'Volume' => $opt['Volume']
3663
+ )));
3664
+ unset($opt['Volume']);
3665
+ }
3666
+
3667
+ return $this->authenticate('ImportVolume', $opt);
3668
+ }
3669
+
3670
  /**
3671
  * The ModifyImageAttribute operation modifies an attribute of an AMI.
3672
  *
3680
  * <li><code>Value</code> - <code>string</code> - Optional - The value of the attribute being modified. Only valid when the description attribute is being modified.</li>
3681
  * <li><code>LaunchPermission</code> - <code>array</code> - Optional - <ul>
3682
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3683
+ * <li><code>Add</code> - <code>array</code> - Optional - Describes a permission to launch an Amazon Machine Image (AMI). <ul>
 
 
3684
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3685
  * <li><code>UserId</code> - <code>string</code> - Optional - The AWS user ID of the user involved in this launch permission.</li>
3686
  * <li><code>Group</code> - <code>string</code> - Optional - The AWS group of the user involved in this launch permission. Available groups: <code>all</code></li>
3687
  * </ul></li>
3688
  * </ul></li>
3689
+ * <li><code>Remove</code> - <code>array</code> - Optional - Describes a permission to launch an Amazon Machine Image (AMI). <ul>
 
 
3690
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3691
  * <li><code>UserId</code> - <code>string</code> - Optional - The AWS user ID of the user involved in this launch permission.</li>
3692
  * <li><code>Group</code> - <code>string</code> - Optional - The AWS group of the user involved in this launch permission. Available groups: <code>all</code></li>
3801
  return $this->authenticate('ModifyInstanceAttribute', $opt);
3802
  }
3803
 
3804
+ /**
3805
+ *
3806
+ *
3807
+ * @param string $network_interface_id (Required)
3808
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
3809
+ * <li><code>Description.Value</code> - <code>string</code> - Optional - String value</li>
3810
+ * <li><code>SourceDestCheck.Value</code> - <code>boolean</code> - Optional - Boolean value</li>
3811
+ * <li><code>SecurityGroupId</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
3812
+ * <li><code>Attachment</code> - <code>array</code> - Optional - <ul>
3813
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3814
+ * <li><code>AttachmentId</code> - <code>string</code> - Optional - </li>
3815
+ * <li><code>DeleteOnTermination</code> - <code>boolean</code> - Optional - </li>
3816
+ * </ul></li>
3817
+ * </ul></li>
3818
+ * <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>
3819
+ * <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>
3820
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
3821
+ */
3822
+ public function modify_network_interface_attribute($network_interface_id, $opt = null)
3823
+ {
3824
+ if (!$opt) $opt = array();
3825
+ $opt['NetworkInterfaceId'] = $network_interface_id;
3826
+
3827
+ // Optional list (non-map)
3828
+ if (isset($opt['SecurityGroupId']))
3829
+ {
3830
+ $opt = array_merge($opt, CFComplexType::map(array(
3831
+ 'SecurityGroupId' => (is_array($opt['SecurityGroupId']) ? $opt['SecurityGroupId'] : array($opt['SecurityGroupId']))
3832
+ )));
3833
+ unset($opt['SecurityGroupId']);
3834
+ }
3835
+
3836
+ // Optional map (non-list)
3837
+ if (isset($opt['Attachment']))
3838
+ {
3839
+ $opt = array_merge($opt, CFComplexType::map(array(
3840
+ 'Attachment' => $opt['Attachment']
3841
+ )));
3842
+ unset($opt['Attachment']);
3843
+ }
3844
+
3845
+ return $this->authenticate('ModifyNetworkInterfaceAttribute', $opt);
3846
+ }
3847
+
3848
  /**
3849
  * Adds or remove permission settings for the specified snapshot.
3850
  *
3856
  * <li><code>UserGroup</code> - <code>string|array</code> - Optional - The AWS group names to add to or remove from the list of groups that have permission to create EBS volumes from the specified snapshot. Currently supports "all". <p class="note">Only valid when the <code>createVolumePermission</code> attribute is being modified.</p> Pass a string for a single value, or an indexed array for multiple values.</li>
3857
  * <li><code>CreateVolumePermission</code> - <code>array</code> - Optional - <ul>
3858
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3859
+ * <li><code>Add</code> - <code>array</code> - Optional - Describes a permission allowing either a user or group to create a new EBS volume from a snapshot. <ul>
 
 
 
3860
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3861
  * <li><code>UserId</code> - <code>string</code> - Optional - The user ID of the user that can create volumes from the snapshot.</li>
3862
  * <li><code>Group</code> - <code>string</code> - Optional - The group that is allowed to create volumes from the snapshot (currently supports "all").</li>
3863
  * </ul></li>
3864
  * </ul></li>
3865
+ * <li><code>Remove</code> - <code>array</code> - Optional - Describes a permission allowing either a user or group to create a new EBS volume from a snapshot. <ul>
 
 
 
3866
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
3867
  * <li><code>UserId</code> - <code>string</code> - Optional - The user ID of the user that can create volumes from the snapshot.</li>
3868
  * <li><code>Group</code> - <code>string</code> - Optional - The group that is allowed to create volumes from the snapshot (currently supports "all").</li>
3909
  return $this->authenticate('ModifySnapshotAttribute', $opt);
3910
  }
3911
 
3912
+ /**
3913
+ *
3914
+ *
3915
+ * @param string $volume_id (Required)
3916
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
3917
+ * <li><code>AutoEnableIO.Value</code> - <code>boolean</code> - Optional - </li>
3918
+ * <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>
3919
+ * <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>
3920
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
3921
+ */
3922
+ public function modify_volume_attribute($volume_id, $opt = null)
3923
+ {
3924
+ if (!$opt) $opt = array();
3925
+ $opt['VolumeId'] = $volume_id;
3926
+
3927
+ return $this->authenticate('ModifyVolumeAttribute', $opt);
3928
+ }
3929
+
3930
  /**
3931
  * Enables monitoring for a running instance.
3932
  *
4167
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
4168
  * <li><code>GatewayId</code> - <code>string</code> - Optional - The ID of a VPN or Internet gateway attached to your VPC.</li>
4169
  * <li><code>InstanceId</code> - <code>string</code> - Optional - The ID of a NAT instance in your VPC.</li>
4170
+ * <li><code>NetworkInterfaceId</code> - <code>string</code> - Optional - </li>
4171
  * <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>
4172
  * <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>
4173
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
4208
  return $this->authenticate('ReplaceRouteTableAssociation', $opt);
4209
  }
4210
 
4211
+ /**
4212
+ *
4213
+ *
4214
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
4215
+ * <li><code>InstanceId</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
4216
+ * <li><code>Status</code> - <code>string</code> - Optional - </li>
4217
+ * <li><code>StartTime</code> - <code>string</code> - Optional - May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
4218
+ * <li><code>EndTime</code> - <code>string</code> - Optional - May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
4219
+ * <li><code>ReasonCode</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
4220
+ * <li><code>Description</code> - <code>string</code> - Optional - </li>
4221
+ * <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>
4222
+ * <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>
4223
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
4224
+ */
4225
+ public function report_instance_status($opt = null)
4226
+ {
4227
+ if (!$opt) $opt = array();
4228
+
4229
+ // Optional DateTime
4230
+ if (isset($opt['StartTime']))
4231
+ {
4232
+ $opt['StartTime'] = $this->util->convert_date_to_iso8601($opt['StartTime']);
4233
+ }
4234
+
4235
+ // Optional DateTime
4236
+ if (isset($opt['EndTime']))
4237
+ {
4238
+ $opt['EndTime'] = $this->util->convert_date_to_iso8601($opt['EndTime']);
4239
+ }
4240
+
4241
+ // Optional list (non-map)
4242
+ if (isset($opt['InstanceId']))
4243
+ {
4244
+ $opt = array_merge($opt, CFComplexType::map(array(
4245
+ 'InstanceId' => (is_array($opt['InstanceId']) ? $opt['InstanceId'] : array($opt['InstanceId']))
4246
+ )));
4247
+ unset($opt['InstanceId']);
4248
+ }
4249
+
4250
+ // Optional list (non-map)
4251
+ if (isset($opt['ReasonCode']))
4252
+ {
4253
+ $opt = array_merge($opt, CFComplexType::map(array(
4254
+ 'ReasonCode' => (is_array($opt['ReasonCode']) ? $opt['ReasonCode'] : array($opt['ReasonCode']))
4255
+ )));
4256
+ unset($opt['ReasonCode']);
4257
+ }
4258
+
4259
+ return $this->authenticate('ReportInstanceStatus', $opt);
4260
+ }
4261
+
4262
  /**
4263
  * Creates a Spot Instance request.
4264
  *
4284
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
4285
  * <li><code>ImageId</code> - <code>string</code> - Optional - The AMI ID.</li>
4286
  * <li><code>KeyName</code> - <code>string</code> - Optional - The name of the key pair.</li>
4287
+ * <li><code>GroupSet</code> - <code>array</code> - Optional - <ul>
 
 
4288
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
4289
  * <li><code>GroupName</code> - <code>string</code> - Optional - </li>
4290
  * <li><code>GroupId</code> - <code>string</code> - Optional - </li>
4291
  * </ul></li>
4292
  * </ul></li>
4293
+ * <li><code>SecurityGroup</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
 
 
4294
  * <li><code>UserData</code> - <code>string</code> - Optional - Optional data, specific to a user's application, to provide in the launch request. All instances that collectively comprise the launch request have access to this data. User data is never returned through API responses.</li>
4295
+ * <li><code>AddressingType</code> - <code>string</code> - Optional - </li>
4296
+ * <li><code>InstanceType</code> - <code>string</code> - Optional - Specifies the instance type. [Allowed values: <code>t1.micro</code>, <code>m1.small</code>, <code>m1.medium</code>, <code>m1.large</code>, <code>m1.xlarge</code>, <code>m2.xlarge</code>, <code>m2.2xlarge</code>, <code>m2.4xlarge</code>, <code>c1.medium</code>, <code>c1.xlarge</code>, <code>cc1.4xlarge</code>, <code>cc2.8xlarge</code>, <code>cg1.4xlarge</code>]</li>
4297
  * <li><code>Placement</code> - <code>array</code> - Optional - Defines a placement item. <ul>
4298
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
4299
  * <li><code>AvailabilityZone</code> - <code>string</code> - Optional - The availability zone in which an Amazon EC2 instance runs.</li>
4318
  * </ul></li>
4319
  * <li><code>Monitoring.Enabled</code> - <code>boolean</code> - Optional - Enables monitoring for the instance.</li>
4320
  * <li><code>SubnetId</code> - <code>string</code> - Optional - Specifies the Amazon VPC subnet ID within which to launch the instance(s) for Amazon Virtual Private Cloud.</li>
4321
+ * <li><code>NetworkInterfaceSet</code> - <code>array</code> - Optional - <ul>
4322
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
4323
+ * <li><code>NetworkInterfaceId</code> - <code>string</code> - Optional - </li>
4324
+ * <li><code>DeviceIndex</code> - <code>integer</code> - Optional - </li>
4325
+ * <li><code>SubnetId</code> - <code>string</code> - Optional - </li>
4326
+ * <li><code>Description</code> - <code>string</code> - Optional - </li>
4327
+ * <li><code>PrivateIpAddress</code> - <code>string</code> - Optional - </li>
4328
+ * <li><code>SecurityGroupId</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
4329
+ * <li><code>DeleteOnTermination</code> - <code>boolean</code> - Optional - </li>
4330
+ * </ul></li>
4331
+ * </ul></li>
4332
  * </ul></li>
4333
  * </ul></li>
4334
  * <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>
4406
  return $this->authenticate('ResetInstanceAttribute', $opt);
4407
  }
4408
 
4409
+ /**
4410
+ *
4411
+ *
4412
+ * @param string $network_interface_id (Required)
4413
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
4414
+ * <li><code>SourceDestCheck</code> - <code>string</code> - Optional - </li>
4415
+ * <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>
4416
+ * <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>
4417
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
4418
+ */
4419
+ public function reset_network_interface_attribute($network_interface_id, $opt = null)
4420
+ {
4421
+ if (!$opt) $opt = array();
4422
+ $opt['NetworkInterfaceId'] = $network_interface_id;
4423
+
4424
+ return $this->authenticate('ResetNetworkInterfaceAttribute', $opt);
4425
+ }
4426
+
4427
  /**
4428
  * Resets permission settings for the specified snapshot.
4429
  *
4598
  * <li><code>SecurityGroup</code> - <code>string|array</code> - Optional - The names of the security groups into which the instances will be launched. Pass a string for a single value, or an indexed array for multiple values.</li>
4599
  * <li><code>SecurityGroupId</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
4600
  * <li><code>UserData</code> - <code>string</code> - Optional - Specifies additional information to make available to the instance(s).</li>
4601
+ * <li><code>AddressingType</code> - <code>string</code> - Optional - </li>
4602
+ * <li><code>InstanceType</code> - <code>string</code> - Optional - Specifies the instance type for the launched instances. [Allowed values: <code>t1.micro</code>, <code>m1.small</code>, <code>m1.medium</code>, <code>m1.large</code>, <code>m1.xlarge</code>, <code>m2.xlarge</code>, <code>m2.2xlarge</code>, <code>m2.4xlarge</code>, <code>c1.medium</code>, <code>c1.xlarge</code>, <code>cc1.4xlarge</code>, <code>cc2.8xlarge</code>, <code>cg1.4xlarge</code>]</li>
4603
  * <li><code>Placement</code> - <code>array</code> - Optional - Specifies the placement constraints (Availability Zones) for launching the instances. <ul>
4604
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
4605
  * <li><code>AvailabilityZone</code> - <code>string</code> - Optional - The availability zone in which an Amazon EC2 instance runs.</li>
4634
  * </ul></li>
4635
  * <li><code>PrivateIpAddress</code> - <code>string</code> - Optional - If you're using Amazon Virtual Private Cloud, you can optionally use this parameter to assign the instance a specific available IP address from the subnet.</li>
4636
  * <li><code>ClientToken</code> - <code>string</code> - Optional - Unique, case-sensitive identifier you provide to ensure idempotency of the request. For more information, go to How to Ensure Idempotency in the Amazon Elastic Compute Cloud User Guide.</li>
4637
+ * <li><code>NetworkInterface</code> - <code>array</code> - Optional - <ul>
4638
+ * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
4639
+ * <li><code>NetworkInterfaceId</code> - <code>string</code> - Optional - </li>
4640
+ * <li><code>DeviceIndex</code> - <code>integer</code> - Optional - </li>
4641
+ * <li><code>SubnetId</code> - <code>string</code> - Optional - </li>
4642
+ * <li><code>Description</code> - <code>string</code> - Optional - </li>
4643
+ * <li><code>PrivateIpAddress</code> - <code>string</code> - Optional - </li>
4644
+ * <li><code>SecurityGroupId</code> - <code>string|array</code> - Optional - Pass a string for a single value, or an indexed array for multiple values.</li>
4645
+ * <li><code>DeleteOnTermination</code> - <code>boolean</code> - Optional - </li>
4646
+ * </ul></li>
4647
+ * </ul></li>
4648
  * <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>
4649
  * <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>
4650
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
4700
  )));
4701
  unset($opt['License']);
4702
  }
4703
+
4704
+ // Optional list + map
4705
+ if (isset($opt['NetworkInterface']))
4706
+ {
4707
+ $opt = array_merge($opt, CFComplexType::map(array(
4708
+ 'NetworkInterface' => $opt['NetworkInterface']
4709
+ )));
4710
+ unset($opt['NetworkInterface']);
4711
+ }
4712
 
4713
  return $this->authenticate('RunInstances', $opt);
4714
  }
libs/aws/services/elasticache.class.php CHANGED
@@ -27,7 +27,7 @@
27
  * the key performance statistics associated with their cache and can receive alarms if a part of
28
  * their cache runs hot.
29
  *
30
- * @version 2012.01.16
31
  * @license See the included NOTICE.md file for complete information.
32
  * @copyright See the included NOTICE.md file for complete information.
33
  * @link http://aws.amazon.com/elasticache/ AWS ElastiCache
@@ -58,6 +58,16 @@ class AmazonElastiCache extends CFRuntime
58
  */
59
  const REGION_CALIFORNIA = self::REGION_US_W1;
60
 
 
 
 
 
 
 
 
 
 
 
61
  /**
62
  * Specify the queue URL for the Europe West (Ireland) Region.
63
  */
@@ -88,6 +98,16 @@ class AmazonElastiCache extends CFRuntime
88
  */
89
  const REGION_TOKYO = self::REGION_APAC_NE1;
90
 
 
 
 
 
 
 
 
 
 
 
91
  /**
92
  * Default service endpoint.
93
  */
@@ -125,7 +145,7 @@ class AmazonElastiCache extends CFRuntime
125
  /**
126
  * This allows you to explicitly sets the region for the service to use.
127
  *
128
- * @param string $region (Required) The region to explicitly set. Available options are <REGION_US_E1>, <REGION_US_W1>, <REGION_EU_W1>, <REGION_APAC_SE1>, <REGION_APAC_NE1>.
129
  * @return $this A reference to the current instance.
130
  */
131
  public function set_region($region)
27
  * the key performance statistics associated with their cache and can receive alarms if a part of
28
  * their cache runs hot.
29
  *
30
+ * @version 2012.04.18
31
  * @license See the included NOTICE.md file for complete information.
32
  * @copyright See the included NOTICE.md file for complete information.
33
  * @link http://aws.amazon.com/elasticache/ AWS ElastiCache
58
  */
59
  const REGION_CALIFORNIA = self::REGION_US_W1;
60
 
61
+ /**
62
+ * Specify the queue URL for the United States West (Oregon) Region.
63
+ */
64
+ const REGION_US_W2 = 'elasticache.us-west-2.amazonaws.com';
65
+
66
+ /**
67
+ * Specify the queue URL for the United States West (Oregon) Region.
68
+ */
69
+ const REGION_OREGON = self::REGION_US_W2;
70
+
71
  /**
72
  * Specify the queue URL for the Europe West (Ireland) Region.
73
  */
98
  */
99
  const REGION_TOKYO = self::REGION_APAC_NE1;
100
 
101
+ /**
102
+ * Specify the queue URL for the South America (Sao Paulo) Region.
103
+ */
104
+ const REGION_SA_E1 = 'elasticache.sa-east-1.amazonaws.com';
105
+
106
+ /**
107
+ * Specify the queue URL for the South America (Sao Paulo) Region.
108
+ */
109
+ const REGION_SAO_PAULO = self::REGION_SA_E1;
110
+
111
  /**
112
  * Default service endpoint.
113
  */
145
  /**
146
  * This allows you to explicitly sets the region for the service to use.
147
  *
148
+ * @param string $region (Required) The region to explicitly set. Available options are <REGION_US_E1>, <REGION_US_W1>, <REGION_US_W2>, <REGION_EU_W1>, <REGION_APAC_SE1>, <REGION_APAC_NE1>, <REGION_SA_E1>.
149
  * @return $this A reference to the current instance.
150
  */
151
  public function set_region($region)
libs/aws/services/elasticbeanstalk.class.php CHANGED
@@ -34,7 +34,7 @@
34
  * <li>https://elasticbeanstalk.us-east-1.amazonaws.com</li>
35
  * </ul>
36
  *
37
- * @version 2012.01.16
38
  * @license See the included NOTICE.md file for complete information.
39
  * @copyright See the included NOTICE.md file for complete information.
40
  * @link http://aws.amazon.com/elasticbeanstalk/ AWS ElasticBeanstalk
@@ -55,6 +55,16 @@ class AmazonElasticBeanstalk extends CFRuntime
55
  */
56
  const REGION_VIRGINIA = self::REGION_US_E1;
57
 
 
 
 
 
 
 
 
 
 
 
58
  /**
59
  * Default service endpoint.
60
  */
@@ -92,7 +102,7 @@ class AmazonElasticBeanstalk extends CFRuntime
92
  /**
93
  * This allows you to explicitly sets the region for the service to use.
94
  *
95
- * @param string $region (Required) The region to explicitly set. Available options are <REGION_US_E1>.
96
  * @return $this A reference to the current instance.
97
  */
98
  public function set_region($region)
34
  * <li>https://elasticbeanstalk.us-east-1.amazonaws.com</li>
35
  * </ul>
36
  *
37
+ * @version 2012.05.01
38
  * @license See the included NOTICE.md file for complete information.
39
  * @copyright See the included NOTICE.md file for complete information.
40
  * @link http://aws.amazon.com/elasticbeanstalk/ AWS ElasticBeanstalk
55
  */
56
  const REGION_VIRGINIA = self::REGION_US_E1;
57
 
58
+ /**
59
+ * Specify the queue URL for the Asia Pacific Northeast (Tokyo) Region.
60
+ */
61
+ const REGION_APAC_NE1 = 'elasticbeanstalk.ap-northeast-1.amazonaws.com';
62
+
63
+ /**
64
+ * Specify the queue URL for the Asia Pacific Northeast (Tokyo) Region.
65
+ */
66
+ const REGION_TOKYO = self::REGION_APAC_NE1;
67
+
68
  /**
69
  * Default service endpoint.
70
  */
102
  /**
103
  * This allows you to explicitly sets the region for the service to use.
104
  *
105
+ * @param string $region (Required) The region to explicitly set. Available options are <REGION_US_E1>, <REGION_APAC_NE1>.
106
  * @return $this A reference to the current instance.
107
  */
108
  public function set_region($region)
libs/aws/services/elb.class.php CHANGED
@@ -20,7 +20,7 @@
20
  * application loads between two or more EC2 instances. Elastic Load Balancing enables
21
  * availability through redundancy and supports traffic growth of your application.
22
  *
23
- * @version 2012.01.16
24
  * @license See the included NOTICE.md file for complete information.
25
  * @copyright See the included NOTICE.md file for complete information.
26
  * @link http://aws.amazon.com/elasticloadbalancing/ Elastic Load Balancing
@@ -671,7 +671,7 @@ class AmazonELB extends CFRuntime
671
  *
672
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
673
  * <li><code>LoadBalancerNames</code> - <code>string|array</code> - Optional - A list of names associated with the LoadBalancers at creation time. Pass a string for a single value, or an indexed array for multiple values.</li>
674
- * <li><code>Marker</code> - <code>string</code> - Optional - </li>
675
  * <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>
676
  * <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>
677
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -809,7 +809,7 @@ class AmazonELB extends CFRuntime
809
  * </p>
810
  *
811
  * @param string $load_balancer_name (Required) The name associated with the LoadBalancer. The name must be unique within the client AWS account.
812
- * @param array $instances (Required) A list of instances IDs that should be registered with the LoadBalancer. <ul>
813
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
814
  * <li><code>InstanceId</code> - <code>string</code> - Optional - Provides an EC2 instance ID.</li>
815
  * </ul></li>
20
  * application loads between two or more EC2 instances. Elastic Load Balancing enables
21
  * availability through redundancy and supports traffic growth of your application.
22
  *
23
+ * @version 2012.04.18
24
  * @license See the included NOTICE.md file for complete information.
25
  * @copyright See the included NOTICE.md file for complete information.
26
  * @link http://aws.amazon.com/elasticloadbalancing/ Elastic Load Balancing
671
  *
672
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
673
  * <li><code>LoadBalancerNames</code> - <code>string|array</code> - Optional - A list of names associated with the LoadBalancers at creation time. Pass a string for a single value, or an indexed array for multiple values.</li>
674
+ * <li><code>Marker</code> - <code>string</code> - Optional - An optional parameter reserved for future use.</li>
675
  * <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>
676
  * <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>
677
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
809
  * </p>
810
  *
811
  * @param string $load_balancer_name (Required) The name associated with the LoadBalancer. The name must be unique within the client AWS account.
812
+ * @param array $instances (Required) A list of instance IDs that should be registered with the LoadBalancer. <p class="note">When the instance is stopped and then restarted, the IP addresses associated with your instance changes. Elastic Load Balancing cannot recognize the new IP address, which prevents it from routing traffic to your instances. We recommend that you de-register your Amazon EC2 instances from your load balancer after you stop your instance, and then register the load balancer with your instance after you've restarted. To de-register your instances from load balancer, use <code>DeregisterInstancesFromLoadBalancer</code> action.</p> <ul>
813
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
814
  * <li><code>InstanceId</code> - <code>string</code> - Optional - Provides an EC2 instance ID.</li>
815
  * </ul></li>
libs/aws/services/iam.class.php CHANGED
@@ -1,6 +1,6 @@
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.
@@ -15,27 +15,26 @@
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
@@ -86,7 +85,7 @@ class AmazonIAM extends CFRuntime
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
  }
@@ -117,7 +116,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -132,6 +131,28 @@ class AmazonIAM extends CFRuntime
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>.
@@ -154,7 +175,7 @@ class AmazonIAM extends CFRuntime
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.
@@ -210,14 +231,12 @@ class AmazonIAM extends CFRuntime
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>
@@ -296,7 +315,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -322,7 +341,7 @@ class AmazonIAM extends CFRuntime
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.
@@ -355,6 +374,21 @@ class AmazonIAM extends CFRuntime
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.
@@ -393,17 +427,17 @@ class AmazonIAM extends CFRuntime
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>
@@ -456,7 +490,7 @@ class AmazonIAM extends CFRuntime
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.
@@ -473,7 +507,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -490,7 +524,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -534,7 +568,7 @@ class AmazonIAM extends CFRuntime
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>]
@@ -554,6 +588,24 @@ class AmazonIAM extends CFRuntime
554
  return $this->authenticate('EnableMFADevice', $opt);
555
  }
556
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
557
  /**
558
  * Retrieves account level information about account entity usage and IAM quotas.
559
  *
@@ -616,7 +668,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -656,7 +708,7 @@ class AmazonIAM extends CFRuntime
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.
@@ -673,7 +725,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -707,7 +759,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -795,7 +847,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -820,7 +872,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -869,7 +921,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -890,7 +942,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -965,9 +1017,13 @@ class AmazonIAM extends CFRuntime
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>]
@@ -1002,12 +1058,16 @@ class AmazonIAM extends CFRuntime
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>
@@ -1029,7 +1089,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -1047,7 +1107,7 @@ class AmazonIAM extends CFRuntime
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>]
@@ -1084,7 +1144,7 @@ class AmazonIAM extends CFRuntime
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.
@@ -1098,6 +1158,30 @@ class AmazonIAM extends CFRuntime
1098
  return $this->authenticate('UpdateAccessKey', $opt);
1099
  }
1100
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1101
  /**
1102
  * Updates the name and/or the path of the specified group.
1103
  *
@@ -1133,9 +1217,9 @@ class AmazonIAM extends CFRuntime
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>
@@ -1202,7 +1286,7 @@ class AmazonIAM extends CFRuntime
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.
@@ -1234,7 +1318,7 @@ class AmazonIAM extends CFRuntime
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>
@@ -1263,9 +1347,12 @@ class AmazonIAM extends CFRuntime
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>]
@@ -1301,14 +1388,18 @@ class AmazonIAM extends CFRuntime
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.
1
  <?php
2
  /*
3
+ * Copyright 2010-2012 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.
15
  */
16
 
17
  /**
18
+ * This guide provides descriptions of the Identity and Access Management (IAM) API as well as
19
+ * links to related content in the guide, <a href=
20
+ * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/" target="_blank">Using IAM</a>.
 
21
  *
22
  * IAM is a web service that enables AWS customers to manage users and user permissions under
23
  * their AWS account. For more information about this product go to <a href=
24
  * "http://aws.amazon.com/iam/" target="_blank">AWS Identity and Access Management (IAM)</a>. For
25
+ * information about setting up signatures and authorization through the API, go to <a href=
26
+ * "http://docs.amazonwebservices.com/general/latest/gr/signing_aws_api_requests.html" target=
27
+ * "_blank">Signing AWS API Requests</a> in the <em>AWS General Reference</em>. For general
28
+ * information about using the Query API with IAM, go to <a href=
29
+ * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html" target=
30
+ * "_blank">Making Query Requests</a> in <em>Using IAM</em>.
31
  *
32
  * If you're new to AWS and need additional technical information about a specific AWS product,
33
  * you can find the product'stechnical documentation at <a href=
34
  * "http://aws.amazon.com/documentation/" target=
35
  * "_blank">http://aws.amazon.com/documentation/</a>.
 
 
 
36
  *
37
+ * @version 2012.05.01
38
  * @license See the included NOTICE.md file for complete information.
39
  * @copyright See the included NOTICE.md file for complete information.
40
  * @link http://aws.amazon.com/iam/ AWS Identity and Access Management
85
  {
86
  $this->api_version = '2010-05-08';
87
  $this->hostname = self::DEFAULT_URL;
88
+ $this->auth_class = 'AuthV4Query';
89
 
90
  return parent::__construct($options);
91
  }
116
  * Adds the specified user to the specified group.
117
  *
118
  * @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>]
119
+ * @param string $user_name (Required) Name of the user to add. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
120
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
121
  * <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>
122
  * <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>
131
  return $this->authenticate('AddUserToGroup', $opt);
132
  }
133
 
134
+ /**
135
+ * Changes the password of the IAM user calling <code>ChangePassword</code>. The root account
136
+ * password is not affected by this action. For information about modifying passwords, see
137
+ * <a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/Using_ManagingLogins.html"
138
+ * target="_blank">Managing Passwords</a>.
139
+ *
140
+ * @param string $old_password (Required) [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>]
141
+ * @param string $new_password (Required) [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>]
142
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
143
+ * <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>
144
+ * <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>
145
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
146
+ */
147
+ public function change_password($old_password, $new_password, $opt = null)
148
+ {
149
+ if (!$opt) $opt = array();
150
+ $opt['OldPassword'] = $old_password;
151
+ $opt['NewPassword'] = $new_password;
152
+
153
+ return $this->authenticate('ChangePassword', $opt);
154
+ }
155
+
156
  /**
157
  * Creates a new AWS Secret Access Key and corresponding AWS Access Key ID for the specified user.
158
  * The default status for new keys is <code>Active</code>.
175
  * </p>
176
  *
177
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
178
+ * <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 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
179
  * <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>
180
  * <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>
181
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
231
  }
232
 
233
  /**
234
+ * Creates a password for the specified user, giving the user the ability to access AWS services
235
+ * through the AWS Management Console. For more information about managing passwords, see <a href=
 
236
  * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/index.html?Using_ManagingLogins.html"
237
+ * target="_blank">Managing Passwords</a> in <em>Using IAM</em>.
 
238
  *
239
+ * @param string $user_name (Required) Name of the user to create a password for. [Constraints: The value must be between 1 and 64 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
240
  * @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>]
241
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
242
  * <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>
315
  * Deactivates the specified MFA device and removes it from association with the user name for
316
  * which it was originally enabled.
317
  *
318
+ * @param string $user_name (Required) Name of the user whose MFA device you want to deactivate. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
319
  * @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>]
320
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
321
  * <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>
341
  *
342
  * @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>]
343
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
344
+ * <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 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
345
  * <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>
346
  * <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>
347
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
374
  return $this->authenticate('DeleteAccountAlias', $opt);
375
  }
376
 
377
+ /**
378
+ * Deletes the password policy for the AWS account.
379
+ *
380
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
381
+ * <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>
382
+ * <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>
383
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
384
+ */
385
+ public function delete_account_password_policy($opt = null)
386
+ {
387
+ if (!$opt) $opt = array();
388
+
389
+ return $this->authenticate('DeleteAccountPasswordPolicy', $opt);
390
+ }
391
+
392
  /**
393
  * Deletes the specified group. The group must not contain any users or have any attached
394
  * policies.
427
  }
428
 
429
  /**
430
+ * Deletes the password for the specified user, which terminates the user's ability to access AWS
431
+ * services through the AWS Management Console.
432
  *
433
  * <p class="important">
434
+ * Deleting a user's password does not prevent a user from accessing IAM through the command line
435
+ * interface or the API. To prevent all user access you must also either make the access key
436
  * inactive or delete it. For more information about making keys inactive or deleting them, see
437
  * <code>UpdateAccessKey</code> and <code>DeleteAccessKey</code>.
438
  * </p>
439
  *
440
+ * @param string $user_name (Required) Name of the user whose password 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>]
441
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
442
  * <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>
443
  * <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>
490
  *
491
  * @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>]
492
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
493
+ * <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 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
494
  * <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>
495
  * <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>
496
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
507
  * Deletes the specified user. The user must not belong to any groups, have any keys or signing
508
  * certificates, or have any attached policies.
509
  *
510
+ * @param string $user_name (Required) Name of the user to delete. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
511
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
512
  * <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>
513
  * <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>
524
  /**
525
  * Deletes the specified policy associated with the specified user.
526
  *
527
+ * @param string $user_name (Required) Name of the user 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>]
528
  * @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>]
529
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
530
  * <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>
568
  * the MFA device is required for every subsequent login by the user name associated with the
569
  * device.
570
  *
571
+ * @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 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
572
  * @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>]
573
  * @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>]
574
  * @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>]
588
  return $this->authenticate('EnableMFADevice', $opt);
589
  }
590
 
591
+ /**
592
+ * Retrieves the password policy for the AWS account. For more information about using a password
593
+ * policy, go to <a href=
594
+ * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html">Managing
595
+ * an IAM Password Policy</a>.
596
+ *
597
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
598
+ * <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>
599
+ * <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>
600
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
601
+ */
602
+ public function get_account_password_policy($opt = null)
603
+ {
604
+ if (!$opt) $opt = array();
605
+
606
+ return $this->authenticate('GetAccountPasswordPolicy', $opt);
607
+ }
608
+
609
  /**
610
  * Retrieves account level information about account entity usage and IAM quotas.
611
  *
668
  }
669
 
670
  /**
671
+ * Retrieves the user name and password create date for the specified user.
672
  *
673
  * @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>]
674
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
708
  * Access Key ID signing the request.
709
  *
710
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
711
+ * <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 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
712
  * <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>
713
  * <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>
714
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
725
  * URL-encoded according to RFC 3986. For more information about RFC 3986, go to <a href=
726
  * "http://www.faqs.org/rfcs/rfc3986.html">http://www.faqs.org/rfcs/rfc3986.html</a>.
727
  *
728
+ * @param string $user_name (Required) Name of the user who 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>]
729
  * @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>]
730
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
731
  * <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>
759
  * </p>
760
  *
761
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
762
+ * <li><code>UserName</code> - <code>string</code> - Optional - Name of the user. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
763
  * <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>
764
  * <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>
765
  * <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>
847
  * You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>
848
  * parameters.
849
  *
850
+ * @param string $user_name (Required) The name of the user to list groups for. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
851
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
852
  * <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>
853
  * <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>
872
  * parameters.
873
  *
874
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
875
+ * <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 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
876
  * <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>
877
  * <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>
878
  * <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
  * account has no associated users.
922
  *
923
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
924
+ * <li><code>UserName</code> - <code>string</code> - Optional - The name of the user. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
925
  * <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>
926
  * <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>
927
  * <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>
942
  * You can paginate the results using the <code>MaxItems</code> and <code>Marker</code>
943
  * parameters.
944
  *
945
+ * @param string $user_name (Required) The name of the user 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>]
946
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
947
  * <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>
948
  * <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>
1017
  *
1018
  * <p class="note">
1019
  * Because policy documents can be large, you should use POST rather than GET when calling
1020
+ * <code>PutGroupPolicy</code>. For information about setting up signatures and authorization
1021
+ * through the API, go to <a href=
1022
+ * "http://docs.amazonwebservices.com/general/latest/gr/signing_aws_api_requests.html" target=
1023
+ * "_blank">Signing AWS API Requests</a> in the <em>AWS General Reference</em>. For general
1024
+ * information about using the Query API with IAM, go to <a href=
1025
+ * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html" target=
1026
+ * "_blank">Making Query Requests</a> in <em>Using IAM</em>.
1027
  * </p>
1028
  *
1029
  * @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>]
1058
  *
1059
  * <p class="note">
1060
  * Because policy documents can be large, you should use POST rather than GET when calling
1061
+ * <code>PutUserPolicy</code>. For information about setting up signatures and authorization
1062
+ * through the API, go to <a href=
1063
+ * "http://docs.amazonwebservices.com/general/latest/gr/signing_aws_api_requests.html" target=
1064
+ * "_blank">Signing AWS API Requests</a> in the <em>AWS General Reference</em>. For general
1065
+ * information about using the Query API with IAM, go to <a href=
1066
+ * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html" target=
1067
+ * "_blank">Making Query Requests</a> in <em>Using IAM</em>.
1068
  * </p>
1069
  *
1070
+ * @param string $user_name (Required) Name of the user 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>]
1071
  * @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>]
1072
  * @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>]
1073
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1089
  * Removes the specified user from the specified group.
1090
  *
1091
  * @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>]
1092
+ * @param string $user_name (Required) Name of the user to remove. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1093
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1094
  * <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>
1095
  * <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>
1107
  /**
1108
  * Synchronizes the specified MFA device with AWS servers.
1109
  *
1110
+ * @param string $user_name (Required) Name of the user whose MFA device you want to resynchronize. [Constraints: The value must be between 1 and 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1111
  * @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>]
1112
  * @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>]
1113
  * @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>]
1144
  * @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>]
1145
  * @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>]
1146
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1147
+ * <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 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
1148
  * <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>
1149
  * <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>
1150
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1158
  return $this->authenticate('UpdateAccessKey', $opt);
1159
  }
1160
 
1161
+ /**
1162
+ * Updates the password policy settings for the account. For more information about using a
1163
+ * password policy, go to <a href=
1164
+ * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/Using_ManagingPasswordPolicies.html">Managing
1165
+ * an IAM Password Policy</a>.
1166
+ *
1167
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1168
+ * <li><code>MinimumPasswordLength</code> - <code>integer</code> - Optional - </li>
1169
+ * <li><code>RequireSymbols</code> - <code>boolean</code> - Optional - </li>
1170
+ * <li><code>RequireNumbers</code> - <code>boolean</code> - Optional - </li>
1171
+ * <li><code>RequireUppercaseCharacters</code> - <code>boolean</code> - Optional - </li>
1172
+ * <li><code>RequireLowercaseCharacters</code> - <code>boolean</code> - Optional - </li>
1173
+ * <li><code>AllowUsersToChangePassword</code> - <code>boolean</code> - Optional - </li>
1174
+ * <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>
1175
+ * <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>
1176
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1177
+ */
1178
+ public function update_account_password_policy($opt = null)
1179
+ {
1180
+ if (!$opt) $opt = array();
1181
+
1182
+ return $this->authenticate('UpdateAccountPasswordPolicy', $opt);
1183
+ }
1184
+
1185
  /**
1186
  * Updates the name and/or the path of the specified group.
1187
  *
1217
  }
1218
 
1219
  /**
1220
+ * Changes the password for the specified user.
1221
  *
1222
+ * @param string $user_name (Required) Name of the user whose password 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>]
1223
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1224
  * <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>
1225
  * <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>
1286
  * @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>]
1287
  * @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>]
1288
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1289
+ * <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 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
1290
  * <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>
1291
  * <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>
1292
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
1318
  * "blank">Permissions and Policies</a>.
1319
  * </p>
1320
  *
1321
+ * @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 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]
1322
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1323
  * <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>
1324
  * <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>
1347
  * <p class="note">
1348
  * Because the body of the public key certificate, private key, and the certificate chain can be
1349
  * large, you should use POST rather than GET when calling <code>UploadServerCertificate</code>.
1350
+ * For information about setting up signatures and authorization through the API, go to <a href=
1351
+ * "http://docs.amazonwebservices.com/general/latest/gr/signing_aws_api_requests.html" target=
1352
+ * "_blank">Signing AWS API Requests</a> in the <em>AWS General Reference</em>. For general
1353
+ * information about using the Query API with IAM, go to <a href=
1354
  * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html" target=
1355
+ * "_blank">Making Query Requests</a> in <em>Using IAM</em>.
1356
  * </p>
1357
  *
1358
  * @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>]
1388
  *
1389
  * <p class="note">
1390
  * Because the body of a X.509 certificate can be large, you should use POST rather than GET when
1391
+ * calling <code>UploadSigningCertificate</code>. For information about setting up signatures and
1392
+ * authorization through the API, go to <a href=
1393
+ * "http://docs.amazonwebservices.com/general/latest/gr/signing_aws_api_requests.html" target=
1394
+ * "_blank">Signing AWS API Requests</a> in the <em>AWS General Reference</em>. For general
1395
+ * information about using the Query API with IAM, go to <a href=
1396
+ * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html" target=
1397
+ * "_blank">Making Query Requests</a> in <em>Using IAM</em>.
1398
  * </p>
1399
  *
1400
  * @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>]
1401
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
1402
+ * <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 128 characters, and must match the following regular expression pattern: <code>[\w+=,.@-]*</code>]</li>
1403
  * <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>
1404
  * <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>
1405
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
libs/aws/services/s3.class.php CHANGED
@@ -540,21 +540,12 @@ class AmazonS3 extends CFRuntime
540
  return $data;
541
  }
542
 
543
- // If we haven't already set a resource prefix...
544
- if (!$this->resource_prefix || $this->path_style)
545
  {
546
- // And if the bucket name isn't DNS-valid...
547
- if (!$this->validate_bucketname_create($bucket))
548
- {
549
- // Fall back to the older path-style URI
550
- $this->set_resource_prefix('/' . $bucket);
551
- $this->temporary_prefix = true;
552
- }
553
- elseif ($this->path_style)
554
- {
555
- // Fall back to the older path-style URI
556
- $this->set_resource_prefix('/' . $bucket);
557
- }
558
  }
559
 
560
  // Determine hostname
@@ -651,6 +642,11 @@ class AmazonS3 extends CFRuntime
651
  $non_signable_resource .= $conjunction . $query_string;
652
  $conjunction = '&';
653
  }
 
 
 
 
 
654
  $this->request_url = $scheme . $hostname . $signable_resource . $signable_query_string . $non_signable_resource;
655
 
656
  if (isset($opt['location']))
@@ -858,10 +854,22 @@ class AmazonS3 extends CFRuntime
858
  $signature = base64_encode(hash_hmac('sha1', $string_to_sign, $this->secret_key, true));
859
  $request->add_header('Authorization', 'AWS ' . $this->key . ':' . $signature);
860
 
861
- // If we're generating a URL, return certain data to the calling method.
862
  if (isset($opt['preauth']) && (integer) $opt['preauth'] > 0)
863
  {
864
- return $this->request_url . $conjunction . 'AWSAccessKeyId=' . $this->key . '&Expires=' . $headers['Expires'] . '&Signature=' . rawurlencode($signature);
 
 
 
 
 
 
 
 
 
 
 
 
865
  }
866
  elseif (isset($opt['preauth']))
867
  {
@@ -1097,7 +1105,7 @@ class AmazonS3 extends CFRuntime
1097
  );
1098
 
1099
  // Defaults
1100
- $this->set_region($region);
1101
  $xml = simplexml_load_string($this->base_location_constraint);
1102
 
1103
  switch ($region)
@@ -1107,23 +1115,21 @@ class AmazonS3 extends CFRuntime
1107
  break;
1108
 
1109
  case self::REGION_EU_W1: // Ireland
1110
- $this->enable_path_style(); // DNS-style doesn't seem to work for creation, only in EU. Switch over to path-style.
1111
  $xml->LocationConstraint = 'EU';
1112
  $opt['body'] = $xml->asXML();
1113
  break;
1114
 
1115
  default:
1116
- $this->enable_path_style(false);
1117
  $xml->LocationConstraint = str_replace(array('s3-', '.amazonaws.com'), '', $region);
1118
  $opt['body'] = $xml->asXML();
1119
  break;
1120
-
1121
- // @codeCoverageIgnoreStart
1122
  }
1123
- // @codeCoverageIgnoreEnd
1124
 
1125
  $response = $this->authenticate($bucket, $opt);
1126
 
 
 
 
1127
  return $response;
1128
  }
1129
 
@@ -1376,6 +1382,8 @@ class AmazonS3 extends CFRuntime
1376
  unset($opt['meta']);
1377
  }
1378
 
 
 
1379
  // Authenticate to S3
1380
  return $this->authenticate($bucket, $opt);
1381
  }
@@ -1401,7 +1409,6 @@ class AmazonS3 extends CFRuntime
1401
  public function get_object($bucket, $filename, $opt = null)
1402
  {
1403
  if (!$opt) $opt = array();
1404
- $this->parse_the_response = false;
1405
 
1406
  // Add this to our request
1407
  $opt['verb'] = 'GET';
@@ -1439,7 +1446,11 @@ class AmazonS3 extends CFRuntime
1439
  }
1440
 
1441
  // Authenticate to S3
1442
- return $this->authenticate($bucket, $opt);
 
 
 
 
1443
  }
1444
 
1445
  /**
@@ -1771,7 +1782,7 @@ class AmazonS3 extends CFRuntime
1771
  public function update_object($bucket, $filename, $opt = null)
1772
  {
1773
  if (!$opt) $opt = array();
1774
- $opt['metadataDirective'] = 'COPY';
1775
 
1776
  // Authenticate to S3
1777
  return $this->copy_object(
@@ -2335,11 +2346,10 @@ class AmazonS3 extends CFRuntime
2335
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
2336
  * <li><code>delimiter</code> - <code>string</code> - Optional - Keys that contain the same string between the prefix and the first occurrence of the delimiter will be rolled up into a single result element in the CommonPrefixes collection.</li>
2337
  * <li><code>marker</code> - <code>string</code> - Optional - Restricts the response to contain results that only occur alphabetically after the value of the marker.</li>
2338
- * <li><code>max-keys</code> - <code>string</code> - Optional - The maximum number of results returned by the method call. The returned list will contain no more results than the specified value, but may return less.</li>
2339
  * <li><code>pcre</code> - <code>string</code> - Optional - A Perl-Compatible Regular Expression (PCRE) to filter the names against. This is applied only AFTER any native Amazon S3 filtering from specified <code>prefix</code>, <code>marker</code>, <code>max-keys</code>, or <code>delimiter</code> values are applied.</li>
2340
  * <li><code>prefix</code> - <code>string</code> - Optional - Restricts the response to contain results that begin only with the specified prefix.</li>
2341
  * <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>
2342
- * <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>
2343
  * @return array The list of matching object names. If there are no results, the method will return an empty array.
2344
  * @link http://php.net/pcre Regular Expressions (Perl-Compatible)
2345
  */
@@ -2351,14 +2361,16 @@ class AmazonS3 extends CFRuntime
2351
  }
2352
 
2353
  if (!$opt) $opt = array();
 
2354
 
2355
  // Set some default values
2356
  $pcre = isset($opt['pcre']) ? $opt['pcre'] : null;
2357
- $max_keys = isset($opt['max-keys']) ? (integer) $opt['max-keys'] : 'all';
2358
  $objects = array();
2359
 
2360
- if ($max_keys === 'all')
2361
  {
 
2362
  do
2363
  {
2364
  $list = $this->list_objects($bucket, $opt);
@@ -2378,14 +2390,24 @@ class AmazonS3 extends CFRuntime
2378
  }
2379
  else
2380
  {
 
 
 
2381
  $loops = ceil($max_keys / 1000);
2382
 
2383
  do
2384
  {
2385
  $list = $this->list_objects($bucket, $opt);
2386
- if ($keys = $list->body->query('descendant-or-self::Key')->map_string($pcre))
 
 
2387
  {
2388
  $objects = array_merge($objects, $keys);
 
 
 
 
 
2389
  }
2390
 
2391
  if ($max_keys > 1000)
@@ -2404,12 +2426,7 @@ class AmazonS3 extends CFRuntime
2404
  while (--$loops);
2405
  }
2406
 
2407
- if (count($objects) > 0)
2408
- {
2409
- return $objects;
2410
- }
2411
-
2412
- return array();
2413
  }
2414
 
2415
  /**
@@ -2656,6 +2673,7 @@ class AmazonS3 extends CFRuntime
2656
  * @param string $filename (Required) The file name for the Amazon S3 object.
2657
  * @param integer|string $preauth (Optional) Specifies that a presigned URL for this request should be returned. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.
2658
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
 
2659
  * <li><code>method</code> - <code>string</code> - Optional - The HTTP method to use for the request. Defaults to a value of <code>GET</code>.</li>
2660
  * <li><code>response</code> - <code>array</code> - Optional - Allows adjustments to specific response headers. Pass an associative array where each key is one of the following: <code>cache-control</code>, <code>content-disposition</code>, <code>content-encoding</code>, <code>content-language</code>, <code>content-type</code>, <code>expires</code>. The <code>expires</code> value should use <php:gmdate()> and be formatted with the <code>DATE_RFC2822</code> constant.</li>
2661
  * <li><code>torrent</code> - <code>boolean</code> - Optional - A value of <code>true</code> will return a URL to a torrent of the Amazon S3 object. A value of <code>false</code> will return a non-torrent URL. Defaults to <code>false</code>.</li>
@@ -2688,11 +2706,15 @@ class AmazonS3 extends CFRuntime
2688
  }
2689
  }
2690
 
 
 
 
 
 
2691
  // Authenticate to S3
2692
- $current_ssl_setting = $this->use_ssl;
2693
- $this->use_ssl = false;
2694
  $response = $this->authenticate($bucket, $opt);
2695
- $this->use_ssl = $current_ssl_setting;
2696
 
2697
  return $response;
2698
  }
@@ -3202,6 +3224,8 @@ class AmazonS3 extends CFRuntime
3202
  unset($opt['md5']);
3203
  }
3204
 
 
 
3205
  // Authenticate to S3
3206
  return $this->authenticate($bucket, $opt);
3207
  }
@@ -3802,6 +3826,7 @@ class AmazonS3 extends CFRuntime
3802
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
3803
  * <li><code>rules</code> - <code>string</code> - Required - The object expiration rule-sets to apply to the bucket. <ul>
3804
  * <li><code>x</code> - <code>array</code> - Required - This represents a simple array index. <ul>
 
3805
  * <li><code>prefix</code> - <code>string</code> - Required - The Amazon S3 object prefix which targets the file(s) for expiration.</li>
3806
  * <li><code>expiration</code> - <code>array</code> - Required - The container for the unit of measurement by which the expiration time is calculated. <ul>
3807
  * <li><code>days</code> - <code>integer</code> - Required - The number of days until the targetted objects expire from the bucket.</li>
@@ -3822,7 +3847,7 @@ class AmazonS3 extends CFRuntime
3822
  'Content-Type' => 'application/xml'
3823
  );
3824
 
3825
- $xml = simplexml_load_string($this->object_expiration_xml);
3826
 
3827
  if (isset($opt['rules']) && is_array($opt['rules']) && count($opt['rules']))
3828
  {
@@ -3830,6 +3855,17 @@ class AmazonS3 extends CFRuntime
3830
  {
3831
  $xrule = $xml->addChild('Rule');
3832
 
 
 
 
 
 
 
 
 
 
 
 
3833
  // Prefix
3834
  if (isset($rule['prefix']))
3835
  {
@@ -3837,7 +3873,7 @@ class AmazonS3 extends CFRuntime
3837
  }
3838
  else
3839
  {
3840
- throw new S3_Exception('The each rule requires a "prefix" in the ' . __FUNCTION__ . ' method.');
3841
  }
3842
 
3843
  // Status
@@ -3872,7 +3908,7 @@ class AmazonS3 extends CFRuntime
3872
  }
3873
  else
3874
  {
3875
- throw new S3_Exception('The each rule requires a "expiration" in the ' . __FUNCTION__ . ' method.');
3876
  }
3877
  }
3878
  }
540
  return $data;
541
  }
542
 
543
+ // If we haven't already set a resource prefix and the bucket name isn't DNS-valid...
544
+ if ((!$this->resource_prefix && !$this->validate_bucketname_create($bucket)) || $this->path_style)
545
  {
546
+ // Fall back to the older path-style URI
547
+ $this->set_resource_prefix('/' . $bucket);
548
+ $this->temporary_prefix = true;
 
 
 
 
 
 
 
 
 
549
  }
550
 
551
  // Determine hostname
642
  $non_signable_resource .= $conjunction . $query_string;
643
  $conjunction = '&';
644
  }
645
+ if (substr($hostname, -1) === substr($signable_resource, 0, 1))
646
+ {
647
+ $signable_resource = ltrim($signable_resource, '/');
648
+ }
649
+
650
  $this->request_url = $scheme . $hostname . $signable_resource . $signable_query_string . $non_signable_resource;
651
 
652
  if (isset($opt['location']))
854
  $signature = base64_encode(hash_hmac('sha1', $string_to_sign, $this->secret_key, true));
855
  $request->add_header('Authorization', 'AWS ' . $this->key . ':' . $signature);
856
 
857
+ // If we're generating a URL, return the URL to the calling method.
858
  if (isset($opt['preauth']) && (integer) $opt['preauth'] > 0)
859
  {
860
+ $query_params = array(
861
+ 'AWSAccessKeyId' => $this->key,
862
+ 'Expires' => $headers['Expires'],
863
+ 'Signature' => $signature,
864
+ );
865
+
866
+ // If using short-term credentials, add the token to the query string
867
+ if ($this->auth_token)
868
+ {
869
+ $query_params['x-amz-security-token'] = $this->auth_token;
870
+ }
871
+
872
+ return $this->request_url . $conjunction . http_build_query($query_params, '', '&');
873
  }
874
  elseif (isset($opt['preauth']))
875
  {
1105
  );
1106
 
1107
  // Defaults
1108
+ $this->set_region($region); // Also sets path-style
1109
  $xml = simplexml_load_string($this->base_location_constraint);
1110
 
1111
  switch ($region)
1115
  break;
1116
 
1117
  case self::REGION_EU_W1: // Ireland
 
1118
  $xml->LocationConstraint = 'EU';
1119
  $opt['body'] = $xml->asXML();
1120
  break;
1121
 
1122
  default:
 
1123
  $xml->LocationConstraint = str_replace(array('s3-', '.amazonaws.com'), '', $region);
1124
  $opt['body'] = $xml->asXML();
1125
  break;
 
 
1126
  }
 
1127
 
1128
  $response = $this->authenticate($bucket, $opt);
1129
 
1130
+ // Make sure we're set back to DNS-style URLs
1131
+ $this->enable_path_style(false);
1132
+
1133
  return $response;
1134
  }
1135
 
1382
  unset($opt['meta']);
1383
  }
1384
 
1385
+ $opt['headers']['Expect'] = '100-continue';
1386
+
1387
  // Authenticate to S3
1388
  return $this->authenticate($bucket, $opt);
1389
  }
1409
  public function get_object($bucket, $filename, $opt = null)
1410
  {
1411
  if (!$opt) $opt = array();
 
1412
 
1413
  // Add this to our request
1414
  $opt['verb'] = 'GET';
1446
  }
1447
 
1448
  // Authenticate to S3
1449
+ $this->parse_the_response = false;
1450
+ $response = $this->authenticate($bucket, $opt);
1451
+ $this->parse_the_response = true;
1452
+
1453
+ return $response;
1454
  }
1455
 
1456
  /**
1782
  public function update_object($bucket, $filename, $opt = null)
1783
  {
1784
  if (!$opt) $opt = array();
1785
+ $opt['metadataDirective'] = 'REPLACE';
1786
 
1787
  // Authenticate to S3
1788
  return $this->copy_object(
2346
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
2347
  * <li><code>delimiter</code> - <code>string</code> - Optional - Keys that contain the same string between the prefix and the first occurrence of the delimiter will be rolled up into a single result element in the CommonPrefixes collection.</li>
2348
  * <li><code>marker</code> - <code>string</code> - Optional - Restricts the response to contain results that only occur alphabetically after the value of the marker.</li>
2349
+ * <li><code>max-keys</code> - <code>integer</code> - Optional - The maximum number of results returned by the method call. The returned list will contain no more results than the specified value, but may return less. A value of zero is treated as if you did not specify max-keys.</li>
2350
  * <li><code>pcre</code> - <code>string</code> - Optional - A Perl-Compatible Regular Expression (PCRE) to filter the names against. This is applied only AFTER any native Amazon S3 filtering from specified <code>prefix</code>, <code>marker</code>, <code>max-keys</code>, or <code>delimiter</code> values are applied.</li>
2351
  * <li><code>prefix</code> - <code>string</code> - Optional - Restricts the response to contain results that begin only with the specified prefix.</li>
2352
  * <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>
 
2353
  * @return array The list of matching object names. If there are no results, the method will return an empty array.
2354
  * @link http://php.net/pcre Regular Expressions (Perl-Compatible)
2355
  */
2361
  }
2362
 
2363
  if (!$opt) $opt = array();
2364
+ unset($opt['returnCurlHandle']); // This would cause problems
2365
 
2366
  // Set some default values
2367
  $pcre = isset($opt['pcre']) ? $opt['pcre'] : null;
2368
+ $max_keys = (isset($opt['max-keys']) && is_int($opt['max-keys'])) ? $opt['max-keys'] : null;
2369
  $objects = array();
2370
 
2371
+ if (!$max_keys)
2372
  {
2373
+ // No max-keys specified. Get everything.
2374
  do
2375
  {
2376
  $list = $this->list_objects($bucket, $opt);
2390
  }
2391
  else
2392
  {
2393
+ // Max-keys specified. Approximate number of loops and make the requests.
2394
+
2395
+ $max_keys = $opt['max-keys'];
2396
  $loops = ceil($max_keys / 1000);
2397
 
2398
  do
2399
  {
2400
  $list = $this->list_objects($bucket, $opt);
2401
+ $keys = $list->body->query('descendant-or-self::Key')->map_string($pcre);
2402
+
2403
+ if ($count = count($keys))
2404
  {
2405
  $objects = array_merge($objects, $keys);
2406
+
2407
+ if ($count < 1000)
2408
+ {
2409
+ break;
2410
+ }
2411
  }
2412
 
2413
  if ($max_keys > 1000)
2426
  while (--$loops);
2427
  }
2428
 
2429
+ return $objects;
 
 
 
 
 
2430
  }
2431
 
2432
  /**
2673
  * @param string $filename (Required) The file name for the Amazon S3 object.
2674
  * @param integer|string $preauth (Optional) Specifies that a presigned URL for this request should be returned. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.
2675
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
2676
+ * <li><code>https</code> - <code>boolean</code> - Optional - Set to <code>true</code> if you would like the URL be in https mode. Otherwise, the default behavior is always to use http regardless of your SSL settings.
2677
  * <li><code>method</code> - <code>string</code> - Optional - The HTTP method to use for the request. Defaults to a value of <code>GET</code>.</li>
2678
  * <li><code>response</code> - <code>array</code> - Optional - Allows adjustments to specific response headers. Pass an associative array where each key is one of the following: <code>cache-control</code>, <code>content-disposition</code>, <code>content-encoding</code>, <code>content-language</code>, <code>content-type</code>, <code>expires</code>. The <code>expires</code> value should use <php:gmdate()> and be formatted with the <code>DATE_RFC2822</code> constant.</li>
2679
  * <li><code>torrent</code> - <code>boolean</code> - Optional - A value of <code>true</code> will return a URL to a torrent of the Amazon S3 object. A value of <code>false</code> will return a non-torrent URL. Defaults to <code>false</code>.</li>
2706
  }
2707
  }
2708
 
2709
+ // Determine whether or not to use SSL
2710
+ $use_ssl = isset($opt['https']) ? (bool) $opt['https'] : false;
2711
+ unset($opt['https']);
2712
+ $current_use_ssl_setting = $this->use_ssl;
2713
+
2714
  // Authenticate to S3
2715
+ $this->use_ssl = $use_ssl;
 
2716
  $response = $this->authenticate($bucket, $opt);
2717
+ $this->use_ssl = $current_use_ssl_setting;
2718
 
2719
  return $response;
2720
  }
3224
  unset($opt['md5']);
3225
  }
3226
 
3227
+ $opt['headers']['Expect'] = '100-continue';
3228
+
3229
  // Authenticate to S3
3230
  return $this->authenticate($bucket, $opt);
3231
  }
3826
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
3827
  * <li><code>rules</code> - <code>string</code> - Required - The object expiration rule-sets to apply to the bucket. <ul>
3828
  * <li><code>x</code> - <code>array</code> - Required - This represents a simple array index. <ul>
3829
+ * <li><code>id</code> - <code>string</code> - Optional - Unique identifier for the rule. The value cannot be longer than 255 characters.
3830
  * <li><code>prefix</code> - <code>string</code> - Required - The Amazon S3 object prefix which targets the file(s) for expiration.</li>
3831
  * <li><code>expiration</code> - <code>array</code> - Required - The container for the unit of measurement by which the expiration time is calculated. <ul>
3832
  * <li><code>days</code> - <code>integer</code> - Required - The number of days until the targetted objects expire from the bucket.</li>
3847
  'Content-Type' => 'application/xml'
3848
  );
3849
 
3850
+ $xml = simplexml_load_string($this->object_expiration_xml, $this->parser_class);
3851
 
3852
  if (isset($opt['rules']) && is_array($opt['rules']) && count($opt['rules']))
3853
  {
3855
  {
3856
  $xrule = $xml->addChild('Rule');
3857
 
3858
+ // ID
3859
+ if (isset($rule['id']))
3860
+ {
3861
+ if (strlen($rule['id']) > 255)
3862
+ {
3863
+ throw new S3_Exception('The "id" for a rule must not be more than 255 characters in the ' . __FUNCTION__ . ' method.');
3864
+ }
3865
+
3866
+ $xrule->addChild('ID', $rule['id']);
3867
+ }
3868
+
3869
  // Prefix
3870
  if (isset($rule['prefix']))
3871
  {
3873
  }
3874
  else
3875
  {
3876
+ throw new S3_Exception('Each rule requires a "prefix" in the ' . __FUNCTION__ . ' method.');
3877
  }
3878
 
3879
  // Status
3908
  }
3909
  else
3910
  {
3911
+ throw new S3_Exception('Each rule requires a "expiration" in the ' . __FUNCTION__ . ' method.');
3912
  }
3913
  }
3914
  }
libs/aws/services/ses.class.php CHANGED
@@ -23,11 +23,10 @@
23
  * "http://docs.amazonwebservices.com/ses/latest/DeveloperGuide">Amazon SES Developer Guide</a>.
24
  *
25
  * <p class="note">
26
- * The endpoint for AWS Email Service is located at:
27
- * <em>https://email.us-east-1.amazonaws.com</em>
28
  * </p>
29
  *
30
- * @version 2012.01.16
31
  * @license See the included NOTICE.md file for complete information.
32
  * @copyright See the included NOTICE.md file for complete information.
33
  * @link http://aws.amazon.com/ses/ Amazon Simple Email Service
@@ -73,7 +72,7 @@ class AmazonSES extends CFRuntime
73
  {
74
  $this->api_version = '2010-12-01';
75
  $this->hostname = self::DEFAULT_URL;
76
- $this->auth_class = 'AuthV3Query';
77
 
78
  return parent::__construct($options);
79
  }
@@ -114,10 +113,32 @@ class AmazonSES extends CFRuntime
114
  /*%******************************************************************************************%*/
115
  // SERVICE METHODS
116
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
117
  /**
118
  * Deletes the specified email address from the list of verified addresses.
 
 
 
 
 
119
  *
120
- * @param string $email_address (Required) An email address to be removed from the list of verified addreses.
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>
@@ -131,6 +152,28 @@ class AmazonSES extends CFRuntime
131
  return $this->authenticate('DeleteVerifiedEmailAddress', $opt);
132
  }
133
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
134
  /**
135
  * Returns the user's current sending limits.
136
  *
@@ -164,8 +207,32 @@ class AmazonSES extends CFRuntime
164
  return $this->authenticate('GetSendStatistics', $opt);
165
  }
166
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
167
  /**
168
  * Returns a list containing all of the email addresses that have been verified.
 
 
 
 
 
169
  *
170
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
171
  * <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>
@@ -185,8 +252,9 @@ class AmazonSES extends CFRuntime
185
  *
186
  * <p class="important">
187
  * If you have not yet requested production access to Amazon SES, then you will only be able to
188
- * send email to and from verified email addresses. For more information, go to the <a href=
189
- * "http://docs.amazonwebservices.com/ses/latest/DeveloperGuide">Amazon SES Developer Guide</a>.
 
190
  * </p>
191
  * The total size of the message cannot exceed 10 MB.
192
  *
@@ -201,7 +269,7 @@ class AmazonSES extends CFRuntime
201
  * section of the <a href="http://docs.amazonwebservices.com/ses/latest/DeveloperGuide">Amazon SES
202
  * Developer Guide</a>.
203
  *
204
- * @param string $source (Required) The sender's email address.
205
  * @param array $destination (Required) The destination for this email, composed of To:, CC:, and BCC: fields. <ul>
206
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
207
  * <li><code>ToAddresses</code> - <code>string|array</code> - Optional - The To: field(s) of the message. Pass a string for a single value, or an indexed array for multiple values.</li>
@@ -276,8 +344,9 @@ class AmazonSES extends CFRuntime
276
  *
277
  * <p class="important">
278
  * If you have not yet requested production access to Amazon SES, then you will only be able to
279
- * send email to and from verified email addresses. For more information, go to the <a href=
280
- * "http://docs.amazonwebservices.com/ses/latest/DeveloperGuide">Amazon SES Developer Guide</a>.
 
281
  * </p>
282
  * The total size of the message cannot exceed 10 MB. This includes any attachments that are part
283
  * of the message.
@@ -299,7 +368,7 @@ class AmazonSES extends CFRuntime
299
  * </ul></li>
300
  * </ul>
301
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
302
- * <li><code>Source</code> - <code>string</code> - Optional - The sender's email address. <p class="note">If you specify the <code>Source</code> parameter, then bounce notifications and complaints will be sent to this email address. This takes precedence over any <em>Return-Path</em> header that you might include in the raw text of the message.</p></li>
303
  * <li><code>Destinations</code> - <code>string|array</code> - Optional - A list of destinations for the message. Pass a string for a single value, or an indexed array for multiple values.</li>
304
  * <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>
305
  * <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>
@@ -326,9 +395,31 @@ class AmazonSES extends CFRuntime
326
  return $this->authenticate('SendRawEmail', $opt);
327
  }
328
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
329
  /**
330
  * Verifies an email address. This action causes a confirmation email message to be sent to the
331
  * specified address.
 
 
 
 
 
332
  *
333
  * @param string $email_address (Required) The email address to be verified.
334
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
@@ -343,6 +434,24 @@ class AmazonSES extends CFRuntime
343
 
344
  return $this->authenticate('VerifyEmailAddress', $opt);
345
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
346
  }
347
 
348
 
23
  * "http://docs.amazonwebservices.com/ses/latest/DeveloperGuide">Amazon SES Developer Guide</a>.
24
  *
25
  * <p class="note">
26
+ * The endpoint for Amazon SES is located at: <code>https://email.us-east-1.amazonaws.com</code>
 
27
  * </p>
28
  *
29
+ * @version 2012.05.14
30
  * @license See the included NOTICE.md file for complete information.
31
  * @copyright See the included NOTICE.md file for complete information.
32
  * @link http://aws.amazon.com/ses/ Amazon Simple Email Service
72
  {
73
  $this->api_version = '2010-12-01';
74
  $this->hostname = self::DEFAULT_URL;
75
+ $this->auth_class = 'AuthV4Query';
76
 
77
  return parent::__construct($options);
78
  }
113
  /*%******************************************************************************************%*/
114
  // SERVICE METHODS
115
 
116
+ /**
117
+ * Deletes the specified identity (email address or domain) from the list of verified identities.
118
+ *
119
+ * @param string $identity (Required) The identity to be removed from the list of identities for the AWS Account.
120
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
121
+ * <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>
122
+ * <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>
123
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
124
+ */
125
+ public function delete_identity($identity, $opt = null)
126
+ {
127
+ if (!$opt) $opt = array();
128
+ $opt['Identity'] = $identity;
129
+
130
+ return $this->authenticate('DeleteIdentity', $opt);
131
+ }
132
+
133
  /**
134
  * Deletes the specified email address from the list of verified addresses.
135
+ *
136
+ * <p class="important">
137
+ * The DeleteVerifiedEmailAddress action is deprecated as of the May 15, 2012 release of Domain
138
+ * Verification. The DeleteIdentity action is now preferred.
139
+ * </p>
140
  *
141
+ * @param string $email_address (Required) An email address to be removed from the list of verified addresses.
142
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
143
  * <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>
144
  * <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>
152
  return $this->authenticate('DeleteVerifiedEmailAddress', $opt);
153
  }
154
 
155
+ /**
156
+ * Given a list of identities (email addresses and/or domains), returns the verification status
157
+ * and (for domain identities) the verification token for each identity.
158
+ *
159
+ * @param string|array $identities (Required) A list of identities. Pass a string for a single value, or an indexed array for multiple values.
160
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
161
+ * <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>
162
+ * <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>
163
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
164
+ */
165
+ public function get_identity_verification_attributes($identities, $opt = null)
166
+ {
167
+ if (!$opt) $opt = array();
168
+
169
+ // Required list (non-map)
170
+ $opt = array_merge($opt, CFComplexType::map(array(
171
+ 'Identities' => (is_array($identities) ? $identities : array($identities))
172
+ ), 'member'));
173
+
174
+ return $this->authenticate('GetIdentityVerificationAttributes', $opt);
175
+ }
176
+
177
  /**
178
  * Returns the user's current sending limits.
179
  *
207
  return $this->authenticate('GetSendStatistics', $opt);
208
  }
209
 
210
+ /**
211
+ * Returns a list containing all of the identities (email addresses and domains) for a specific
212
+ * AWS Account, regardless of verification status.
213
+ *
214
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
215
+ * <li><code>IdentityType</code> - <code>string</code> - Optional - The type of the identities to list. Possible values are "EmailAddress" and "Domain". If this parameter is omitted, then all identities will be listed. [Allowed values: <code>EmailAddress</code>, <code>Domain</code>]</li>
216
+ * <li><code>NextToken</code> - <code>string</code> - Optional - The token to use for pagination.</li>
217
+ * <li><code>MaxItems</code> - <code>integer</code> - Optional - The maximum number of identities per page. Possible values are 1-100 inclusive.</li>
218
+ * <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>
219
+ * <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>
220
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
221
+ */
222
+ public function list_identities($opt = null)
223
+ {
224
+ if (!$opt) $opt = array();
225
+
226
+ return $this->authenticate('ListIdentities', $opt);
227
+ }
228
+
229
  /**
230
  * Returns a list containing all of the email addresses that have been verified.
231
+ *
232
+ * <p class="important">
233
+ * The ListVerifiedEmailAddresses action is deprecated as of the May 15, 2012 release of Domain
234
+ * Verification. The ListIdentities action is now preferred.
235
+ * </p>
236
  *
237
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
238
  * <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>
252
  *
253
  * <p class="important">
254
  * If you have not yet requested production access to Amazon SES, then you will only be able to
255
+ * send email to and from verified email addresses and domains. For more information, go to the
256
+ * <a href="http://docs.amazonwebservices.com/ses/latest/DeveloperGuide">Amazon SES Developer
257
+ * Guide</a>.
258
  * </p>
259
  * The total size of the message cannot exceed 10 MB.
260
  *
269
  * section of the <a href="http://docs.amazonwebservices.com/ses/latest/DeveloperGuide">Amazon SES
270
  * Developer Guide</a>.
271
  *
272
+ * @param string $source (Required) The identity's email address.
273
  * @param array $destination (Required) The destination for this email, composed of To:, CC:, and BCC: fields. <ul>
274
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
275
  * <li><code>ToAddresses</code> - <code>string|array</code> - Optional - The To: field(s) of the message. Pass a string for a single value, or an indexed array for multiple values.</li>
344
  *
345
  * <p class="important">
346
  * If you have not yet requested production access to Amazon SES, then you will only be able to
347
+ * send email to and from verified email addresses and domains. For more information, go to the
348
+ * <a href="http://docs.amazonwebservices.com/ses/latest/DeveloperGuide">Amazon SES Developer
349
+ * Guide</a>.
350
  * </p>
351
  * The total size of the message cannot exceed 10 MB. This includes any attachments that are part
352
  * of the message.
368
  * </ul></li>
369
  * </ul>
370
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
371
+ * <li><code>Source</code> - <code>string</code> - Optional - The identity's email address. <p class="note">If you specify the <code>Source</code> parameter, then bounce notifications and complaints will be sent to this email address. This takes precedence over any <em>Return-Path</em> header that you might include in the raw text of the message.</p></li>
372
  * <li><code>Destinations</code> - <code>string|array</code> - Optional - A list of destinations for the message. Pass a string for a single value, or an indexed array for multiple values.</li>
373
  * <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>
374
  * <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>
395
  return $this->authenticate('SendRawEmail', $opt);
396
  }
397
 
398
+ /**
399
+ * Verifies a domain.
400
+ *
401
+ * @param string $domain (Required) The domain to be verified.
402
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
403
+ * <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>
404
+ * <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>
405
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
406
+ */
407
+ public function verify_domain_identity($domain, $opt = null)
408
+ {
409
+ if (!$opt) $opt = array();
410
+ $opt['Domain'] = $domain;
411
+
412
+ return $this->authenticate('VerifyDomainIdentity', $opt);
413
+ }
414
+
415
  /**
416
  * Verifies an email address. This action causes a confirmation email message to be sent to the
417
  * specified address.
418
+ *
419
+ * <p class="important">
420
+ * The VerifyEmailAddress action is deprecated as of the May 15, 2012 release of Domain
421
+ * Verification. The VerifyEmailIdentity action is now preferred.
422
+ * </p>
423
  *
424
  * @param string $email_address (Required) The email address to be verified.
425
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
434
 
435
  return $this->authenticate('VerifyEmailAddress', $opt);
436
  }
437
+
438
+ /**
439
+ * Verifies an email address. This action causes a confirmation email message to be sent to the
440
+ * specified address.
441
+ *
442
+ * @param string $email_address (Required) The email address to be verified.
443
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
444
+ * <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>
445
+ * <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>
446
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
447
+ */
448
+ public function verify_email_identity($email_address, $opt = null)
449
+ {
450
+ if (!$opt) $opt = array();
451
+ $opt['EmailAddress'] = $email_address;
452
+
453
+ return $this->authenticate('VerifyEmailIdentity', $opt);
454
+ }
455
  }
456
 
457
 
libs/aws/services/storagegateway.class.php ADDED
@@ -0,0 +1,863 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <?php
2
+ /*
3
+ * Copyright 2010-2012 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
+ * AWS Storage Gateway is a service that connects an on-premises software appliance with
19
+ * cloud-based storage to provide seamless and secure integration between an organization's
20
+ * on-premises IT environment and AWS's storage infrastructure. The service enables you to
21
+ * securely upload data to the AWS cloud for cost effective backup and rapid disaster recovery.
22
+ *
23
+ * Use the following links to get started using the <em>AWS Storage Gateway Service API
24
+ * Reference</em>:
25
+ *
26
+ * <ul>
27
+ * <li><a href=
28
+ * "http://docs.amazonwebservices.com/storagegateway/latest/api/API_Operations.html">Actions</a>:
29
+ * An alphabetical list of all AWS Storage Gateway actions.</li>
30
+ * <li><a href=
31
+ * "http://docs.amazonwebservices.com/storagegateway/latest/api/CommonParameters.html">Common
32
+ * Parameters</a>: Parameters that all Query actions can use.</li>
33
+ * <li><a href=
34
+ * "http://docs.amazonwebservices.com/storagegateway/latest/api/CommonErrors.html">Common
35
+ * Errors</a>: Client and server errors that all actions can return.</li>
36
+ * <li><a href="http://docs.amazonwebservices.com/general/latest/gr/index.html?rande.html">Regions
37
+ * and Endpoints</a>: Itemized regions and endpoints for all AWS products.</li>
38
+ * <li><a href=
39
+ * "http://sns.us-east-1.amazonaws.com/doc/2010-03-31/SimpleNotificationService.wsdl">WSDL
40
+ * Location</a>:
41
+ * http://storagegateway.us-east-1.amazonaws.com/doc/2012-04-15/AWSStorageGatewayService.wsdl</li>
42
+ * </ul>
43
+ *
44
+ * @version 2012.05.09
45
+ * @license See the included NOTICE.md file for complete information.
46
+ * @copyright See the included NOTICE.md file for complete information.
47
+ * @link http://aws.amazon.com/storagegateway/ AWS Storage Gateway
48
+ * @link http://aws.amazon.com/storagegateway/documentation/ AWS Storage Gateway documentation
49
+ */
50
+ class AmazonStorageGateway extends CFRuntime
51
+ {
52
+ /*%******************************************************************************************%*/
53
+ // CLASS CONSTANTS
54
+
55
+ /**
56
+ * Specify the queue URL for the United States East (Northern Virginia) Region.
57
+ */
58
+ const REGION_US_E1 = 'storagegateway.us-east-1.amazonaws.com';
59
+
60
+ /**
61
+ * Specify the queue URL for the United States East (Northern Virginia) Region.
62
+ */
63
+ const REGION_VIRGINIA = self::REGION_US_E1;
64
+
65
+ /**
66
+ * Specify the queue URL for the United States West (Northern California) Region.
67
+ */
68
+ const REGION_US_W1 = 'storagegateway.us-west-1.amazonaws.com';
69
+
70
+ /**
71
+ * Specify the queue URL for the United States West (Northern California) Region.
72
+ */
73
+ const REGION_CALIFORNIA = self::REGION_US_W1;
74
+
75
+ /**
76
+ * Specify the queue URL for the United States West (Oregon) Region.
77
+ */
78
+ const REGION_US_W2 = 'storagegateway.us-west-2.amazonaws.com';
79
+
80
+ /**
81
+ * Specify the queue URL for the United States West (Oregon) Region.
82
+ */
83
+ const REGION_OREGON = self::REGION_US_W2;
84
+
85
+ /**
86
+ * Specify the queue URL for the Europe West (Ireland) Region.
87
+ */
88
+ const REGION_EU_W1 = 'storagegateway.eu-west-1.amazonaws.com';
89
+
90
+ /**
91
+ * Specify the queue URL for the Europe West (Ireland) Region.
92
+ */
93
+ const REGION_IRELAND = self::REGION_EU_W1;
94
+
95
+ /**
96
+ * Specify the queue URL for the Asia Pacific Northeast (Tokyo) Region.
97
+ */
98
+ const REGION_APAC_NE1 = 'storagegateway.ap-northeast-1.amazonaws.com';
99
+
100
+ /**
101
+ * Specify the queue URL for the Asia Pacific Northeast (Tokyo) Region.
102
+ */
103
+ const REGION_TOKYO = self::REGION_APAC_NE1;
104
+
105
+ /**
106
+ * Specify the queue URL for the Asia Pacific Southeast (Singapore) Region.
107
+ */
108
+ const REGION_APAC_SE1 = 'storagegateway.ap-southeast-1.amazonaws.com';
109
+
110
+ /**
111
+ * Specify the queue URL for the Asia Pacific Southeast (Singapore) Region.
112
+ */
113
+ const REGION_SINGAPORE = self::REGION_APAC_SE1;
114
+
115
+ /**
116
+ * Specify the queue URL for the South America (Sao Paulo) Region.
117
+ */
118
+ const REGION_SA_E1 = 'storagegateway.sa-east-1.amazonaws.com';
119
+
120
+ /**
121
+ * Specify the queue URL for the South America (Sao Paulo) Region.
122
+ */
123
+ const REGION_SAO_PAULO = self::REGION_SA_E1;
124
+
125
+ /**
126
+ * Default service endpoint.
127
+ */
128
+ const DEFAULT_URL = self::REGION_US_E1;
129
+
130
+
131
+ /*%******************************************************************************************%*/
132
+ // CONSTRUCTOR
133
+
134
+ /**
135
+ * Constructs a new instance of <AmazonStorageGateway>.
136
+ *
137
+ * @param array $options (Optional) An associative array of parameters that can have the following keys: <ul>
138
+ * <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>
139
+ * <li><code>credentials</code> - <code>string</code> - Optional - The name of the credential set to use for authentication.</li>
140
+ * <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>
141
+ * <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>
142
+ * <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>
143
+ * <li><code>token</code> - <code>string</code> - Optional - An AWS session token.</li></ul>
144
+ * @return void
145
+ */
146
+ public function __construct(array $options = array())
147
+ {
148
+ $this->api_version = '2012-04-30';
149
+ $this->hostname = self::DEFAULT_URL;
150
+ $this->auth_class = 'AuthV4JSON';
151
+ $this->operation_prefix = 'x-amz-target:StorageGateway_20120430.';
152
+
153
+ parent::__construct($options);
154
+ }
155
+
156
+
157
+ /*%******************************************************************************************%*/
158
+ // SETTERS
159
+
160
+ /**
161
+ * This allows you to explicitly sets the region for the service to use.
162
+ *
163
+ * @param string $region (Required) The region to explicitly set. Available options are <REGION_US_E1>, <REGION_US_W1>, <REGION_US_W2>, <REGION_EU_W1>, <REGION_APAC_NE1>, <REGION_APAC_SE1>, <REGION_SA_E1>.
164
+ * @return $this A reference to the current instance.
165
+ */
166
+ public function set_region($region)
167
+ {
168
+ // @codeCoverageIgnoreStart
169
+ $this->set_hostname($region);
170
+ return $this;
171
+ // @codeCoverageIgnoreEnd
172
+ }
173
+
174
+
175
+ /*%******************************************************************************************%*/
176
+ // CONVENIENCE METHODS
177
+
178
+ /**
179
+ * Fetches the activation code for a gateway using its public URL.
180
+ *
181
+ * @param string $gateway_url (Required) The public URL to a gateway.
182
+ * @return string|boolean The activation key for the gateway, or false if it could not be determined.
183
+ */
184
+ public function acquire_activation_code($gateway_url)
185
+ {
186
+ // Send a request to the gateway's URL
187
+ $request = new RequestCore($gateway_url);
188
+ $request->ssl_verification = false;
189
+ $request->set_curlopts(array(CURLOPT_FOLLOWLOCATION => false));
190
+ $response = $request->send_request(true);
191
+
192
+ // Parse the query string from the URL in the location header to get the activation key
193
+ if (isset($response->header['location']))
194
+ {
195
+ $url = $response->header['location'];
196
+ $query = parse_url($url, PHP_URL_QUERY);
197
+ parse_str($query, $params);
198
+
199
+ if (isset($params['activationKey']))
200
+ {
201
+ return $params['activationKey'];
202
+ }
203
+ }
204
+
205
+ return false;
206
+ }
207
+
208
+ /*%******************************************************************************************%*/
209
+ // SERVICE METHODS
210
+
211
+ /**
212
+ * This operation activates the gateway you previously deployed on your VMware host. For more
213
+ * information, see <code>DownloadAndDeploy</code>. In the activation process you specify
214
+ * information such as the region you want to use for storing snapshots, the time zone for
215
+ * scheduled snapshots and the gateway schedule window, an activation key, and a name for your
216
+ * gateway. The activation process also associates your gateway with your account.
217
+ *
218
+ * <p class="note">
219
+ * You must power on the gateway VM before you can activate your gateway.
220
+ * </p>
221
+ *
222
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
223
+ * <li><code>ActivationKey</code> - <code>string</code> - Required - Your gateway activation key. You can obtain the activation key by sending a GET request to the gateway IP. The redirect URL returned in the response provides you the activation key for your gateway. Length: Minimum length of 1. Maximum length of 50.</li>
224
+ * <li><code>GatewayName</code> - <code>string</code> - Required - A unique identifier for your gateway. This name becomes part of the gateway Amazon Resources Name (ARN) which is what you use as an input to other operations. Length: Minimum length of 2. Maximum length of 255. [Constraints: The value must be between 2 and 255 characters, and must match the following regular expression pattern: <code>^[ -\.0-\[\]-~]*[!-\.0-\[\]-~][ -\.0-\[\]-~]*$</code>]</li>
225
+ * <li><code>GatewayTimezone</code> - <code>string</code> - Required - One of the <code>GatewayTimezone</code> values that indicates the time zone you want to set for the gateway. The time zone is used, for example, for scheduling snapshots and your gateway's maintenance window. [Allowed values: <code>GMT-12:00</code>, <code>GMT-11:00</code>, <code>GMT-10:00</code>, <code>GMT-9:00</code>, <code>GMT-8:00</code>, <code>GMT-7:00</code>, <code>GMT-6:00</code>, <code>GMT-5:00</code>, <code>GMT-4:00</code>, <code>GMT-3:30</code>, <code>GMT-3:00</code>, <code>GMT-2:00</code>, <code>GMT-1:00</code>, <code>GMT</code>, <code>GMT+1:00</code>, <code>GMT+2:00</code>, <code>GMT+3:00</code>, <code>GMT+3:30</code>, <code>GMT+4:00</code>, <code>GMT+4:30</code>, <code>GMT+5:00</code>, <code>GMT+5:30</code>, <code>GMT+5:45</code>, <code>GMT+6:00</code>, <code>GMT+7:00</code>, <code>GMT+8:00</code>, <code>GMT+9:00</code>, <code>GMT+9:30</code>, <code>GMT+10:00</code>, <code>GMT+11:00</code>, <code>GMT+12:00</code>]</li>
226
+ * <li><code>GatewayRegion</code> - <code>string</code> - Required - One of the <code>Regions</code> values that indicates the region where you want to store the snapshot backups.</li>
227
+ * <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>
228
+ * <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>
229
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
230
+ */
231
+ public function activate_gateway($opt = null)
232
+ {
233
+ if (!$opt) $opt = array();
234
+
235
+ $opt = json_encode($opt);
236
+ return $this->authenticate('ActivateGateway', $opt);
237
+ }
238
+
239
+ /**
240
+ * This operation configures one or more gateway local disks as working storage.
241
+ *
242
+ * In the request, you specify the gateway Amazon Resource Name (ARN) to which you want to add
243
+ * working storage, and one or more disk IDs that you want to configure as working storage.
244
+ *
245
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
246
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
247
+ * <li><code>DiskIds</code> - <code>string|array</code> - Required - An array of strings that identify disks that are to be configured as working storage. Each string have a minimum length of 1 and maximum length of 300. Pass a string for a single value, or an indexed array for multiple values.</li>
248
+ * <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>
249
+ * <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>
250
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
251
+ */
252
+ public function add_working_storage($opt = null)
253
+ {
254
+ if (!$opt) $opt = array();
255
+
256
+ // List (non-map)
257
+ if (isset($opt['DiskIds']))
258
+ {
259
+ $opt['DiskIds'] = (is_array($opt['DiskIds']) ? $opt['DiskIds'] : array($opt['DiskIds']));
260
+ }
261
+
262
+ $opt = json_encode($opt);
263
+ return $this->authenticate('AddWorkingStorage', $opt);
264
+ }
265
+
266
+ /**
267
+ * This operation initiates a snapshot of a volume.
268
+ *
269
+ * AWS Storage Gateway provides the ability to back up point-in-time snapshots of your data to
270
+ * Amazon Simple Storage (S3) for durable off-site recovery, as well as import the data to an
271
+ * Amazon Elastic Block Store (EBS) volume in Amazon Elastic Compute Cloud (EC2). You can take
272
+ * snapshots of your gateway volume on a scheduled or ad-hoc basis. This API enables you to take
273
+ * ad-hoc snapshot. For more information, see <a href="TBD">Working With Snapshots in the AWS
274
+ * Storage Gateway Console</a>.
275
+ *
276
+ * In the CreateSnapshot request you identify the volume by providing it's Amazon Resource Name
277
+ * (ARN). You must also provide description for the snapshot. When AWS Storage Gateway takes the
278
+ * snapshot of specified volume, the snapshot and description appears in the Amazon EC2 console.
279
+ * In response, AWS Storage Gateway returns you a snapshot ID. You can use this snapshot ID to
280
+ * check the snapshot progress or later use it when you want to create a volume from a snapshot.
281
+ *
282
+ * <p class="note">
283
+ * To list or delete a snapshot, you must use the Amazon EC2 API. For more information, go to
284
+ * <a href=
285
+ * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DeleteSnapshot.html">
286
+ * DeleteSnapshot</a> and <a href=
287
+ * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html">
288
+ * DescribeSnapshots</a> in the <em>Amazon Elastic Compute Cloud API Reference</em>.
289
+ * </p>
290
+ *
291
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
292
+ * <li><code>VolumeARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the volume. Use the <code>ListVolumes</code> operation to return a list of gateway volumes.</li>
293
+ * <li><code>SnapshotDescription</code> - <code>string</code> - Required - Textual description of the snapshot that appears in the Amazon EC2 console, Elastic Block Store snapshots panel in the <code>Description</code> field, and in the AWS Storage Gateway snapshot Details pane, <code>Description</code> field. Length: Minimum length of 1. Maximum length of 255.</li>
294
+ * <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>
295
+ * <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>
296
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
297
+ */
298
+ public function create_snapshot($opt = null)
299
+ {
300
+ if (!$opt) $opt = array();
301
+
302
+ $opt = json_encode($opt);
303
+ return $this->authenticate('CreateSnapshot', $opt);
304
+ }
305
+
306
+ /**
307
+ * This operation creates a volume on a specified gateway. The size of the volume is inferred from
308
+ * the disk size. You can choose to preserve existing data on the disk, create volume from an
309
+ * existing snapshot, or create an empty volume. If you choose to create an empty gateway volume,
310
+ * then any existing data on the disk is erased.
311
+ *
312
+ * In the request you must specify the gateway and the disk information on which you are creating
313
+ * the volume. In response, AWS Storage Gateway creates the volume and returns volume information
314
+ * such as the volume ARN, size and the iSCSI target ARN that initiators can use to connect to the
315
+ * volume target.
316
+ *
317
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
318
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
319
+ * <li><code>DiskId</code> - <code>string</code> - Required - The unique identifier for the gateway local disk that is configured as a stored volume. Use <code>ListLocalDisks</code> to list disk IDs for a gateway.</li>
320
+ * <li><code>SnapshotId</code> - <code>string</code> - Optional - The snapshot ID (e.g. "snap-1122aabb") of the snapshot to restore as the new stored volume. Specify this field if you want to create the iSCSI storage volume from a snapshot otherwise do not include this field. To list snapshots for your account use <a href="http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html">DescribeSnapshots</a> in the <em>Amazon Elastic Compute Cloud API Reference</em>. Length: 13 <em>Valid Values</em>: Must be a valid snapshot ID, "snap-" followed by eight hexadecimal characters. [Constraints: The value must match the following regular expression pattern: <code>\Asnap-[0-9a-fA-F]{8}\z</code>]</li>
321
+ * <li><code>PreserveExistingData</code> - <code>boolean</code> - Required - Specify this field as true if you want to preserve the data on the local disk. Otherwise, specifying this field as false creates an empty volume. <em>Valid Values</em>: true, false</li>
322
+ * <li><code>TargetName</code> - <code>string</code> - Required - The name of the iSCSI target used by initiators to connect to the target and as a suffix for the target ARN. For example, specifying <code>TargetName</code> as <em>myvolume</em> results in the target ARN of arn:aws:storagegateway:us-east-1:111122223333:gateway/mygateway/target/iqn.1997-05.com.amazon:myvolume. The target name must be unique across all volumes of a gateway. Length: Minimum length of 1. Maximum length of 200. Constraints: The name can contain lower case letters, numbers, periods (.), and hyphens (-). [Constraints: The value must be between 1 and 200 characters, and must match the following regular expression pattern: <code>^[-\.;a-z0-9]+$</code>]</li>
323
+ * <li><code>NetworkInterfaceId</code> - <code>string</code> - Required - The network interface of the gateway on which to expose the iSCSI target. Only IPv4 addresses are accepted. Use <code>DescribeGatewayInformation</code> to get a list of the network interfaces available on a gateway. <em>Valid Values</em>: A valid IP address. [Constraints: The value must match the following regular expression pattern: <code>\A(25[0-5]|2[0-4]\d|[0-1]?\d?\d)(\.(25[0-5]|2[0-4]\d|[0-1]?\d?\d)){3}\z</code>]</li>
324
+ * <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>
325
+ * <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>
326
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
327
+ */
328
+ public function create_stored_iscsi_volume($opt = null)
329
+ {
330
+ if (!$opt) $opt = array();
331
+
332
+ $opt = json_encode($opt);
333
+ return $this->authenticate('CreateStorediSCSIVolume', $opt);
334
+ }
335
+
336
+ /**
337
+ * This operation deletes the bandwidth rate limits of a gateway. You can delete either the upload
338
+ * and download bandwidth rate limit, or you can delete both. If you delete only one of the
339
+ * limits, the other limit remains unchanged. To specify which gateway to work with, use the
340
+ * Amazon Resource Name (ARN) of the gateway in your request.
341
+ *
342
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
343
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
344
+ * <li><code>BandwidthType</code> - <code>string</code> - Required - One of the <code>BandwidthType</code> values that indicates the gateway bandwidth rate limit to delete. <em>Valid Values</em>: <code>Upload</code>, <code>Download</code>, <code>All</code> [Allowed values: <code>UPLOAD</code>, <code>DOWNLOAD</code>, <code>ALL</code>]</li>
345
+ * <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>
346
+ * <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>
347
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
348
+ */
349
+ public function delete_bandwidth_rate_limit($opt = null)
350
+ {
351
+ if (!$opt) $opt = array();
352
+
353
+ $opt = json_encode($opt);
354
+ return $this->authenticate('DeleteBandwidthRateLimit', $opt);
355
+ }
356
+
357
+ /**
358
+ * This operation deletes Challenge-Handshake Authentication Protocol (CHAP) credentials for a
359
+ * specified iSCSI target and initiator pair.
360
+ *
361
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
362
+ * <li><code>TargetARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the iSCSI volume target. Use the <code>DescribeStorediSCSIVolumes</code> operation to return to retrieve the TargetARN for specified VolumeARN.</li>
363
+ * <li><code>InitiatorName</code> - <code>string</code> - Required - The iSCSI initiator that connects to the target. Length: 1 to 255 characters. <em>Valid Values</em>: lowercase letters, numbers, periods (.), and hyphens (-). [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[0-9a-z:.-]+</code>]</li>
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_chap_credentials($opt = null)
369
+ {
370
+ if (!$opt) $opt = array();
371
+
372
+ $opt = json_encode($opt);
373
+ return $this->authenticate('DeleteChapCredentials', $opt);
374
+ }
375
+
376
+ /**
377
+ * This operation deletes a gateway. To specify which gateway to delete, use the Amazon Resource
378
+ * Name (ARN) of the gateway in your request. The operation deletes the gateway; however, it does
379
+ * not delete the gateway virtual machine (VM) from your host computer.
380
+ *
381
+ * After you delete a gateway, you cannot reactivate it. Completed snapshots of the gateway
382
+ * volumes are not deleted upon deleting the gateway, however, pending snapshots will not
383
+ * complete. After you delete a gateway, your next step is to remove it from your environment.
384
+ *
385
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
386
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
387
+ * <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>
388
+ * <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>
389
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
390
+ */
391
+ public function delete_gateway($opt = null)
392
+ {
393
+ if (!$opt) $opt = array();
394
+
395
+ $opt = json_encode($opt);
396
+ return $this->authenticate('DeleteGateway', $opt);
397
+ }
398
+
399
+ /**
400
+ * This operation delete the specified gateway volume that you previously created using the
401
+ * <code>CreateStorediSCSIVolume</code> API. The gateway local disk that was configured as the
402
+ * storage volume is not deleted. You can reuse the local disk to create another storage volume.
403
+ *
404
+ * Before you delete a gateway volume, make sure there are no iSCSI connections to the volume you
405
+ * are deleting. You should also make sure there is no snapshot in progress. You can use the
406
+ * Amazon Elastic Compute Cloud (EC2) API to query snapshots on the volume you are deleting and
407
+ * check the snapshot status. For more information, go to <a href=
408
+ * "http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-DescribeSnapshots.html">
409
+ * DescribeSnapshots</a> in the <em>Amazon Elastic Compute Cloud API Reference</em>.
410
+ *
411
+ * In the request, you must provide the Amazon Resource Name (ARN) of the storage volume you want
412
+ * to delete.
413
+ *
414
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
415
+ * <li><code>VolumeARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the volume. Use the <code>ListVolumes</code> operation to return a list of gateway volumes.</li>
416
+ * <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>
417
+ * <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>
418
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
419
+ */
420
+ public function delete_volume($opt = null)
421
+ {
422
+ if (!$opt) $opt = array();
423
+
424
+ $opt = json_encode($opt);
425
+ return $this->authenticate('DeleteVolume', $opt);
426
+ }
427
+
428
+ /**
429
+ * This operation returns the bandwidth rate limits of a gateway. By default, these limits are not
430
+ * set, which means no bandwidth rate limiting is in effect.
431
+ *
432
+ * This operation only returns a value for a bandwidth rate limit only if the limit is set. If no
433
+ * limits are set for the gateway, then this operation returns only the gateway ARN in the
434
+ * response body. To specify which gateway to describe, use the Amazon Resource Name (ARN) of the
435
+ * gateway in your request.
436
+ *
437
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
438
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
439
+ * <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>
440
+ * <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>
441
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
442
+ */
443
+ public function describe_bandwidth_rate_limit($opt = null)
444
+ {
445
+ if (!$opt) $opt = array();
446
+
447
+ $opt = json_encode($opt);
448
+ return $this->authenticate('DescribeBandwidthRateLimit', $opt);
449
+ }
450
+
451
+ /**
452
+ * This operation returns an array of Challenge-Handshake Authentication Protocol (CHAP)
453
+ * credentials information for a specified iSCSI target, one for each target-initiator pair.
454
+ *
455
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
456
+ * <li><code>TargetARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the iSCSI volume target. Use the <code>DescribeStorediSCSIVolumes</code> operation to return to retrieve the TargetARN for specified VolumeARN.</li>
457
+ * <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>
458
+ * <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>
459
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
460
+ */
461
+ public function describe_chap_credentials($opt = null)
462
+ {
463
+ if (!$opt) $opt = array();
464
+
465
+ $opt = json_encode($opt);
466
+ return $this->authenticate('DescribeChapCredentials', $opt);
467
+ }
468
+
469
+ /**
470
+ * This operation returns metadata about a gateway such as its name, network interfaces,
471
+ * configured time zone, and the state (whether the gateway is running or not). To specify which
472
+ * gateway to describe, use the Amazon Resource Name (ARN) of the gateway in your request.
473
+ *
474
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
475
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
476
+ * <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>
477
+ * <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>
478
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
479
+ */
480
+ public function describe_gateway_information($opt = null)
481
+ {
482
+ if (!$opt) $opt = array();
483
+
484
+ $opt = json_encode($opt);
485
+ return $this->authenticate('DescribeGatewayInformation', $opt);
486
+ }
487
+
488
+ /**
489
+ * This operation returns your gateway's weekly maintenance start time including the day and time
490
+ * of the week. Note that values are in terms of the gateway's time zone.
491
+ *
492
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
493
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
494
+ * <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>
495
+ * <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>
496
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
497
+ */
498
+ public function describe_maintenance_start_time($opt = null)
499
+ {
500
+ if (!$opt) $opt = array();
501
+
502
+ $opt = json_encode($opt);
503
+ return $this->authenticate('DescribeMaintenanceStartTime', $opt);
504
+ }
505
+
506
+ /**
507
+ * This operation describes the snapshot schedule for the specified gateway volume. The snapshot
508
+ * schedule information includes intervals at which snapshots are automatically initiated on the
509
+ * volume.
510
+ *
511
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
512
+ * <li><code>VolumeARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the volume. Use the <code>ListVolumes</code> operation to return a list of gateway volumes.</li>
513
+ * <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>
514
+ * <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>
515
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
516
+ */
517
+ public function describe_snapshot_schedule($opt = null)
518
+ {
519
+ if (!$opt) $opt = array();
520
+
521
+ $opt = json_encode($opt);
522
+ return $this->authenticate('DescribeSnapshotSchedule', $opt);
523
+ }
524
+
525
+ /**
526
+ * This operation returns description of the gateway volumes specified in the request. The list of
527
+ * gateway volumes in the request must be from one gateway. In the response Amazon Storage Gateway
528
+ * returns volume information sorted by volume ARNs.
529
+ *
530
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
531
+ * <li><code>VolumeARNs</code> - <code>string|array</code> - Required - An array of strings where each string represents the Amazon Resource Name (ARN) of a stored volume. All of the specified stored volumes must from the same gateway. Use <code>ListVolumes</code> to get volume ARNs for a gateway. Pass a string for a single value, or an indexed array for multiple values.</li>
532
+ * <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>
533
+ * <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>
534
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
535
+ */
536
+ public function describe_stored_iscsi_volumes($opt = null)
537
+ {
538
+ if (!$opt) $opt = array();
539
+
540
+ // List (non-map)
541
+ if (isset($opt['VolumeARNs']))
542
+ {
543
+ $opt['VolumeARNs'] = (is_array($opt['VolumeARNs']) ? $opt['VolumeARNs'] : array($opt['VolumeARNs']));
544
+ }
545
+
546
+ $opt = json_encode($opt);
547
+ return $this->authenticate('DescribeStorediSCSIVolumes', $opt);
548
+ }
549
+
550
+ /**
551
+ * This operation returns information about the working storage of a gateway. The response
552
+ * includes disk IDs that are configured as working storage, and it includes the amount of working
553
+ * storage allocated and used.
554
+ *
555
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
556
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
557
+ * <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>
558
+ * <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>
559
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
560
+ */
561
+ public function describe_working_storage($opt = null)
562
+ {
563
+ if (!$opt) $opt = array();
564
+
565
+ $opt = json_encode($opt);
566
+ return $this->authenticate('DescribeWorkingStorage', $opt);
567
+ }
568
+
569
+ /**
570
+ * This operation lists gateways owned by an AWS account in a region specified in the request. The
571
+ * returned list is ordered by gateway Amazon Resource Name (ARN).
572
+ *
573
+ * By default, the operation returns a maximum of 100 gateways. This operation supports pagination
574
+ * that allows you to optionally reduce the number of gateways returned in a response.
575
+ *
576
+ * If you have more gateways than are returned in a response-that is, the response returns only a
577
+ * truncated list of your gateways-the response contains a marker that you can specify in your
578
+ * next request to fetch the next page of gateways.
579
+ *
580
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
581
+ * <li><code>Marker</code> - <code>string</code> - Optional - An opaque string that indicates the position at which to begin the returned list of gateways. <em>Valid Values</em>: A marker obtained from the response of a previous List Gateways request.</li>
582
+ * <li><code>Limit</code> - <code>integer</code> - Optional - Specifies that the list of gateways returned be limited to the specified number of items. Valid Values: a number from 1 to 100.</li>
583
+ * <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>
584
+ * <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>
585
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
586
+ */
587
+ public function list_gateways($opt = null)
588
+ {
589
+ if (!$opt) $opt = array();
590
+
591
+ $opt = json_encode($opt);
592
+ return $this->authenticate('ListGateways', $opt);
593
+ }
594
+
595
+ /**
596
+ * This operation returns a list of the local disks of a gateway. To specify which gateway to
597
+ * describe you use the Amazon Resource Name (ARN) of the gateway in the body of the request.
598
+ *
599
+ * The request returns all disks, specifying which are configured as working storage, stored
600
+ * volume or not configured at all.
601
+ *
602
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
603
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
604
+ * <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>
605
+ * <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>
606
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
607
+ */
608
+ public function list_local_disks($opt = null)
609
+ {
610
+ if (!$opt) $opt = array();
611
+
612
+ $opt = json_encode($opt);
613
+ return $this->authenticate('ListLocalDisks', $opt);
614
+ }
615
+
616
+ /**
617
+ * This operation lists the iSCSI stored volumes of a gateway. Results are sorted by volume ARN.
618
+ * The response includes only the volume ARNs. If you want additional volume information, use the
619
+ * <code>DescribeStorediSCSIVolumes</code> API.
620
+ *
621
+ * The operation supports pagination. By default, the operation returns a maximum of up to 100
622
+ * volumes. You can optionally specify the <code>Limit</code> field in the body to limit the
623
+ * number of volumes in the response. If the number of volumes returned in the response is
624
+ * truncated, the response includes a Marker field. You can use this Marker value in your
625
+ * subsequent request to retrieve the next set of volumes.
626
+ *
627
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
628
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
629
+ * <li><code>Marker</code> - <code>string</code> - Optional - A string that indicates the position at which to begin the returned list of volumes. Obtain the marker from the response of a previous List iSCSI Volumes request.</li>
630
+ * <li><code>Limit</code> - <code>integer</code> - Optional - Specifies that the list of volumes returned be limited to the specified number of items. Constraint: Minimum value of 1. Maximum value of 100.</li>
631
+ * <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>
632
+ * <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>
633
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
634
+ */
635
+ public function list_volumes($opt = null)
636
+ {
637
+ if (!$opt) $opt = array();
638
+
639
+ $opt = json_encode($opt);
640
+ return $this->authenticate('ListVolumes', $opt);
641
+ }
642
+
643
+ /**
644
+ * This operation shuts down a gateway. To specify which gateway to shut down, use the Amazon
645
+ * Resource Name (ARN) of the gateway in the body of your request.
646
+ *
647
+ * The operation shuts down the gateway service component running in the storage gateway's virtual
648
+ * machine (VM) and not the VM.
649
+ *
650
+ * <p class="note">
651
+ * If you want to shut down the VM, it is recommended that you first shut down the gateway
652
+ * component in the VM to avoid unpredictable conditions.
653
+ * </p>
654
+ * After the gateway is shutdown, you cannot call any other API except <code>StartGateway</code>,
655
+ * <code>DescribeGatewayInformation</code>, and <code>ListGateways</code>. For more information,
656
+ * see <code>ActivateGateway</code>. Your applications cannot read from or write to the gateway's
657
+ * storage volumes, and there are no snapshots taken.
658
+ *
659
+ * <p class="note">
660
+ * When you make a shutdown request, you will get a <code>200 OK</code> success response
661
+ * immediately. However, it might take some time for the gateway to shut down. You can call the
662
+ * <code>DescribeGatewayInformation</code> API to check the status. For more information, see
663
+ * <code>ActivateGateway</code>.
664
+ * </p>
665
+ *
666
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
667
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
668
+ * <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>
669
+ * <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>
670
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
671
+ */
672
+ public function shutdown_gateway($opt = null)
673
+ {
674
+ if (!$opt) $opt = array();
675
+
676
+ $opt = json_encode($opt);
677
+ return $this->authenticate('ShutdownGateway', $opt);
678
+ }
679
+
680
+ /**
681
+ * This operation starts a gateway that you previously shut down (see
682
+ * <code>ShutdownGateway</code>). After the gateway starts, you can then make other API calls,
683
+ * your applications can read from or write to the gateway's storage volumes and you will be able
684
+ * to take snapshot backups.
685
+ *
686
+ * <p class="note">
687
+ * When you make a request, you will get a 200 OK success response immediately. However, it might
688
+ * take some time for the gateway to be ready. You should call
689
+ * <code>DescribeGatewayInformation</code> and check the status before making any additional API
690
+ * calls. For more information, see <code>ActivateGateway</code>.
691
+ * </p>
692
+ * To specify which gateway to start, use the Amazon Resource Name (ARN) of the gateway in your
693
+ * request.
694
+ *
695
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
696
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
697
+ * <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>
698
+ * <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>
699
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
700
+ */
701
+ public function start_gateway($opt = null)
702
+ {
703
+ if (!$opt) $opt = array();
704
+
705
+ $opt = json_encode($opt);
706
+ return $this->authenticate('StartGateway', $opt);
707
+ }
708
+
709
+ /**
710
+ * This operation updates the bandwidth rate limits of a gateway. You can update both the upload
711
+ * and download bandwidth rate limit or specify only one of the two. If you don't set a bandwidth
712
+ * rate limit, the existing rate limit remains.
713
+ *
714
+ * By default, a gateway's bandwidth rate limits are not set. If you don't set any limit, the
715
+ * gateway does not have any limitations on its bandwidth usage and could potentially use the
716
+ * maximum available bandwidth.
717
+ *
718
+ * To specify which gateway to update, use the Amazon Resource Name (ARN) of the gateway in your
719
+ * request.
720
+ *
721
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
722
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
723
+ * <li><code>AverageUploadRateLimitInBitsPerSec</code> - <code>long</code> - Optional - The average upload bandwidth rate limit in bits per second. Constraint: Minimum value of 51200.</li>
724
+ * <li><code>AverageDownloadRateLimitInBitsPerSec</code> - <code>long</code> - Optional - The average download bandwidth rate limit in bits per second. Constraint: Minimum value of 102400.</li>
725
+ * <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>
726
+ * <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>
727
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
728
+ */
729
+ public function update_bandwidth_rate_limit($opt = null)
730
+ {
731
+ if (!$opt) $opt = array();
732
+
733
+ $opt = json_encode($opt);
734
+ return $this->authenticate('UpdateBandwidthRateLimit', $opt);
735
+ }
736
+
737
+ /**
738
+ * This operation updates the Challenge-Handshake Authentication Protocol (CHAP) credentials for a
739
+ * specified iSCSI target. By default, a gateway does not have CHAP enabled; however, for added
740
+ * security, you might use it.
741
+ *
742
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
743
+ * <li><code>TargetARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the iSCSI volume target. Use the <code>DescribeStorediSCSIVolumes</code> operation to return to retrieve the TargetARN for specified VolumeARN.</li>
744
+ * <li><code>SecretToAuthenticateInitiator</code> - <code>string</code> - Required - The secret key that the initiator (e.g. Windows client) must provide to participate in mutual CHAP with the target. Length: Minimum length of 12. Maximum length of 16.</li>
745
+ * <li><code>InitiatorName</code> - <code>string</code> - Required - The iSCSI initiator that connects to the target. Length: Minimum length of 1. Maximum length of 255. <em>Valid Values</em>: The initiator name can contain lowercase letters, numbers, periods (.), and hyphens (-). [Constraints: The value must be between 1 and 255 characters, and must match the following regular expression pattern: <code>[0-9a-z:.-]+</code>]</li>
746
+ * <li><code>SecretToAuthenticateTarget</code> - <code>string</code> - Optional - The secret key that the target must provide to participate in mutual CHAP with the initiator (e.g. Windows client). Length: Minimum length of 12. Maximum length of 16.</li>
747
+ * <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>
748
+ * <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>
749
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
750
+ */
751
+ public function update_chap_credentials($opt = null)
752
+ {
753
+ if (!$opt) $opt = array();
754
+
755
+ $opt = json_encode($opt);
756
+ return $this->authenticate('UpdateChapCredentials', $opt);
757
+ }
758
+
759
+ /**
760
+ * This operation updates a gateway's metadata, which includes the gateway's name and time zone.
761
+ * To specify which gateway to update, use the Amazon Resource Name (ARN) of the gateway in your
762
+ * request.
763
+ *
764
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
765
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
766
+ * <li><code>GatewayName</code> - <code>string</code> - Optional - A unique identifier for your gateway. This name becomes part of the gateway Amazon Resources Name (ARN) which is what you use as an input to other operations. Length: Minimum length of 2. Maximum length of 255. [Constraints: The value must be between 2 and 255 characters, and must match the following regular expression pattern: <code>^[ -\.0-\[\]-~]*[!-\.0-\[\]-~][ -\.0-\[\]-~]*$</code>]</li>
767
+ * <li><code>GatewayTimezone</code> - <code>string</code> - Optional - One of the <code>GatewayTimezone</code> values that represents the time zone for your gateway. The time zone is used, for example, when a time stamp is given to a snapshot. [Allowed values: <code>GMT-12:00</code>, <code>GMT-11:00</code>, <code>GMT-10:00</code>, <code>GMT-9:00</code>, <code>GMT-8:00</code>, <code>GMT-7:00</code>, <code>GMT-6:00</code>, <code>GMT-5:00</code>, <code>GMT-4:00</code>, <code>GMT-3:30</code>, <code>GMT-3:00</code>, <code>GMT-2:00</code>, <code>GMT-1:00</code>, <code>GMT</code>, <code>GMT+1:00</code>, <code>GMT+2:00</code>, <code>GMT+3:00</code>, <code>GMT+3:30</code>, <code>GMT+4:00</code>, <code>GMT+4:30</code>, <code>GMT+5:00</code>, <code>GMT+5:30</code>, <code>GMT+5:45</code>, <code>GMT+6:00</code>, <code>GMT+7:00</code>, <code>GMT+8:00</code>, <code>GMT+9:00</code>, <code>GMT+9:30</code>, <code>GMT+10:00</code>, <code>GMT+11:00</code>, <code>GMT+12:00</code>]</li>
768
+ * <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>
769
+ * <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>
770
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
771
+ */
772
+ public function update_gateway_information($opt = null)
773
+ {
774
+ if (!$opt) $opt = array();
775
+
776
+ $opt = json_encode($opt);
777
+ return $this->authenticate('UpdateGatewayInformation', $opt);
778
+ }
779
+
780
+ /**
781
+ * This operation updates the gateway virtual machine (VM) software. The request immediately
782
+ * triggers the software update. Before initiating this update, make sure there is no traffic to
783
+ * the gateway.
784
+ *
785
+ * Before sending this request, you should make sure all your applications have finished writing
786
+ * to your gateway's storage volumes in order to avoid data loss. During the update, applications
787
+ * cannot use the gateway's storage volumes.
788
+ *
789
+ * <p class="note">
790
+ * When you make this request, you get a <code>200 OK</code> success response immediately.
791
+ * However, it might take some time for the update to complete. You can call
792
+ * <code>DescribeGatewayInformation</code> to verify the gateway is in the
793
+ * <code>STATE_RUNNING</code> state.
794
+ * </p>
795
+ *
796
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
797
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
798
+ * <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>
799
+ * <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>
800
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
801
+ */
802
+ public function update_gateway_software_now($opt = null)
803
+ {
804
+ if (!$opt) $opt = array();
805
+
806
+ $opt = json_encode($opt);
807
+ return $this->authenticate('UpdateGatewaySoftwareNow', $opt);
808
+ }
809
+
810
+ /**
811
+ * This operation updates a gateway's weekly maintenance start time information, including day and
812
+ * time of the week. The maintenance time is the time in your gateway's time zone.
813
+ *
814
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
815
+ * <li><code>GatewayARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the gateway. Use the <code>ListGateways</code> operation to return a list of gateways for your account and region.</li>
816
+ * <li><code>HourOfDay</code> - <code>integer</code> - Required - The maintenance start time hour of day. Length: 2 <em>Valid Values</em>: An integer between 0 and 23 representing the hour of day.</li>
817
+ * <li><code>MinuteOfHour</code> - <code>integer</code> - Required - The maintenance start time minute of hour.. Length: 2 <em>Valid Values</em>: An integer between 0 and 59 representing the minute of hour.</li>
818
+ * <li><code>DayOfWeek</code> - <code>integer</code> - Required - The maintenance start time day of the week. Length: 1 Valid Values An integer between 0 and 6, where 0 represents Sunday and 6 represents Saturday.</li>
819
+ * <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>
820
+ * <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>
821
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
822
+ */
823
+ public function update_maintenance_start_time($opt = null)
824
+ {
825
+ if (!$opt) $opt = array();
826
+
827
+ $opt = json_encode($opt);
828
+ return $this->authenticate('UpdateMaintenanceStartTime', $opt);
829
+ }
830
+
831
+ /**
832
+ * This operation updates a snapshot schedule configured for a gateway volume.
833
+ *
834
+ * The default snapshot schedule for volume is once every 24 hours, starting at the creation time
835
+ * of the volume. You can use this API to change the snaphot schedule configured for the volume.
836
+ *
837
+ * In the request you must identify the gateway volume whose snapshot schedule you want to update,
838
+ * and the schedule information, including when you want the snapshot to begin on a day and the
839
+ * frequency (in hours) of snapshots.
840
+ *
841
+ * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
842
+ * <li><code>VolumeARN</code> - <code>string</code> - Required - The Amazon Resource Name (ARN) of the volume. Use the <code>ListVolumes</code> operation to return a list of gateway volumes.</li>
843
+ * <li><code>StartAt</code> - <code>integer</code> - Required - The hour of the day at which the snapshot schedule begins. Length: 2 <em>Valid Values</em>: An integer between 0 and 23, representing the hour of day.</li>
844
+ * <li><code>RecurrenceInHours</code> - <code>integer</code> - Required - Frequency of snapshots. Specify the number of hours between snapshots. <em>Valid Values</em>: <code>1</code>, <code>2</code>, <code>4</code>, <code>8</code>, <code>12</code>, <code>24</code>.</li>
845
+ * <li><code>Description</code> - <code>string</code> - Optional - Optional description of the snapshot that overwrites the existing description. Length: up to 255 characters.</li>
846
+ * <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>
847
+ * <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>
848
+ * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
849
+ */
850
+ public function update_snapshot_schedule($opt = null)
851
+ {
852
+ if (!$opt) $opt = array();
853
+
854
+ $opt = json_encode($opt);
855
+ return $this->authenticate('UpdateSnapshotSchedule', $opt);
856
+ }
857
+ }
858
+
859
+
860
+ /*%******************************************************************************************%*/
861
+ // EXCEPTIONS
862
+
863
+ class StorageGateway_Exception extends Exception {}
libs/aws/services/sts.class.php CHANGED
@@ -15,20 +15,24 @@
15
  */
16
 
17
  /**
18
- * This is the <em>AWS Security Token Service API Reference</em>. The AWS Security Token Service
19
- * is a web service that enables you to request temporary, limited-privilege credentials for AWS
20
- * Identity and Access Management (IAM) users or for users that you authenticate (federated
21
- * users). This guide provides descriptions of the AWS Security Token Service API as well as links
22
- * to related content in <a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/" target=
23
- * "_blank">Using IAM</a>.
24
  *
25
  * For more detailed information about using this service, go to <a href=
26
- * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/TokenBasedAuth.html" target=
27
- * "_blank">Granting Temporary Access to Your AWS Resources</a> in <em>Using IAM</em>.
28
  *
29
- * For specific information about setting up signatures and authorization through the API, go to
30
- * <a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html" target=
31
- * "_blank">Making Query Requests</a> in <em>Using IAM</em>.
 
 
 
 
 
 
32
  *
33
  * If you're new to AWS and need additional technical information about a specific AWS product,
34
  * you can find the product'stechnical documentation at <a href=
@@ -38,7 +42,7 @@
38
  * We will refer to Amazon Identity and Access Management using the abbreviated form IAM. All
39
  * copyrights and legal protections still apply.
40
  *
41
- * @version 2012.01.16
42
  * @license See the included NOTICE.md file for complete information.
43
  * @copyright See the included NOTICE.md file for complete information.
44
  * @link http://aws.amazon.com/sts/ Amazon Secure Token Service
@@ -84,7 +88,7 @@ class AmazonSTS extends CFRuntime
84
  {
85
  $this->api_version = '2011-06-15';
86
  $this->hostname = self::DEFAULT_URL;
87
- $this->auth_class = 'AuthV2Query';
88
 
89
  return parent::__construct($options);
90
  }
@@ -114,8 +118,9 @@ class AmazonSTS extends CFRuntime
114
  /**
115
  * The GetFederationToken action returns a set of temporary credentials for a federated user with
116
  * the user name and policy specified in the request. The credentials consist of an Access Key ID,
117
- * a Secret Access Key, and a security token. The credentials are valid for the specified
118
- * duration, between one and 36 hours.
 
119
  *
120
  * The federated user who holds these credentials has any permissions allowed by the intersection
121
  * of the specified policy and any resource or user policies that apply to the caller of the
@@ -150,7 +155,8 @@ class AmazonSTS extends CFRuntime
150
  * user. The credentials consist of an Access Key ID, a Secret Access Key, and a security token.
151
  * These credentials are valid for the specified duration only. The session duration for IAM users
152
  * can be between one and 36 hours, with a default of 12 hours. The session duration for AWS
153
- * account owners is restricted to one hour.
 
154
  *
155
  * For more information about using GetSessionToken to create temporary credentials, go to
156
  * <a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/CreatingSessionTokens.html"
@@ -159,6 +165,8 @@ class AmazonSTS extends CFRuntime
159
  *
160
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
161
  * <li><code>DurationSeconds</code> - <code>integer</code> - Optional - The duration, in seconds, that the credentials should remain valid. Acceptable durations for IAM user sessions range from 3600s (one hour) to 129600s (36 hours), with 43200s (12 hours) as the default. Sessions for AWS account owners are restricted to a maximum of 3600s (one hour).</li>
 
 
162
  * <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>
163
  * <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>
164
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
15
  */
16
 
17
  /**
18
+ * The AWS Security Token Service is a web service that enables you to request temporary,
19
+ * limited-privilege credentials for AWS Identity and Access Management (IAM) users or for users
20
+ * that you authenticate (federated users). This guide provides descriptions of the AWS Security
21
+ * Token Service API.
 
 
22
  *
23
  * For more detailed information about using this service, go to <a href=
24
+ * "http://docs.amazonwebservices.com/IAM/latest/UsingSTS/Welcome.html" target="_blank">Using
25
+ * Temporary Security Credentials</a>.
26
  *
27
+ * For information about setting up signatures and authorization through the API, go to <a href=
28
+ * "http://docs.amazonwebservices.com/general/latest/gr/signing_aws_api_requests.html" target=
29
+ * "_blank">Signing AWS API Requests</a> in the <em>AWS General Reference</em>. For general
30
+ * information about the Query API, go to <a href=
31
+ * "http://docs.amazonwebservices.com/IAM/latest/UserGuide/IAM_UsingQueryAPI.html" target=
32
+ * "_blank">Making Query Requests</a> in <em>Using IAM</em>. For information about using security
33
+ * tokens with other AWS products, go to <a href=
34
+ * "http://docs.amazonwebservices.com/IAM/latest/UsingSTS/UsingTokens.html">Using Temporary
35
+ * Security Credentials to Access AWS</a> in <em>Using Temporary Security Credentials</em>.
36
  *
37
  * If you're new to AWS and need additional technical information about a specific AWS product,
38
  * you can find the product'stechnical documentation at <a href=
42
  * We will refer to Amazon Identity and Access Management using the abbreviated form IAM. All
43
  * copyrights and legal protections still apply.
44
  *
45
+ * @version 2012.04.18
46
  * @license See the included NOTICE.md file for complete information.
47
  * @copyright See the included NOTICE.md file for complete information.
48
  * @link http://aws.amazon.com/sts/ Amazon Secure Token Service
88
  {
89
  $this->api_version = '2011-06-15';
90
  $this->hostname = self::DEFAULT_URL;
91
+ $this->auth_class = 'AuthV4Query';
92
 
93
  return parent::__construct($options);
94
  }
118
  /**
119
  * The GetFederationToken action returns a set of temporary credentials for a federated user with
120
  * the user name and policy specified in the request. The credentials consist of an Access Key ID,
121
+ * a Secret Access Key, and a security token. Credentials created by IAM users are valid for the
122
+ * specified duration, between one and 36 hours; credentials created using account credentials
123
+ * last one hour.
124
  *
125
  * The federated user who holds these credentials has any permissions allowed by the intersection
126
  * of the specified policy and any resource or user policies that apply to the caller of the
155
  * user. The credentials consist of an Access Key ID, a Secret Access Key, and a security token.
156
  * These credentials are valid for the specified duration only. The session duration for IAM users
157
  * can be between one and 36 hours, with a default of 12 hours. The session duration for AWS
158
+ * account owners is restricted to one hour. Providing the MFA device serial number and the token
159
+ * code is optional.
160
  *
161
  * For more information about using GetSessionToken to create temporary credentials, go to
162
  * <a href="http://docs.amazonwebservices.com/IAM/latest/UserGuide/CreatingSessionTokens.html"
165
  *
166
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
167
  * <li><code>DurationSeconds</code> - <code>integer</code> - Optional - The duration, in seconds, that the credentials should remain valid. Acceptable durations for IAM user sessions range from 3600s (one hour) to 129600s (36 hours), with 43200s (12 hours) as the default. Sessions for AWS account owners are restricted to a maximum of 3600s (one hour).</li>
168
+ * <li><code>SerialNumber</code> - <code>string</code> - Optional - [Constraints: The value must be between 9 and 256 characters, and must match the following regular expression pattern: <code>[\w+=/:,.@-]*</code>]</li>
169
+ * <li><code>TokenCode</code> - <code>string</code> - Optional - [Constraints: The value must be between 6 and 6 characters, and must match the following regular expression pattern: <code>[\d]*</code>]</li>
170
  * <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>
171
  * <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>
172
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
libs/aws/services/swf.class.php CHANGED
@@ -15,32 +15,179 @@
15
  */
16
 
17
  /**
18
- * Amazon Simple Workflow Service (SWF) is an orchestration service for building scalable,
19
- * resilient applications. Using Amazon SWF, developers can structure the various processing steps
20
- * in an application as tasks that drive independent, distributed components and orchestrate these
21
- * tasks in a reliable and scalable manner.
22
  *
23
- * The flow for a typical Amazon SWF application is to use long-running processes which are
24
- * handled by the PHP executable directly, instead of being part of the common web server
25
- * request/response cycle that PHP developers are typically more familiar with.
26
  *
27
- * <strong>Managing a scalable workflow:</strong>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
28
  *
29
- * <ol>
30
- * <li>Create a workflow domain to work within.</li>
31
- * <li>Register any Workflow Types and Activity Types that are relevant to your workflow.</li>
32
- * <li>Start your Workflow Execution.</li>
33
- * <li>Poll for decisions that need to be made and respond to them.</li>
34
- * <li>Poll for activities that a particular state of completion (successful, failure, canceled,
35
- * in-progress), and respond to them.</li>
36
- * </ol>
37
  *
38
- * Once a Workflow has been configured and execution has started, the acts of polling for
39
- * decisions and polling for activities follow an event-driven programming model. Since PHP's
40
- * interpreter is single-threaded, entering into event loops for polling decisions and activities
41
- * simultaneously requires two separate PHP processes to be running.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
42
  *
43
- * @version 2012.02.21
44
  * @license See the included NOTICE.md file for complete information.
45
  * @copyright See the included NOTICE.md file for complete information.
46
  * @link http://aws.amazon.com/simpleworkflow/ Amazon Simple Workflow
@@ -159,37 +306,25 @@ class AmazonSWF extends CFRuntime
159
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
160
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain containing the workflow executions to count.</li>
161
  * <li><code>startTimeFilter</code> - <code>array</code> - Optional - If specified, only workflow executions that meet the start time criteria of the filter are counted. <p class="note"> <code>startTimeFilter</code> and <code>closeTimeFilter</code> are mutually exclusive. You must specify one of these in a request but not both.</p> <ul>
162
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
163
- * <li><code>oldestDate</code> - <code>string</code> - Required - Specifies the oldest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
164
- * <li><code>latestDate</code> - <code>string</code> - Optional - Specifies the latest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
165
- * </ul></li>
166
  * </ul></li>
167
  * <li><code>closeTimeFilter</code> - <code>array</code> - Optional - If specified, only workflow executions that meet the close time criteria of the filter are counted. <p class="note"> <code>startTimeFilter</code> and <code>closeTimeFilter</code> are mutually exclusive. You must specify one of these in a request but not both.</p> <ul>
168
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
169
- * <li><code>oldestDate</code> - <code>string</code> - Required - Specifies the oldest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
170
- * <li><code>latestDate</code> - <code>string</code> - Optional - Specifies the latest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
171
- * </ul></li>
172
  * </ul></li>
173
  * <li><code>executionFilter</code> - <code>array</code> - Optional - If specified, only workflow executions matching the <code>WorkflowId</code> in the filter are counted. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
174
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
175
- * <li><code>workflowId</code> - <code>string</code> - Required - The workflowId to pass of match the criteria of this filter.</li>
176
- * </ul></li>
177
  * </ul></li>
178
  * <li><code>typeFilter</code> - <code>array</code> - Optional - If specified, indicates the type of the workflow executions to be counted. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
179
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
180
- * <li><code>name</code> - <code>string</code> - Required - Name of the workflow type. This field is required.</li>
181
- * <li><code>version</code> - <code>string</code> - Optional - Version of the workflow type.</li>
182
- * </ul></li>
183
  * </ul></li>
184
  * <li><code>tagFilter</code> - <code>array</code> - Optional - If specified, only executions that have a tag that matches the filter are counted. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
185
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
186
- * <li><code>tag</code> - <code>string</code> - Required - Specifies the tag that must be associated with the execution for it to meet the filter criteria. This field is required.</li>
187
- * </ul></li>
188
  * </ul></li>
189
  * <li><code>closeStatusFilter</code> - <code>array</code> - Optional - If specified, only workflow executions that match this close status are counted. This filter has an affect only if <code>executionStatus</code> is specified as <code>CLOSED</code>. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
190
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
191
- * <li><code>status</code> - <code>string</code> - Required - The close status that must match the close status of an execution for it to meet the criteria of this filter. This field is required. [Allowed values: <code>COMPLETED</code>, <code>FAILED</code>, <code>CANCELED</code>, <code>TERMINATED</code>, <code>CONTINUED_AS_NEW</code>, <code>TIMED_OUT</code>]</li>
192
- * </ul></li>
193
  * </ul></li>
194
  * <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>
195
  * <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>
@@ -215,26 +350,18 @@ class AmazonSWF extends CFRuntime
215
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
216
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain containing the workflow executions to count.</li>
217
  * <li><code>startTimeFilter</code> - <code>array</code> - Required - Specifies the start time criteria that workflow executions must meet in order to be counted. <ul>
218
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
219
- * <li><code>oldestDate</code> - <code>string</code> - Required - Specifies the oldest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
220
- * <li><code>latestDate</code> - <code>string</code> - Optional - Specifies the latest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
221
- * </ul></li>
222
  * </ul></li>
223
  * <li><code>typeFilter</code> - <code>array</code> - Optional - Specifies the type of the workflow executions to be counted. <p class="note"> <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
224
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
225
- * <li><code>name</code> - <code>string</code> - Required - Name of the workflow type. This field is required.</li>
226
- * <li><code>version</code> - <code>string</code> - Optional - Version of the workflow type.</li>
227
- * </ul></li>
228
  * </ul></li>
229
  * <li><code>tagFilter</code> - <code>array</code> - Optional - If specified, only executions that have a tag that matches the filter are counted. <p class="note"> <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
230
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
231
- * <li><code>tag</code> - <code>string</code> - Required - Specifies the tag that must be associated with the execution for it to meet the filter criteria. This field is required.</li>
232
- * </ul></li>
233
  * </ul></li>
234
  * <li><code>executionFilter</code> - <code>array</code> - Optional - If specified, only workflow executions matching the <code>WorkflowId</code> in the filter are counted. <p class="note"> <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
235
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
236
- * <li><code>workflowId</code> - <code>string</code> - Required - The workflowId to pass of match the criteria of this filter.</li>
237
- * </ul></li>
238
  * </ul></li>
239
  * <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>
240
  * <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>
@@ -256,9 +383,7 @@ class AmazonSWF extends CFRuntime
256
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
257
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain that contains the task list.</li>
258
  * <li><code>taskList</code> - <code>array</code> - Required - The name of the task list. <ul>
259
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
260
- * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
261
- * </ul></li>
262
  * </ul></li>
263
  * <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>
264
  * <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>
@@ -280,9 +405,7 @@ class AmazonSWF extends CFRuntime
280
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
281
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain that contains the task list.</li>
282
  * <li><code>taskList</code> - <code>array</code> - Required - The name of the task list. <ul>
283
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
284
- * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
285
- * </ul></li>
286
  * </ul></li>
287
  * <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>
288
  * <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>
@@ -309,10 +432,8 @@ class AmazonSWF extends CFRuntime
309
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
310
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain in which the activity type is registered.</li>
311
  * <li><code>activityType</code> - <code>array</code> - Required - The activity type to deprecate. <ul>
312
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
313
- * <li><code>name</code> - <code>string</code> - Required - The name of this activity. <p class="note">The combination of activity type name and version must be unique within a domain.</p></li>
314
- * <li><code>version</code> - <code>string</code> - Required - The version of this activity. <p class="note">The combination of activity type name and version must be unique with in a domain.</p></li>
315
- * </ul></li>
316
  * </ul></li>
317
  * <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>
318
  * <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>
@@ -365,10 +486,8 @@ class AmazonSWF extends CFRuntime
365
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
366
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain in which the workflow type is registered.</li>
367
  * <li><code>workflowType</code> - <code>array</code> - Required - The workflow type to deprecate. <ul>
368
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
369
- * <li><code>name</code> - <code>string</code> - Required - The name of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
370
- * <li><code>version</code> - <code>string</code> - Required - The version of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
371
- * </ul></li>
372
  * </ul></li>
373
  * <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>
374
  * <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>
@@ -389,10 +508,8 @@ class AmazonSWF extends CFRuntime
389
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
390
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain in which the activity type is registered.</li>
391
  * <li><code>activityType</code> - <code>array</code> - Required - The activity type to describe. <ul>
392
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
393
- * <li><code>name</code> - <code>string</code> - Required - The name of this activity. <p class="note">The combination of activity type name and version must be unique within a domain.</p></li>
394
- * <li><code>version</code> - <code>string</code> - Required - The version of this activity. <p class="note">The combination of activity type name and version must be unique with in a domain.</p></li>
395
- * </ul></li>
396
  * </ul></li>
397
  * <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>
398
  * <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>
@@ -435,10 +552,8 @@ class AmazonSWF extends CFRuntime
435
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
436
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain containing the workflow execution.</li>
437
  * <li><code>execution</code> - <code>array</code> - Required - The workflow execution to describe. <ul>
438
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
439
- * <li><code>workflowId</code> - <code>string</code> - Required - The user defined identifier associated with the workflow execution.</li>
440
- * <li><code>runId</code> - <code>string</code> - Required - A system generated unique identifier for the workflow execution.</li>
441
- * </ul></li>
442
  * </ul></li>
443
  * <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>
444
  * <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>
@@ -460,10 +575,8 @@ class AmazonSWF extends CFRuntime
460
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
461
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain in which this workflow type is registered.</li>
462
  * <li><code>workflowType</code> - <code>array</code> - Required - The workflow type to describe. <ul>
463
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
464
- * <li><code>name</code> - <code>string</code> - Required - The name of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
465
- * <li><code>version</code> - <code>string</code> - Required - The version of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
466
- * </ul></li>
467
  * </ul></li>
468
  * <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>
469
  * <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>
@@ -490,10 +603,8 @@ class AmazonSWF extends CFRuntime
490
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
491
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain containing the workflow execution.</li>
492
  * <li><code>execution</code> - <code>array</code> - Required - Specifies the workflow execution for which to return the history. <ul>
493
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
494
- * <li><code>workflowId</code> - <code>string</code> - Required - The user defined identifier associated with the workflow execution.</li>
495
- * <li><code>runId</code> - <code>string</code> - Required - A system generated unique identifier for the workflow execution.</li>
496
- * </ul></li>
497
  * </ul></li>
498
  * <li><code>nextPageToken</code> - <code>string</code> - Optional - If a <code>NextPageToken</code> is returned, the result has more than one pages. To get the next page, repeat the call and specify the nextPageToken with all other arguments unchanged.</li>
499
  * <li><code>maximumPageSize</code> - <code>integer</code> - Optional - Specifies the maximum number of history events returned in one page. The next page in the result is identified by the <code>NextPageToken</code> returned. By default 100 history events are returned in a page but the caller can override this value to a page size <em>smaller</em> than the default. You cannot specify a page size larger than 100.</li>
@@ -549,37 +660,25 @@ class AmazonSWF extends CFRuntime
549
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
550
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain that contains the workflow executions to list.</li>
551
  * <li><code>startTimeFilter</code> - <code>array</code> - Optional - If specified, the workflow executions are included in the returned results based on whether their start times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their start times. <p class="note"> <code>startTimeFilter</code> and <code>closeTimeFilter</code> are mutually exclusive. You must specify one of these in a request but not both.</p> <ul>
552
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
553
- * <li><code>oldestDate</code> - <code>string</code> - Required - Specifies the oldest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
554
- * <li><code>latestDate</code> - <code>string</code> - Optional - Specifies the latest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
555
- * </ul></li>
556
  * </ul></li>
557
  * <li><code>closeTimeFilter</code> - <code>array</code> - Optional - If specified, the workflow executions are included in the returned results based on whether their close times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their close times. <p class="note"> <code>startTimeFilter</code> and <code>closeTimeFilter</code> are mutually exclusive. You must specify one of these in a request but not both.</p> <ul>
558
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
559
- * <li><code>oldestDate</code> - <code>string</code> - Required - Specifies the oldest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
560
- * <li><code>latestDate</code> - <code>string</code> - Optional - Specifies the latest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
561
- * </ul></li>
562
  * </ul></li>
563
  * <li><code>executionFilter</code> - <code>array</code> - Optional - If specified, only workflow executions matching the workflow id specified in the filter are returned. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
564
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
565
- * <li><code>workflowId</code> - <code>string</code> - Required - The workflowId to pass of match the criteria of this filter.</li>
566
- * </ul></li>
567
  * </ul></li>
568
  * <li><code>closeStatusFilter</code> - <code>array</code> - Optional - If specified, only workflow executions that match this <em>close status</em> are listed. For example, if TERMINATED is specified, then only TERMINATED workflow executions are listed. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
569
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
570
- * <li><code>status</code> - <code>string</code> - Required - The close status that must match the close status of an execution for it to meet the criteria of this filter. This field is required. [Allowed values: <code>COMPLETED</code>, <code>FAILED</code>, <code>CANCELED</code>, <code>TERMINATED</code>, <code>CONTINUED_AS_NEW</code>, <code>TIMED_OUT</code>]</li>
571
- * </ul></li>
572
  * </ul></li>
573
  * <li><code>typeFilter</code> - <code>array</code> - Optional - If specified, only executions of the type specified in the filter are returned. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
574
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
575
- * <li><code>name</code> - <code>string</code> - Required - Name of the workflow type. This field is required.</li>
576
- * <li><code>version</code> - <code>string</code> - Optional - Version of the workflow type.</li>
577
- * </ul></li>
578
  * </ul></li>
579
  * <li><code>tagFilter</code> - <code>array</code> - Optional - If specified, only executions that have the matching tag are listed. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
580
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
581
- * <li><code>tag</code> - <code>string</code> - Required - Specifies the tag that must be associated with the execution for it to meet the filter criteria. This field is required.</li>
582
- * </ul></li>
583
  * </ul></li>
584
  * <li><code>nextPageToken</code> - <code>string</code> - Optional - If on a previous call to this method a <code>NextPageToken</code> was returned, the results are being paginated. To get the next page of results, repeat the call with the returned token and all other arguments unchanged.</li>
585
  * <li><code>maximumPageSize</code> - <code>integer</code> - Optional - The maximum number of results returned in each page. The default is 100, but the caller can override this value to a page size <em>smaller</em> than the default. You cannot specify a page size greater than 100.</li>
@@ -636,29 +735,21 @@ class AmazonSWF extends CFRuntime
636
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
637
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain that contains the workflow executions to list.</li>
638
  * <li><code>startTimeFilter</code> - <code>array</code> - Required - Workflow executions are included in the returned results based on whether their start times are within the range specified by this filter. <ul>
639
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
640
- * <li><code>oldestDate</code> - <code>string</code> - Required - Specifies the oldest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
641
- * <li><code>latestDate</code> - <code>string</code> - Optional - Specifies the latest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
642
- * </ul></li>
643
  * </ul></li>
644
  * <li><code>typeFilter</code> - <code>array</code> - Optional - If specified, only executions of the type specified in the filter are returned. <p class="note"> <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
645
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
646
- * <li><code>name</code> - <code>string</code> - Required - Name of the workflow type. This field is required.</li>
647
- * <li><code>version</code> - <code>string</code> - Optional - Version of the workflow type.</li>
648
- * </ul></li>
649
  * </ul></li>
650
  * <li><code>tagFilter</code> - <code>array</code> - Optional - If specified, only executions that have the matching tag are listed. <p class="note"> <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
651
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
652
- * <li><code>tag</code> - <code>string</code> - Required - Specifies the tag that must be associated with the execution for it to meet the filter criteria. This field is required.</li>
653
- * </ul></li>
654
  * </ul></li>
655
  * <li><code>nextPageToken</code> - <code>string</code> - Optional - If on a previous call to this method a <code>NextPageToken</code> was returned, the results are being paginated. To get the next page of results, repeat the call with the returned token and all other arguments unchanged.</li>
656
  * <li><code>maximumPageSize</code> - <code>integer</code> - Optional - The maximum number of results returned in each page. The default is 100, but the caller can override this value to a page size <em>smaller</em> than the default. You cannot specify a page size greater than 100.</li>
657
  * <li><code>reverseOrder</code> - <code>boolean</code> - Optional - When set to <code>true</code>, returns the results in reverse order. By default the results are returned in descending order of the start time of the executions.</li>
658
  * <li><code>executionFilter</code> - <code>array</code> - Optional - If specified, only workflow executions matching the workflow id specified in the filter are returned. <p class="note"> <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
659
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
660
- * <li><code>workflowId</code> - <code>string</code> - Required - The workflowId to pass of match the criteria of this filter.</li>
661
- * </ul></li>
662
  * </ul></li>
663
  * <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>
664
  * <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>
@@ -712,9 +803,7 @@ class AmazonSWF extends CFRuntime
712
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
713
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain that contains the task lists being polled.</li>
714
  * <li><code>taskList</code> - <code>array</code> - Required - Specifies the task list to poll for activity tasks. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn". <ul>
715
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
716
- * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
717
- * </ul></li>
718
  * </ul></li>
719
  * <li><code>identity</code> - <code>string</code> - Optional - Identity of the worker making the request, which is recorded in the <code>ActivityTaskStarted</code> event in the workflow history. This enables diagnostic tracing when problems arise. The form of this identity is user defined.</li>
720
  * <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>
@@ -758,9 +847,7 @@ class AmazonSWF extends CFRuntime
758
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
759
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain containing the task lists to poll.</li>
760
  * <li><code>taskList</code> - <code>array</code> - Required - Specifies the task list to poll for decision tasks. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn". <ul>
761
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
762
- * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
763
- * </ul></li>
764
  * </ul></li>
765
  * <li><code>identity</code> - <code>string</code> - Optional - Identity of the decider making the request, which is recorded in the DecisionTaskStarted event in the workflow history. This enables diagnostic tracing when problems arise. The form of this identity is user defined.</li>
766
  * <li><code>nextPageToken</code> - <code>string</code> - Optional - If on a previous call to this method a <code>NextPageToken</code> was returned, the results are being paginated. To get the next page of results, repeat the call with the returned token and all other arguments unchanged. <p class="note">The <code>nextPageToken</code> returned by this action cannot be used with <code>GetWorkflowExecutionHistory</code> to get the next page. You must call <code>PollForDecisionTask</code> again (with the <code>nextPageToken</code>) to retrieve the next page of history records. Calling <code>PollForDecisionTask</code> with a <code>nextPageToken</code> will not return a new decision task.</p> .</li>
@@ -844,9 +931,7 @@ class AmazonSWF extends CFRuntime
844
  * <li><code>defaultTaskStartToCloseTimeout</code> - <code>string</code> - Optional - If set, specifies the default maximum duration that a worker can take to process tasks of this activity type. This default can be overridden when scheduling an activity task using the <code>ScheduleActivityTask</code> <code>Decision</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
845
  * <li><code>defaultTaskHeartbeatTimeout</code> - <code>string</code> - Optional - If set, specifies the default maximum time before which a worker processing a task of this type must report progress by calling <code>RecordActivityTaskHeartbeat</code>. If the timeout is exceeded, the activity task is automatically timed out. This default can be overridden when scheduling an activity task using the <code>ScheduleActivityTask</code> <code>Decision</code>. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an <code>UnknownResource</code> fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
846
  * <li><code>defaultTaskList</code> - <code>array</code> - Optional - If set, specifies the default task list to use for scheduling tasks of this activity type. This default task list is used if a task list is not provided when a task is scheduled through the <code>ScheduleActivityTask</code> <code>Decision</code>. <ul>
847
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
848
- * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
849
- * </ul></li>
850
  * </ul></li>
851
  * <li><code>defaultTaskScheduleToStartTimeout</code> - <code>string</code> - Optional - If set, specifies the default maximum duration that a task of this activity type can wait before being assigned to a worker. This default can be overridden when scheduling an activity task using the <code>ScheduleActivityTask</code> <code>Decision</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
852
  * <li><code>defaultTaskScheduleToCloseTimeout</code> - <code>string</code> - Optional - If set, specifies the default maximum duration for a task of this activity type. This default can be overridden when scheduling an activity task using the <code>ScheduleActivityTask</code> <code>Decision</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
@@ -868,7 +953,7 @@ class AmazonSWF extends CFRuntime
868
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
869
  * <li><code>name</code> - <code>string</code> - Required - Name of the domain to register. The name must be unique. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn".</li>
870
  * <li><code>description</code> - <code>string</code> - Optional - Textual description of the domain.</li>
871
- * <li><code>workflowExecutionRetentionPeriodInDays</code> - <code>string</code> - Required - Specifies the duration-- <strong><em>in days</em></strong> --for which the record (including the history) of workflow executions in this domain should be kept by the service. After the retention period, the workflow execution will not be available in the results of visibility calls. If a duration of <code>NONE</code> is specified, the records for workflow executions in this domain are not retained at all. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
872
  * <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>
873
  * <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>
874
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
@@ -898,9 +983,7 @@ class AmazonSWF extends CFRuntime
898
  * <li><code>defaultTaskStartToCloseTimeout</code> - <code>string</code> - Optional - If set, specifies the default maximum duration of decision tasks for this workflow type. This default can be overridden when starting a workflow execution using the <code>StartWorkflowExecution</code> action or the <code>StartChildWorkflowExecution</code> <code>Decision</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
899
  * <li><code>defaultExecutionStartToCloseTimeout</code> - <code>string</code> - Optional - If set, specifies the default maximum duration for executions of this workflow type. You can override this default when starting an execution through the <code>StartWorkflowExecution</code> Action or <code>StartChildWorkflowExecution</code> <code>Decision</code>. The duration is specified in seconds. The valid values are integers greater than or equal to 0. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of "NONE" for <code>defaultExecutionStartToCloseTimeout</code>; there is a one-year max limit on the time that a workflow execution can run. Exceeding this limit will always cause the workflow execution to time out.</li>
900
  * <li><code>defaultTaskList</code> - <code>array</code> - Optional - If set, specifies the default task list to use for scheduling decision tasks for executions of this workflow type. This default is used only if a task list is not provided when starting the execution through the <code>StartWorkflowExecution</code> Action or <code>StartChildWorkflowExecution</code> <code>Decision</code>. <ul>
901
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
902
- * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
903
- * </ul></li>
904
  * </ul></li>
905
  * <li><code>defaultChildPolicy</code> - <code>string</code> - Optional - If set, specifies the default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the <code>TerminateWorkflowExecution</code> action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the <code>StartWorkflowExecution</code> action or the <code>StartChildWorkflowExecution</code> <code>Decision</code>. The supported child policies are:<ul><li> <strong>TERMINATE:</strong> the child executions will be terminated.</li><li> <strong>REQUEST_CANCEL:</strong> a request to cancel will be attempted for each child execution by recording a <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.</li><li> <strong>ABANDON:</strong> no action will be taken. The child executions will continue to run.</li></ul> [Allowed values: <code>TERMINATE</code>, <code>REQUEST_CANCEL</code>, <code>ABANDON</code>]</li>
906
  * <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>
@@ -1043,118 +1126,84 @@ class AmazonSWF extends CFRuntime
1043
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1044
  * <li><code>decisionType</code> - <code>string</code> - Required - Specifies the type of the decision. [Allowed values: <code>ScheduleActivityTask</code>, <code>RequestCancelActivityTask</code>, <code>CompleteWorkflowExecution</code>, <code>FailWorkflowExecution</code>, <code>CancelWorkflowExecution</code>, <code>ContinueAsNewWorkflowExecution</code>, <code>RecordMarker</code>, <code>StartTimer</code>, <code>CancelTimer</code>, <code>SignalExternalWorkflowExecution</code>, <code>RequestCancelExternalWorkflowExecution</code>, <code>StartChildWorkflowExecution</code>]</li>
1045
  * <li><code>scheduleActivityTaskDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>ScheduleActivityTask</code> decision. It is not set for other decision types. <ul>
1046
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1047
- * <li><code>activityType</code> - <code>array</code> - Required - The type of the activity task to schedule. This field is required. <ul>
1048
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1049
- * <li><code>name</code> - <code>string</code> - Required - The name of this activity. <p class="note">The combination of activity type name and version must be unique within a domain.</p></li>
1050
- * <li><code>version</code> - <code>string</code> - Required - The version of this activity. <p class="note">The combination of activity type name and version must be unique with in a domain.</p></li>
1051
- * </ul></li>
1052
- * </ul></li>
1053
- * <li><code>activityId</code> - <code>string</code> - Required - The <code>activityId</code> of the activity task. This field is required. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn".</li>
1054
- * <li><code>control</code> - <code>string</code> - Optional - Optional data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the activity.</li>
1055
- * <li><code>input</code> - <code>string</code> - Optional - The input provided to the activity task.</li>
1056
- * <li><code>scheduleToCloseTimeout</code> - <code>string</code> - Optional - The maximum duration for this activity task. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">A schedule-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-close timeout was specified at registration time then a fault will be returned.</p></li>
1057
- * <li><code>taskList</code> - <code>array</code> - Optional - If set, specifies the name of the task list in which to schedule the activity task. If not specified, the <code>defaultTaskList</code> registered with the activity type will be used. <p class="note">A task list for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default task list was specified at registration time then a fault will be returned.</p> The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn". <ul>
1058
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1059
- * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
1060
- * </ul></li>
1061
- * </ul></li>
1062
- * <li><code>scheduleToStartTimeout</code> - <code>string</code> - Optional - If set, specifies the maximum duration the activity task can wait to be assigned to a worker. This overrides the default schedule-to-start timeout specified when registering the activity type using <code>RegisterActivityType</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">A schedule-to-start timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-start timeout was specified at registration time then a fault will be returned.</p></li>
1063
- * <li><code>startToCloseTimeout</code> - <code>string</code> - Optional - If set, specifies the maximum duration a worker may take to process this activity task. This overrides the default start-to-close timeout specified when registering the activity type using <code>RegisterActivityType</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">A start-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default start-to-close timeout was specified at registration time then a fault will be returned.</p></li>
1064
- * <li><code>heartbeatTimeout</code> - <code>string</code> - Optional - If set, specifies the maximum time before which a worker processing a task of this type must report progress by calling <code>RecordActivityTaskHeartbeat</code>. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or returns a result, it will be ignored. This overrides the default heartbeat timeout specified when registering the activity type using <code>RegisterActivityType</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
1065
  * </ul></li>
 
 
 
 
 
 
 
 
 
 
1066
  * </ul></li>
1067
  * <li><code>requestCancelActivityTaskDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>RequestCancelActivityTask</code> decision. It is not set for other decision types. <ul>
1068
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1069
- * <li><code>activityId</code> - <code>string</code> - Required - The <code>activityId</code> of the activity task to be canceled.</li>
1070
- * </ul></li>
1071
  * </ul></li>
1072
  * <li><code>completeWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>CompleteWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1073
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1074
- * <li><code>result</code> - <code>string</code> - Optional - The result of the workflow execution. The form of the result is implementation defined.</li>
1075
- * </ul></li>
1076
  * </ul></li>
1077
  * <li><code>failWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>FailWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1078
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1079
- * <li><code>reason</code> - <code>string</code> - Optional - A descriptive reason for the failure that may help in diagnostics.</li>
1080
- * <li><code>details</code> - <code>string</code> - Optional - Optional details of the failure.</li>
1081
- * </ul></li>
1082
  * </ul></li>
1083
  * <li><code>cancelWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>CancelWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1084
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1085
- * <li><code>details</code> - <code>string</code> - Optional - Optional details of the cancellation.</li>
1086
- * </ul></li>
1087
  * </ul></li>
1088
  * <li><code>continueAsNewWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>ContinueAsNewWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1089
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1090
- * <li><code>input</code> - <code>string</code> - Optional - The input provided to the new workflow execution.</li>
1091
- * <li><code>executionStartToCloseTimeout</code> - <code>string</code> - Optional - If set, specifies the total duration for this workflow execution. This overrides the <code>defaultExecutionStartToCloseTimeout</code> specified when registering the workflow type. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this field. If neither this field is set nor a default execution start-to-close timeout was specified at registration time then a fault will be returned.</p></li>
1092
- * <li><code>taskList</code> - <code>array</code> - Optional - Represents a task list. <ul>
1093
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1094
- * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
1095
- * </ul></li>
1096
- * </ul></li>
1097
- * <li><code>taskStartToCloseTimeout</code> - <code>string</code> - Optional - Specifies the maximum duration of decision tasks for the new workflow execution. This parameter overrides the <code>defaultTaskStartToCloseTimout</code> specified when registering the workflow type using <code>RegisterWorkflowType</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">A task start-to-close timeout for the new workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned.</p></li>
1098
- * <li><code>childPolicy</code> - <code>string</code> - Optional - If set, specifies the policy to use for the child workflow executions of the new execution if it is terminated by calling the <code>TerminateWorkflowExecution</code> action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using <code>RegisterWorkflowType</code>. The supported child policies are:<ul><li> <strong>TERMINATE:</strong> the child executions will be terminated.</li><li> <strong>REQUEST_CANCEL:</strong> a request to cancel will be attempted for each child execution by recording a <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.</li><li> <strong>ABANDON:</strong> no action will be taken. The child executions will continue to run.</li></ul> <p class="note">A child policy for the new workflow execution must be specified either as a default registered for its workflow type or through this field. If neither this field is set nor a default child policy was specified at registration time then a fault will be returned.</p> [Allowed values: <code>TERMINATE</code>, <code>REQUEST_CANCEL</code>, <code>ABANDON</code>]</li>
1099
- * <li><code>tagList</code> - <code>string|array</code> - Optional - The list of tags to associate with the new workflow execution. A maximum of 5 tags can be specified. You can list workflow executions with a specific tag by calling <code>ListOpenWorkflowExecutions</code> or <code>ListClosedWorkflowExecutions</code> and specifying a <code>TagFilter</code>. Pass a string for a single value, or an indexed array for multiple values.</li>
1100
- * <li><code>workflowTypeVersion</code> - <code>string</code> - Optional - </li>
1101
  * </ul></li>
 
 
 
 
1102
  * </ul></li>
1103
  * <li><code>recordMarkerDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>RecordMarker</code> decision. It is not set for other decision types. <ul>
1104
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1105
- * <li><code>markerName</code> - <code>string</code> - Required - The name of the marker. This filed is required.</li>
1106
- * <li><code>details</code> - <code>string</code> - Optional - Optional details of the marker.</li>
1107
- * </ul></li>
1108
  * </ul></li>
1109
  * <li><code>startTimerDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>StartTimer</code> decision. It is not set for other decision types. <ul>
1110
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1111
- * <li><code>timerId</code> - <code>string</code> - Required - The unique Id of the timer. This field is required. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn".</li>
1112
- * <li><code>control</code> - <code>string</code> - Optional - Optional data attached to the event that can be used by the decider in subsequent workflow tasks.</li>
1113
- * <li><code>startToFireTimeout</code> - <code>string</code> - Required - The duration to wait before firing the timer. This field is required. The duration is specified in seconds. The valid values are integers greater than or equal to 0.</li>
1114
- * </ul></li>
1115
  * </ul></li>
1116
  * <li><code>cancelTimerDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>CancelTimer</code> decision. It is not set for other decision types. <ul>
1117
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1118
- * <li><code>timerId</code> - <code>string</code> - Required - The unique Id of the timer to cancel. This field is required.</li>
1119
- * </ul></li>
1120
  * </ul></li>
1121
  * <li><code>signalExternalWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>SignalExternalWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1122
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1123
- * <li><code>workflowId</code> - <code>string</code> - Required - The <code>workflowId</code> of the workflow execution to be signaled. This field is required.</li>
1124
- * <li><code>runId</code> - <code>string</code> - Optional - The <code>runId</code> of the workflow execution to be signaled.</li>
1125
- * <li><code>signalName</code> - <code>string</code> - Required - The name of the signal.The target workflow execution will use the signal name and input to process the signal. This field is required.</li>
1126
- * <li><code>input</code> - <code>string</code> - Optional - Optional input to be provided with the signal.The target workflow execution will use the signal name and input to process the signal.</li>
1127
- * <li><code>control</code> - <code>string</code> - Optional - Optional data attached to the event that can be used by the decider in subsequent decision tasks.</li>
1128
- * </ul></li>
1129
  * </ul></li>
1130
  * <li><code>requestCancelExternalWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>RequestCancelExternalWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1131
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1132
- * <li><code>workflowId</code> - <code>string</code> - Required - The <code>workflowId</code> of the external workflow execution to cancel. This field is required.</li>
1133
- * <li><code>runId</code> - <code>string</code> - Optional - The <code>runId</code> of the external workflow execution to cancel.</li>
1134
- * <li><code>control</code> - <code>string</code> - Optional - Optional data attached to the event that can be used by the decider in subsequent workflow tasks.</li>
1135
- * </ul></li>
1136
  * </ul></li>
1137
  * <li><code>startChildWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>StartChildWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1138
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1139
- * <li><code>workflowType</code> - <code>array</code> - Required - The type of the workflow execution to be started. This field is required. <ul>
1140
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1141
- * <li><code>name</code> - <code>string</code> - Required - The name of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
1142
- * <li><code>version</code> - <code>string</code> - Required - The version of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
1143
- * </ul></li>
1144
- * </ul></li>
1145
- * <li><code>workflowId</code> - <code>string</code> - Required - The <code>workflowId</code> of the workflow execution. This field is required. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn".</li>
1146
- * <li><code>control</code> - <code>string</code> - Optional - Optional data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the child workflow execution.</li>
1147
- * <li><code>input</code> - <code>string</code> - Optional - The input to be provided to the workflow execution.</li>
1148
- * <li><code>executionStartToCloseTimeout</code> - <code>string</code> - Optional - The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default execution start-to-close timeout was specified at registration time then a fault will be returned.</p></li>
1149
- * <li><code>taskList</code> - <code>array</code> - Optional - The name of the task list to be used for decision tasks of the child workflow execution. <p class="note">A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault will be returned.</p> The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn". <ul>
1150
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1151
- * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
1152
- * </ul></li>
1153
- * </ul></li>
1154
- * <li><code>taskStartToCloseTimeout</code> - <code>string</code> - Optional - Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the <code>defaultTaskStartToCloseTimout</code> specified when registering the workflow type using <code>RegisterWorkflowType</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned.</p></li>
1155
- * <li><code>childPolicy</code> - <code>string</code> - Optional - If set, specifies the policy to use for the child workflow executions if the workflow execution being started is terminated by calling the <code>TerminateWorkflowExecution</code> action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using <code>RegisterWorkflowType</code>. The supported child policies are:<ul><li> <strong>TERMINATE:</strong> the child executions will be terminated.</li><li> <strong>REQUEST_CANCEL:</strong> a request to cancel will be attempted for each child execution by recording a <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.</li><li> <strong>ABANDON:</strong> no action will be taken. The child executions will continue to run.</li></ul> <p class="note">A child policy for the workflow execution being started must be specified either as a default registered for its workflow type or through this field. If neither this field is set nor a default child policy was specified at registration time then a fault will be returned.</p> [Allowed values: <code>TERMINATE</code>, <code>REQUEST_CANCEL</code>, <code>ABANDON</code>]</li>
1156
- * <li><code>tagList</code> - <code>string|array</code> - Optional - The list of tags to associate with the child workflow execution. A maximum of 5 tags can be specified. You can list workflow executions with a specific tag by calling <code>ListOpenWorkflowExecutions</code> or <code>ListClosedWorkflowExecutions</code> and specifying a <code>TagFilter</code>. Pass a string for a single value, or an indexed array for multiple values.</li>
1157
  * </ul></li>
 
 
 
1158
  * </ul></li>
1159
  * </ul></li>
1160
  * </ul></li>
@@ -1167,6 +1216,12 @@ class AmazonSWF extends CFRuntime
1167
  {
1168
  if (!$opt) $opt = array();
1169
 
 
 
 
 
 
 
1170
  $opt = json_encode($opt);
1171
  return $this->authenticate('RespondDecisionTaskCompleted', $opt);
1172
  }
@@ -1214,15 +1269,11 @@ class AmazonSWF extends CFRuntime
1214
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain in which the workflow execution is created.</li>
1215
  * <li><code>workflowId</code> - <code>string</code> - Required - The user defined identifier associated with the workflow execution. You can use this to associate a custom identifier with the workflow execution. You may specify the same identifier if a workflow execution is logically a <em>restart</em> of a previous execution. You cannot have two open workflow executions with the same <code>workflowId</code> at the same time. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn".</li>
1216
  * <li><code>workflowType</code> - <code>array</code> - Required - The type of the workflow to start. <ul>
1217
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1218
- * <li><code>name</code> - <code>string</code> - Required - The name of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
1219
- * <li><code>version</code> - <code>string</code> - Required - The version of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
1220
- * </ul></li>
1221
  * </ul></li>
1222
  * <li><code>taskList</code> - <code>array</code> - Optional - The task list to use for the decision tasks generated for this workflow execution. This overrides the <code>defaultTaskList</code> specified when registering the workflow type. <p class="note">A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault will be returned.</p> The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn". <ul>
1223
- * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1224
- * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
1225
- * </ul></li>
1226
  * </ul></li>
1227
  * <li><code>input</code> - <code>string</code> - Optional - The input for the workflow execution. This is a free form string which should be meaningful to the workflow you are starting. This <code>input</code> is made available to the new workflow execution in the <code>WorkflowExecutionStarted</code> history event.</li>
1228
  * <li><code>executionStartToCloseTimeout</code> - <code>string</code> - Optional - The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type. The duration is specified in seconds. The valid values are integers greater than or equal to 0. Exceeding this limit will cause the workflow execution to time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of "NONE" for this timeout; there is a one-year max limit on the time that a workflow execution can run. <p class="note">An execution start-to-close timeout must be specified either through this parameter or as a default when the workflow type is registered. If neither this parameter nor a default execution start-to-close timeout is specified, a fault is returned.</p></li>
15
  */
16
 
17
  /**
18
+ * The Amazon Simple Workflow Service API Reference is intended for programmers who need detailed
19
+ * information about the Amazon SWF actions and data types.
 
 
20
  *
21
+ * For an broader overview of the Amazon SWF programming model, please go to the <a href=
22
+ * "http://docs.amazonwebservices.com/amazonswf/latest/developerguide/">Amazon SWF Developer
23
+ * Guide</a>.
24
  *
25
+ * This section provides an overview of Amazon SWF actions.
26
+ *
27
+ * <strong>Action Categories</strong>
28
+ *
29
+ * The Amazon SWF actions can be grouped into the following major categories.
30
+ *
31
+ * <ul>
32
+ * <li>Actions related to Activities</li>
33
+ * <li>Actions related to Deciders</li>
34
+ * <li>Actions related to Workflow Executions</li>
35
+ * <li>Actions related to Administration</li>
36
+ * <li>Actions related to Visibility</li>
37
+ * </ul>
38
+ *
39
+ * <strong>Actions related to Activities</strong>
40
+ *
41
+ * The following are actions that are performed by activity workers:
42
+ *
43
+ * <ul>
44
+ * <li><a href="API_PollForActivityTask.html" title=
45
+ * "PollForActivityTask">PollForActivityTask</a></li>
46
+ * <li><a href="API_RespondActivityTaskCompleted.html" title=
47
+ * "RespondActivityTaskCompleted">RespondActivityTaskCompleted</a></li>
48
+ * <li><a href="API_RespondActivityTaskFailed.html" title=
49
+ * "RespondActivityTaskFailed">RespondActivityTaskFailed</a></li>
50
+ * <li><a href="API_RespondActivityTaskCanceled.html" title=
51
+ * "RespondActivityTaskCanceled">RespondActivityTaskCanceled</a></li>
52
+ * <li><a href="API_RecordActivityTaskHeartbeat.html" title=
53
+ * "RecordActivityTaskHeartbeat">RecordActivityTaskHeartbeat</a></li>
54
+ * </ul>
55
+ *
56
+ * Activity workers use the <a href="API_PollForActivityTask.html" title=
57
+ * "PollForActivityTask">PollForActivityTask</a> to get new activity tasks. After a worker
58
+ * receives an activity task from Amazon SWF, it performs the task and responds using <a href=
59
+ * "API_RespondActivityTaskCompleted.html" title=
60
+ * "RespondActivityTaskCompleted">RespondActivityTaskCompleted</a> if successful or <a href=
61
+ * "API_RespondActivityTaskFailed.html" title=
62
+ * "RespondActivityTaskFailed">RespondActivityTaskFailed</a> if unsuccessful.
63
+ *
64
+ * <strong>Actions related to Deciders</strong>
65
+ *
66
+ * The following are actions that are performed by deciders:
67
+ *
68
+ * <ul>
69
+ * <li><a href="API_PollForDecisionTask.html" title=
70
+ * "PollForDecisionTask">PollForDecisionTask</a></li>
71
+ * <li><a href="API_RespondDecisionTaskCompleted.html" title=
72
+ * "RespondDecisionTaskCompleted">RespondDecisionTaskCompleted</a></li>
73
+ * </ul>
74
+ *
75
+ * Deciders use <a href="API_PollForDecisionTask.html" title=
76
+ * "PollForDecisionTask">PollForDecisionTask</a> to get decision tasks. After a decider receives a
77
+ * decision task from Amazon SWF, it examines its workflow execution history and decides what to
78
+ * do next. It calls <a href="API_RespondDecisionTaskCompleted.html" title=
79
+ * "RespondDecisionTaskCompleted">RespondDecisionTaskCompleted</a> to complete the decision task
80
+ * and provide zero or more next decisions.
81
+ *
82
+ * <strong>Actions related to Workflow Executions</strong>
83
+ *
84
+ * The following actions operate on a workflow execution:
85
+ *
86
+ * <ul>
87
+ * <li><a href="API_RequestCancelWorkflowExecution.html" title=
88
+ * "RequestCancelWorkflowExecution">RequestCancelWorkflowExecution</a></li>
89
+ * <li><a href="API_StartWorkflowExecution.html" title=
90
+ * "StartWorkflowExecution">StartWorkflowExecution</a></li>
91
+ * <li><a href="API_SignalWorkflowExecution.html" title=
92
+ * "SignalWorkflowExecution">SignalWorkflowExecution</a></li>
93
+ * <li><a href="API_TerminateWorkflowExecution.html" title=
94
+ * "TerminateWorkflowExecution">TerminateWorkflowExecution</a></li>
95
+ * </ul>
96
+ *
97
+ * <strong>Actions related to Administration</strong>
98
+ *
99
+ * Although you can perform administrative tasks from the Amazon SWF console, you can use the
100
+ * actions in this section to automate functions or build your own administrative tools.
101
+ *
102
+ * <strong>Activity Management</strong>
103
+ *
104
+ * <ul>
105
+ * <li><a href="API_RegisterActivityType.html" title=
106
+ * "RegisterActivityType">RegisterActivityType</a></li>
107
+ * <li><a href="API_DeprecateActivityType.html" title=
108
+ * "DeprecateActivityType">DeprecateActivityType</a></li>
109
+ * </ul>
110
+ *
111
+ * <strong>Workflow Management</strong>
112
+ *
113
+ * <ul>
114
+ * <li><a href="API_RegisterWorkflowType.html" title=
115
+ * "RegisterWorkflowType">RegisterWorkflowType</a></li>
116
+ * <li><a href="API_DeprecateWorkflowType.html" title=
117
+ * "DeprecateWorkflowType">DeprecateWorkflowType</a></li>
118
+ * </ul>
119
+ *
120
+ * <strong>Domain Management</strong>
121
+ *
122
+ * <ul>
123
+ * <li><a href="API_RegisterDomain.html" title="RegisterDomain">RegisterDomain</a></li>
124
+ * <li><a href="API_DeprecateDomain.html" title="DeprecateDomain">DeprecateDomain</a></li>
125
+ * </ul>
126
+ *
127
+ * <strong>Workflow Execution Management</strong>
128
+ *
129
+ * <ul>
130
+ * <li><a href="API_RequestCancelWorkflowExecution.html" title=
131
+ * "RequestCancelWorkflowExecution">RequestCancelWorkflowExecution</a></li>
132
+ * <li><a href="API_TerminateWorkflowExecution.html" title=
133
+ * "TerminateWorkflowExecution">TerminateWorkflowExecution</a></li>
134
+ * </ul>
135
+ *
136
+ * <strong>Visibility Actions</strong>
137
+ *
138
+ * Although you can perform visibility actions from the Amazon SWF console, you can use the
139
+ * actions in this section to build your own console or administrative tools.
140
+ *
141
+ * <strong>Activity Visibility</strong>
142
+ *
143
+ * <ul>
144
+ * <li><a href="API_ListActivityTypes.html" title="ListActivities">ListActivityTypes</a></li>
145
+ * <li><a href="API_DescribeActivityType.html" title=
146
+ * "DescribeActivityType">DescribeActivity</a></li>
147
+ * </ul>
148
+ *
149
+ * <strong>Workflow Visibility</strong>
150
+ *
151
+ * <ul>
152
+ * <li><a href="API_ListWorkflowTypes.html" title="ListWorkflowTypes">ListWorkflowTypes</a></li>
153
+ * <li><a href="API_DescribeWorkflowType.html" title=
154
+ * "DescribeWorkflowType">DescribeWorkflowType</a></li>
155
+ * </ul>
156
  *
157
+ * <strong>Workflow Execution Visibility</strong>
 
 
 
 
 
 
 
158
  *
159
+ * <ul>
160
+ * <li><a href="API_DescribeWorkflowExecution.html" title=
161
+ * "DescribeWorkflowExecution">DescribeWorkflowExecution</a></li>
162
+ * <li><a href="API_ListOpenWorkflowExecutions.html" title=
163
+ * "ListOpenWorkflowExecutions">ListOpenWorkflowExecutions</a></li>
164
+ * <li><a href="API_ListClosedWorkflowExecutions.html" title=
165
+ * "ListClosedWorkflowExecutions">ListClosedWorkflowExecutions</a></li>
166
+ * <li><a href="API_CountOpenWorkflowExecutions.html" title=
167
+ * "CountOpenWorkflowExecutions">CountOpenWorkflowExecutions</a></li>
168
+ * <li><a href="API_CountClosedWorkflowExecutions.html" title=
169
+ * "CountClosedWorkflowExecutions">CountClosedWorkflowExecutions</a></li>
170
+ * <li><a href="API_GetWorkflowExecutionHistory.html" title=
171
+ * "GetWorkflowExecutionHistory">GetWorkflowExecutionHistory</a></li>
172
+ * </ul>
173
+ *
174
+ * <strong>Domain Visibility</strong>
175
+ *
176
+ * <ul>
177
+ * <li><a href="API_ListDomains.html" title="ListDomains">ListDomains</a></li>
178
+ * <li><a href="API_DescribeDomain.html" title="DescribeDomain">DescribeDomain</a></li>
179
+ * </ul>
180
+ *
181
+ * <strong>Task List Visibility</strong>
182
+ *
183
+ * <ul>
184
+ * <li><a href="API_CountPendingActivityTasks.html" title=
185
+ * "CountPendingActivityTasks">CountPendingActivityTasks</a></li>
186
+ * <li><a href="API_CountPendingDecisionTasks.html" title=
187
+ * "CountPendingDecisionTasks">CountPendingDecisionTasks</a></li>
188
+ * </ul>
189
  *
190
+ * @version 2012.05.01
191
  * @license See the included NOTICE.md file for complete information.
192
  * @copyright See the included NOTICE.md file for complete information.
193
  * @link http://aws.amazon.com/simpleworkflow/ Amazon Simple Workflow
306
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
307
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain containing the workflow executions to count.</li>
308
  * <li><code>startTimeFilter</code> - <code>array</code> - Optional - If specified, only workflow executions that meet the start time criteria of the filter are counted. <p class="note"> <code>startTimeFilter</code> and <code>closeTimeFilter</code> are mutually exclusive. You must specify one of these in a request but not both.</p> <ul>
309
+ * <li><code>oldestDate</code> - <code>string</code> - Required - Specifies the oldest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
310
+ * <li><code>latestDate</code> - <code>string</code> - Optional - Specifies the latest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
 
 
311
  * </ul></li>
312
  * <li><code>closeTimeFilter</code> - <code>array</code> - Optional - If specified, only workflow executions that meet the close time criteria of the filter are counted. <p class="note"> <code>startTimeFilter</code> and <code>closeTimeFilter</code> are mutually exclusive. You must specify one of these in a request but not both.</p> <ul>
313
+ * <li><code>oldestDate</code> - <code>string</code> - Required - Specifies the oldest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
314
+ * <li><code>latestDate</code> - <code>string</code> - Optional - Specifies the latest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
 
 
315
  * </ul></li>
316
  * <li><code>executionFilter</code> - <code>array</code> - Optional - If specified, only workflow executions matching the <code>WorkflowId</code> in the filter are counted. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
317
+ * <li><code>workflowId</code> - <code>string</code> - Required - The workflowId to pass of match the criteria of this filter.</li>
 
 
318
  * </ul></li>
319
  * <li><code>typeFilter</code> - <code>array</code> - Optional - If specified, indicates the type of the workflow executions to be counted. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
320
+ * <li><code>name</code> - <code>string</code> - Required - Name of the workflow type. This field is required.</li>
321
+ * <li><code>version</code> - <code>string</code> - Optional - Version of the workflow type.</li>
 
 
322
  * </ul></li>
323
  * <li><code>tagFilter</code> - <code>array</code> - Optional - If specified, only executions that have a tag that matches the filter are counted. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
324
+ * <li><code>tag</code> - <code>string</code> - Required - Specifies the tag that must be associated with the execution for it to meet the filter criteria. This field is required.</li>
 
 
325
  * </ul></li>
326
  * <li><code>closeStatusFilter</code> - <code>array</code> - Optional - If specified, only workflow executions that match this close status are counted. This filter has an affect only if <code>executionStatus</code> is specified as <code>CLOSED</code>. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
327
+ * <li><code>status</code> - <code>string</code> - Required - The close status that must match the close status of an execution for it to meet the criteria of this filter. This field is required. [Allowed values: <code>COMPLETED</code>, <code>FAILED</code>, <code>CANCELED</code>, <code>TERMINATED</code>, <code>CONTINUED_AS_NEW</code>, <code>TIMED_OUT</code>]</li>
 
 
328
  * </ul></li>
329
  * <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>
330
  * <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>
350
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
351
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain containing the workflow executions to count.</li>
352
  * <li><code>startTimeFilter</code> - <code>array</code> - Required - Specifies the start time criteria that workflow executions must meet in order to be counted. <ul>
353
+ * <li><code>oldestDate</code> - <code>string</code> - Required - Specifies the oldest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
354
+ * <li><code>latestDate</code> - <code>string</code> - Optional - Specifies the latest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
 
 
355
  * </ul></li>
356
  * <li><code>typeFilter</code> - <code>array</code> - Optional - Specifies the type of the workflow executions to be counted. <p class="note"> <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
357
+ * <li><code>name</code> - <code>string</code> - Required - Name of the workflow type. This field is required.</li>
358
+ * <li><code>version</code> - <code>string</code> - Optional - Version of the workflow type.</li>
 
 
359
  * </ul></li>
360
  * <li><code>tagFilter</code> - <code>array</code> - Optional - If specified, only executions that have a tag that matches the filter are counted. <p class="note"> <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
361
+ * <li><code>tag</code> - <code>string</code> - Required - Specifies the tag that must be associated with the execution for it to meet the filter criteria. This field is required.</li>
 
 
362
  * </ul></li>
363
  * <li><code>executionFilter</code> - <code>array</code> - Optional - If specified, only workflow executions matching the <code>WorkflowId</code> in the filter are counted. <p class="note"> <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
364
+ * <li><code>workflowId</code> - <code>string</code> - Required - The workflowId to pass of match the criteria of this filter.</li>
 
 
365
  * </ul></li>
366
  * <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>
367
  * <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>
383
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
384
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain that contains the task list.</li>
385
  * <li><code>taskList</code> - <code>array</code> - Required - The name of the task list. <ul>
386
+ * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
 
 
387
  * </ul></li>
388
  * <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>
389
  * <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>
405
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
406
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain that contains the task list.</li>
407
  * <li><code>taskList</code> - <code>array</code> - Required - The name of the task list. <ul>
408
+ * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
 
 
409
  * </ul></li>
410
  * <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>
411
  * <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>
432
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
433
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain in which the activity type is registered.</li>
434
  * <li><code>activityType</code> - <code>array</code> - Required - The activity type to deprecate. <ul>
435
+ * <li><code>name</code> - <code>string</code> - Required - The name of this activity. <p class="note">The combination of activity type name and version must be unique within a domain.</p></li>
436
+ * <li><code>version</code> - <code>string</code> - Required - The version of this activity. <p class="note">The combination of activity type name and version must be unique with in a domain.</p></li>
 
 
437
  * </ul></li>
438
  * <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>
439
  * <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>
486
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
487
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain in which the workflow type is registered.</li>
488
  * <li><code>workflowType</code> - <code>array</code> - Required - The workflow type to deprecate. <ul>
489
+ * <li><code>name</code> - <code>string</code> - Required - The name of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
490
+ * <li><code>version</code> - <code>string</code> - Required - The version of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
 
 
491
  * </ul></li>
492
  * <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>
493
  * <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>
508
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
509
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain in which the activity type is registered.</li>
510
  * <li><code>activityType</code> - <code>array</code> - Required - The activity type to describe. <ul>
511
+ * <li><code>name</code> - <code>string</code> - Required - The name of this activity. <p class="note">The combination of activity type name and version must be unique within a domain.</p></li>
512
+ * <li><code>version</code> - <code>string</code> - Required - The version of this activity. <p class="note">The combination of activity type name and version must be unique with in a domain.</p></li>
 
 
513
  * </ul></li>
514
  * <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>
515
  * <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>
552
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
553
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain containing the workflow execution.</li>
554
  * <li><code>execution</code> - <code>array</code> - Required - The workflow execution to describe. <ul>
555
+ * <li><code>workflowId</code> - <code>string</code> - Required - The user defined identifier associated with the workflow execution.</li>
556
+ * <li><code>runId</code> - <code>string</code> - Required - A system generated unique identifier for the workflow execution.</li>
 
 
557
  * </ul></li>
558
  * <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>
559
  * <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>
575
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
576
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain in which this workflow type is registered.</li>
577
  * <li><code>workflowType</code> - <code>array</code> - Required - The workflow type to describe. <ul>
578
+ * <li><code>name</code> - <code>string</code> - Required - The name of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
579
+ * <li><code>version</code> - <code>string</code> - Required - The version of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
 
 
580
  * </ul></li>
581
  * <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>
582
  * <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>
603
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
604
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain containing the workflow execution.</li>
605
  * <li><code>execution</code> - <code>array</code> - Required - Specifies the workflow execution for which to return the history. <ul>
606
+ * <li><code>workflowId</code> - <code>string</code> - Required - The user defined identifier associated with the workflow execution.</li>
607
+ * <li><code>runId</code> - <code>string</code> - Required - A system generated unique identifier for the workflow execution.</li>
 
 
608
  * </ul></li>
609
  * <li><code>nextPageToken</code> - <code>string</code> - Optional - If a <code>NextPageToken</code> is returned, the result has more than one pages. To get the next page, repeat the call and specify the nextPageToken with all other arguments unchanged.</li>
610
  * <li><code>maximumPageSize</code> - <code>integer</code> - Optional - Specifies the maximum number of history events returned in one page. The next page in the result is identified by the <code>NextPageToken</code> returned. By default 100 history events are returned in a page but the caller can override this value to a page size <em>smaller</em> than the default. You cannot specify a page size larger than 100.</li>
660
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
661
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain that contains the workflow executions to list.</li>
662
  * <li><code>startTimeFilter</code> - <code>array</code> - Optional - If specified, the workflow executions are included in the returned results based on whether their start times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their start times. <p class="note"> <code>startTimeFilter</code> and <code>closeTimeFilter</code> are mutually exclusive. You must specify one of these in a request but not both.</p> <ul>
663
+ * <li><code>oldestDate</code> - <code>string</code> - Required - Specifies the oldest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
664
+ * <li><code>latestDate</code> - <code>string</code> - Optional - Specifies the latest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
 
 
665
  * </ul></li>
666
  * <li><code>closeTimeFilter</code> - <code>array</code> - Optional - If specified, the workflow executions are included in the returned results based on whether their close times are within the range specified by this filter. Also, if this parameter is specified, the returned results are ordered by their close times. <p class="note"> <code>startTimeFilter</code> and <code>closeTimeFilter</code> are mutually exclusive. You must specify one of these in a request but not both.</p> <ul>
667
+ * <li><code>oldestDate</code> - <code>string</code> - Required - Specifies the oldest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
668
+ * <li><code>latestDate</code> - <code>string</code> - Optional - Specifies the latest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
 
 
669
  * </ul></li>
670
  * <li><code>executionFilter</code> - <code>array</code> - Optional - If specified, only workflow executions matching the workflow id specified in the filter are returned. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
671
+ * <li><code>workflowId</code> - <code>string</code> - Required - The workflowId to pass of match the criteria of this filter.</li>
 
 
672
  * </ul></li>
673
  * <li><code>closeStatusFilter</code> - <code>array</code> - Optional - If specified, only workflow executions that match this <em>close status</em> are listed. For example, if TERMINATED is specified, then only TERMINATED workflow executions are listed. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
674
+ * <li><code>status</code> - <code>string</code> - Required - The close status that must match the close status of an execution for it to meet the criteria of this filter. This field is required. [Allowed values: <code>COMPLETED</code>, <code>FAILED</code>, <code>CANCELED</code>, <code>TERMINATED</code>, <code>CONTINUED_AS_NEW</code>, <code>TIMED_OUT</code>]</li>
 
 
675
  * </ul></li>
676
  * <li><code>typeFilter</code> - <code>array</code> - Optional - If specified, only executions of the type specified in the filter are returned. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
677
+ * <li><code>name</code> - <code>string</code> - Required - Name of the workflow type. This field is required.</li>
678
+ * <li><code>version</code> - <code>string</code> - Optional - Version of the workflow type.</li>
 
 
679
  * </ul></li>
680
  * <li><code>tagFilter</code> - <code>array</code> - Optional - If specified, only executions that have the matching tag are listed. <p class="note"> <code>closeStatusFilter</code>, <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
681
+ * <li><code>tag</code> - <code>string</code> - Required - Specifies the tag that must be associated with the execution for it to meet the filter criteria. This field is required.</li>
 
 
682
  * </ul></li>
683
  * <li><code>nextPageToken</code> - <code>string</code> - Optional - If on a previous call to this method a <code>NextPageToken</code> was returned, the results are being paginated. To get the next page of results, repeat the call with the returned token and all other arguments unchanged.</li>
684
  * <li><code>maximumPageSize</code> - <code>integer</code> - Optional - The maximum number of results returned in each page. The default is 100, but the caller can override this value to a page size <em>smaller</em> than the default. You cannot specify a page size greater than 100.</li>
735
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
736
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain that contains the workflow executions to list.</li>
737
  * <li><code>startTimeFilter</code> - <code>array</code> - Required - Workflow executions are included in the returned results based on whether their start times are within the range specified by this filter. <ul>
738
+ * <li><code>oldestDate</code> - <code>string</code> - Required - Specifies the oldest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
739
+ * <li><code>latestDate</code> - <code>string</code> - Optional - Specifies the latest start or close date and time to return. May be passed as a number of seconds since UNIX Epoch, or any string compatible with <php:strtotime()>.</li>
 
 
740
  * </ul></li>
741
  * <li><code>typeFilter</code> - <code>array</code> - Optional - If specified, only executions of the type specified in the filter are returned. <p class="note"> <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
742
+ * <li><code>name</code> - <code>string</code> - Required - Name of the workflow type. This field is required.</li>
743
+ * <li><code>version</code> - <code>string</code> - Optional - Version of the workflow type.</li>
 
 
744
  * </ul></li>
745
  * <li><code>tagFilter</code> - <code>array</code> - Optional - If specified, only executions that have the matching tag are listed. <p class="note"> <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
746
+ * <li><code>tag</code> - <code>string</code> - Required - Specifies the tag that must be associated with the execution for it to meet the filter criteria. This field is required.</li>
 
 
747
  * </ul></li>
748
  * <li><code>nextPageToken</code> - <code>string</code> - Optional - If on a previous call to this method a <code>NextPageToken</code> was returned, the results are being paginated. To get the next page of results, repeat the call with the returned token and all other arguments unchanged.</li>
749
  * <li><code>maximumPageSize</code> - <code>integer</code> - Optional - The maximum number of results returned in each page. The default is 100, but the caller can override this value to a page size <em>smaller</em> than the default. You cannot specify a page size greater than 100.</li>
750
  * <li><code>reverseOrder</code> - <code>boolean</code> - Optional - When set to <code>true</code>, returns the results in reverse order. By default the results are returned in descending order of the start time of the executions.</li>
751
  * <li><code>executionFilter</code> - <code>array</code> - Optional - If specified, only workflow executions matching the workflow id specified in the filter are returned. <p class="note"> <code>executionFilter</code>, <code>typeFilter</code> and <code>tagFilter</code> are mutually exclusive. You can specify at most one of these in a request.</p> <ul>
752
+ * <li><code>workflowId</code> - <code>string</code> - Required - The workflowId to pass of match the criteria of this filter.</li>
 
 
753
  * </ul></li>
754
  * <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>
755
  * <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>
803
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
804
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain that contains the task lists being polled.</li>
805
  * <li><code>taskList</code> - <code>array</code> - Required - Specifies the task list to poll for activity tasks. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn". <ul>
806
+ * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
 
 
807
  * </ul></li>
808
  * <li><code>identity</code> - <code>string</code> - Optional - Identity of the worker making the request, which is recorded in the <code>ActivityTaskStarted</code> event in the workflow history. This enables diagnostic tracing when problems arise. The form of this identity is user defined.</li>
809
  * <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>
847
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
848
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain containing the task lists to poll.</li>
849
  * <li><code>taskList</code> - <code>array</code> - Required - Specifies the task list to poll for decision tasks. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn". <ul>
850
+ * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
 
 
851
  * </ul></li>
852
  * <li><code>identity</code> - <code>string</code> - Optional - Identity of the decider making the request, which is recorded in the DecisionTaskStarted event in the workflow history. This enables diagnostic tracing when problems arise. The form of this identity is user defined.</li>
853
  * <li><code>nextPageToken</code> - <code>string</code> - Optional - If on a previous call to this method a <code>NextPageToken</code> was returned, the results are being paginated. To get the next page of results, repeat the call with the returned token and all other arguments unchanged. <p class="note">The <code>nextPageToken</code> returned by this action cannot be used with <code>GetWorkflowExecutionHistory</code> to get the next page. You must call <code>PollForDecisionTask</code> again (with the <code>nextPageToken</code>) to retrieve the next page of history records. Calling <code>PollForDecisionTask</code> with a <code>nextPageToken</code> will not return a new decision task.</p> .</li>
931
  * <li><code>defaultTaskStartToCloseTimeout</code> - <code>string</code> - Optional - If set, specifies the default maximum duration that a worker can take to process tasks of this activity type. This default can be overridden when scheduling an activity task using the <code>ScheduleActivityTask</code> <code>Decision</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
932
  * <li><code>defaultTaskHeartbeatTimeout</code> - <code>string</code> - Optional - If set, specifies the default maximum time before which a worker processing a task of this type must report progress by calling <code>RecordActivityTaskHeartbeat</code>. If the timeout is exceeded, the activity task is automatically timed out. This default can be overridden when scheduling an activity task using the <code>ScheduleActivityTask</code> <code>Decision</code>. If the activity worker subsequently attempts to record a heartbeat or returns a result, the activity worker receives an <code>UnknownResource</code> fault. In this case, Amazon SWF no longer considers the activity task to be valid; the activity worker should clean up the activity task. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
933
  * <li><code>defaultTaskList</code> - <code>array</code> - Optional - If set, specifies the default task list to use for scheduling tasks of this activity type. This default task list is used if a task list is not provided when a task is scheduled through the <code>ScheduleActivityTask</code> <code>Decision</code>. <ul>
934
+ * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
 
 
935
  * </ul></li>
936
  * <li><code>defaultTaskScheduleToStartTimeout</code> - <code>string</code> - Optional - If set, specifies the default maximum duration that a task of this activity type can wait before being assigned to a worker. This default can be overridden when scheduling an activity task using the <code>ScheduleActivityTask</code> <code>Decision</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
937
  * <li><code>defaultTaskScheduleToCloseTimeout</code> - <code>string</code> - Optional - If set, specifies the default maximum duration for a task of this activity type. This default can be overridden when scheduling an activity task using the <code>ScheduleActivityTask</code> <code>Decision</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
953
  * @param array $opt (Optional) An associative array of parameters that can have the following keys: <ul>
954
  * <li><code>name</code> - <code>string</code> - Required - Name of the domain to register. The name must be unique. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn".</li>
955
  * <li><code>description</code> - <code>string</code> - Optional - Textual description of the domain.</li>
956
+ * <li><code>workflowExecutionRetentionPeriodInDays</code> - <code>string</code> - Required - Specifies the duration-- <strong><em>in days</em></strong> --for which the record (including the history) of workflow executions in this domain should be kept by the service. After the retention period, the workflow execution will not be available in the results of visibility calls. If a duration of <code>NONE</code> is specified, the records for workflow executions in this domain are not retained at all.</li>
957
  * <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>
958
  * <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>
959
  * @return CFResponse A <CFResponse> object containing a parsed HTTP response.
983
  * <li><code>defaultTaskStartToCloseTimeout</code> - <code>string</code> - Optional - If set, specifies the default maximum duration of decision tasks for this workflow type. This default can be overridden when starting a workflow execution using the <code>StartWorkflowExecution</code> action or the <code>StartChildWorkflowExecution</code> <code>Decision</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
984
  * <li><code>defaultExecutionStartToCloseTimeout</code> - <code>string</code> - Optional - If set, specifies the default maximum duration for executions of this workflow type. You can override this default when starting an execution through the <code>StartWorkflowExecution</code> Action or <code>StartChildWorkflowExecution</code> <code>Decision</code>. The duration is specified in seconds. The valid values are integers greater than or equal to 0. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of "NONE" for <code>defaultExecutionStartToCloseTimeout</code>; there is a one-year max limit on the time that a workflow execution can run. Exceeding this limit will always cause the workflow execution to time out.</li>
985
  * <li><code>defaultTaskList</code> - <code>array</code> - Optional - If set, specifies the default task list to use for scheduling decision tasks for executions of this workflow type. This default is used only if a task list is not provided when starting the execution through the <code>StartWorkflowExecution</code> Action or <code>StartChildWorkflowExecution</code> <code>Decision</code>. <ul>
986
+ * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
 
 
987
  * </ul></li>
988
  * <li><code>defaultChildPolicy</code> - <code>string</code> - Optional - If set, specifies the default policy to use for the child workflow executions when a workflow execution of this type is terminated, by calling the <code>TerminateWorkflowExecution</code> action explicitly or due to an expired timeout. This default can be overridden when starting a workflow execution using the <code>StartWorkflowExecution</code> action or the <code>StartChildWorkflowExecution</code> <code>Decision</code>. The supported child policies are:<ul><li> <strong>TERMINATE:</strong> the child executions will be terminated.</li><li> <strong>REQUEST_CANCEL:</strong> a request to cancel will be attempted for each child execution by recording a <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.</li><li> <strong>ABANDON:</strong> no action will be taken. The child executions will continue to run.</li></ul> [Allowed values: <code>TERMINATE</code>, <code>REQUEST_CANCEL</code>, <code>ABANDON</code>]</li>
989
  * <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>
1126
  * <li><code>x</code> - <code>array</code> - Optional - This represents a simple array index. <ul>
1127
  * <li><code>decisionType</code> - <code>string</code> - Required - Specifies the type of the decision. [Allowed values: <code>ScheduleActivityTask</code>, <code>RequestCancelActivityTask</code>, <code>CompleteWorkflowExecution</code>, <code>FailWorkflowExecution</code>, <code>CancelWorkflowExecution</code>, <code>ContinueAsNewWorkflowExecution</code>, <code>RecordMarker</code>, <code>StartTimer</code>, <code>CancelTimer</code>, <code>SignalExternalWorkflowExecution</code>, <code>RequestCancelExternalWorkflowExecution</code>, <code>StartChildWorkflowExecution</code>]</li>
1128
  * <li><code>scheduleActivityTaskDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>ScheduleActivityTask</code> decision. It is not set for other decision types. <ul>
1129
+ * <li><code>activityType</code> - <code>array</code> - Required - The type of the activity task to schedule. This field is required. <ul>
1130
+ * <li><code>name</code> - <code>string</code> - Required - The name of this activity. <p class="note">The combination of activity type name and version must be unique within a domain.</p></li>
1131
+ * <li><code>version</code> - <code>string</code> - Required - The version of this activity. <p class="note">The combination of activity type name and version must be unique with in a domain.</p></li>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1132
  * </ul></li>
1133
+ * <li><code>activityId</code> - <code>string</code> - Required - The <code>activityId</code> of the activity task. This field is required. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn".</li>
1134
+ * <li><code>control</code> - <code>string</code> - Optional - Optional data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the activity.</li>
1135
+ * <li><code>input</code> - <code>string</code> - Optional - The input provided to the activity task.</li>
1136
+ * <li><code>scheduleToCloseTimeout</code> - <code>string</code> - Optional - The maximum duration for this activity task. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">A schedule-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-close timeout was specified at registration time then a fault will be returned.</p></li>
1137
+ * <li><code>taskList</code> - <code>array</code> - Optional - If set, specifies the name of the task list in which to schedule the activity task. If not specified, the <code>defaultTaskList</code> registered with the activity type will be used. <p class="note">A task list for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default task list was specified at registration time then a fault will be returned.</p> The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn". <ul>
1138
+ * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
1139
+ * </ul></li>
1140
+ * <li><code>scheduleToStartTimeout</code> - <code>string</code> - Optional - If set, specifies the maximum duration the activity task can wait to be assigned to a worker. This overrides the default schedule-to-start timeout specified when registering the activity type using <code>RegisterActivityType</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">A schedule-to-start timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default schedule-to-start timeout was specified at registration time then a fault will be returned.</p></li>
1141
+ * <li><code>startToCloseTimeout</code> - <code>string</code> - Optional - If set, specifies the maximum duration a worker may take to process this activity task. This overrides the default start-to-close timeout specified when registering the activity type using <code>RegisterActivityType</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">A start-to-close timeout for this activity task must be specified either as a default for the activity type or through this field. If neither this field is set nor a default start-to-close timeout was specified at registration time then a fault will be returned.</p></li>
1142
+ * <li><code>heartbeatTimeout</code> - <code>string</code> - Optional - If set, specifies the maximum time before which a worker processing a task of this type must report progress by calling <code>RecordActivityTaskHeartbeat</code>. If the timeout is exceeded, the activity task is automatically timed out. If the worker subsequently attempts to record a heartbeat or returns a result, it will be ignored. This overrides the default heartbeat timeout specified when registering the activity type using <code>RegisterActivityType</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration.</li>
1143
  * </ul></li>
1144
  * <li><code>requestCancelActivityTaskDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>RequestCancelActivityTask</code> decision. It is not set for other decision types. <ul>
1145
+ * <li><code>activityId</code> - <code>string</code> - Required - The <code>activityId</code> of the activity task to be canceled.</li>
 
 
1146
  * </ul></li>
1147
  * <li><code>completeWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>CompleteWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1148
+ * <li><code>result</code> - <code>string</code> - Optional - The result of the workflow execution. The form of the result is implementation defined.</li>
 
 
1149
  * </ul></li>
1150
  * <li><code>failWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>FailWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1151
+ * <li><code>reason</code> - <code>string</code> - Optional - A descriptive reason for the failure that may help in diagnostics.</li>
1152
+ * <li><code>details</code> - <code>string</code> - Optional - Optional details of the failure.</li>
 
 
1153
  * </ul></li>
1154
  * <li><code>cancelWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>CancelWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1155
+ * <li><code>details</code> - <code>string</code> - Optional - Optional details of the cancellation.</li>
 
 
1156
  * </ul></li>
1157
  * <li><code>continueAsNewWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>ContinueAsNewWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1158
+ * <li><code>input</code> - <code>string</code> - Optional - The input provided to the new workflow execution.</li>
1159
+ * <li><code>executionStartToCloseTimeout</code> - <code>string</code> - Optional - If set, specifies the total duration for this workflow execution. This overrides the <code>defaultExecutionStartToCloseTimeout</code> specified when registering the workflow type. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this field. If neither this field is set nor a default execution start-to-close timeout was specified at registration time then a fault will be returned.</p></li>
1160
+ * <li><code>taskList</code> - <code>array</code> - Optional - Represents a task list. <ul>
1161
+ * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
 
 
 
 
 
 
 
 
1162
  * </ul></li>
1163
+ * <li><code>taskStartToCloseTimeout</code> - <code>string</code> - Optional - Specifies the maximum duration of decision tasks for the new workflow execution. This parameter overrides the <code>defaultTaskStartToCloseTimout</code> specified when registering the workflow type using <code>RegisterWorkflowType</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">A task start-to-close timeout for the new workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned.</p></li>
1164
+ * <li><code>childPolicy</code> - <code>string</code> - Optional - If set, specifies the policy to use for the child workflow executions of the new execution if it is terminated by calling the <code>TerminateWorkflowExecution</code> action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using <code>RegisterWorkflowType</code>. The supported child policies are:<ul><li> <strong>TERMINATE:</strong> the child executions will be terminated.</li><li> <strong>REQUEST_CANCEL:</strong> a request to cancel will be attempted for each child execution by recording a <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.</li><li> <strong>ABANDON:</strong> no action will be taken. The child executions will continue to run.</li></ul> <p class="note">A child policy for the new workflow execution must be specified either as a default registered for its workflow type or through this field. If neither this field is set nor a default child policy was specified at registration time then a fault will be returned.</p> [Allowed values: <code>TERMINATE</code>, <code>REQUEST_CANCEL</code>, <code>ABANDON</code>]</li>
1165
+ * <li><code>tagList</code> - <code>string|array</code> - Optional - The list of tags to associate with the new workflow execution. A maximum of 5 tags can be specified. You can list workflow executions with a specific tag by calling <code>ListOpenWorkflowExecutions</code> or <code>ListClosedWorkflowExecutions</code> and specifying a <code>TagFilter</code>. Pass a string for a single value, or an indexed array for multiple values.</li>
1166
+ * <li><code>workflowTypeVersion</code> - <code>string</code> - Optional - </li>
1167
  * </ul></li>
1168
  * <li><code>recordMarkerDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>RecordMarker</code> decision. It is not set for other decision types. <ul>
1169
+ * <li><code>markerName</code> - <code>string</code> - Required - The name of the marker. This filed is required.</li>
1170
+ * <li><code>details</code> - <code>string</code> - Optional - Optional details of the marker.</li>
 
 
1171
  * </ul></li>
1172
  * <li><code>startTimerDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>StartTimer</code> decision. It is not set for other decision types. <ul>
1173
+ * <li><code>timerId</code> - <code>string</code> - Required - The unique Id of the timer. This field is required. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn".</li>
1174
+ * <li><code>control</code> - <code>string</code> - Optional - Optional data attached to the event that can be used by the decider in subsequent workflow tasks.</li>
1175
+ * <li><code>startToFireTimeout</code> - <code>string</code> - Required - The duration to wait before firing the timer. This field is required. The duration is specified in seconds. The valid values are integers greater than or equal to 0.</li>
 
 
1176
  * </ul></li>
1177
  * <li><code>cancelTimerDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>CancelTimer</code> decision. It is not set for other decision types. <ul>
1178
+ * <li><code>timerId</code> - <code>string</code> - Required - The unique Id of the timer to cancel. This field is required.</li>
 
 
1179
  * </ul></li>
1180
  * <li><code>signalExternalWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>SignalExternalWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1181
+ * <li><code>workflowId</code> - <code>string</code> - Required - The <code>workflowId</code> of the workflow execution to be signaled. This field is required.</li>
1182
+ * <li><code>runId</code> - <code>string</code> - Optional - The <code>runId</code> of the workflow execution to be signaled.</li>
1183
+ * <li><code>signalName</code> - <code>string</code> - Required - The name of the signal.The target workflow execution will use the signal name and input to process the signal. This field is required.</li>
1184
+ * <li><code>input</code> - <code>string</code> - Optional - Optional input to be provided with the signal.The target workflow execution will use the signal name and input to process the signal.</li>
1185
+ * <li><code>control</code> - <code>string</code> - Optional - Optional data attached to the event that can be used by the decider in subsequent decision tasks.</li>
 
 
1186
  * </ul></li>
1187
  * <li><code>requestCancelExternalWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>RequestCancelExternalWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1188
+ * <li><code>workflowId</code> - <code>string</code> - Required - The <code>workflowId</code> of the external workflow execution to cancel. This field is required.</li>
1189
+ * <li><code>runId</code> - <code>string</code> - Optional - The <code>runId</code> of the external workflow execution to cancel.</li>
1190
+ * <li><code>control</code> - <code>string</code> - Optional - Optional data attached to the event that can be used by the decider in subsequent workflow tasks.</li>
 
 
1191
  * </ul></li>
1192
  * <li><code>startChildWorkflowExecutionDecisionAttributes</code> - <code>array</code> - Optional - Provides details of the <code>StartChildWorkflowExecution</code> decision. It is not set for other decision types. <ul>
1193
+ * <li><code>workflowType</code> - <code>array</code> - Required - The type of the workflow execution to be started. This field is required. <ul>
1194
+ * <li><code>name</code> - <code>string</code> - Required - The name of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
1195
+ * <li><code>version</code> - <code>string</code> - Required - The version of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
1196
+ * </ul></li>
1197
+ * <li><code>workflowId</code> - <code>string</code> - Required - The <code>workflowId</code> of the workflow execution. This field is required. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn".</li>
1198
+ * <li><code>control</code> - <code>string</code> - Optional - Optional data attached to the event that can be used by the decider in subsequent workflow tasks. This data is not sent to the child workflow execution.</li>
1199
+ * <li><code>input</code> - <code>string</code> - Optional - The input to be provided to the workflow execution.</li>
1200
+ * <li><code>executionStartToCloseTimeout</code> - <code>string</code> - Optional - The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">An execution start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default execution start-to-close timeout was specified at registration time then a fault will be returned.</p></li>
1201
+ * <li><code>taskList</code> - <code>array</code> - Optional - The name of the task list to be used for decision tasks of the child workflow execution. <p class="note">A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault will be returned.</p> The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn". <ul>
1202
+ * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
 
 
 
 
 
 
 
 
 
1203
  * </ul></li>
1204
+ * <li><code>taskStartToCloseTimeout</code> - <code>string</code> - Optional - Specifies the maximum duration of decision tasks for this workflow execution. This parameter overrides the <code>defaultTaskStartToCloseTimout</code> specified when registering the workflow type using <code>RegisterWorkflowType</code>. The valid values are integers greater than or equal to <code>0</code>. An integer value can be used to specify the duration in seconds while <code>NONE</code> can be used to specify unlimited duration. <p class="note">A task start-to-close timeout for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task start-to-close timeout was specified at registration time then a fault will be returned.</p></li>
1205
+ * <li><code>childPolicy</code> - <code>string</code> - Optional - If set, specifies the policy to use for the child workflow executions if the workflow execution being started is terminated by calling the <code>TerminateWorkflowExecution</code> action explicitly or due to an expired timeout. This policy overrides the default child policy specified when registering the workflow type using <code>RegisterWorkflowType</code>. The supported child policies are:<ul><li> <strong>TERMINATE:</strong> the child executions will be terminated.</li><li> <strong>REQUEST_CANCEL:</strong> a request to cancel will be attempted for each child execution by recording a <code>WorkflowExecutionCancelRequested</code> event in its history. It is up to the decider to take appropriate actions when it receives an execution history with this event.</li><li> <strong>ABANDON:</strong> no action will be taken. The child executions will continue to run.</li></ul> <p class="note">A child policy for the workflow execution being started must be specified either as a default registered for its workflow type or through this field. If neither this field is set nor a default child policy was specified at registration time then a fault will be returned.</p> [Allowed values: <code>TERMINATE</code>, <code>REQUEST_CANCEL</code>, <code>ABANDON</code>]</li>
1206
+ * <li><code>tagList</code> - <code>string|array</code> - Optional - The list of tags to associate with the child workflow execution. A maximum of 5 tags can be specified. You can list workflow executions with a specific tag by calling <code>ListOpenWorkflowExecutions</code> or <code>ListClosedWorkflowExecutions</code> and specifying a <code>TagFilter</code>. Pass a string for a single value, or an indexed array for multiple values.</li>
1207
  * </ul></li>
1208
  * </ul></li>
1209
  * </ul></li>
1216
  {
1217
  if (!$opt) $opt = array();
1218
 
1219
+ // List (non-map)
1220
+ if (isset($opt['decisions']))
1221
+ {
1222
+ $opt['decisions'] = (is_array($opt['decisions']) ? $opt['decisions'] : array($opt['decisions']));
1223
+ }
1224
+
1225
  $opt = json_encode($opt);
1226
  return $this->authenticate('RespondDecisionTaskCompleted', $opt);
1227
  }
1269
  * <li><code>domain</code> - <code>string</code> - Required - The name of the domain in which the workflow execution is created.</li>
1270
  * <li><code>workflowId</code> - <code>string</code> - Required - The user defined identifier associated with the workflow execution. You can use this to associate a custom identifier with the workflow execution. You may specify the same identifier if a workflow execution is logically a <em>restart</em> of a previous execution. You cannot have two open workflow executions with the same <code>workflowId</code> at the same time. The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn".</li>
1271
  * <li><code>workflowType</code> - <code>array</code> - Required - The type of the workflow to start. <ul>
1272
+ * <li><code>name</code> - <code>string</code> - Required - The name of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
1273
+ * <li><code>version</code> - <code>string</code> - Required - The version of the workflow type. This field is required. <p class="note">The combination of workflow type name and version must be unique with in a domain.</p></li>
 
 
1274
  * </ul></li>
1275
  * <li><code>taskList</code> - <code>array</code> - Optional - The task list to use for the decision tasks generated for this workflow execution. This overrides the <code>defaultTaskList</code> specified when registering the workflow type. <p class="note">A task list for this workflow execution must be specified either as a default for the workflow type or through this parameter. If neither this parameter is set nor a default task list was specified at registration time then a fault will be returned.</p> The specified string must not start or end with whitespace. It must not contain a <code>:</code> (colon), <code>/</code> (slash), <code>|</code> (vertical bar), or any control characters (\u0000-\u001f | \u007f - \u009f). Also, it must not contain the literal string "arn". <ul>
1276
+ * <li><code>name</code> - <code>string</code> - Required - The name of the task list.</li>
 
 
1277
  * </ul></li>
1278
  * <li><code>input</code> - <code>string</code> - Optional - The input for the workflow execution. This is a free form string which should be meaningful to the workflow you are starting. This <code>input</code> is made available to the new workflow execution in the <code>WorkflowExecutionStarted</code> history event.</li>
1279
  * <li><code>executionStartToCloseTimeout</code> - <code>string</code> - Optional - The total duration for this workflow execution. This overrides the defaultExecutionStartToCloseTimeout specified when registering the workflow type. The duration is specified in seconds. The valid values are integers greater than or equal to 0. Exceeding this limit will cause the workflow execution to time out. Unlike some of the other timeout parameters in Amazon SWF, you cannot specify a value of "NONE" for this timeout; there is a one-year max limit on the time that a workflow execution can run. <p class="note">An execution start-to-close timeout must be specified either through this parameter or as a default when the workflow type is registered. If neither this parameter nor a default execution start-to-close timeout is specified, a fault is returned.</p></li>
libs/aws/utilities/request.class.php CHANGED
@@ -61,7 +61,6 @@ class CFRequest extends RequestCore
61
  parent::__construct($url, $proxy, $helpers);
62
 
63
  // Standard settings for all requests
64
- $this->add_header('Expect', '100-continue');
65
  $this->set_useragent(CFRUNTIME_USERAGENT);
66
  $this->credentials = $credentials;
67
  $this->cacert_location = ($this->credentials['certificate_authority'] ? $this->credentials['certificate_authority'] : false);
61
  parent::__construct($url, $proxy, $helpers);
62
 
63
  // Standard settings for all requests
 
64
  $this->set_useragent(CFRUNTIME_USERAGENT);
65
  $this->credentials = $credentials;
66
  $this->cacert_location = ($this->credentials['certificate_authority'] ? $this->credentials['certificate_authority'] : false);
libs/aws/utilities/simplexml.class.php CHANGED
@@ -212,4 +212,37 @@ class CFSimpleXML extends SimpleXMLIterator
212
  {
213
  return (stripos((string) $this, $value) !== false);
214
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
215
  }
212
  {
213
  return (stripos((string) $this, $value) !== false);
214
  }
215
+
216
+ /**
217
+ * Whether or not the current node matches the regular expression pattern.
218
+ *
219
+ * @param string $pattern (Required) The pattern to match the current node against.
220
+ * @return boolean Whether or not the current node matches the pattern.
221
+ */
222
+ public function matches($pattern)
223
+ {
224
+ return (bool) preg_match($pattern, (string) $this);
225
+ }
226
+
227
+ /**
228
+ * Whether or not the current node starts with the compared value.
229
+ *
230
+ * @param string $value (Required) The value to compare the current node to.
231
+ * @return boolean Whether or not the current node starts with the compared value.
232
+ */
233
+ public function starts_with($value)
234
+ {
235
+ return $this->matches("@^$value@u");
236
+ }
237
+
238
+ /**
239
+ * Whether or not the current node ends with the compared value.
240
+ *
241
+ * @param string $value (Required) The value to compare the current node to.
242
+ * @return boolean Whether or not the current node ends with the compared value.
243
+ */
244
+ public function ends_with($value)
245
+ {
246
+ return $this->matches("@$value$@u");
247
+ }
248
  }
pages/page_backwpupeditjob.php CHANGED
@@ -19,7 +19,7 @@ if (isset($_REQUEST['jobid']) and !empty($_REQUEST['jobid'])) {
19
  $todo=explode('+',$jobvalue['type']);
20
  $dests=explode(',',strtoupper(BACKWPUP_DESTS));
21
  ?>
22
- <div class="wrap">
23
  <?php
24
  screen_icon();
25
  echo "<h2>".esc_html( __('BackWPup Job Settings', 'backwpup'))."&nbsp;<a href=\"".wp_nonce_url(backwpup_admin_url('admin.php').'?page=backwpupeditjob', 'edit-job')."\" class=\"add-new-h2\">".esc_html__('Add New','backwpup')."</a></h2>";
@@ -30,151 +30,173 @@ echo "<h2>".esc_html( __('BackWPup Job Settings', 'backwpup'))."&nbsp;<a href=\"
30
  <?php endif; ?>
31
 
32
  <form name="editjob" id="editjob" method="post" action="<?PHP echo backwpup_admin_url('admin.php').'?page=backwpupeditjob';?>">
33
- <input type="hidden" name="jobid" value="<?PHP echo $jobvalue['jobid'];?>" />
34
- <?php wp_nonce_field('edit-job'); ?>
35
- <?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false ); ?>
36
- <?php wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false ); ?>
37
- <?php wp_nonce_field('backwpupeditjob_ajax_nonce', 'backwpupeditjobajaxnonce', false ); ?>
38
- <div id="poststuff" class="metabox-holder<?php echo 2 == $screen_layout_columns ? ' has-right-sidebar' : ''; ?>">
39
- <div id="side-info-column" class="inner-sidebar">
40
- <?php
41
- $side_meta_boxes = do_meta_boxes($current_screen->id, 'side', $jobvalue);
42
- ?>
43
- </div>
44
-
45
- <div id="post-body">
46
- <div id="post-body-content">
47
-
48
- <div id="titlediv">
49
- <div id="titlewrap">
50
- <label class="hide-if-no-js" style="visibility:hidden" id="title-prompt-text" for="title"><?PHP _e('Enter Job name here','backwpup'); ?></label>
51
- <input type="text" name="name" size="30" tabindex="1" value="<?PHP echo $jobvalue['name'];?>" id="title" autocomplete="off" />
52
- </div>
53
- </div>
54
-
55
- <div id="databasejobs" class="stuffbox" <?PHP if (!in_array("CHECK",$todo) and !in_array("DB",$todo) and !in_array("OPTIMIZE",$todo)) echo 'style="display:none;"';?>>
56
- <h3><label for="dbtables"><?PHP _e('Database Jobs','backwpup'); ?></label></h3>
57
- <div class="inside">
58
- <div>
59
- <b><?PHP _e('Database tables to use:','backwpup'); ?></b>
60
- <div id="dbtables">
61
- <?php
62
- $tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
63
- foreach ($tables as $table) {
64
- echo ' <input class="checkbox" type="checkbox"'.checked(!in_array($table,$jobvalue['dbexclude']),true,false).' name="jobtabs[]" value="'.base64_encode($table).'"/> '.$table.'<br />';
65
- }
66
- ?>
67
  </div>
68
  </div>
69
- <span id="dbshortinsert" <?PHP if (!in_array("DB",$todo)) echo 'style="display:none;"';?>><input class="checkbox" type="checkbox"<?php checked($jobvalue['dbshortinsert'],true,true);?> name="dbshortinsert" value="1"/> <?php _e('Use short INSERTs instead of full (with keys)','backwpup');?><br /></span>
70
- <input class="checkbox" type="checkbox"<?php checked($jobvalue['maintenance'],true,true);?> name="maintenance" value="1"/> <?php _e('Set Blog Maintenance Mode on Database Operations','backwpup');?><br />
71
  </div>
72
- </div>
73
 
74
- <div id="filebackup" class="stuffbox" <?PHP if (!in_array("FILE",$todo)) echo 'style="display:none;"';?>>
75
- <h3><label for="backuproot"><?PHP _e('File Backup','backwpup'); ?></label></h3>
76
- <div class="inside">
77
- <b><?PHP _e('Blog Folders to Backup:','backwpup'); ?></b><br />&nbsp;<br />
78
- <div>
79
- <div style="width:20%; float: left;">
80
- &nbsp;<b><input class="checkbox" type="checkbox"<?php checked($jobvalue['backuproot'],true,true);?> name="backuproot" value="1"/> <?php _e('root','backwpup');?></b><br />
81
- <div style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; width:90%; margin:2px; overflow:auto;">
82
- <?PHP
83
- echo '<i>'.__('Exclude:','backwpup').'</i><br />';
84
- $folder=untrailingslashit(str_replace('\\','/',ABSPATH));
85
- if ( $dir = @opendir( $folder ) ) {
86
- while (($file = readdir( $dir ) ) !== false ) {
87
- if ( !in_array($file, array('.', '..','.svn')) and is_dir($folder.'/'.$file) and !in_array($folder.'/'.$file.'/',backwpup_get_exclude_wp_dirs($folder)))
88
- echo '<nobr><input class="checkbox" type="checkbox"'.checked(in_array($folder.'/'.$file.'/',$jobvalue['backuprootexcludedirs']),true,false).' name="backuprootexcludedirs[]" value="'.$folder.'/'.$file.'/"/> '.$file.'</nobr><br />';
89
- }
90
- @closedir( $dir );
91
- }
92
- ?>
93
- </div>
94
- </div>
95
- <div style="width:20%;float: left;">
96
- &nbsp;<b><input class="checkbox" type="checkbox"<?php checked($jobvalue['backupcontent'],true,true);?> name="backupcontent" value="1"/> <?php _e('Content','backwpup');?></b><br />
97
- <div style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; width:90%; margin:2px; overflow:auto;">
98
- <?PHP
99
- echo '<i>'.__('Exclude:','backwpup').'</i><br />';
100
- $folder=untrailingslashit(str_replace('\\','/',WP_CONTENT_DIR));
101
- if ( $dir = @opendir( $folder ) ) {
102
- while (($file = readdir( $dir ) ) !== false ) {
103
- if ( !in_array($file, array('.', '..','.svn')) and is_dir($folder.'/'.$file) and !in_array($folder.'/'.$file.'/',backwpup_get_exclude_wp_dirs($folder)))
104
- echo '<nobr><input class="checkbox" type="checkbox"'.checked(in_array($folder.'/'.$file.'/',$jobvalue['backupcontentexcludedirs']),true,false).' name="backupcontentexcludedirs[]" value="'.$folder.'/'.$file.'/"/> '.$file.'</nobr><br />';
105
- }
106
- @closedir( $dir );
107
- }
108
- ?>
109
- </div>
110
- </div>
111
- <div style="width:20%; float: left;">
112
- &nbsp;<b><input class="checkbox" type="checkbox"<?php checked($jobvalue['backupplugins'],true,true);?> name="backupplugins" value="1"/> <?php _e('Plugins','backwpup');?></b><br />
113
- <div style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; width:90%; margin:2px; overflow:auto;">
114
- <?PHP
115
- echo '<i>'.__('Exclude:','backwpup').'</i><br />';
116
- $folder=untrailingslashit(str_replace('\\','/',WP_PLUGIN_DIR));
117
- if ( $dir = @opendir( $folder ) ) {
118
- while (($file = readdir( $dir ) ) !== false ) {
119
- if ( !in_array($file, array('.', '..','.svn')) and is_dir($folder.'/'.$file) and !in_array($folder.'/'.$file.'/',backwpup_get_exclude_wp_dirs($folder)))
120
- echo '<nobr><input class="checkbox" type="checkbox"'.checked(in_array($folder.'/'.$file.'/',$jobvalue['backuppluginsexcludedirs']),true,false).' name="backuppluginsexcludedirs[]" value="'.$folder.'/'.$file.'/"/> '.$file.'</nobr><br />';
121
- }
122
- @closedir( $dir );
123
- }
124
- ?>
125
  </div>
126
  </div>
127
- <div style="width:20%; float: left;">
128
- &nbsp;<b><input class="checkbox" type="checkbox"<?php checked($jobvalue['backupthemes'],true,true);?> name="backupthemes" value="1"/> <?php _e('Themes','backwpup');?></b><br />
129
- <div style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; width:90%; margin:2px; overflow:auto;">
130
- <?PHP
131
- echo '<i>'.__('Exclude:','backwpup').'</i><br />';
132
- $folder=untrailingslashit(str_replace('\\','/',trailingslashit(WP_CONTENT_DIR).'themes'));
133
- if ( $dir = @opendir( $folder ) ) {
134
- while (($file = readdir( $dir ) ) !== false ) {
135
- if ( !in_array($file, array('.', '..','.svn')) and is_dir($folder.'/'.$file) and !in_array($folder.'/'.$file.'/',backwpup_get_exclude_wp_dirs($folder)))
136
- echo '<nobr><input class="checkbox" type="checkbox"'.checked(in_array($folder.'/'.$file.'/',$jobvalue['backupthemesexcludedirs']),true,false).' name="backupthemesexcludedirs[]" value="'.$folder.'/'.$file.'/"/> '.$file.'</nobr><br />';
 
137
  }
138
- @closedir( $dir );
139
- }
140
- ?>
141
  </div>
 
 
142
  </div>
143
- <div style="width:20%; float: left;">
144
- &nbsp;<b><input class="checkbox" type="checkbox"<?php checked($jobvalue['backupuploads'],true,true);?> name="backupuploads" value="1"/> <?php _e('Blog Uploads','backwpup');?></b><br />
145
- <div style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; width:90%; margin:2px; overflow:auto;">
146
- <?PHP
147
- echo '<i>'.__('Exclude:','backwpup').'</i><br />';
148
- $folder=untrailingslashit(backwpup_get_upload_dir());
149
- if ( $dir = @opendir( $folder ) ) {
150
- while (($file = readdir( $dir ) ) !== false ) {
151
- if ( !in_array($file, array('.', '..','.svn')) and is_dir($folder.'/'.$file) and !in_array($folder.'/'.$file,backwpup_get_exclude_wp_dirs($folder)))
152
- echo '<nobr><input class="checkbox" type="checkbox"'.checked(in_array($folder.'/'.$file.'/',$jobvalue['backupuploadsexcludedirs']),true,false).' name="backupuploadsexcludedirs[]" value="'.$folder.'/'.$file.'/"/> '.$file.'</nobr><br />';
153
- }
154
- @closedir( $dir );
155
- }
156
- ?>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
157
  </div>
 
 
 
 
 
 
 
 
158
  </div>
159
  </div>
160
- <br />&nbsp;<br />
161
- <b><?PHP _e('Include Folders to Backup:','backwpup'); ?></b><br />
162
- <?PHP _e('Example:','backwpup'); ?> <?PHP echo str_replace('\\','/',ABSPATH); ?>,...<br />
163
- <input name="dirinclude" id="dirinclude" type="text" value="<?PHP echo $jobvalue['dirinclude'];?>" class="large-text" /><br />
164
- <br />
165
- <b><?PHP _e('Exclude Files/Folders from Backup:','backwpup'); ?></b><br />
166
- <?PHP _e('Example:','backwpup'); ?> /logs/,.log,.tmp,/temp/,....<br />
167
- <input name="fileexclude" id="fileexclude" type="text" value="<?PHP echo $jobvalue['fileexclude'];?>" class="large-text" /><br />
168
  </div>
169
  </div>
170
-
171
- <?php do_meta_boxes($current_screen->id, 'normal', $jobvalue); ?>
172
-
173
- <?php do_meta_boxes($current_screen->id, 'advanced', $jobvalue); ?>
174
-
175
  </div>
176
- </div>
177
- </div>
178
 
179
  </form>
180
  </div>
19
  $todo=explode('+',$jobvalue['type']);
20
  $dests=explode(',',strtoupper(BACKWPUP_DESTS));
21
  ?>
22
+ <div class="wrap columns-<?php echo (int) $screen_layout_columns ? (int) $screen_layout_columns : 'auto'; ?>">
23
  <?php
24
  screen_icon();
25
  echo "<h2>".esc_html( __('BackWPup Job Settings', 'backwpup'))."&nbsp;<a href=\"".wp_nonce_url(backwpup_admin_url('admin.php').'?page=backwpupeditjob', 'edit-job')."\" class=\"add-new-h2\">".esc_html__('Add New','backwpup')."</a></h2>";
30
  <?php endif; ?>
31
 
32
  <form name="editjob" id="editjob" method="post" action="<?PHP echo backwpup_admin_url('admin.php').'?page=backwpupeditjob';?>">
33
+ <input type="hidden" name="jobid" value="<?PHP echo $jobvalue['jobid'];?>" />
34
+ <?php wp_nonce_field('edit-job'); ?>
35
+ <?php wp_nonce_field('closedpostboxes', 'closedpostboxesnonce', false ); ?>
36
+ <?php wp_nonce_field('meta-box-order', 'meta-box-order-nonce', false ); ?>
37
+ <?php wp_nonce_field('backwpupeditjob_ajax_nonce', 'backwpupeditjobajaxnonce', false ); ?>
38
+ <div id="poststuff">
39
+ <?php if (function_exists('wp_get_themes')) { ?>
40
+ <div id="post-body" class="metabox-holder columns-<?php echo 1 == $screen_layout_columns ? '1' : '2'; ?>">
41
+ <div id="post-body-content">
42
+
43
+ <div id="titlediv">
44
+ <div id="titlewrap">
45
+ <label class="hide-if-no-js" style="visibility:hidden" id="title-prompt-text" for="title"><?php _e( 'Enter Job name here', 'backwpup' ); ?></label>
46
+ <input type="text" name="name" size="30" tabindex="1" value="<?php echo $jobvalue['name'];?>" id="title" autocomplete="off" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
47
  </div>
48
  </div>
49
+
 
50
  </div>
 
51
 
52
+ <div id="postbox-container-1" class="postbox-container">
53
+
54
+ <?php do_meta_boxes($current_screen->id, 'side', $jobvalue); ?>
55
+
56
+ </div>
57
+
58
+ <div id="postbox-container-2" class="postbox-container">
59
+
60
+ <?php } else { //for wp version older 3.4?>
61
+ <div id="poststuff" class="metabox-holder<?php echo 2 == $screen_layout_columns ? ' has-right-sidebar' : ''; ?>">
62
+ <div id="side-info-column" class="inner-sidebar">
63
+ <?php do_meta_boxes($current_screen->id, 'side', $jobvalue); ?>
64
+ </div>
65
+
66
+ <div id="post-body">
67
+ <div id="post-body-content">
68
+
69
+ <div id="titlediv">
70
+ <div id="titlewrap">
71
+ <label class="hide-if-no-js" style="visibility:hidden" id="title-prompt-text" for="title"><?PHP _e('Enter Job name here','backwpup'); ?></label>
72
+ <input type="text" name="name" size="30" tabindex="1" value="<?PHP echo $jobvalue['name'];?>" id="title" autocomplete="off" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
73
  </div>
74
  </div>
75
+ <?php } ?>
76
+ <div id="databasejobs" class="stuffbox" <?PHP if (!in_array("CHECK",$todo) and !in_array("DB",$todo) and !in_array("OPTIMIZE",$todo)) echo 'style="display:none;"';?>>
77
+ <h3><label for="dbtables"><?PHP _e('Database Jobs','backwpup'); ?></label></h3>
78
+ <div class="inside">
79
+ <div>
80
+ <b><?PHP _e('Database tables to use:','backwpup'); ?></b>
81
+ <div id="dbtables">
82
+ <?php
83
+ $tables=$wpdb->get_col('SHOW TABLES FROM `'.DB_NAME.'`');
84
+ foreach ($tables as $table) {
85
+ echo ' <input class="checkbox" type="checkbox"'.checked(!in_array($table,$jobvalue['dbexclude']),true,false).' name="jobtabs[]" value="'.base64_encode($table).'"/> '.$table.'<br />';
86
  }
87
+ ?>
88
+ </div>
 
89
  </div>
90
+ <span id="dbshortinsert" <?PHP if (!in_array("DB",$todo)) echo 'style="display:none;"';?>><input class="checkbox" type="checkbox"<?php checked($jobvalue['dbshortinsert'],true,true);?> name="dbshortinsert" value="1"/> <?php _e('Use short INSERTs instead of full (with keys)','backwpup');?><br /></span>
91
+ <input class="checkbox" type="checkbox"<?php checked($jobvalue['maintenance'],true,true);?> name="maintenance" value="1"/> <?php _e('Set Blog Maintenance Mode on Database Operations','backwpup');?><br />
92
  </div>
93
+ </div>
94
+
95
+ <div id="filebackup" class="stuffbox" <?PHP if (!in_array("FILE",$todo)) echo 'style="display:none;"';?>>
96
+ <h3><label for="backuproot"><?PHP _e('File Backup','backwpup'); ?></label></h3>
97
+ <div class="inside">
98
+ <b><?PHP _e('Blog Folders to Backup:','backwpup'); ?></b><br />&nbsp;<br />
99
+ <div>
100
+ <div style="width:20%; float: left;">
101
+ &nbsp;<b><input class="checkbox" type="checkbox"<?php checked($jobvalue['backuproot'],true,true);?> name="backuproot" value="1"/> <?php _e('root','backwpup');?></b><br />
102
+ <div style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; width:90%; margin:2px; overflow:auto;">
103
+ <?PHP
104
+ echo '<i>'.__('Exclude:','backwpup').'</i><br />';
105
+ $folder=untrailingslashit(str_replace('\\','/',ABSPATH));
106
+ if ( $dir = @opendir( $folder ) ) {
107
+ while (($file = readdir( $dir ) ) !== false ) {
108
+ if ( !in_array($file, array('.', '..','.svn')) and is_dir($folder.'/'.$file) and !in_array($folder.'/'.$file.'/',backwpup_get_exclude_wp_dirs($folder)))
109
+ echo '<nobr><input class="checkbox" type="checkbox"'.checked(in_array($folder.'/'.$file.'/',$jobvalue['backuprootexcludedirs']),true,false).' name="backuprootexcludedirs[]" value="'.$folder.'/'.$file.'/"/> '.$file.'</nobr><br />';
110
+ }
111
+ @closedir( $dir );
112
+ }
113
+ ?>
114
+ </div>
115
+ </div>
116
+ <div style="width:20%;float: left;">
117
+ &nbsp;<b><input class="checkbox" type="checkbox"<?php checked($jobvalue['backupcontent'],true,true);?> name="backupcontent" value="1"/> <?php _e('Content','backwpup');?></b><br />
118
+ <div style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; width:90%; margin:2px; overflow:auto;">
119
+ <?PHP
120
+ echo '<i>'.__('Exclude:','backwpup').'</i><br />';
121
+ $folder=untrailingslashit(str_replace('\\','/',WP_CONTENT_DIR));
122
+ if ( $dir = @opendir( $folder ) ) {
123
+ while (($file = readdir( $dir ) ) !== false ) {
124
+ if ( !in_array($file, array('.', '..','.svn')) and is_dir($folder.'/'.$file) and !in_array($folder.'/'.$file.'/',backwpup_get_exclude_wp_dirs($folder)))
125
+ echo '<nobr><input class="checkbox" type="checkbox"'.checked(in_array($folder.'/'.$file.'/',$jobvalue['backupcontentexcludedirs']),true,false).' name="backupcontentexcludedirs[]" value="'.$folder.'/'.$file.'/"/> '.$file.'</nobr><br />';
126
+ }
127
+ @closedir( $dir );
128
+ }
129
+ ?>
130
+ </div>
131
+ </div>
132
+ <div style="width:20%; float: left;">
133
+ &nbsp;<b><input class="checkbox" type="checkbox"<?php checked($jobvalue['backupplugins'],true,true);?> name="backupplugins" value="1"/> <?php _e('Plugins','backwpup');?></b><br />
134
+ <div style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; width:90%; margin:2px; overflow:auto;">
135
+ <?PHP
136
+ echo '<i>'.__('Exclude:','backwpup').'</i><br />';
137
+ $folder=untrailingslashit(str_replace('\\','/',WP_PLUGIN_DIR));
138
+ if ( $dir = @opendir( $folder ) ) {
139
+ while (($file = readdir( $dir ) ) !== false ) {
140
+ if ( !in_array($file, array('.', '..','.svn')) and is_dir($folder.'/'.$file) and !in_array($folder.'/'.$file.'/',backwpup_get_exclude_wp_dirs($folder)))
141
+ echo '<nobr><input class="checkbox" type="checkbox"'.checked(in_array($folder.'/'.$file.'/',$jobvalue['backuppluginsexcludedirs']),true,false).' name="backuppluginsexcludedirs[]" value="'.$folder.'/'.$file.'/"/> '.$file.'</nobr><br />';
142
+ }
143
+ @closedir( $dir );
144
+ }
145
+ ?>
146
+ </div>
147
+ </div>
148
+ <div style="width:20%; float: left;">
149
+ &nbsp;<b><input class="checkbox" type="checkbox"<?php checked($jobvalue['backupthemes'],true,true);?> name="backupthemes" value="1"/> <?php _e('Themes','backwpup');?></b><br />
150
+ <div style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; width:90%; margin:2px; overflow:auto;">
151
+ <?PHP
152
+ echo '<i>'.__('Exclude:','backwpup').'</i><br />';
153
+ $folder=untrailingslashit(str_replace('\\','/',trailingslashit(WP_CONTENT_DIR).'themes'));
154
+ if ( $dir = @opendir( $folder ) ) {
155
+ while (($file = readdir( $dir ) ) !== false ) {
156
+ if ( !in_array($file, array('.', '..','.svn')) and is_dir($folder.'/'.$file) and !in_array($folder.'/'.$file.'/',backwpup_get_exclude_wp_dirs($folder)))
157
+ echo '<nobr><input class="checkbox" type="checkbox"'.checked(in_array($folder.'/'.$file.'/',$jobvalue['backupthemesexcludedirs']),true,false).' name="backupthemesexcludedirs[]" value="'.$folder.'/'.$file.'/"/> '.$file.'</nobr><br />';
158
+ }
159
+ @closedir( $dir );
160
+ }
161
+ ?>
162
+ </div>
163
+ </div>
164
+ <div style="width:20%; float: left;">
165
+ &nbsp;<b><input class="checkbox" type="checkbox"<?php checked($jobvalue['backupuploads'],true,true);?> name="backupuploads" value="1"/> <?php _e('Blog Uploads','backwpup');?></b><br />
166
+ <div style="border-color:#CEE1EF; border-style:solid; border-width:2px; height:10em; width:90%; margin:2px; overflow:auto;">
167
+ <?PHP
168
+ echo '<i>'.__('Exclude:','backwpup').'</i><br />';
169
+ $folder=untrailingslashit(backwpup_get_upload_dir());
170
+ if ( $dir = @opendir( $folder ) ) {
171
+ while (($file = readdir( $dir ) ) !== false ) {
172
+ if ( !in_array($file, array('.', '..','.svn')) and is_dir($folder.'/'.$file) and !in_array($folder.'/'.$file,backwpup_get_exclude_wp_dirs($folder)))
173
+ echo '<nobr><input class="checkbox" type="checkbox"'.checked(in_array($folder.'/'.$file.'/',$jobvalue['backupuploadsexcludedirs']),true,false).' name="backupuploadsexcludedirs[]" value="'.$folder.'/'.$file.'/"/> '.$file.'</nobr><br />';
174
+ }
175
+ @closedir( $dir );
176
+ }
177
+ ?>
178
+ </div>
179
+ </div>
180
  </div>
181
+ <br />&nbsp;<br />
182
+ <b><?PHP _e('Include Folders to Backup:','backwpup'); ?></b><br />
183
+ <?PHP _e('Example:','backwpup'); ?> <?PHP echo str_replace('\\','/',ABSPATH); ?>,...<br />
184
+ <input name="dirinclude" id="dirinclude" type="text" value="<?PHP echo $jobvalue['dirinclude'];?>" class="large-text" /><br />
185
+ <br />
186
+ <b><?PHP _e('Exclude Files/Folders from Backup:','backwpup'); ?></b><br />
187
+ <?PHP _e('Example:','backwpup'); ?> /logs/,.log,.tmp,/temp/,....<br />
188
+ <input name="fileexclude" id="fileexclude" type="text" value="<?PHP echo $jobvalue['fileexclude'];?>" class="large-text" /><br />
189
  </div>
190
  </div>
191
+
192
+
193
+ <?php do_meta_boxes( $current_screen->id, 'normal', $jobvalue ); ?>
194
+
195
+ <?php do_meta_boxes( $current_screen->id, 'advanced', $jobvalue ); ?>
196
+
 
 
197
  </div>
198
  </div>
 
 
 
 
 
199
  </div>
 
 
200
 
201
  </form>
202
  </div>
readme.txt CHANGED
@@ -2,9 +2,11 @@
2
  Contributors: danielhuesken
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Q3QSVRSFXBLSE
4
  Tags: backup, database, file, ftp, xml, time, upload, multisite, cloud, dropbox, storage, amazon
5
- Requires at least: 3.2
6
- Tested up to: 3.3.2
7
- Stable tag: 2.1.10
 
 
8
 
9
  WordPress Backup and more...
10
 
@@ -58,6 +60,11 @@ Do backups and more for your WordPress Blog.
58
  4. Backups Manage Page
59
 
60
  == Changelog ==
 
 
 
 
 
61
  = 2.1.10 =
62
  * typo fix
63
  * add robots noindex,nofollow in log header
2
  Contributors: danielhuesken
3
  Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=Q3QSVRSFXBLSE
4
  Tags: backup, database, file, ftp, xml, time, upload, multisite, cloud, dropbox, storage, amazon
5
+ Requires at least: 3.1
6
+ Tested up to: 3.4
7
+ Stable tag: 2.1.11
8
+ License: GPLv2
9
+ License URI: http://www.gnu.org/licenses/gpl-2.0.html
10
 
11
  WordPress Backup and more...
12
 
60
  4. Backups Manage Page
61
 
62
  == Changelog ==
63
+ = 2.1.11 =
64
+ * fixed bug in contextual help
65
+ * Updated AWS lib to 1.5.6
66
+ * changes for WordPress 3.4
67
+
68
  = 2.1.10 =
69
  * typo fix
70
  * add robots noindex,nofollow in log header