googlecloud 0.0.4 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
Files changed (768) hide show
  1. data.tar.gz.sig +0 -0
  2. data/CHANGELOG +4 -0
  3. data/Makefile +4 -0
  4. data/Manifest +760 -1
  5. data/bin/gcloud +7 -0
  6. data/bin/{gcutil → gcutil.symlink} +0 -0
  7. data/bin/gsutil-symlink +377 -0
  8. data/googlecloud.gemspec +5 -5
  9. data/packages/gsutil/CHECKSUM +1 -0
  10. data/packages/gsutil/COPYING +202 -0
  11. data/packages/gsutil/LICENSE.third_party +295 -0
  12. data/packages/gsutil/MANIFEST.in +5 -0
  13. data/packages/gsutil/README +38 -0
  14. data/packages/gsutil/README.pkg +49 -0
  15. data/packages/gsutil/ReleaseNotes.txt +780 -0
  16. data/packages/gsutil/VERSION +1 -0
  17. data/packages/gsutil/boto/Changelog.rst +35 -0
  18. data/packages/gsutil/boto/LICENSE +18 -0
  19. data/packages/gsutil/boto/MANIFEST.in +12 -0
  20. data/packages/gsutil/boto/README.rst +163 -0
  21. data/packages/gsutil/boto/bin/asadmin +290 -0
  22. data/packages/gsutil/boto/bin/bundle_image +27 -0
  23. data/packages/gsutil/boto/bin/cfadmin +108 -0
  24. data/packages/gsutil/boto/bin/cq +89 -0
  25. data/packages/gsutil/boto/bin/cwutil +140 -0
  26. data/packages/gsutil/boto/bin/elbadmin +284 -0
  27. data/packages/gsutil/boto/bin/fetch_file +43 -0
  28. data/packages/gsutil/boto/bin/glacier +154 -0
  29. data/packages/gsutil/boto/bin/instance_events +145 -0
  30. data/packages/gsutil/boto/bin/kill_instance +35 -0
  31. data/packages/gsutil/boto/bin/launch_instance +252 -0
  32. data/packages/gsutil/boto/bin/list_instances +90 -0
  33. data/packages/gsutil/boto/bin/lss3 +77 -0
  34. data/packages/gsutil/boto/bin/mturk +465 -0
  35. data/packages/gsutil/boto/bin/pyami_sendmail +52 -0
  36. data/packages/gsutil/boto/bin/route53 +205 -0
  37. data/packages/gsutil/boto/bin/s3put +374 -0
  38. data/packages/gsutil/boto/bin/sdbadmin +194 -0
  39. data/packages/gsutil/boto/bin/taskadmin +116 -0
  40. data/packages/gsutil/boto/boto/__init__.py +793 -0
  41. data/packages/gsutil/boto/boto/__init__.pyc +0 -0
  42. data/packages/gsutil/boto/boto/auth.py +682 -0
  43. data/packages/gsutil/boto/boto/auth.pyc +0 -0
  44. data/packages/gsutil/boto/boto/auth_handler.py +58 -0
  45. data/packages/gsutil/boto/boto/auth_handler.pyc +0 -0
  46. data/packages/gsutil/boto/boto/beanstalk/__init__.py +65 -0
  47. data/packages/gsutil/boto/boto/beanstalk/exception.py +64 -0
  48. data/packages/gsutil/boto/boto/beanstalk/layer1.py +1153 -0
  49. data/packages/gsutil/boto/boto/beanstalk/response.py +703 -0
  50. data/packages/gsutil/boto/boto/beanstalk/wrapper.py +29 -0
  51. data/packages/gsutil/boto/boto/cacerts/__init__.py +22 -0
  52. data/packages/gsutil/boto/boto/cacerts/__init__.pyc +0 -0
  53. data/packages/gsutil/boto/boto/cacerts/cacerts.txt +633 -0
  54. data/packages/gsutil/boto/boto/cloudformation/__init__.py +68 -0
  55. data/packages/gsutil/boto/boto/cloudformation/connection.py +364 -0
  56. data/packages/gsutil/boto/boto/cloudformation/stack.py +360 -0
  57. data/packages/gsutil/boto/boto/cloudformation/template.py +43 -0
  58. data/packages/gsutil/boto/boto/cloudfront/__init__.py +324 -0
  59. data/packages/gsutil/boto/boto/cloudfront/distribution.py +745 -0
  60. data/packages/gsutil/boto/boto/cloudfront/exception.py +26 -0
  61. data/packages/gsutil/boto/boto/cloudfront/identity.py +122 -0
  62. data/packages/gsutil/boto/boto/cloudfront/invalidation.py +216 -0
  63. data/packages/gsutil/boto/boto/cloudfront/logging.py +38 -0
  64. data/packages/gsutil/boto/boto/cloudfront/object.py +48 -0
  65. data/packages/gsutil/boto/boto/cloudfront/origin.py +150 -0
  66. data/packages/gsutil/boto/boto/cloudfront/signers.py +60 -0
  67. data/packages/gsutil/boto/boto/cloudsearch/__init__.py +45 -0
  68. data/packages/gsutil/boto/boto/cloudsearch/document.py +265 -0
  69. data/packages/gsutil/boto/boto/cloudsearch/domain.py +394 -0
  70. data/packages/gsutil/boto/boto/cloudsearch/layer1.py +738 -0
  71. data/packages/gsutil/boto/boto/cloudsearch/layer2.py +67 -0
  72. data/packages/gsutil/boto/boto/cloudsearch/optionstatus.py +248 -0
  73. data/packages/gsutil/boto/boto/cloudsearch/search.py +365 -0
  74. data/packages/gsutil/boto/boto/cloudsearch/sourceattribute.py +75 -0
  75. data/packages/gsutil/boto/boto/compat.py +28 -0
  76. data/packages/gsutil/boto/boto/compat.pyc +0 -0
  77. data/packages/gsutil/boto/boto/connection.py +1081 -0
  78. data/packages/gsutil/boto/boto/connection.pyc +0 -0
  79. data/packages/gsutil/boto/boto/contrib/__init__.py +22 -0
  80. data/packages/gsutil/boto/boto/contrib/ymlmessage.py +52 -0
  81. data/packages/gsutil/boto/boto/core/README +58 -0
  82. data/packages/gsutil/boto/boto/core/__init__.py +23 -0
  83. data/packages/gsutil/boto/boto/core/auth.py +78 -0
  84. data/packages/gsutil/boto/boto/core/credentials.py +154 -0
  85. data/packages/gsutil/boto/boto/core/dictresponse.py +178 -0
  86. data/packages/gsutil/boto/boto/core/service.py +67 -0
  87. data/packages/gsutil/boto/boto/datapipeline/__init__.py +0 -0
  88. data/packages/gsutil/boto/boto/datapipeline/exceptions.py +42 -0
  89. data/packages/gsutil/boto/boto/datapipeline/layer1.py +546 -0
  90. data/packages/gsutil/boto/boto/dynamodb/__init__.py +66 -0
  91. data/packages/gsutil/boto/boto/dynamodb/batch.py +262 -0
  92. data/packages/gsutil/boto/boto/dynamodb/condition.py +170 -0
  93. data/packages/gsutil/boto/boto/dynamodb/exceptions.py +64 -0
  94. data/packages/gsutil/boto/boto/dynamodb/item.py +196 -0
  95. data/packages/gsutil/boto/boto/dynamodb/layer1.py +575 -0
  96. data/packages/gsutil/boto/boto/dynamodb/layer2.py +798 -0
  97. data/packages/gsutil/boto/boto/dynamodb/schema.py +112 -0
  98. data/packages/gsutil/boto/boto/dynamodb/table.py +540 -0
  99. data/packages/gsutil/boto/boto/dynamodb/types.py +326 -0
  100. data/packages/gsutil/boto/boto/ec2/__init__.py +96 -0
  101. data/packages/gsutil/boto/boto/ec2/address.py +103 -0
  102. data/packages/gsutil/boto/boto/ec2/autoscale/__init__.py +781 -0
  103. data/packages/gsutil/boto/boto/ec2/autoscale/activity.py +74 -0
  104. data/packages/gsutil/boto/boto/ec2/autoscale/group.py +337 -0
  105. data/packages/gsutil/boto/boto/ec2/autoscale/instance.py +60 -0
  106. data/packages/gsutil/boto/boto/ec2/autoscale/launchconfig.py +209 -0
  107. data/packages/gsutil/boto/boto/ec2/autoscale/policy.py +166 -0
  108. data/packages/gsutil/boto/boto/ec2/autoscale/request.py +38 -0
  109. data/packages/gsutil/boto/boto/ec2/autoscale/scheduled.py +60 -0
  110. data/packages/gsutil/boto/boto/ec2/autoscale/tag.py +84 -0
  111. data/packages/gsutil/boto/boto/ec2/blockdevicemapping.py +141 -0
  112. data/packages/gsutil/boto/boto/ec2/bundleinstance.py +78 -0
  113. data/packages/gsutil/boto/boto/ec2/buyreservation.py +84 -0
  114. data/packages/gsutil/boto/boto/ec2/cloudwatch/__init__.py +603 -0
  115. data/packages/gsutil/boto/boto/ec2/cloudwatch/alarm.py +316 -0
  116. data/packages/gsutil/boto/boto/ec2/cloudwatch/datapoint.py +40 -0
  117. data/packages/gsutil/boto/boto/ec2/cloudwatch/dimension.py +38 -0
  118. data/packages/gsutil/boto/boto/ec2/cloudwatch/listelement.py +31 -0
  119. data/packages/gsutil/boto/boto/ec2/cloudwatch/metric.py +175 -0
  120. data/packages/gsutil/boto/boto/ec2/connection.py +3409 -0
  121. data/packages/gsutil/boto/boto/ec2/ec2object.py +107 -0
  122. data/packages/gsutil/boto/boto/ec2/elb/__init__.py +553 -0
  123. data/packages/gsutil/boto/boto/ec2/elb/healthcheck.py +89 -0
  124. data/packages/gsutil/boto/boto/ec2/elb/instancestate.py +62 -0
  125. data/packages/gsutil/boto/boto/ec2/elb/listelement.py +36 -0
  126. data/packages/gsutil/boto/boto/ec2/elb/listener.py +75 -0
  127. data/packages/gsutil/boto/boto/ec2/elb/loadbalancer.py +324 -0
  128. data/packages/gsutil/boto/boto/ec2/elb/policies.py +89 -0
  129. data/packages/gsutil/boto/boto/ec2/elb/securitygroup.py +38 -0
  130. data/packages/gsutil/boto/boto/ec2/group.py +39 -0
  131. data/packages/gsutil/boto/boto/ec2/image.py +350 -0
  132. data/packages/gsutil/boto/boto/ec2/instance.py +661 -0
  133. data/packages/gsutil/boto/boto/ec2/instanceinfo.py +51 -0
  134. data/packages/gsutil/boto/boto/ec2/instancestatus.py +207 -0
  135. data/packages/gsutil/boto/boto/ec2/keypair.py +113 -0
  136. data/packages/gsutil/boto/boto/ec2/launchspecification.py +105 -0
  137. data/packages/gsutil/boto/boto/ec2/networkinterface.py +247 -0
  138. data/packages/gsutil/boto/boto/ec2/placementgroup.py +51 -0
  139. data/packages/gsutil/boto/boto/ec2/regioninfo.py +34 -0
  140. data/packages/gsutil/boto/boto/ec2/reservedinstance.py +227 -0
  141. data/packages/gsutil/boto/boto/ec2/securitygroup.py +357 -0
  142. data/packages/gsutil/boto/boto/ec2/snapshot.py +170 -0
  143. data/packages/gsutil/boto/boto/ec2/spotdatafeedsubscription.py +63 -0
  144. data/packages/gsutil/boto/boto/ec2/spotinstancerequest.py +188 -0
  145. data/packages/gsutil/boto/boto/ec2/spotpricehistory.py +55 -0
  146. data/packages/gsutil/boto/boto/ec2/tag.py +87 -0
  147. data/packages/gsutil/boto/boto/ec2/vmtype.py +58 -0
  148. data/packages/gsutil/boto/boto/ec2/volume.py +293 -0
  149. data/packages/gsutil/boto/boto/ec2/volumestatus.py +200 -0
  150. data/packages/gsutil/boto/boto/ec2/zone.py +80 -0
  151. data/packages/gsutil/boto/boto/ecs/__init__.py +90 -0
  152. data/packages/gsutil/boto/boto/ecs/item.py +153 -0
  153. data/packages/gsutil/boto/boto/elasticache/__init__.py +62 -0
  154. data/packages/gsutil/boto/boto/elasticache/layer1.py +1252 -0
  155. data/packages/gsutil/boto/boto/elastictranscoder/__init__.py +62 -0
  156. data/packages/gsutil/boto/boto/elastictranscoder/exceptions.py +46 -0
  157. data/packages/gsutil/boto/boto/elastictranscoder/layer1.py +509 -0
  158. data/packages/gsutil/boto/boto/emr/__init__.py +73 -0
  159. data/packages/gsutil/boto/boto/emr/bootstrap_action.py +44 -0
  160. data/packages/gsutil/boto/boto/emr/connection.py +531 -0
  161. data/packages/gsutil/boto/boto/emr/emrobject.py +176 -0
  162. data/packages/gsutil/boto/boto/emr/instance_group.py +43 -0
  163. data/packages/gsutil/boto/boto/emr/step.py +281 -0
  164. data/packages/gsutil/boto/boto/exception.py +476 -0
  165. data/packages/gsutil/boto/boto/exception.pyc +0 -0
  166. data/packages/gsutil/boto/boto/file/README +49 -0
  167. data/packages/gsutil/boto/boto/file/__init__.py +28 -0
  168. data/packages/gsutil/boto/boto/file/bucket.py +112 -0
  169. data/packages/gsutil/boto/boto/file/connection.py +33 -0
  170. data/packages/gsutil/boto/boto/file/key.py +199 -0
  171. data/packages/gsutil/boto/boto/file/simpleresultset.py +30 -0
  172. data/packages/gsutil/boto/boto/fps/__init__.py +21 -0
  173. data/packages/gsutil/boto/boto/fps/connection.py +369 -0
  174. data/packages/gsutil/boto/boto/fps/exception.py +344 -0
  175. data/packages/gsutil/boto/boto/fps/response.py +175 -0
  176. data/packages/gsutil/boto/boto/glacier/__init__.py +57 -0
  177. data/packages/gsutil/boto/boto/glacier/concurrent.py +409 -0
  178. data/packages/gsutil/boto/boto/glacier/exceptions.py +58 -0
  179. data/packages/gsutil/boto/boto/glacier/job.py +152 -0
  180. data/packages/gsutil/boto/boto/glacier/layer1.py +637 -0
  181. data/packages/gsutil/boto/boto/glacier/layer2.py +93 -0
  182. data/packages/gsutil/boto/boto/glacier/response.py +48 -0
  183. data/packages/gsutil/boto/boto/glacier/utils.py +163 -0
  184. data/packages/gsutil/boto/boto/glacier/vault.py +387 -0
  185. data/packages/gsutil/boto/boto/glacier/writer.py +242 -0
  186. data/packages/gsutil/boto/boto/gs/__init__.py +22 -0
  187. data/packages/gsutil/boto/boto/gs/__init__.pyc +0 -0
  188. data/packages/gsutil/boto/boto/gs/acl.py +304 -0
  189. data/packages/gsutil/boto/boto/gs/acl.pyc +0 -0
  190. data/packages/gsutil/boto/boto/gs/bucket.py +870 -0
  191. data/packages/gsutil/boto/boto/gs/bucket.pyc +0 -0
  192. data/packages/gsutil/boto/boto/gs/bucketlistresultset.py +64 -0
  193. data/packages/gsutil/boto/boto/gs/bucketlistresultset.pyc +0 -0
  194. data/packages/gsutil/boto/boto/gs/connection.py +103 -0
  195. data/packages/gsutil/boto/boto/gs/connection.pyc +0 -0
  196. data/packages/gsutil/boto/boto/gs/cors.py +169 -0
  197. data/packages/gsutil/boto/boto/gs/cors.pyc +0 -0
  198. data/packages/gsutil/boto/boto/gs/key.py +704 -0
  199. data/packages/gsutil/boto/boto/gs/key.pyc +0 -0
  200. data/packages/gsutil/boto/boto/gs/resumable_upload_handler.py +659 -0
  201. data/packages/gsutil/boto/boto/gs/resumable_upload_handler.pyc +0 -0
  202. data/packages/gsutil/boto/boto/gs/user.py +54 -0
  203. data/packages/gsutil/boto/boto/gs/user.pyc +0 -0
  204. data/packages/gsutil/boto/boto/handler.py +44 -0
  205. data/packages/gsutil/boto/boto/handler.pyc +0 -0
  206. data/packages/gsutil/boto/boto/https_connection.py +124 -0
  207. data/packages/gsutil/boto/boto/https_connection.pyc +0 -0
  208. data/packages/gsutil/boto/boto/iam/__init__.py +74 -0
  209. data/packages/gsutil/boto/boto/iam/connection.py +1317 -0
  210. data/packages/gsutil/boto/boto/iam/summarymap.py +42 -0
  211. data/packages/gsutil/boto/boto/jsonresponse.py +163 -0
  212. data/packages/gsutil/boto/boto/jsonresponse.pyc +0 -0
  213. data/packages/gsutil/boto/boto/manage/__init__.py +23 -0
  214. data/packages/gsutil/boto/boto/manage/cmdshell.py +241 -0
  215. data/packages/gsutil/boto/boto/manage/propget.py +64 -0
  216. data/packages/gsutil/boto/boto/manage/server.py +556 -0
  217. data/packages/gsutil/boto/boto/manage/task.py +175 -0
  218. data/packages/gsutil/boto/boto/manage/test_manage.py +34 -0
  219. data/packages/gsutil/boto/boto/manage/volume.py +420 -0
  220. data/packages/gsutil/boto/boto/mashups/__init__.py +23 -0
  221. data/packages/gsutil/boto/boto/mashups/interactive.py +97 -0
  222. data/packages/gsutil/boto/boto/mashups/iobject.py +115 -0
  223. data/packages/gsutil/boto/boto/mashups/order.py +211 -0
  224. data/packages/gsutil/boto/boto/mashups/server.py +395 -0
  225. data/packages/gsutil/boto/boto/mturk/__init__.py +23 -0
  226. data/packages/gsutil/boto/boto/mturk/connection.py +1027 -0
  227. data/packages/gsutil/boto/boto/mturk/layoutparam.py +55 -0
  228. data/packages/gsutil/boto/boto/mturk/notification.py +103 -0
  229. data/packages/gsutil/boto/boto/mturk/price.py +48 -0
  230. data/packages/gsutil/boto/boto/mturk/qualification.py +137 -0
  231. data/packages/gsutil/boto/boto/mturk/question.py +455 -0
  232. data/packages/gsutil/boto/boto/mws/__init__.py +21 -0
  233. data/packages/gsutil/boto/boto/mws/connection.py +813 -0
  234. data/packages/gsutil/boto/boto/mws/exception.py +75 -0
  235. data/packages/gsutil/boto/boto/mws/response.py +655 -0
  236. data/packages/gsutil/boto/boto/plugin.py +90 -0
  237. data/packages/gsutil/boto/boto/plugin.pyc +0 -0
  238. data/packages/gsutil/boto/boto/provider.py +337 -0
  239. data/packages/gsutil/boto/boto/provider.pyc +0 -0
  240. data/packages/gsutil/boto/boto/pyami/__init__.py +22 -0
  241. data/packages/gsutil/boto/boto/pyami/__init__.pyc +0 -0
  242. data/packages/gsutil/boto/boto/pyami/bootstrap.py +134 -0
  243. data/packages/gsutil/boto/boto/pyami/config.py +229 -0
  244. data/packages/gsutil/boto/boto/pyami/config.pyc +0 -0
  245. data/packages/gsutil/boto/boto/pyami/copybot.cfg +60 -0
  246. data/packages/gsutil/boto/boto/pyami/copybot.py +97 -0
  247. data/packages/gsutil/boto/boto/pyami/helloworld.py +28 -0
  248. data/packages/gsutil/boto/boto/pyami/installers/__init__.py +64 -0
  249. data/packages/gsutil/boto/boto/pyami/installers/ubuntu/__init__.py +22 -0
  250. data/packages/gsutil/boto/boto/pyami/installers/ubuntu/apache.py +43 -0
  251. data/packages/gsutil/boto/boto/pyami/installers/ubuntu/ebs.py +238 -0
  252. data/packages/gsutil/boto/boto/pyami/installers/ubuntu/installer.py +96 -0
  253. data/packages/gsutil/boto/boto/pyami/installers/ubuntu/mysql.py +109 -0
  254. data/packages/gsutil/boto/boto/pyami/installers/ubuntu/trac.py +139 -0
  255. data/packages/gsutil/boto/boto/pyami/launch_ami.py +178 -0
  256. data/packages/gsutil/boto/boto/pyami/scriptbase.py +44 -0
  257. data/packages/gsutil/boto/boto/pyami/startup.py +60 -0
  258. data/packages/gsutil/boto/boto/rds/__init__.py +1194 -0
  259. data/packages/gsutil/boto/boto/rds/dbinstance.py +357 -0
  260. data/packages/gsutil/boto/boto/rds/dbsecuritygroup.py +177 -0
  261. data/packages/gsutil/boto/boto/rds/dbsnapshot.py +108 -0
  262. data/packages/gsutil/boto/boto/rds/event.py +49 -0
  263. data/packages/gsutil/boto/boto/rds/parametergroup.py +201 -0
  264. data/packages/gsutil/boto/boto/rds/regioninfo.py +32 -0
  265. data/packages/gsutil/boto/boto/regioninfo.py +63 -0
  266. data/packages/gsutil/boto/boto/regioninfo.pyc +0 -0
  267. data/packages/gsutil/boto/boto/resultset.py +169 -0
  268. data/packages/gsutil/boto/boto/resultset.pyc +0 -0
  269. data/packages/gsutil/boto/boto/roboto/__init__.py +1 -0
  270. data/packages/gsutil/boto/boto/roboto/awsqueryrequest.py +504 -0
  271. data/packages/gsutil/boto/boto/roboto/awsqueryservice.py +121 -0
  272. data/packages/gsutil/boto/boto/roboto/param.py +147 -0
  273. data/packages/gsutil/boto/boto/route53/__init__.py +75 -0
  274. data/packages/gsutil/boto/boto/route53/connection.py +403 -0
  275. data/packages/gsutil/boto/boto/route53/exception.py +27 -0
  276. data/packages/gsutil/boto/boto/route53/hostedzone.py +56 -0
  277. data/packages/gsutil/boto/boto/route53/record.py +306 -0
  278. data/packages/gsutil/boto/boto/route53/status.py +42 -0
  279. data/packages/gsutil/boto/boto/route53/zone.py +412 -0
  280. data/packages/gsutil/boto/boto/s3/__init__.py +84 -0
  281. data/packages/gsutil/boto/boto/s3/__init__.pyc +0 -0
  282. data/packages/gsutil/boto/boto/s3/acl.py +164 -0
  283. data/packages/gsutil/boto/boto/s3/acl.pyc +0 -0
  284. data/packages/gsutil/boto/boto/s3/bucket.py +1634 -0
  285. data/packages/gsutil/boto/boto/s3/bucket.pyc +0 -0
  286. data/packages/gsutil/boto/boto/s3/bucketlistresultset.py +139 -0
  287. data/packages/gsutil/boto/boto/s3/bucketlistresultset.pyc +0 -0
  288. data/packages/gsutil/boto/boto/s3/bucketlogging.py +83 -0
  289. data/packages/gsutil/boto/boto/s3/bucketlogging.pyc +0 -0
  290. data/packages/gsutil/boto/boto/s3/connection.py +540 -0
  291. data/packages/gsutil/boto/boto/s3/connection.pyc +0 -0
  292. data/packages/gsutil/boto/boto/s3/cors.py +210 -0
  293. data/packages/gsutil/boto/boto/s3/cors.pyc +0 -0
  294. data/packages/gsutil/boto/boto/s3/deletemarker.py +55 -0
  295. data/packages/gsutil/boto/boto/s3/deletemarker.pyc +0 -0
  296. data/packages/gsutil/boto/boto/s3/key.py +1712 -0
  297. data/packages/gsutil/boto/boto/s3/key.pyc +0 -0
  298. data/packages/gsutil/boto/boto/s3/keyfile.py +134 -0
  299. data/packages/gsutil/boto/boto/s3/keyfile.pyc +0 -0
  300. data/packages/gsutil/boto/boto/s3/lifecycle.py +231 -0
  301. data/packages/gsutil/boto/boto/s3/lifecycle.pyc +0 -0
  302. data/packages/gsutil/boto/boto/s3/multidelete.py +138 -0
  303. data/packages/gsutil/boto/boto/s3/multidelete.pyc +0 -0
  304. data/packages/gsutil/boto/boto/s3/multipart.py +315 -0
  305. data/packages/gsutil/boto/boto/s3/multipart.pyc +0 -0
  306. data/packages/gsutil/boto/boto/s3/prefix.py +42 -0
  307. data/packages/gsutil/boto/boto/s3/prefix.pyc +0 -0
  308. data/packages/gsutil/boto/boto/s3/resumable_download_handler.py +339 -0
  309. data/packages/gsutil/boto/boto/s3/resumable_download_handler.pyc +0 -0
  310. data/packages/gsutil/boto/boto/s3/tagging.py +71 -0
  311. data/packages/gsutil/boto/boto/s3/tagging.pyc +0 -0
  312. data/packages/gsutil/boto/boto/s3/user.py +49 -0
  313. data/packages/gsutil/boto/boto/s3/user.pyc +0 -0
  314. data/packages/gsutil/boto/boto/s3/website.py +237 -0
  315. data/packages/gsutil/boto/boto/s3/website.pyc +0 -0
  316. data/packages/gsutil/boto/boto/sdb/__init__.py +67 -0
  317. data/packages/gsutil/boto/boto/sdb/connection.py +617 -0
  318. data/packages/gsutil/boto/boto/sdb/db/__init__.py +20 -0
  319. data/packages/gsutil/boto/boto/sdb/db/blob.py +75 -0
  320. data/packages/gsutil/boto/boto/sdb/db/key.py +59 -0
  321. data/packages/gsutil/boto/boto/sdb/db/manager/__init__.py +85 -0
  322. data/packages/gsutil/boto/boto/sdb/db/manager/sdbmanager.py +732 -0
  323. data/packages/gsutil/boto/boto/sdb/db/manager/xmlmanager.py +517 -0
  324. data/packages/gsutil/boto/boto/sdb/db/model.py +294 -0
  325. data/packages/gsutil/boto/boto/sdb/db/property.py +703 -0
  326. data/packages/gsutil/boto/boto/sdb/db/query.py +85 -0
  327. data/packages/gsutil/boto/boto/sdb/db/sequence.py +226 -0
  328. data/packages/gsutil/boto/boto/sdb/db/test_db.py +231 -0
  329. data/packages/gsutil/boto/boto/sdb/domain.py +377 -0
  330. data/packages/gsutil/boto/boto/sdb/item.py +181 -0
  331. data/packages/gsutil/boto/boto/sdb/queryresultset.py +92 -0
  332. data/packages/gsutil/boto/boto/sdb/regioninfo.py +32 -0
  333. data/packages/gsutil/boto/boto/services/__init__.py +23 -0
  334. data/packages/gsutil/boto/boto/services/bs.py +179 -0
  335. data/packages/gsutil/boto/boto/services/message.py +58 -0
  336. data/packages/gsutil/boto/boto/services/result.py +136 -0
  337. data/packages/gsutil/boto/boto/services/service.py +161 -0
  338. data/packages/gsutil/boto/boto/services/servicedef.py +91 -0
  339. data/packages/gsutil/boto/boto/services/sonofmmm.cfg +43 -0
  340. data/packages/gsutil/boto/boto/services/sonofmmm.py +81 -0
  341. data/packages/gsutil/boto/boto/services/submit.py +88 -0
  342. data/packages/gsutil/boto/boto/ses/__init__.py +54 -0
  343. data/packages/gsutil/boto/boto/ses/connection.py +521 -0
  344. data/packages/gsutil/boto/boto/ses/exceptions.py +77 -0
  345. data/packages/gsutil/boto/boto/sns/__init__.py +78 -0
  346. data/packages/gsutil/boto/boto/sns/connection.py +431 -0
  347. data/packages/gsutil/boto/boto/sqs/__init__.py +56 -0
  348. data/packages/gsutil/boto/boto/sqs/attributes.py +46 -0
  349. data/packages/gsutil/boto/boto/sqs/batchresults.py +95 -0
  350. data/packages/gsutil/boto/boto/sqs/connection.py +417 -0
  351. data/packages/gsutil/boto/boto/sqs/jsonmessage.py +43 -0
  352. data/packages/gsutil/boto/boto/sqs/message.py +253 -0
  353. data/packages/gsutil/boto/boto/sqs/queue.py +478 -0
  354. data/packages/gsutil/boto/boto/sqs/regioninfo.py +32 -0
  355. data/packages/gsutil/boto/boto/storage_uri.py +835 -0
  356. data/packages/gsutil/boto/boto/storage_uri.pyc +0 -0
  357. data/packages/gsutil/boto/boto/sts/__init__.py +55 -0
  358. data/packages/gsutil/boto/boto/sts/connection.py +207 -0
  359. data/packages/gsutil/boto/boto/sts/credentials.py +215 -0
  360. data/packages/gsutil/boto/boto/swf/__init__.py +60 -0
  361. data/packages/gsutil/boto/boto/swf/exceptions.py +44 -0
  362. data/packages/gsutil/boto/boto/swf/layer1.py +1512 -0
  363. data/packages/gsutil/boto/boto/swf/layer1_decisions.py +287 -0
  364. data/packages/gsutil/boto/boto/swf/layer2.py +342 -0
  365. data/packages/gsutil/boto/boto/utils.py +927 -0
  366. data/packages/gsutil/boto/boto/utils.pyc +0 -0
  367. data/packages/gsutil/boto/boto/vpc/__init__.py +910 -0
  368. data/packages/gsutil/boto/boto/vpc/customergateway.py +54 -0
  369. data/packages/gsutil/boto/boto/vpc/dhcpoptions.py +72 -0
  370. data/packages/gsutil/boto/boto/vpc/internetgateway.py +72 -0
  371. data/packages/gsutil/boto/boto/vpc/routetable.py +109 -0
  372. data/packages/gsutil/boto/boto/vpc/subnet.py +57 -0
  373. data/packages/gsutil/boto/boto/vpc/vpc.py +54 -0
  374. data/packages/gsutil/boto/boto/vpc/vpnconnection.py +60 -0
  375. data/packages/gsutil/boto/boto/vpc/vpngateway.py +83 -0
  376. data/packages/gsutil/boto/docs/BotoCheatSheet.pdf +0 -0
  377. data/packages/gsutil/boto/docs/Makefile +89 -0
  378. data/packages/gsutil/boto/docs/make.bat +113 -0
  379. data/packages/gsutil/boto/docs/source/_templates/layout.html +3 -0
  380. data/packages/gsutil/boto/docs/source/autoscale_tut.rst +220 -0
  381. data/packages/gsutil/boto/docs/source/boto_config_tut.rst +125 -0
  382. data/packages/gsutil/boto/docs/source/boto_theme/static/boto.css_t +239 -0
  383. data/packages/gsutil/boto/docs/source/boto_theme/static/pygments.css +61 -0
  384. data/packages/gsutil/boto/docs/source/boto_theme/theme.conf +3 -0
  385. data/packages/gsutil/boto/docs/source/cloudfront_tut.rst +196 -0
  386. data/packages/gsutil/boto/docs/source/cloudsearch_tut.rst +411 -0
  387. data/packages/gsutil/boto/docs/source/cloudwatch_tut.rst +116 -0
  388. data/packages/gsutil/boto/docs/source/conf.py +32 -0
  389. data/packages/gsutil/boto/docs/source/contributing.rst +204 -0
  390. data/packages/gsutil/boto/docs/source/documentation.rst +59 -0
  391. data/packages/gsutil/boto/docs/source/dynamodb_tut.rst +339 -0
  392. data/packages/gsutil/boto/docs/source/ec2_tut.rst +86 -0
  393. data/packages/gsutil/boto/docs/source/elb_tut.rst +257 -0
  394. data/packages/gsutil/boto/docs/source/emr_tut.rst +108 -0
  395. data/packages/gsutil/boto/docs/source/index.rst +146 -0
  396. data/packages/gsutil/boto/docs/source/rds_tut.rst +108 -0
  397. data/packages/gsutil/boto/docs/source/ref/autoscale.rst +62 -0
  398. data/packages/gsutil/boto/docs/source/ref/beanstalk.rst +26 -0
  399. data/packages/gsutil/boto/docs/source/ref/boto.rst +47 -0
  400. data/packages/gsutil/boto/docs/source/ref/cloudformation.rst +34 -0
  401. data/packages/gsutil/boto/docs/source/ref/cloudfront.rst +68 -0
  402. data/packages/gsutil/boto/docs/source/ref/cloudsearch.rst +59 -0
  403. data/packages/gsutil/boto/docs/source/ref/cloudwatch.rst +27 -0
  404. data/packages/gsutil/boto/docs/source/ref/contrib.rst +32 -0
  405. data/packages/gsutil/boto/docs/source/ref/datapipeline.rst +26 -0
  406. data/packages/gsutil/boto/docs/source/ref/dynamodb.rst +61 -0
  407. data/packages/gsutil/boto/docs/source/ref/ec2.rst +140 -0
  408. data/packages/gsutil/boto/docs/source/ref/ecs.rst +19 -0
  409. data/packages/gsutil/boto/docs/source/ref/elasticache.rst +19 -0
  410. data/packages/gsutil/boto/docs/source/ref/elastictranscoder.rst +26 -0
  411. data/packages/gsutil/boto/docs/source/ref/elb.rst +47 -0
  412. data/packages/gsutil/boto/docs/source/ref/emr.rst +34 -0
  413. data/packages/gsutil/boto/docs/source/ref/file.rst +34 -0
  414. data/packages/gsutil/boto/docs/source/ref/fps.rst +19 -0
  415. data/packages/gsutil/boto/docs/source/ref/glacier.rst +63 -0
  416. data/packages/gsutil/boto/docs/source/ref/gs.rst +72 -0
  417. data/packages/gsutil/boto/docs/source/ref/iam.rst +27 -0
  418. data/packages/gsutil/boto/docs/source/ref/index.rst +40 -0
  419. data/packages/gsutil/boto/docs/source/ref/manage.rst +47 -0
  420. data/packages/gsutil/boto/docs/source/ref/mturk.rst +54 -0
  421. data/packages/gsutil/boto/docs/source/ref/mws.rst +33 -0
  422. data/packages/gsutil/boto/docs/source/ref/pyami.rst +103 -0
  423. data/packages/gsutil/boto/docs/source/ref/rds.rst +47 -0
  424. data/packages/gsutil/boto/docs/source/ref/route53.rst +34 -0
  425. data/packages/gsutil/boto/docs/source/ref/s3.rst +111 -0
  426. data/packages/gsutil/boto/docs/source/ref/sdb.rst +45 -0
  427. data/packages/gsutil/boto/docs/source/ref/sdb_db.rst +83 -0
  428. data/packages/gsutil/boto/docs/source/ref/services.rst +61 -0
  429. data/packages/gsutil/boto/docs/source/ref/ses.rst +21 -0
  430. data/packages/gsutil/boto/docs/source/ref/sns.rst +17 -0
  431. data/packages/gsutil/boto/docs/source/ref/sqs.rst +61 -0
  432. data/packages/gsutil/boto/docs/source/ref/sts.rst +25 -0
  433. data/packages/gsutil/boto/docs/source/ref/swf.rst +22 -0
  434. data/packages/gsutil/boto/docs/source/ref/vpc.rst +54 -0
  435. data/packages/gsutil/boto/docs/source/s3_tut.rst +450 -0
  436. data/packages/gsutil/boto/docs/source/security_groups.rst +82 -0
  437. data/packages/gsutil/boto/docs/source/ses_tut.rst +171 -0
  438. data/packages/gsutil/boto/docs/source/simpledb_tut.rst +188 -0
  439. data/packages/gsutil/boto/docs/source/sqs_tut.rst +246 -0
  440. data/packages/gsutil/boto/docs/source/vpc_tut.rst +100 -0
  441. data/packages/gsutil/boto/pylintrc +305 -0
  442. data/packages/gsutil/boto/requirements.txt +10 -0
  443. data/packages/gsutil/boto/setup.py +89 -0
  444. data/packages/gsutil/boto/tests/__init__.py +20 -0
  445. data/packages/gsutil/boto/tests/db/test_lists.py +96 -0
  446. data/packages/gsutil/boto/tests/db/test_password.py +128 -0
  447. data/packages/gsutil/boto/tests/db/test_query.py +152 -0
  448. data/packages/gsutil/boto/tests/db/test_sequence.py +109 -0
  449. data/packages/gsutil/boto/tests/devpay/__init__.py +0 -0
  450. data/packages/gsutil/boto/tests/devpay/test_s3.py +181 -0
  451. data/packages/gsutil/boto/tests/fps/__init__.py +0 -0
  452. data/packages/gsutil/boto/tests/fps/test.py +100 -0
  453. data/packages/gsutil/boto/tests/fps/test_verify_signature.py +12 -0
  454. data/packages/gsutil/boto/tests/integration/__init__.py +0 -0
  455. data/packages/gsutil/boto/tests/integration/beanstalk/test_wrapper.py +209 -0
  456. data/packages/gsutil/boto/tests/integration/cloudformation/__init__.py +21 -0
  457. data/packages/gsutil/boto/tests/integration/cloudformation/test_cert_verification.py +40 -0
  458. data/packages/gsutil/boto/tests/integration/cloudformation/test_connection.py +110 -0
  459. data/packages/gsutil/boto/tests/integration/cloudsearch/__init__.py +21 -0
  460. data/packages/gsutil/boto/tests/integration/cloudsearch/test_cert_verification.py +40 -0
  461. data/packages/gsutil/boto/tests/integration/datapipeline/test_layer1.py +122 -0
  462. data/packages/gsutil/boto/tests/integration/dynamodb/__init__.py +20 -0
  463. data/packages/gsutil/boto/tests/integration/dynamodb/test_cert_verification.py +40 -0
  464. data/packages/gsutil/boto/tests/integration/dynamodb/test_layer1.py +266 -0
  465. data/packages/gsutil/boto/tests/integration/dynamodb/test_layer2.py +484 -0
  466. data/packages/gsutil/boto/tests/integration/dynamodb/test_table.py +84 -0
  467. data/packages/gsutil/boto/tests/integration/ec2/__init__.py +20 -0
  468. data/packages/gsutil/boto/tests/integration/ec2/autoscale/__init__.py +21 -0
  469. data/packages/gsutil/boto/tests/integration/ec2/autoscale/test_cert_verification.py +40 -0
  470. data/packages/gsutil/boto/tests/integration/ec2/autoscale/test_connection.py +167 -0
  471. data/packages/gsutil/boto/tests/integration/ec2/cloudwatch/__init__.py +20 -0
  472. data/packages/gsutil/boto/tests/integration/ec2/cloudwatch/test_cert_verification.py +40 -0
  473. data/packages/gsutil/boto/tests/integration/ec2/cloudwatch/test_connection.py +277 -0
  474. data/packages/gsutil/boto/tests/integration/ec2/elb/__init__.py +20 -0
  475. data/packages/gsutil/boto/tests/integration/ec2/elb/test_cert_verification.py +40 -0
  476. data/packages/gsutil/boto/tests/integration/ec2/elb/test_connection.py +130 -0
  477. data/packages/gsutil/boto/tests/integration/ec2/test_cert_verification.py +40 -0
  478. data/packages/gsutil/boto/tests/integration/ec2/test_connection.py +192 -0
  479. data/packages/gsutil/boto/tests/integration/ec2/vpc/__init__.py +0 -0
  480. data/packages/gsutil/boto/tests/integration/ec2/vpc/test_connection.py +95 -0
  481. data/packages/gsutil/boto/tests/integration/elasticache/__init__.py +0 -0
  482. data/packages/gsutil/boto/tests/integration/elasticache/test_layer1.py +67 -0
  483. data/packages/gsutil/boto/tests/integration/elastictranscoder/__init__.py +0 -0
  484. data/packages/gsutil/boto/tests/integration/elastictranscoder/test_cert_verification.py +35 -0
  485. data/packages/gsutil/boto/tests/integration/elastictranscoder/test_layer1.py +115 -0
  486. data/packages/gsutil/boto/tests/integration/emr/__init__.py +20 -0
  487. data/packages/gsutil/boto/tests/integration/emr/test_cert_verification.py +40 -0
  488. data/packages/gsutil/boto/tests/integration/glacier/__init__.py +22 -0
  489. data/packages/gsutil/boto/tests/integration/glacier/test_cert_verification.py +40 -0
  490. data/packages/gsutil/boto/tests/integration/glacier/test_layer1.py +44 -0
  491. data/packages/gsutil/boto/tests/integration/glacier/test_layer2.py +45 -0
  492. data/packages/gsutil/boto/tests/integration/gs/__init__.py +0 -0
  493. data/packages/gsutil/boto/tests/integration/gs/cb_test_harness.py +71 -0
  494. data/packages/gsutil/boto/tests/integration/gs/test_basic.py +379 -0
  495. data/packages/gsutil/boto/tests/integration/gs/test_generation_conditionals.py +399 -0
  496. data/packages/gsutil/boto/tests/integration/gs/test_resumable_downloads.py +358 -0
  497. data/packages/gsutil/boto/tests/integration/gs/test_resumable_uploads.py +525 -0
  498. data/packages/gsutil/boto/tests/integration/gs/test_storage_uri.py +125 -0
  499. data/packages/gsutil/boto/tests/integration/gs/test_versioning.py +268 -0
  500. data/packages/gsutil/boto/tests/integration/gs/testcase.py +116 -0
  501. data/packages/gsutil/boto/tests/integration/gs/util.py +63 -0
  502. data/packages/gsutil/boto/tests/integration/iam/__init__.py +20 -0
  503. data/packages/gsutil/boto/tests/integration/iam/test_cert_verification.py +40 -0
  504. data/packages/gsutil/boto/tests/integration/mws/__init__.py +0 -0
  505. data/packages/gsutil/boto/tests/integration/mws/test.py +100 -0
  506. data/packages/gsutil/boto/tests/integration/rds/__init__.py +21 -0
  507. data/packages/gsutil/boto/tests/integration/rds/test_cert_verification.py +40 -0
  508. data/packages/gsutil/boto/tests/integration/route53/__init__.py +20 -0
  509. data/packages/gsutil/boto/tests/integration/route53/test_cert_verification.py +40 -0
  510. data/packages/gsutil/boto/tests/integration/route53/test_zone.py +132 -0
  511. data/packages/gsutil/boto/tests/integration/s3/__init__.py +20 -0
  512. data/packages/gsutil/boto/tests/integration/s3/mock_storage_service.py +589 -0
  513. data/packages/gsutil/boto/tests/integration/s3/other_cacerts.txt +70 -0
  514. data/packages/gsutil/boto/tests/integration/s3/test_bucket.py +263 -0
  515. data/packages/gsutil/boto/tests/integration/s3/test_cert_verification.py +40 -0
  516. data/packages/gsutil/boto/tests/integration/s3/test_connection.py +245 -0
  517. data/packages/gsutil/boto/tests/integration/s3/test_cors.py +78 -0
  518. data/packages/gsutil/boto/tests/integration/s3/test_encryption.py +115 -0
  519. data/packages/gsutil/boto/tests/integration/s3/test_https_cert_validation.py +141 -0
  520. data/packages/gsutil/boto/tests/integration/s3/test_key.py +375 -0
  521. data/packages/gsutil/boto/tests/integration/s3/test_mfa.py +95 -0
  522. data/packages/gsutil/boto/tests/integration/s3/test_multidelete.py +181 -0
  523. data/packages/gsutil/boto/tests/integration/s3/test_multipart.py +139 -0
  524. data/packages/gsutil/boto/tests/integration/s3/test_pool.py +246 -0
  525. data/packages/gsutil/boto/tests/integration/s3/test_versioning.py +158 -0
  526. data/packages/gsutil/boto/tests/integration/sdb/__init__.py +20 -0
  527. data/packages/gsutil/boto/tests/integration/sdb/test_cert_verification.py +40 -0
  528. data/packages/gsutil/boto/tests/integration/sdb/test_connection.py +119 -0
  529. data/packages/gsutil/boto/tests/integration/ses/__init__.py +0 -0
  530. data/packages/gsutil/boto/tests/integration/ses/test_cert_verification.py +40 -0
  531. data/packages/gsutil/boto/tests/integration/ses/test_connection.py +38 -0
  532. data/packages/gsutil/boto/tests/integration/sns/__init__.py +20 -0
  533. data/packages/gsutil/boto/tests/integration/sns/test_cert_verification.py +40 -0
  534. data/packages/gsutil/boto/tests/integration/sqs/__init__.py +20 -0
  535. data/packages/gsutil/boto/tests/integration/sqs/test_cert_verification.py +40 -0
  536. data/packages/gsutil/boto/tests/integration/sqs/test_connection.py +217 -0
  537. data/packages/gsutil/boto/tests/integration/sts/__init__.py +20 -0
  538. data/packages/gsutil/boto/tests/integration/sts/test_cert_verification.py +40 -0
  539. data/packages/gsutil/boto/tests/integration/sts/test_session_token.py +65 -0
  540. data/packages/gsutil/boto/tests/integration/swf/__init__.py +0 -0
  541. data/packages/gsutil/boto/tests/integration/swf/test_cert_verification.py +40 -0
  542. data/packages/gsutil/boto/tests/integration/swf/test_layer1.py +246 -0
  543. data/packages/gsutil/boto/tests/integration/swf/test_layer1_workflow_execution.py +173 -0
  544. data/packages/gsutil/boto/tests/mturk/__init__.py +0 -0
  545. data/packages/gsutil/boto/tests/mturk/_init_environment.py +28 -0
  546. data/packages/gsutil/boto/tests/mturk/all_tests.py +24 -0
  547. data/packages/gsutil/boto/tests/mturk/cleanup_tests.py +47 -0
  548. data/packages/gsutil/boto/tests/mturk/common.py +45 -0
  549. data/packages/gsutil/boto/tests/mturk/create_free_text_question_regex.doctest +100 -0
  550. data/packages/gsutil/boto/tests/mturk/create_hit.doctest +92 -0
  551. data/packages/gsutil/boto/tests/mturk/create_hit_binary.doctest +94 -0
  552. data/packages/gsutil/boto/tests/mturk/create_hit_external.py +21 -0
  553. data/packages/gsutil/boto/tests/mturk/create_hit_from_hit_type.doctest +103 -0
  554. data/packages/gsutil/boto/tests/mturk/create_hit_test.py +21 -0
  555. data/packages/gsutil/boto/tests/mturk/create_hit_with_qualifications.py +16 -0
  556. data/packages/gsutil/boto/tests/mturk/hit_persistence.py +27 -0
  557. data/packages/gsutil/boto/tests/mturk/mocks.py +11 -0
  558. data/packages/gsutil/boto/tests/mturk/reviewable_hits.doctest +129 -0
  559. data/packages/gsutil/boto/tests/mturk/run-doctest.py +13 -0
  560. data/packages/gsutil/boto/tests/mturk/search_hits.doctest +16 -0
  561. data/packages/gsutil/boto/tests/mturk/selenium_support.py +61 -0
  562. data/packages/gsutil/boto/tests/mturk/support.py +7 -0
  563. data/packages/gsutil/boto/tests/mturk/test_disable_hit.py +11 -0
  564. data/packages/gsutil/boto/tests/test.py +59 -0
  565. data/packages/gsutil/boto/tests/unit/__init__.py +79 -0
  566. data/packages/gsutil/boto/tests/unit/auth/__init__.py +0 -0
  567. data/packages/gsutil/boto/tests/unit/auth/test_sigv4.py +73 -0
  568. data/packages/gsutil/boto/tests/unit/beanstalk/__init__.py +0 -0
  569. data/packages/gsutil/boto/tests/unit/beanstalk/test_layer1.py +128 -0
  570. data/packages/gsutil/boto/tests/unit/cloudformation/__init__.py +0 -0
  571. data/packages/gsutil/boto/tests/unit/cloudformation/test_connection.py +605 -0
  572. data/packages/gsutil/boto/tests/unit/cloudformation/test_stack.py +63 -0
  573. data/packages/gsutil/boto/tests/unit/cloudfront/__init__.py +0 -0
  574. data/packages/gsutil/boto/tests/unit/cloudfront/test_invalidation_list.py +113 -0
  575. data/packages/gsutil/boto/tests/unit/cloudfront/test_signed_urls.py +354 -0
  576. data/packages/gsutil/boto/tests/unit/cloudsearch/__init__.py +1 -0
  577. data/packages/gsutil/boto/tests/unit/cloudsearch/test_connection.py +241 -0
  578. data/packages/gsutil/boto/tests/unit/cloudsearch/test_document.py +324 -0
  579. data/packages/gsutil/boto/tests/unit/cloudsearch/test_search.py +325 -0
  580. data/packages/gsutil/boto/tests/unit/dynamodb/__init__.py +0 -0
  581. data/packages/gsutil/boto/tests/unit/dynamodb/test_batch.py +103 -0
  582. data/packages/gsutil/boto/tests/unit/dynamodb/test_layer2.py +119 -0
  583. data/packages/gsutil/boto/tests/unit/dynamodb/test_types.py +82 -0
  584. data/packages/gsutil/boto/tests/unit/ec2/__init__.py +0 -0
  585. data/packages/gsutil/boto/tests/unit/ec2/autoscale/__init__.py +0 -0
  586. data/packages/gsutil/boto/tests/unit/ec2/autoscale/test_group.py +162 -0
  587. data/packages/gsutil/boto/tests/unit/ec2/test_address.py +39 -0
  588. data/packages/gsutil/boto/tests/unit/ec2/test_blockdevicemapping.py +79 -0
  589. data/packages/gsutil/boto/tests/unit/ec2/test_connection.py +480 -0
  590. data/packages/gsutil/boto/tests/unit/ec2/test_instance.py +243 -0
  591. data/packages/gsutil/boto/tests/unit/ec2/test_networkinterface.py +140 -0
  592. data/packages/gsutil/boto/tests/unit/ec2/test_volume.py +248 -0
  593. data/packages/gsutil/boto/tests/unit/emr/test_emr_responses.py +373 -0
  594. data/packages/gsutil/boto/tests/unit/glacier/__init__.py +0 -0
  595. data/packages/gsutil/boto/tests/unit/glacier/test_concurrent.py +120 -0
  596. data/packages/gsutil/boto/tests/unit/glacier/test_job.py +60 -0
  597. data/packages/gsutil/boto/tests/unit/glacier/test_layer1.py +98 -0
  598. data/packages/gsutil/boto/tests/unit/glacier/test_layer2.py +266 -0
  599. data/packages/gsutil/boto/tests/unit/glacier/test_utils.py +116 -0
  600. data/packages/gsutil/boto/tests/unit/glacier/test_vault.py +100 -0
  601. data/packages/gsutil/boto/tests/unit/glacier/test_writer.py +185 -0
  602. data/packages/gsutil/boto/tests/unit/provider/__init__.py +0 -0
  603. data/packages/gsutil/boto/tests/unit/provider/test_provider.py +176 -0
  604. data/packages/gsutil/boto/tests/unit/rds/__init__.py +0 -0
  605. data/packages/gsutil/boto/tests/unit/rds/test_connection.py +131 -0
  606. data/packages/gsutil/boto/tests/unit/s3/__init__.py +0 -0
  607. data/packages/gsutil/boto/tests/unit/s3/test_cors_configuration.py +77 -0
  608. data/packages/gsutil/boto/tests/unit/s3/test_key.py +75 -0
  609. data/packages/gsutil/boto/tests/unit/s3/test_keyfile.py +101 -0
  610. data/packages/gsutil/boto/tests/unit/s3/test_lifecycle.py +97 -0
  611. data/packages/gsutil/boto/tests/unit/s3/test_tagging.py +47 -0
  612. data/packages/gsutil/boto/tests/unit/s3/test_uri.py +257 -0
  613. data/packages/gsutil/boto/tests/unit/s3/test_website.py +188 -0
  614. data/packages/gsutil/boto/tests/unit/sns/__init__.py +0 -0
  615. data/packages/gsutil/boto/tests/unit/sns/test_connection.py +99 -0
  616. data/packages/gsutil/boto/tests/unit/sqs/__init__.py +0 -0
  617. data/packages/gsutil/boto/tests/unit/sqs/test_connection.py +98 -0
  618. data/packages/gsutil/boto/tests/unit/sqs/test_queue.py +40 -0
  619. data/packages/gsutil/boto/tests/unit/sts/test_connection.py +74 -0
  620. data/packages/gsutil/boto/tests/unit/test_connection.py +60 -0
  621. data/packages/gsutil/boto/tests/unit/utils/test_utils.py +109 -0
  622. data/packages/gsutil/boto/tox.ini +8 -0
  623. data/packages/gsutil/gslib/README +5 -0
  624. data/packages/gsutil/gslib/__init__.py +22 -0
  625. data/packages/gsutil/gslib/__init__.pyc +0 -0
  626. data/packages/gsutil/gslib/addlhelp/__init__.py +15 -0
  627. data/packages/gsutil/gslib/addlhelp/acls.py +234 -0
  628. data/packages/gsutil/gslib/addlhelp/anon.py +57 -0
  629. data/packages/gsutil/gslib/addlhelp/command_opts.py +116 -0
  630. data/packages/gsutil/gslib/addlhelp/dev.py +139 -0
  631. data/packages/gsutil/gslib/addlhelp/metadata.py +186 -0
  632. data/packages/gsutil/gslib/addlhelp/naming.py +173 -0
  633. data/packages/gsutil/gslib/addlhelp/prod.py +160 -0
  634. data/packages/gsutil/gslib/addlhelp/projects.py +130 -0
  635. data/packages/gsutil/gslib/addlhelp/subdirs.py +110 -0
  636. data/packages/gsutil/gslib/addlhelp/support.py +86 -0
  637. data/packages/gsutil/gslib/addlhelp/versioning.py +242 -0
  638. data/packages/gsutil/gslib/addlhelp/wildcards.py +170 -0
  639. data/packages/gsutil/gslib/bucket_listing_ref.py +175 -0
  640. data/packages/gsutil/gslib/bucket_listing_ref.pyc +0 -0
  641. data/packages/gsutil/gslib/command.py +722 -0
  642. data/packages/gsutil/gslib/command.pyc +0 -0
  643. data/packages/gsutil/gslib/command_runner.py +101 -0
  644. data/packages/gsutil/gslib/command_runner.pyc +0 -0
  645. data/packages/gsutil/gslib/commands/__init__.py +15 -0
  646. data/packages/gsutil/gslib/commands/__init__.pyc +0 -0
  647. data/packages/gsutil/gslib/commands/cat.py +131 -0
  648. data/packages/gsutil/gslib/commands/cat.pyc +0 -0
  649. data/packages/gsutil/gslib/commands/chacl.py +532 -0
  650. data/packages/gsutil/gslib/commands/chacl.pyc +0 -0
  651. data/packages/gsutil/gslib/commands/config.py +694 -0
  652. data/packages/gsutil/gslib/commands/config.pyc +0 -0
  653. data/packages/gsutil/gslib/commands/cp.py +1818 -0
  654. data/packages/gsutil/gslib/commands/cp.pyc +0 -0
  655. data/packages/gsutil/gslib/commands/disablelogging.py +101 -0
  656. data/packages/gsutil/gslib/commands/disablelogging.pyc +0 -0
  657. data/packages/gsutil/gslib/commands/enablelogging.py +149 -0
  658. data/packages/gsutil/gslib/commands/enablelogging.pyc +0 -0
  659. data/packages/gsutil/gslib/commands/getacl.py +82 -0
  660. data/packages/gsutil/gslib/commands/getacl.pyc +0 -0
  661. data/packages/gsutil/gslib/commands/getcors.py +121 -0
  662. data/packages/gsutil/gslib/commands/getcors.pyc +0 -0
  663. data/packages/gsutil/gslib/commands/getdefacl.py +86 -0
  664. data/packages/gsutil/gslib/commands/getdefacl.pyc +0 -0
  665. data/packages/gsutil/gslib/commands/getlogging.py +137 -0
  666. data/packages/gsutil/gslib/commands/getlogging.pyc +0 -0
  667. data/packages/gsutil/gslib/commands/getversioning.py +116 -0
  668. data/packages/gsutil/gslib/commands/getversioning.pyc +0 -0
  669. data/packages/gsutil/gslib/commands/getwebcfg.py +122 -0
  670. data/packages/gsutil/gslib/commands/getwebcfg.pyc +0 -0
  671. data/packages/gsutil/gslib/commands/help.py +218 -0
  672. data/packages/gsutil/gslib/commands/help.pyc +0 -0
  673. data/packages/gsutil/gslib/commands/ls.py +578 -0
  674. data/packages/gsutil/gslib/commands/ls.pyc +0 -0
  675. data/packages/gsutil/gslib/commands/mb.py +172 -0
  676. data/packages/gsutil/gslib/commands/mb.pyc +0 -0
  677. data/packages/gsutil/gslib/commands/mv.py +159 -0
  678. data/packages/gsutil/gslib/commands/mv.pyc +0 -0
  679. data/packages/gsutil/gslib/commands/perfdiag.py +903 -0
  680. data/packages/gsutil/gslib/commands/perfdiag.pyc +0 -0
  681. data/packages/gsutil/gslib/commands/rb.py +113 -0
  682. data/packages/gsutil/gslib/commands/rb.pyc +0 -0
  683. data/packages/gsutil/gslib/commands/rm.py +239 -0
  684. data/packages/gsutil/gslib/commands/rm.pyc +0 -0
  685. data/packages/gsutil/gslib/commands/setacl.py +138 -0
  686. data/packages/gsutil/gslib/commands/setacl.pyc +0 -0
  687. data/packages/gsutil/gslib/commands/setcors.py +145 -0
  688. data/packages/gsutil/gslib/commands/setcors.pyc +0 -0
  689. data/packages/gsutil/gslib/commands/setdefacl.py +105 -0
  690. data/packages/gsutil/gslib/commands/setdefacl.pyc +0 -0
  691. data/packages/gsutil/gslib/commands/setmeta.py +428 -0
  692. data/packages/gsutil/gslib/commands/setmeta.pyc +0 -0
  693. data/packages/gsutil/gslib/commands/setversioning.py +114 -0
  694. data/packages/gsutil/gslib/commands/setversioning.pyc +0 -0
  695. data/packages/gsutil/gslib/commands/setwebcfg.py +190 -0
  696. data/packages/gsutil/gslib/commands/setwebcfg.pyc +0 -0
  697. data/packages/gsutil/gslib/commands/test.py +228 -0
  698. data/packages/gsutil/gslib/commands/test.pyc +0 -0
  699. data/packages/gsutil/gslib/commands/update.py +305 -0
  700. data/packages/gsutil/gslib/commands/update.pyc +0 -0
  701. data/packages/gsutil/gslib/commands/version.py +150 -0
  702. data/packages/gsutil/gslib/commands/version.pyc +0 -0
  703. data/packages/gsutil/gslib/exception.py +76 -0
  704. data/packages/gsutil/gslib/exception.pyc +0 -0
  705. data/packages/gsutil/gslib/help_provider.py +81 -0
  706. data/packages/gsutil/gslib/help_provider.pyc +0 -0
  707. data/packages/gsutil/gslib/name_expansion.py +550 -0
  708. data/packages/gsutil/gslib/name_expansion.pyc +0 -0
  709. data/packages/gsutil/gslib/no_op_auth_plugin.py +30 -0
  710. data/packages/gsutil/gslib/plurality_checkable_iterator.py +56 -0
  711. data/packages/gsutil/gslib/plurality_checkable_iterator.pyc +0 -0
  712. data/packages/gsutil/gslib/project_id.py +67 -0
  713. data/packages/gsutil/gslib/project_id.pyc +0 -0
  714. data/packages/gsutil/gslib/storage_uri_builder.py +56 -0
  715. data/packages/gsutil/gslib/storage_uri_builder.pyc +0 -0
  716. data/packages/gsutil/gslib/tests/__init__.py +15 -0
  717. data/packages/gsutil/gslib/tests/__init__.pyc +0 -0
  718. data/packages/gsutil/gslib/tests/test_chacl.py +236 -0
  719. data/packages/gsutil/gslib/tests/test_cp.py +267 -0
  720. data/packages/gsutil/gslib/tests/test_data/test.gif +0 -0
  721. data/packages/gsutil/gslib/tests/test_data/test.mp3 +0 -0
  722. data/packages/gsutil/gslib/tests/test_ls.py +66 -0
  723. data/packages/gsutil/gslib/tests/test_mv.py +69 -0
  724. data/packages/gsutil/gslib/tests/test_naming.py +989 -0
  725. data/packages/gsutil/gslib/tests/test_perfdiag.py +41 -0
  726. data/packages/gsutil/gslib/tests/test_plurality_checkable_iterator.py +67 -0
  727. data/packages/gsutil/gslib/tests/test_rm.py +143 -0
  728. data/packages/gsutil/gslib/tests/test_setacl.py +152 -0
  729. data/packages/gsutil/gslib/tests/test_setcors.py +168 -0
  730. data/packages/gsutil/gslib/tests/test_setmeta.py +91 -0
  731. data/packages/gsutil/gslib/tests/test_setversioning.py +44 -0
  732. data/packages/gsutil/gslib/tests/test_setwebcfg.py +63 -0
  733. data/packages/gsutil/gslib/tests/test_thread_pool.py +92 -0
  734. data/packages/gsutil/gslib/tests/test_wildcard_iterator.py +364 -0
  735. data/packages/gsutil/gslib/tests/testcase/__init__.py +18 -0
  736. data/packages/gsutil/gslib/tests/testcase/base.py +89 -0
  737. data/packages/gsutil/gslib/tests/testcase/integration_testcase.py +197 -0
  738. data/packages/gsutil/gslib/tests/testcase/unit_testcase.py +230 -0
  739. data/packages/gsutil/gslib/tests/util.py +125 -0
  740. data/packages/gsutil/gslib/tests/util.pyc +0 -0
  741. data/packages/gsutil/gslib/thread_pool.py +79 -0
  742. data/packages/gsutil/gslib/thread_pool.pyc +0 -0
  743. data/packages/gsutil/gslib/util.py +151 -0
  744. data/packages/gsutil/gslib/util.pyc +0 -0
  745. data/packages/gsutil/gslib/wildcard_iterator.py +492 -0
  746. data/packages/gsutil/gslib/wildcard_iterator.pyc +0 -0
  747. data/packages/gsutil/gsutil +377 -0
  748. data/packages/gsutil/gsutil.spec.in +75 -0
  749. data/packages/gsutil/oauth2_plugin/__init__.py +22 -0
  750. data/packages/gsutil/oauth2_plugin/__init__.pyc +0 -0
  751. data/packages/gsutil/oauth2_plugin/oauth2_client.py +642 -0
  752. data/packages/gsutil/oauth2_plugin/oauth2_client.pyc +0 -0
  753. data/packages/gsutil/oauth2_plugin/oauth2_client_test.py +374 -0
  754. data/packages/gsutil/oauth2_plugin/oauth2_helper.py +110 -0
  755. data/packages/gsutil/oauth2_plugin/oauth2_helper.pyc +0 -0
  756. data/packages/gsutil/oauth2_plugin/oauth2_plugin.py +24 -0
  757. data/packages/gsutil/oauth2_plugin/oauth2_plugin.pyc +0 -0
  758. data/packages/gsutil/pkg_gen.sh +54 -0
  759. data/packages/gsutil/pkg_util.py +60 -0
  760. data/packages/gsutil/setup.py +141 -0
  761. data/packages/gsutil/third_party/__init__.py +0 -0
  762. data/packages/gsutil/third_party/__init__.pyc +0 -0
  763. data/packages/gsutil/third_party/fancy_urllib/README +21 -0
  764. data/packages/gsutil/third_party/fancy_urllib/__init__.py +398 -0
  765. data/packages/gsutil/third_party/fancy_urllib/__init__.pyc +0 -0
  766. data/tasks/rubygem.rake +3 -1
  767. metadata +770 -7
  768. metadata.gz.sig +0 -0
@@ -0,0 +1,60 @@
1
+ # Copyright (c) 2012 Mitch Garnaat http://garnaat.org/
2
+ # Copyright (c) 2012 Amazon.com, Inc. or its affiliates.
3
+ # All Rights Reserved
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a
6
+ # copy of this software and associated documentation files (the
7
+ # "Software"), to deal in the Software without restriction, including
8
+ # without limitation the rights to use, copy, modify, merge, publish, dis-
9
+ # tribute, sublicense, and/or sell copies of the Software, and to permit
10
+ # persons to whom the Software is furnished to do so, subject to the fol-
11
+ # lowing conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included
14
+ # in all copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17
+ # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
18
+ # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
19
+ # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22
+ # IN THE SOFTWARE.
23
+ #
24
+
25
+ from boto.ec2.regioninfo import RegionInfo
26
+ import boto.swf.layer1
27
+
28
+ RegionData = {
29
+ 'us-east-1': 'swf.us-east-1.amazonaws.com',
30
+ 'us-west-1': 'swf.us-west-1.amazonaws.com',
31
+ 'us-west-2': 'swf.us-west-2.amazonaws.com',
32
+ 'sa-east-1': 'swf.sa-east-1.amazonaws.com',
33
+ 'eu-west-1': 'swf.eu-west-1.amazonaws.com',
34
+ 'ap-northeast-1': 'swf.ap-northeast-1.amazonaws.com',
35
+ 'ap-southeast-1': 'swf.ap-southeast-1.amazonaws.com',
36
+ 'ap-southeast-2': 'swf.ap-southeast-2.amazonaws.com',
37
+ }
38
+
39
+
40
+ def regions():
41
+ """
42
+ Get all available regions for the Amazon Simple Workflow service.
43
+
44
+ :rtype: list
45
+ :return: A list of :class:`boto.regioninfo.RegionInfo`
46
+ """
47
+ for region_name in RegionData:
48
+ region = RegionInfo(name=region_name,
49
+ endpoint=RegionData[region_name],
50
+ connection_cls=boto.swf.layer1.Layer1)
51
+ regions.append(region)
52
+ return regions
53
+
54
+
55
+
56
+ def connect_to_region(region_name, **kw_params):
57
+ for region in regions():
58
+ if region.name == region_name:
59
+ return region.connect(**kw_params)
60
+ return None
@@ -0,0 +1,44 @@
1
+ """
2
+ Exceptions that are specific to the swf module.
3
+
4
+ This module subclasses the base SWF response exception,
5
+ boto.exceptions.SWFResponseError, for some of the SWF specific faults.
6
+ """
7
+ from boto.exception import SWFResponseError
8
+
9
+
10
+ class SWFDomainAlreadyExistsError(SWFResponseError):
11
+ """
12
+ Raised when when the domain already exists.
13
+ """
14
+ pass
15
+
16
+
17
+ class SWFLimitExceededError(SWFResponseError):
18
+ """
19
+ Raised when when a system imposed limitation has been reached.
20
+ """
21
+ pass
22
+
23
+
24
+ class SWFOperationNotPermittedError(SWFResponseError):
25
+ """
26
+ Raised when (reserved for future use).
27
+ """
28
+
29
+
30
+ class SWFTypeAlreadyExistsError(SWFResponseError):
31
+ """
32
+ Raised when when the workflow type or activity type already exists.
33
+ """
34
+ pass
35
+
36
+
37
+ class SWFWorkflowExecutionAlreadyStartedError(SWFResponseError):
38
+ """
39
+ Raised when an open execution with the same workflow_id is already running
40
+ in the specified domain.
41
+ """
42
+
43
+
44
+
@@ -0,0 +1,1512 @@
1
+ # Copyright (c) 2012 Mitch Garnaat http://garnaat.org/
2
+ # Copyright (c) 2012 Amazon.com, Inc. or its affiliates.
3
+ # All Rights Reserved
4
+ #
5
+ # Permission is hereby granted, free of charge, to any person obtaining a
6
+ # copy of this software and associated documentation files (the
7
+ # "Software"), to deal in the Software without restriction, including
8
+ # without limitation the rights to use, copy, modify, merge, publish, dis-
9
+ # tribute, sublicense, and/or sell copies of the Software, and to permit
10
+ # persons to whom the Software is furnished to do so, subject to the fol-
11
+ # lowing conditions:
12
+ #
13
+ # The above copyright notice and this permission notice shall be included
14
+ # in all copies or substantial portions of the Software.
15
+ #
16
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
17
+ # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
18
+ # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
19
+ # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
20
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
22
+ # IN THE SOFTWARE.
23
+ #
24
+
25
+ import time
26
+
27
+ import boto
28
+ from boto.connection import AWSAuthConnection
29
+ from boto.provider import Provider
30
+ from boto.exception import SWFResponseError
31
+ from boto.swf import exceptions as swf_exceptions
32
+ from boto.compat import json
33
+
34
+ #
35
+ # To get full debug output, uncomment the following line and set the
36
+ # value of Debug to be 2
37
+ #
38
+ #boto.set_stream_logger('swf')
39
+ Debug = 0
40
+
41
+
42
+ class Layer1(AWSAuthConnection):
43
+ """
44
+ Low-level interface to Simple WorkFlow Service.
45
+ """
46
+
47
+ DefaultRegionName = 'us-east-1'
48
+ """The default region name for Simple Workflow."""
49
+
50
+ ServiceName = 'com.amazonaws.swf.service.model.SimpleWorkflowService'
51
+ """The name of the Service"""
52
+
53
+ # In some cases, the fault response __type value is mapped to
54
+ # an exception class more specific than SWFResponseError.
55
+ _fault_excp = {
56
+ 'com.amazonaws.swf.base.model#DomainAlreadyExistsFault':
57
+ swf_exceptions.SWFDomainAlreadyExistsError,
58
+ 'com.amazonaws.swf.base.model#LimitExceededFault':
59
+ swf_exceptions.SWFLimitExceededError,
60
+ 'com.amazonaws.swf.base.model#OperationNotPermittedFault':
61
+ swf_exceptions.SWFOperationNotPermittedError,
62
+ 'com.amazonaws.swf.base.model#TypeAlreadyExistsFault':
63
+ swf_exceptions.SWFTypeAlreadyExistsError,
64
+ 'com.amazonaws.swf.base.model#WorkflowExecutionAlreadyStartedFault':
65
+ swf_exceptions.SWFWorkflowExecutionAlreadyStartedError,
66
+ }
67
+
68
+ ResponseError = SWFResponseError
69
+
70
+ def __init__(self, aws_access_key_id=None, aws_secret_access_key=None,
71
+ is_secure=True, port=None, proxy=None, proxy_port=None,
72
+ debug=0, session_token=None, region=None):
73
+ if not region:
74
+ region_name = boto.config.get('SWF', 'region',
75
+ self.DefaultRegionName)
76
+ for reg in boto.swf.regions():
77
+ if reg.name == region_name:
78
+ region = reg
79
+ break
80
+
81
+ self.region = region
82
+ AWSAuthConnection.__init__(self, self.region.endpoint,
83
+ aws_access_key_id, aws_secret_access_key,
84
+ is_secure, port, proxy, proxy_port,
85
+ debug, session_token)
86
+
87
+ def _required_auth_capability(self):
88
+ return ['hmac-v3-http']
89
+
90
+ @classmethod
91
+ def _normalize_request_dict(cls, data):
92
+ """
93
+ This class method recurses through request data dictionary and removes
94
+ any default values.
95
+
96
+ :type data: dict
97
+ :param data: Specifies request parameters with default values to be removed.
98
+ """
99
+ for item in data.keys():
100
+ if isinstance(data[item], dict):
101
+ cls._normalize_request_dict(data[item])
102
+ if data[item] in (None, {}):
103
+ del data[item]
104
+
105
+ def json_request(self, action, data, object_hook=None):
106
+ """
107
+ This method wraps around make_request() to normalize and serialize the
108
+ dictionary with request parameters.
109
+
110
+ :type action: string
111
+ :param action: Specifies an SWF action.
112
+
113
+ :type data: dict
114
+ :param data: Specifies request parameters associated with the action.
115
+ """
116
+ self._normalize_request_dict(data)
117
+ json_input = json.dumps(data)
118
+ return self.make_request(action, json_input, object_hook)
119
+
120
+ def make_request(self, action, body='', object_hook=None):
121
+ """
122
+ :raises: ``SWFResponseError`` if response status is not 200.
123
+ """
124
+ headers = {'X-Amz-Target': '%s.%s' % (self.ServiceName, action),
125
+ 'Host': self.region.endpoint,
126
+ 'Content-Type': 'application/json; charset=UTF-8',
127
+ 'Content-Encoding': 'amz-1.0',
128
+ 'Content-Length': str(len(body))}
129
+ http_request = self.build_base_http_request('POST', '/', '/',
130
+ {}, headers, body, None)
131
+ response = self._mexe(http_request, sender=None,
132
+ override_num_retries=10)
133
+ response_body = response.read()
134
+ boto.log.debug(response_body)
135
+ if response.status == 200:
136
+ if response_body:
137
+ return json.loads(response_body, object_hook=object_hook)
138
+ else:
139
+ return None
140
+ else:
141
+ json_body = json.loads(response_body)
142
+ fault_name = json_body.get('__type', None)
143
+ # Certain faults get mapped to more specific exception classes.
144
+ excp_cls = self._fault_excp.get(fault_name, self.ResponseError)
145
+ raise excp_cls(response.status, response.reason, body=json_body)
146
+
147
+ # Actions related to Activities
148
+
149
+ def poll_for_activity_task(self, domain, task_list, identity=None):
150
+ """
151
+ Used by workers to get an ActivityTask from the specified
152
+ activity taskList. This initiates a long poll, where the
153
+ service holds the HTTP connection open and responds as soon as
154
+ a task becomes available. The maximum time the service holds
155
+ on to the request before responding is 60 seconds. If no task
156
+ is available within 60 seconds, the poll will return an empty
157
+ result. An empty result, in this context, means that an
158
+ ActivityTask is returned, but that the value of taskToken is
159
+ an empty string. If a task is returned, the worker should use
160
+ its type to identify and process it correctly.
161
+
162
+ :type domain: string
163
+ :param domain: The name of the domain that contains the task
164
+ lists being polled.
165
+
166
+ :type task_list: string
167
+ :param task_list: Specifies the task list to poll for activity tasks.
168
+
169
+ :type identity: string
170
+ :param identity: Identity of the worker making the request, which
171
+ is recorded in the ActivityTaskStarted event in the workflow
172
+ history. This enables diagnostic tracing when problems arise.
173
+ The form of this identity is user defined.
174
+
175
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
176
+ """
177
+ return self.json_request('PollForActivityTask', {
178
+ 'domain': domain,
179
+ 'taskList': {'name': task_list},
180
+ 'identity': identity,
181
+ })
182
+
183
+ def respond_activity_task_completed(self, task_token, result=None):
184
+ """
185
+ Used by workers to tell the service that the ActivityTask
186
+ identified by the taskToken completed successfully with a
187
+ result (if provided).
188
+
189
+ :type task_token: string
190
+ :param task_token: The taskToken of the ActivityTask.
191
+
192
+ :type result: string
193
+ :param result: The result of the activity task. It is a free
194
+ form string that is implementation specific.
195
+
196
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
197
+ """
198
+ return self.json_request('RespondActivityTaskCompleted', {
199
+ 'taskToken': task_token,
200
+ 'result': result,
201
+ })
202
+
203
+ def respond_activity_task_failed(self, task_token,
204
+ details=None, reason=None):
205
+ """
206
+ Used by workers to tell the service that the ActivityTask
207
+ identified by the taskToken has failed with reason (if
208
+ specified).
209
+
210
+ :type task_token: string
211
+ :param task_token: The taskToken of the ActivityTask.
212
+
213
+ :type details: string
214
+ :param details: Optional detailed information about the failure.
215
+
216
+ :type reason: string
217
+ :param reason: Description of the error that may assist in diagnostics.
218
+
219
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
220
+ """
221
+ return self.json_request('RespondActivityTaskFailed', {
222
+ 'taskToken': task_token,
223
+ 'details': details,
224
+ 'reason': reason,
225
+ })
226
+
227
+ def respond_activity_task_canceled(self, task_token, details=None):
228
+ """
229
+ Used by workers to tell the service that the ActivityTask
230
+ identified by the taskToken was successfully
231
+ canceled. Additional details can be optionally provided using
232
+ the details argument.
233
+
234
+ :type task_token: string
235
+ :param task_token: The taskToken of the ActivityTask.
236
+
237
+ :type details: string
238
+ :param details: Optional detailed information about the failure.
239
+
240
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
241
+ """
242
+ return self.json_request('RespondActivityTaskCanceled', {
243
+ 'taskToken': task_token,
244
+ 'details': details,
245
+ })
246
+
247
+ def record_activity_task_heartbeat(self, task_token, details=None):
248
+ """
249
+ Used by activity workers to report to the service that the
250
+ ActivityTask represented by the specified taskToken is still
251
+ making progress. The worker can also (optionally) specify
252
+ details of the progress, for example percent complete, using
253
+ the details parameter. This action can also be used by the
254
+ worker as a mechanism to check if cancellation is being
255
+ requested for the activity task. If a cancellation is being
256
+ attempted for the specified task, then the boolean
257
+ cancelRequested flag returned by the service is set to true.
258
+
259
+ :type task_token: string
260
+ :param task_token: The taskToken of the ActivityTask.
261
+
262
+ :type details: string
263
+ :param details: If specified, contains details about the
264
+ progress of the task.
265
+
266
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
267
+ """
268
+ return self.json_request('RecordActivityTaskHeartbeat', {
269
+ 'taskToken': task_token,
270
+ 'details': details,
271
+ })
272
+
273
+ # Actions related to Deciders
274
+
275
+ def poll_for_decision_task(self, domain, task_list, identity=None,
276
+ maximum_page_size=None,
277
+ next_page_token=None,
278
+ reverse_order=None):
279
+ """
280
+ Used by deciders to get a DecisionTask from the specified
281
+ decision taskList. A decision task may be returned for any
282
+ open workflow execution that is using the specified task
283
+ list. The task includes a paginated view of the history of the
284
+ workflow execution. The decider should use the workflow type
285
+ and the history to determine how to properly handle the task.
286
+
287
+ :type domain: string
288
+ :param domain: The name of the domain containing the task
289
+ lists to poll.
290
+
291
+ :type task_list: string
292
+ :param task_list: Specifies the task list to poll for decision tasks.
293
+
294
+ :type identity: string
295
+ :param identity: Identity of the decider making the request,
296
+ which is recorded in the DecisionTaskStarted event in the
297
+ workflow history. This enables diagnostic tracing when
298
+ problems arise. The form of this identity is user defined.
299
+
300
+ :type maximum_page_size: integer :param maximum_page_size: The
301
+ maximum number of history events returned in each page. The
302
+ default is 100, but the caller can override this value to a
303
+ page size smaller than the default. You cannot specify a page
304
+ size greater than 100.
305
+
306
+ :type next_page_token: string
307
+ :param next_page_token: If on a previous call to this method a
308
+ NextPageToken was returned, the results are being paginated.
309
+ To get the next page of results, repeat the call with the
310
+ returned token and all other arguments unchanged.
311
+
312
+ :type reverse_order: boolean
313
+ :param reverse_order: When set to true, returns the events in
314
+ reverse order. By default the results are returned in
315
+ ascending order of the eventTimestamp of the events.
316
+
317
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
318
+ """
319
+ return self.json_request('PollForDecisionTask', {
320
+ 'domain': domain,
321
+ 'taskList': {'name': task_list},
322
+ 'identity': identity,
323
+ 'maximumPageSize': maximum_page_size,
324
+ 'nextPageToken': next_page_token,
325
+ 'reverseOrder': reverse_order,
326
+ })
327
+
328
+ def respond_decision_task_completed(self, task_token,
329
+ decisions=None,
330
+ execution_context=None):
331
+ """
332
+ Used by deciders to tell the service that the DecisionTask
333
+ identified by the taskToken has successfully completed.
334
+ The decisions argument specifies the list of decisions
335
+ made while processing the task.
336
+
337
+ :type task_token: string
338
+ :param task_token: The taskToken of the ActivityTask.
339
+
340
+ :type decisions: list
341
+ :param decisions: The list of decisions (possibly empty) made by
342
+ the decider while processing this decision task. See the docs
343
+ for the Decision structure for details.
344
+
345
+ :type execution_context: string
346
+ :param execution_context: User defined context to add to
347
+ workflow execution.
348
+
349
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
350
+ """
351
+ return self.json_request('RespondDecisionTaskCompleted', {
352
+ 'taskToken': task_token,
353
+ 'decisions': decisions,
354
+ 'executionContext': execution_context,
355
+ })
356
+
357
+ def request_cancel_workflow_execution(self, domain, workflow_id,
358
+ run_id=None):
359
+ """
360
+ Records a WorkflowExecutionCancelRequested event in the
361
+ currently running workflow execution identified by the given
362
+ domain, workflowId, and runId. This logically requests the
363
+ cancellation of the workflow execution as a whole. It is up to
364
+ the decider to take appropriate actions when it receives an
365
+ execution history with this event.
366
+
367
+ :type domain: string
368
+ :param domain: The name of the domain containing the workflow
369
+ execution to cancel.
370
+
371
+ :type run_id: string
372
+ :param run_id: The runId of the workflow execution to cancel.
373
+
374
+ :type workflow_id: string
375
+ :param workflow_id: The workflowId of the workflow execution
376
+ to cancel.
377
+
378
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
379
+ """
380
+ return self.json_request('RequestCancelWorkflowExecution', {
381
+ 'domain': domain,
382
+ 'workflowId': workflow_id,
383
+ 'runId': run_id,
384
+ })
385
+
386
+ def start_workflow_execution(self, domain, workflow_id,
387
+ workflow_name, workflow_version,
388
+ task_list=None, child_policy=None,
389
+ execution_start_to_close_timeout=None,
390
+ input=None, tag_list=None,
391
+ task_start_to_close_timeout=None):
392
+ """
393
+ Starts an execution of the workflow type in the specified
394
+ domain using the provided workflowId and input data.
395
+
396
+ :type domain: string
397
+ :param domain: The name of the domain in which the workflow
398
+ execution is created.
399
+
400
+ :type workflow_id: string
401
+ :param workflow_id: The user defined identifier associated with
402
+ the workflow execution. You can use this to associate a
403
+ custom identifier with the workflow execution. You may
404
+ specify the same identifier if a workflow execution is
405
+ logically a restart of a previous execution. You cannot
406
+ have two open workflow executions with the same workflowId
407
+ at the same time.
408
+
409
+ :type workflow_name: string
410
+ :param workflow_name: The name of the workflow type.
411
+
412
+ :type workflow_version: string
413
+ :param workflow_version: The version of the workflow type.
414
+
415
+ :type task_list: string
416
+ :param task_list: The task list to use for the decision tasks
417
+ generated for this workflow execution. This overrides the
418
+ defaultTaskList specified when registering the workflow type.
419
+
420
+ :type child_policy: string
421
+ :param child_policy: If set, specifies the policy to use for the
422
+ child workflow executions of this workflow execution if it
423
+ is terminated, by calling the TerminateWorkflowExecution
424
+ action explicitly or due to an expired timeout. This policy
425
+ overrides the default child policy specified when registering
426
+ the workflow type using RegisterWorkflowType. The supported
427
+ child policies are:
428
+
429
+ * TERMINATE: the child executions will be terminated.
430
+ * REQUEST_CANCEL: a request to cancel will be attempted
431
+ for each child execution by recording a
432
+ WorkflowExecutionCancelRequested event in its history.
433
+ It is up to the decider to take appropriate actions
434
+ when it receives an execution history with this event.
435
+ * ABANDON: no action will be taken. The child executions
436
+ will continue to run.
437
+
438
+ :type execution_start_to_close_timeout: string
439
+ :param execution_start_to_close_timeout: The total duration for
440
+ this workflow execution. This overrides the
441
+ defaultExecutionStartToCloseTimeout specified when
442
+ registering the workflow type.
443
+
444
+ :type input: string
445
+ :param input: The input for the workflow
446
+ execution. This is a free form string which should be
447
+ meaningful to the workflow you are starting. This input is
448
+ made available to the new workflow execution in the
449
+ WorkflowExecutionStarted history event.
450
+
451
+ :type tag_list: list :param tag_list: The list of tags to
452
+ associate with the workflow execution. You can specify a
453
+ maximum of 5 tags. You can list workflow executions with a
454
+ specific tag by calling list_open_workflow_executions or
455
+ list_closed_workflow_executions and specifying a TagFilter.
456
+
457
+ :type task_start_to_close_timeout: string :param
458
+ task_start_to_close_timeout: Specifies the maximum duration of
459
+ decision tasks for this workflow execution. This parameter
460
+ overrides the defaultTaskStartToCloseTimout specified when
461
+ registering the workflow type using register_workflow_type.
462
+
463
+ :raises: UnknownResourceFault, TypeDeprecatedFault,
464
+ SWFWorkflowExecutionAlreadyStartedError, SWFLimitExceededError,
465
+ SWFOperationNotPermittedError, DefaultUndefinedFault
466
+ """
467
+ return self.json_request('StartWorkflowExecution', {
468
+ 'domain': domain,
469
+ 'workflowId': workflow_id,
470
+ 'workflowType': {'name': workflow_name,
471
+ 'version': workflow_version},
472
+ 'taskList': {'name': task_list},
473
+ 'childPolicy': child_policy,
474
+ 'executionStartToCloseTimeout': execution_start_to_close_timeout,
475
+ 'input': input,
476
+ 'tagList': tag_list,
477
+ 'taskStartToCloseTimeout': task_start_to_close_timeout,
478
+
479
+ })
480
+
481
+ def signal_workflow_execution(self, domain, signal_name, workflow_id,
482
+ input=None, run_id=None):
483
+ """
484
+ Records a WorkflowExecutionSignaled event in the workflow
485
+ execution history and creates a decision task for the workflow
486
+ execution identified by the given domain, workflowId and
487
+ runId. The event is recorded with the specified user defined
488
+ signalName and input (if provided).
489
+
490
+ :type domain: string
491
+ :param domain: The name of the domain containing the workflow
492
+ execution to signal.
493
+
494
+ :type signal_name: string
495
+ :param signal_name: The name of the signal. This name must be
496
+ meaningful to the target workflow.
497
+
498
+ :type workflow_id: string
499
+ :param workflow_id: The workflowId of the workflow execution
500
+ to signal.
501
+
502
+ :type input: string
503
+ :param input: Data to attach to the WorkflowExecutionSignaled
504
+ event in the target workflow execution's history.
505
+
506
+ :type run_id: string
507
+ :param run_id: The runId of the workflow execution to signal.
508
+
509
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
510
+ """
511
+ return self.json_request('SignalWorkflowExecution', {
512
+ 'domain': domain,
513
+ 'signalName': signal_name,
514
+ 'workflowId': workflow_id,
515
+ 'input': input,
516
+ 'runId': run_id,
517
+ })
518
+
519
+ def terminate_workflow_execution(self, domain, workflow_id,
520
+ child_policy=None, details=None,
521
+ reason=None, run_id=None):
522
+ """
523
+ Records a WorkflowExecutionTerminated event and forces closure
524
+ of the workflow execution identified by the given domain,
525
+ runId, and workflowId. The child policy, registered with the
526
+ workflow type or specified when starting this execution, is
527
+ applied to any open child workflow executions of this workflow
528
+ execution.
529
+
530
+ :type domain: string
531
+ :param domain: The domain of the workflow execution to terminate.
532
+
533
+ :type workflow_id: string
534
+ :param workflow_id: The workflowId of the workflow execution
535
+ to terminate.
536
+
537
+ :type child_policy: string
538
+ :param child_policy: If set, specifies the policy to use for
539
+ the child workflow executions of the workflow execution being
540
+ terminated. This policy overrides the child policy specified
541
+ for the workflow execution at registration time or when
542
+ starting the execution. The supported child policies are:
543
+
544
+ * TERMINATE: the child executions will be terminated.
545
+
546
+ * REQUEST_CANCEL: a request to cancel will be attempted
547
+ for each child execution by recording a
548
+ WorkflowExecutionCancelRequested event in its
549
+ history. It is up to the decider to take appropriate
550
+ actions when it receives an execution history with this
551
+ event.
552
+
553
+ * ABANDON: no action will be taken. The child executions
554
+ will continue to run.
555
+
556
+ :type details: string
557
+ :param details: Optional details for terminating the
558
+ workflow execution.
559
+
560
+ :type reason: string
561
+ :param reason: An optional descriptive reason for terminating
562
+ the workflow execution.
563
+
564
+ :type run_id: string
565
+ :param run_id: The runId of the workflow execution to terminate.
566
+
567
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
568
+ """
569
+ return self.json_request('TerminateWorkflowExecution', {
570
+ 'domain': domain,
571
+ 'workflowId': workflow_id,
572
+ 'childPolicy': child_policy,
573
+ 'details': details,
574
+ 'reason': reason,
575
+ 'runId': run_id,
576
+ })
577
+
578
+ # Actions related to Administration
579
+
580
+ ## Activity Management
581
+
582
+ def register_activity_type(self, domain, name, version, task_list=None,
583
+ default_task_heartbeat_timeout=None,
584
+ default_task_schedule_to_close_timeout=None,
585
+ default_task_schedule_to_start_timeout=None,
586
+ default_task_start_to_close_timeout=None,
587
+ description=None):
588
+ """
589
+ Registers a new activity type along with its configuration
590
+ settings in the specified domain.
591
+
592
+ :type domain: string
593
+ :param domain: The name of the domain in which this activity is
594
+ to be registered.
595
+
596
+ :type name: string
597
+ :param name: The name of the activity type within the domain.
598
+
599
+ :type version: string
600
+ :param version: The version of the activity type.
601
+
602
+ :type task_list: string
603
+ :param task_list: If set, specifies the default task list to
604
+ use for scheduling tasks of this activity type. This default
605
+ task list is used if a task list is not provided when a task
606
+ is scheduled through the schedule_activity_task Decision.
607
+
608
+ :type default_task_heartbeat_timeout: string
609
+ :param default_task_heartbeat_timeout: If set, specifies the
610
+ default maximum time before which a worker processing a task
611
+ of this type must report progress by calling
612
+ RecordActivityTaskHeartbeat. If the timeout is exceeded, the
613
+ activity task is automatically timed out. This default can be
614
+ overridden when scheduling an activity task using the
615
+ ScheduleActivityTask Decision. If the activity worker
616
+ subsequently attempts to record a heartbeat or returns a
617
+ result, the activity worker receives an UnknownResource
618
+ fault. In this case, Amazon SWF no longer considers the
619
+ activity task to be valid; the activity worker should clean up
620
+ the activity task.no docs
621
+
622
+ :type default_task_schedule_to_close_timeout: string
623
+ :param default_task_schedule_to_close_timeout: If set,
624
+ specifies the default maximum duration for a task of this
625
+ activity type. This default can be overridden when scheduling
626
+ an activity task using the ScheduleActivityTask Decision.no
627
+ docs
628
+
629
+ :type default_task_schedule_to_start_timeout: string
630
+ :param default_task_schedule_to_start_timeout: If set,
631
+ specifies the default maximum duration that a task of this
632
+ activity type can wait before being assigned to a worker. This
633
+ default can be overridden when scheduling an activity task
634
+ using the ScheduleActivityTask Decision.
635
+
636
+ :type default_task_start_to_close_timeout: string
637
+ :param default_task_start_to_close_timeout: If set, specifies
638
+ the default maximum duration that a worker can take to process
639
+ tasks of this activity type. This default can be overridden
640
+ when scheduling an activity task using the
641
+ ScheduleActivityTask Decision.
642
+
643
+ :type description: string
644
+ :param description: A textual description of the activity type.
645
+
646
+ :raises: SWFTypeAlreadyExistsError, SWFLimitExceededError,
647
+ UnknownResourceFault, SWFOperationNotPermittedError
648
+ """
649
+ return self.json_request('RegisterActivityType', {
650
+ 'domain': domain,
651
+ 'name': name,
652
+ 'version': version,
653
+ 'defaultTaskList': {'name': task_list},
654
+ 'defaultTaskHeartbeatTimeout': default_task_heartbeat_timeout,
655
+ 'defaultTaskScheduleToCloseTimeout': default_task_schedule_to_close_timeout,
656
+ 'defaultTaskScheduleToStartTimeout': default_task_schedule_to_start_timeout,
657
+ 'defaultTaskStartToCloseTimeout': default_task_start_to_close_timeout,
658
+ 'description': description,
659
+ })
660
+
661
+ def deprecate_activity_type(self, domain, activity_name, activity_version):
662
+ """
663
+ Returns information about the specified activity type. This
664
+ includes configuration settings provided at registration time
665
+ as well as other general information about the type.
666
+
667
+ :type domain: string
668
+ :param domain: The name of the domain in which the activity
669
+ type is registered.
670
+
671
+ :type activity_name: string
672
+ :param activity_name: The name of this activity.
673
+
674
+ :type activity_version: string
675
+ :param activity_version: The version of this activity.
676
+
677
+ :raises: UnknownResourceFault, TypeDeprecatedFault,
678
+ SWFOperationNotPermittedError
679
+ """
680
+ return self.json_request('DeprecateActivityType', {
681
+ 'domain': domain,
682
+ 'activityType': {'name': activity_name,
683
+ 'version': activity_version}
684
+ })
685
+
686
+ ## Workflow Management
687
+
688
+ def register_workflow_type(self, domain, name, version,
689
+ task_list=None,
690
+ default_child_policy=None,
691
+ default_execution_start_to_close_timeout=None,
692
+ default_task_start_to_close_timeout=None,
693
+ description=None):
694
+ """
695
+ Registers a new workflow type and its configuration settings
696
+ in the specified domain.
697
+
698
+ :type domain: string
699
+ :param domain: The name of the domain in which to register
700
+ the workflow type.
701
+
702
+ :type name: string
703
+ :param name: The name of the workflow type.
704
+
705
+ :type version: string
706
+ :param version: The version of the workflow type.
707
+
708
+ :type task_list: list of name, version of tasks
709
+ :param task_list: If set, specifies the default task list to use
710
+ for scheduling decision tasks for executions of this workflow
711
+ type. This default is used only if a task list is not provided
712
+ when starting the execution through the StartWorkflowExecution
713
+ Action or StartChildWorkflowExecution Decision.
714
+
715
+ :type default_child_policy: string
716
+
717
+ :param default_child_policy: If set, specifies the default
718
+ policy to use for the child workflow executions when a
719
+ workflow execution of this type is terminated, by calling the
720
+ TerminateWorkflowExecution action explicitly or due to an
721
+ expired timeout. This default can be overridden when starting
722
+ a workflow execution using the StartWorkflowExecution action
723
+ or the StartChildWorkflowExecution Decision. The supported
724
+ child policies are:
725
+
726
+ * TERMINATE: the child executions will be terminated.
727
+
728
+ * REQUEST_CANCEL: a request to cancel will be attempted
729
+ for each child execution by recording a
730
+ WorkflowExecutionCancelRequested event in its
731
+ history. It is up to the decider to take appropriate
732
+ actions when it receives an execution history with this
733
+ event.
734
+
735
+ * ABANDON: no action will be taken. The child executions
736
+ will continue to run.no docs
737
+
738
+ :type default_execution_start_to_close_timeout: string
739
+ :param default_execution_start_to_close_timeout: If set,
740
+ specifies the default maximum duration for executions of this
741
+ workflow type. You can override this default when starting an
742
+ execution through the StartWorkflowExecution Action or
743
+ StartChildWorkflowExecution Decision.
744
+
745
+ :type default_task_start_to_close_timeout: string
746
+ :param default_task_start_to_close_timeout: If set, specifies
747
+ the default maximum duration of decision tasks for this
748
+ workflow type. This default can be overridden when starting a
749
+ workflow execution using the StartWorkflowExecution action or
750
+ the StartChildWorkflowExecution Decision.
751
+
752
+ :type description: string
753
+ :param description: Textual description of the workflow type.
754
+
755
+ :raises: SWFTypeAlreadyExistsError, SWFLimitExceededError,
756
+ UnknownResourceFault, SWFOperationNotPermittedError
757
+ """
758
+ return self.json_request('RegisterWorkflowType', {
759
+ 'domain': domain,
760
+ 'name': name,
761
+ 'version': version,
762
+ 'defaultTaskList': {'name': task_list},
763
+ 'defaultChildPolicy': default_child_policy,
764
+ 'defaultExecutionStartToCloseTimeout': default_execution_start_to_close_timeout,
765
+ 'defaultTaskStartToCloseTimeout': default_task_start_to_close_timeout,
766
+ 'description': description,
767
+ })
768
+
769
+ def deprecate_workflow_type(self, domain, workflow_name, workflow_version):
770
+ """
771
+ Deprecates the specified workflow type. After a workflow type
772
+ has been deprecated, you cannot create new executions of that
773
+ type. Executions that were started before the type was
774
+ deprecated will continue to run. A deprecated workflow type
775
+ may still be used when calling visibility actions.
776
+
777
+ :type domain: string
778
+ :param domain: The name of the domain in which the workflow
779
+ type is registered.
780
+
781
+ :type workflow_name: string
782
+ :param workflow_name: The name of the workflow type.
783
+
784
+ :type workflow_version: string
785
+ :param workflow_version: The version of the workflow type.
786
+
787
+ :raises: UnknownResourceFault, TypeDeprecatedFault,
788
+ SWFOperationNotPermittedError
789
+ """
790
+ return self.json_request('DeprecateWorkflowType', {
791
+ 'domain': domain,
792
+ 'workflowType': {'name': workflow_name,
793
+ 'version': workflow_version},
794
+ })
795
+
796
+ ## Domain Management
797
+
798
+ def register_domain(self, name,
799
+ workflow_execution_retention_period_in_days,
800
+ description=None):
801
+ """
802
+ Registers a new domain.
803
+
804
+ :type name: string
805
+ :param name: Name of the domain to register. The name must be unique.
806
+
807
+ :type workflow_execution_retention_period_in_days: string
808
+
809
+ :param workflow_execution_retention_period_in_days: Specifies
810
+ the duration *in days* for which the record (including the
811
+ history) of workflow executions in this domain should be kept
812
+ by the service. After the retention period, the workflow
813
+ execution will not be available in the results of visibility
814
+ calls. If a duration of NONE is specified, the records for
815
+ workflow executions in this domain are not retained at all.
816
+
817
+ :type description: string
818
+ :param description: Textual description of the domain.
819
+
820
+ :raises: SWFDomainAlreadyExistsError, SWFLimitExceededError,
821
+ SWFOperationNotPermittedError
822
+ """
823
+ return self.json_request('RegisterDomain', {
824
+ 'name': name,
825
+ 'workflowExecutionRetentionPeriodInDays': workflow_execution_retention_period_in_days,
826
+ 'description': description,
827
+ })
828
+
829
+ def deprecate_domain(self, name):
830
+ """
831
+ Deprecates the specified domain. After a domain has been
832
+ deprecated it cannot be used to create new workflow executions
833
+ or register new types. However, you can still use visibility
834
+ actions on this domain. Deprecating a domain also deprecates
835
+ all activity and workflow types registered in the
836
+ domain. Executions that were started before the domain was
837
+ deprecated will continue to run.
838
+
839
+ :type name: string
840
+ :param name: The name of the domain to deprecate.
841
+
842
+ :raises: UnknownResourceFault, DomainDeprecatedFault,
843
+ SWFOperationNotPermittedError
844
+ """
845
+ return self.json_request('DeprecateDomain', {'name': name})
846
+
847
+ # Visibility Actions
848
+
849
+ ## Activity Visibility
850
+
851
+ def list_activity_types(self, domain, registration_status,
852
+ name=None,
853
+ maximum_page_size=None,
854
+ next_page_token=None, reverse_order=None):
855
+ """
856
+ Returns information about all activities registered in the
857
+ specified domain that match the specified name and
858
+ registration status. The result includes information like
859
+ creation date, current status of the activity, etc. The
860
+ results may be split into multiple pages. To retrieve
861
+ subsequent pages, make the call again using the nextPageToken
862
+ returned by the initial call.
863
+
864
+ :type domain: string
865
+ :param domain: The name of the domain in which the activity
866
+ types have been registered.
867
+
868
+ :type registration_status: string
869
+ :param registration_status: Specifies the registration status
870
+ of the activity types to list. Valid values are:
871
+
872
+ * REGISTERED
873
+ * DEPRECATED
874
+
875
+ :type name: string
876
+ :param name: If specified, only lists the activity types that
877
+ have this name.
878
+
879
+ :type maximum_page_size: integer
880
+ :param maximum_page_size: The maximum number of results
881
+ returned in each page. The default is 100, but the caller can
882
+ override this value to a page size smaller than the
883
+ default. You cannot specify a page size greater than 100.
884
+
885
+ :type next_page_token: string
886
+ :param next_page_token: If on a previous call to this method a
887
+ NextResultToken was returned, the results have more than one
888
+ page. To get the next page of results, repeat the call with
889
+ the nextPageToken and keep all other arguments unchanged.
890
+
891
+ :type reverse_order: boolean
892
+
893
+ :param reverse_order: When set to true, returns the results in
894
+ reverse order. By default the results are returned in
895
+ ascending alphabetical order of the name of the activity
896
+ types.
897
+
898
+ :raises: SWFOperationNotPermittedError, UnknownResourceFault
899
+ """
900
+ return self.json_request('ListActivityTypes', {
901
+ 'domain': domain,
902
+ 'name': name,
903
+ 'registrationStatus': registration_status,
904
+ 'maximumPageSize': maximum_page_size,
905
+ 'nextPageToken': next_page_token,
906
+ 'reverseOrder': reverse_order,
907
+ })
908
+
909
+ def describe_activity_type(self, domain, activity_name, activity_version):
910
+ """
911
+ Returns information about the specified activity type. This
912
+ includes configuration settings provided at registration time
913
+ as well as other general information about the type.
914
+
915
+ :type domain: string
916
+ :param domain: The name of the domain in which the activity
917
+ type is registered.
918
+
919
+ :type activity_name: string
920
+ :param activity_name: The name of this activity.
921
+
922
+ :type activity_version: string
923
+ :param activity_version: The version of this activity.
924
+
925
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
926
+ """
927
+ return self.json_request('DescribeActivityType', {
928
+ 'domain': domain,
929
+ 'activityType': {'name': activity_name,
930
+ 'version': activity_version}
931
+ })
932
+
933
+ ## Workflow Visibility
934
+
935
+ def list_workflow_types(self, domain, registration_status,
936
+ maximum_page_size=None, name=None,
937
+ next_page_token=None, reverse_order=None):
938
+ """
939
+ Returns information about workflow types in the specified
940
+ domain. The results may be split into multiple pages that can
941
+ be retrieved by making the call repeatedly.
942
+
943
+ :type domain: string
944
+ :param domain: The name of the domain in which the workflow
945
+ types have been registered.
946
+
947
+ :type registration_status: string
948
+ :param registration_status: Specifies the registration status
949
+ of the activity types to list. Valid values are:
950
+
951
+ * REGISTERED
952
+ * DEPRECATED
953
+
954
+ :type name: string
955
+ :param name: If specified, lists the workflow type with this name.
956
+
957
+ :type maximum_page_size: integer
958
+ :param maximum_page_size: The maximum number of results
959
+ returned in each page. The default is 100, but the caller can
960
+ override this value to a page size smaller than the
961
+ default. You cannot specify a page size greater than 100.
962
+
963
+ :type next_page_token: string
964
+ :param next_page_token: If on a previous call to this method a
965
+ NextPageToken was returned, the results are being
966
+ paginated. To get the next page of results, repeat the call
967
+ with the returned token and all other arguments unchanged.
968
+
969
+ :type reverse_order: boolean
970
+ :param reverse_order: When set to true, returns the results in
971
+ reverse order. By default the results are returned in
972
+ ascending alphabetical order of the name of the workflow
973
+ types.
974
+
975
+ :raises: SWFOperationNotPermittedError, UnknownResourceFault
976
+ """
977
+ return self.json_request('ListWorkflowTypes', {
978
+ 'domain': domain,
979
+ 'name': name,
980
+ 'registrationStatus': registration_status,
981
+ 'maximumPageSize': maximum_page_size,
982
+ 'nextPageToken': next_page_token,
983
+ 'reverseOrder': reverse_order,
984
+ })
985
+
986
+ def describe_workflow_type(self, domain, workflow_name, workflow_version):
987
+ """
988
+ Returns information about the specified workflow type. This
989
+ includes configuration settings specified when the type was
990
+ registered and other information such as creation date,
991
+ current status, etc.
992
+
993
+ :type domain: string
994
+ :param domain: The name of the domain in which this workflow
995
+ type is registered.
996
+
997
+ :type workflow_name: string
998
+ :param workflow_name: The name of the workflow type.
999
+
1000
+ :type workflow_version: string
1001
+ :param workflow_version: The version of the workflow type.
1002
+
1003
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
1004
+ """
1005
+ return self.json_request('DescribeWorkflowType', {
1006
+ 'domain': domain,
1007
+ 'workflowType': {'name': workflow_name,
1008
+ 'version': workflow_version}
1009
+ })
1010
+
1011
+ ## Workflow Execution Visibility
1012
+
1013
+ def describe_workflow_execution(self, domain, run_id, workflow_id):
1014
+ """
1015
+ Returns information about the specified workflow execution
1016
+ including its type and some statistics.
1017
+
1018
+ :type domain: string
1019
+ :param domain: The name of the domain containing the
1020
+ workflow execution.
1021
+
1022
+ :type run_id: string
1023
+ :param run_id: A system generated unique identifier for the
1024
+ workflow execution.
1025
+
1026
+ :type workflow_id: string
1027
+ :param workflow_id: The user defined identifier associated
1028
+ with the workflow execution.
1029
+
1030
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
1031
+ """
1032
+ return self.json_request('DescribeWorkflowExecution', {
1033
+ 'domain': domain,
1034
+ 'execution': {'runId': run_id,
1035
+ 'workflowId': workflow_id},
1036
+ })
1037
+
1038
+ def get_workflow_execution_history(self, domain, run_id, workflow_id,
1039
+ maximum_page_size=None,
1040
+ next_page_token=None,
1041
+ reverse_order=None):
1042
+ """
1043
+ Returns the history of the specified workflow execution. The
1044
+ results may be split into multiple pages. To retrieve
1045
+ subsequent pages, make the call again using the nextPageToken
1046
+ returned by the initial call.
1047
+
1048
+ :type domain: string
1049
+ :param domain: The name of the domain containing the
1050
+ workflow execution.
1051
+
1052
+ :type run_id: string
1053
+ :param run_id: A system generated unique identifier for the
1054
+ workflow execution.
1055
+
1056
+ :type workflow_id: string
1057
+ :param workflow_id: The user defined identifier associated
1058
+ with the workflow execution.
1059
+
1060
+ :type maximum_page_size: integer
1061
+ :param maximum_page_size: Specifies the maximum number of
1062
+ history events returned in one page. The next page in the
1063
+ result is identified by the NextPageToken returned. By default
1064
+ 100 history events are returned in a page but the caller can
1065
+ override this value to a page size smaller than the
1066
+ default. You cannot specify a page size larger than 100.
1067
+
1068
+ :type next_page_token: string
1069
+ :param next_page_token: If a NextPageToken is returned, the
1070
+ result has more than one pages. To get the next page, repeat
1071
+ the call and specify the nextPageToken with all other
1072
+ arguments unchanged.
1073
+
1074
+ :type reverse_order: boolean
1075
+ :param reverse_order: When set to true, returns the events in
1076
+ reverse order. By default the results are returned in
1077
+ ascending order of the eventTimeStamp of the events.
1078
+
1079
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
1080
+ """
1081
+ return self.json_request('GetWorkflowExecutionHistory', {
1082
+ 'domain': domain,
1083
+ 'execution': {'runId': run_id,
1084
+ 'workflowId': workflow_id},
1085
+ 'maximumPageSize': maximum_page_size,
1086
+ 'nextPageToken': next_page_token,
1087
+ 'reverseOrder': reverse_order,
1088
+ })
1089
+
1090
+ def count_open_workflow_executions(self, domain, latest_date, oldest_date,
1091
+ tag=None,
1092
+ workflow_id=None,
1093
+ workflow_name=None,
1094
+ workflow_version=None):
1095
+ """
1096
+ Returns the number of open workflow executions within the
1097
+ given domain that meet the specified filtering criteria.
1098
+
1099
+ .. note:
1100
+ workflow_id, workflow_name/workflow_version and tag are mutually
1101
+ exclusive. You can specify at most one of these in a request.
1102
+
1103
+ :type domain: string
1104
+ :param domain: The name of the domain containing the
1105
+ workflow executions to count.
1106
+
1107
+ :type latest_date: timestamp
1108
+ :param latest_date: Specifies the latest start or close date
1109
+ and time to return.
1110
+
1111
+ :type oldest_date: timestamp
1112
+ :param oldest_date: Specifies the oldest start or close date
1113
+ and time to return.
1114
+
1115
+ :type workflow_name: string
1116
+ :param workflow_name: Name of the workflow type to filter on.
1117
+
1118
+ :type workflow_version: string
1119
+ :param workflow_version: Version of the workflow type to filter on.
1120
+
1121
+ :type tag: string
1122
+ :param tag: If specified, only executions that have a tag
1123
+ that matches the filter are counted.
1124
+
1125
+ :type workflow_id: string
1126
+ :param workflow_id: If specified, only workflow executions
1127
+ matching the workflow_id are counted.
1128
+
1129
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
1130
+ """
1131
+ return self.json_request('CountOpenWorkflowExecutions', {
1132
+ 'domain': domain,
1133
+ 'startTimeFilter': {'oldestDate': oldest_date,
1134
+ 'latestDate': latest_date},
1135
+ 'typeFilter': {'name': workflow_name,
1136
+ 'version': workflow_version},
1137
+ 'executionFilter': {'workflowId': workflow_id},
1138
+ 'tagFilter': {'tag': tag},
1139
+ })
1140
+
1141
+ def list_open_workflow_executions(self, domain,
1142
+ oldest_date,
1143
+ latest_date=None,
1144
+ tag=None,
1145
+ workflow_id=None,
1146
+ workflow_name=None,
1147
+ workflow_version=None,
1148
+ maximum_page_size=None,
1149
+ next_page_token=None,
1150
+ reverse_order=None):
1151
+ """
1152
+ Returns the list of open workflow executions within the
1153
+ given domain that meet the specified filtering criteria.
1154
+
1155
+ .. note:
1156
+ workflow_id, workflow_name/workflow_version
1157
+ and tag are mutually exclusive. You can specify at most
1158
+ one of these in a request.
1159
+
1160
+ :type domain: string
1161
+ :param domain: The name of the domain containing the
1162
+ workflow executions to count.
1163
+
1164
+ :type latest_date: timestamp
1165
+ :param latest_date: Specifies the latest start or close date
1166
+ and time to return.
1167
+
1168
+ :type oldest_date: timestamp
1169
+ :param oldest_date: Specifies the oldest start or close date
1170
+ and time to return.
1171
+
1172
+ :type tag: string
1173
+ :param tag: If specified, only executions that have a tag
1174
+ that matches the filter are counted.
1175
+
1176
+ :type workflow_id: string
1177
+ :param workflow_id: If specified, only workflow executions
1178
+ matching the workflow_id are counted.
1179
+
1180
+ :type workflow_name: string
1181
+ :param workflow_name: Name of the workflow type to filter on.
1182
+
1183
+ :type workflow_version: string
1184
+ :param workflow_version: Version of the workflow type to filter on.
1185
+
1186
+ :type maximum_page_size: integer
1187
+ :param maximum_page_size: The maximum number of results
1188
+ returned in each page. The default is 100, but the caller can
1189
+ override this value to a page size smaller than the
1190
+ default. You cannot specify a page size greater than 100.
1191
+
1192
+ :type next_page_token: string
1193
+ :param next_page_token: If on a previous call to this method a
1194
+ NextPageToken was returned, the results are being
1195
+ paginated. To get the next page of results, repeat the call
1196
+ with the returned token and all other arguments unchanged.
1197
+
1198
+ :type reverse_order: boolean
1199
+ :param reverse_order: When set to true, returns the results in
1200
+ reverse order. By default the results are returned in
1201
+ descending order of the start or the close time of the
1202
+ executions.
1203
+
1204
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
1205
+
1206
+ """
1207
+ return self.json_request('ListOpenWorkflowExecutions', {
1208
+ 'domain': domain,
1209
+ 'startTimeFilter': {'oldestDate': oldest_date,
1210
+ 'latestDate': latest_date},
1211
+ 'tagFilter': {'tag': tag},
1212
+ 'typeFilter': {'name': workflow_name,
1213
+ 'version': workflow_version},
1214
+ 'executionFilter': {'workflowId': workflow_id},
1215
+ 'maximumPageSize': maximum_page_size,
1216
+ 'nextPageToken': next_page_token,
1217
+ 'reverseOrder': reverse_order,
1218
+ })
1219
+
1220
+ def count_closed_workflow_executions(self, domain,
1221
+ start_latest_date=None,
1222
+ start_oldest_date=None,
1223
+ close_latest_date=None,
1224
+ close_oldest_date=None,
1225
+ close_status=None,
1226
+ tag=None,
1227
+ workflow_id=None,
1228
+ workflow_name=None,
1229
+ workflow_version=None):
1230
+ """
1231
+ Returns the number of closed workflow executions within the
1232
+ given domain that meet the specified filtering criteria.
1233
+
1234
+ .. note:
1235
+ close_status, workflow_id, workflow_name/workflow_version
1236
+ and tag are mutually exclusive. You can specify at most
1237
+ one of these in a request.
1238
+
1239
+ .. note:
1240
+ start_latest_date/start_oldest_date and
1241
+ close_latest_date/close_oldest_date are mutually
1242
+ exclusive. You can specify at most one of these in a request.
1243
+
1244
+ :type domain: string
1245
+ :param domain: The name of the domain containing the
1246
+ workflow executions to count.
1247
+
1248
+ :type start_latest_date: timestamp
1249
+ :param start_latest_date: If specified, only workflow executions
1250
+ that meet the start time criteria of the filter are counted.
1251
+
1252
+ :type start_oldest_date: timestamp
1253
+ :param start_oldest_date: If specified, only workflow executions
1254
+ that meet the start time criteria of the filter are counted.
1255
+
1256
+ :type close_latest_date: timestamp
1257
+ :param close_latest_date: If specified, only workflow executions
1258
+ that meet the close time criteria of the filter are counted.
1259
+
1260
+ :type close_oldest_date: timestamp
1261
+ :param close_oldest_date: If specified, only workflow executions
1262
+ that meet the close time criteria of the filter are counted.
1263
+
1264
+ :type close_status: string
1265
+ :param close_status: The close status that must match the close status
1266
+ of an execution for it to meet the criteria of this filter.
1267
+ Valid values are:
1268
+
1269
+ * COMPLETED
1270
+ * FAILED
1271
+ * CANCELED
1272
+ * TERMINATED
1273
+ * CONTINUED_AS_NEW
1274
+ * TIMED_OUT
1275
+
1276
+ :type tag: string
1277
+ :param tag: If specified, only executions that have a tag
1278
+ that matches the filter are counted.
1279
+
1280
+ :type workflow_id: string
1281
+ :param workflow_id: If specified, only workflow executions
1282
+ matching the workflow_id are counted.
1283
+
1284
+ :type workflow_name: string
1285
+ :param workflow_name: Name of the workflow type to filter on.
1286
+
1287
+ :type workflow_version: string
1288
+ :param workflow_version: Version of the workflow type to filter on.
1289
+
1290
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
1291
+ """
1292
+ return self.json_request('CountClosedWorkflowExecutions', {
1293
+ 'domain': domain,
1294
+ 'startTimeFilter': {'oldestDate': start_oldest_date,
1295
+ 'latestDate': start_latest_date},
1296
+ 'closeTimeFilter': {'oldestDate': close_oldest_date,
1297
+ 'latestDate': close_latest_date},
1298
+ 'closeStatusFilter': {'status': close_status},
1299
+ 'tagFilter': {'tag': tag},
1300
+ 'typeFilter': {'name': workflow_name,
1301
+ 'version': workflow_version},
1302
+ 'executionFilter': {'workflowId': workflow_id}
1303
+ })
1304
+
1305
+ def list_closed_workflow_executions(self, domain,
1306
+ start_latest_date=None,
1307
+ start_oldest_date=None,
1308
+ close_latest_date=None,
1309
+ close_oldest_date=None,
1310
+ close_status=None,
1311
+ tag=None,
1312
+ workflow_id=None,
1313
+ workflow_name=None,
1314
+ workflow_version=None,
1315
+ maximum_page_size=None,
1316
+ next_page_token=None,
1317
+ reverse_order=None):
1318
+ """
1319
+ Returns the number of closed workflow executions within the
1320
+ given domain that meet the specified filtering criteria.
1321
+
1322
+ .. note:
1323
+ close_status, workflow_id, workflow_name/workflow_version
1324
+ and tag are mutually exclusive. You can specify at most
1325
+ one of these in a request.
1326
+
1327
+ .. note:
1328
+ start_latest_date/start_oldest_date and
1329
+ close_latest_date/close_oldest_date are mutually
1330
+ exclusive. You can specify at most one of these in a request.
1331
+
1332
+ :type domain: string
1333
+ :param domain: The name of the domain containing the
1334
+ workflow executions to count.
1335
+
1336
+ :type start_latest_date: timestamp
1337
+ :param start_latest_date: If specified, only workflow executions
1338
+ that meet the start time criteria of the filter are counted.
1339
+
1340
+ :type start_oldest_date: timestamp
1341
+ :param start_oldest_date: If specified, only workflow executions
1342
+ that meet the start time criteria of the filter are counted.
1343
+
1344
+ :type close_latest_date: timestamp
1345
+ :param close_latest_date: If specified, only workflow executions
1346
+ that meet the close time criteria of the filter are counted.
1347
+
1348
+ :type close_oldest_date: timestamp
1349
+ :param close_oldest_date: If specified, only workflow executions
1350
+ that meet the close time criteria of the filter are counted.
1351
+
1352
+ :type close_status: string
1353
+ :param close_status: The close status that must match the close status
1354
+ of an execution for it to meet the criteria of this filter.
1355
+ Valid values are:
1356
+
1357
+ * COMPLETED
1358
+ * FAILED
1359
+ * CANCELED
1360
+ * TERMINATED
1361
+ * CONTINUED_AS_NEW
1362
+ * TIMED_OUT
1363
+
1364
+ :type tag: string
1365
+ :param tag: If specified, only executions that have a tag
1366
+ that matches the filter are counted.
1367
+
1368
+ :type workflow_id: string
1369
+ :param workflow_id: If specified, only workflow executions
1370
+ matching the workflow_id are counted.
1371
+
1372
+ :type workflow_name: string
1373
+ :param workflow_name: Name of the workflow type to filter on.
1374
+
1375
+ :type workflow_version: string
1376
+ :param workflow_version: Version of the workflow type to filter on.
1377
+
1378
+ :type maximum_page_size: integer
1379
+ :param maximum_page_size: The maximum number of results
1380
+ returned in each page. The default is 100, but the caller can
1381
+ override this value to a page size smaller than the
1382
+ default. You cannot specify a page size greater than 100.
1383
+
1384
+ :type next_page_token: string
1385
+ :param next_page_token: If on a previous call to this method a
1386
+ NextPageToken was returned, the results are being
1387
+ paginated. To get the next page of results, repeat the call
1388
+ with the returned token and all other arguments unchanged.
1389
+
1390
+ :type reverse_order: boolean
1391
+ :param reverse_order: When set to true, returns the results in
1392
+ reverse order. By default the results are returned in
1393
+ descending order of the start or the close time of the
1394
+ executions.
1395
+
1396
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
1397
+ """
1398
+ return self.json_request('ListClosedWorkflowExecutions', {
1399
+ 'domain': domain,
1400
+ 'startTimeFilter': {'oldestDate': start_oldest_date,
1401
+ 'latestDate': start_latest_date},
1402
+ 'closeTimeFilter': {'oldestDate': close_oldest_date,
1403
+ 'latestDate': close_latest_date},
1404
+ 'executionFilter': {'workflowId': workflow_id},
1405
+ 'closeStatusFilter': {'status': close_status},
1406
+ 'tagFilter': {'tag': tag},
1407
+ 'typeFilter': {'name': workflow_name,
1408
+ 'version': workflow_version},
1409
+ 'maximumPageSize': maximum_page_size,
1410
+ 'nextPageToken': next_page_token,
1411
+ 'reverseOrder': reverse_order,
1412
+ })
1413
+
1414
+ ## Domain Visibility
1415
+
1416
+ def list_domains(self, registration_status,
1417
+ maximum_page_size=None,
1418
+ next_page_token=None, reverse_order=None):
1419
+ """
1420
+ Returns the list of domains registered in the account. The
1421
+ results may be split into multiple pages. To retrieve
1422
+ subsequent pages, make the call again using the nextPageToken
1423
+ returned by the initial call.
1424
+
1425
+ :type registration_status: string
1426
+ :param registration_status: Specifies the registration status
1427
+ of the domains to list. Valid Values:
1428
+
1429
+ * REGISTERED
1430
+ * DEPRECATED
1431
+
1432
+ :type maximum_page_size: integer
1433
+ :param maximum_page_size: The maximum number of results
1434
+ returned in each page. The default is 100, but the caller can
1435
+ override this value to a page size smaller than the
1436
+ default. You cannot specify a page size greater than 100.
1437
+
1438
+ :type next_page_token: string
1439
+ :param next_page_token: If on a previous call to this method a
1440
+ NextPageToken was returned, the result has more than one
1441
+ page. To get the next page of results, repeat the call with
1442
+ the returned token and all other arguments unchanged.
1443
+
1444
+ :type reverse_order: boolean
1445
+ :param reverse_order: When set to true, returns the results in
1446
+ reverse order. By default the results are returned in
1447
+ ascending alphabetical order of the name of the domains.
1448
+
1449
+ :raises: SWFOperationNotPermittedError
1450
+ """
1451
+ return self.json_request('ListDomains', {
1452
+ 'registrationStatus': registration_status,
1453
+ 'maximumPageSize': maximum_page_size,
1454
+ 'nextPageToken': next_page_token,
1455
+ 'reverseOrder': reverse_order,
1456
+ })
1457
+
1458
+ def describe_domain(self, name):
1459
+ """
1460
+ Returns information about the specified domain including
1461
+ description and status.
1462
+
1463
+ :type name: string
1464
+ :param name: The name of the domain to describe.
1465
+
1466
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
1467
+ """
1468
+ return self.json_request('DescribeDomain', {'name': name})
1469
+
1470
+ ## Task List Visibility
1471
+
1472
+ def count_pending_decision_tasks(self, domain, task_list):
1473
+ """
1474
+ Returns the estimated number of decision tasks in the
1475
+ specified task list. The count returned is an approximation
1476
+ and is not guaranteed to be exact. If you specify a task list
1477
+ that no decision task was ever scheduled in then 0 will be
1478
+ returned.
1479
+
1480
+ :type domain: string
1481
+ :param domain: The name of the domain that contains the task list.
1482
+
1483
+ :type task_list: string
1484
+ :param task_list: The name of the task list.
1485
+
1486
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
1487
+ """
1488
+ return self.json_request('CountPendingDecisionTasks', {
1489
+ 'domain': domain,
1490
+ 'taskList': {'name': task_list}
1491
+ })
1492
+
1493
+ def count_pending_activity_tasks(self, domain, task_list):
1494
+ """
1495
+ Returns the estimated number of activity tasks in the
1496
+ specified task list. The count returned is an approximation
1497
+ and is not guaranteed to be exact. If you specify a task list
1498
+ that no activity task was ever scheduled in then 0 will be
1499
+ returned.
1500
+
1501
+ :type domain: string
1502
+ :param domain: The name of the domain that contains the task list.
1503
+
1504
+ :type task_list: string
1505
+ :param task_list: The name of the task list.
1506
+
1507
+ :raises: UnknownResourceFault, SWFOperationNotPermittedError
1508
+ """
1509
+ return self.json_request('CountPendingActivityTasks', {
1510
+ 'domain': domain,
1511
+ 'taskList': {'name': task_list}
1512
+ })