googlecloud 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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,910 @@
1
+ # Copyright (c) 2009 Mitch Garnaat http://garnaat.org/
2
+ #
3
+ # Permission is hereby granted, free of charge, to any person obtaining a
4
+ # copy of this software and associated documentation files (the
5
+ # "Software"), to deal in the Software without restriction, including
6
+ # without limitation the rights to use, copy, modify, merge, publish, dis-
7
+ # tribute, sublicense, and/or sell copies of the Software, and to permit
8
+ # persons to whom the Software is furnished to do so, subject to the fol-
9
+ # lowing conditions:
10
+ #
11
+ # The above copyright notice and this permission notice shall be included
12
+ # in all copies or substantial portions of the Software.
13
+ #
14
+ # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
15
+ # OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
16
+ # ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
17
+ # SHALL THE AUTHOR BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
18
+ # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
19
+ # OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
20
+ # IN THE SOFTWARE.
21
+
22
+ """
23
+ Represents a connection to the EC2 service.
24
+ """
25
+
26
+ from boto.ec2.connection import EC2Connection
27
+ from boto.resultset import ResultSet
28
+ from boto.vpc.vpc import VPC
29
+ from boto.vpc.customergateway import CustomerGateway
30
+ from boto.vpc.routetable import RouteTable
31
+ from boto.vpc.internetgateway import InternetGateway
32
+ from boto.vpc.vpngateway import VpnGateway, Attachment
33
+ from boto.vpc.dhcpoptions import DhcpOptions
34
+ from boto.vpc.subnet import Subnet
35
+ from boto.vpc.vpnconnection import VpnConnection
36
+ from boto.ec2 import RegionData
37
+ from boto.regioninfo import RegionInfo
38
+
39
+ def regions(**kw_params):
40
+ """
41
+ Get all available regions for the EC2 service.
42
+ You may pass any of the arguments accepted by the VPCConnection
43
+ object's constructor as keyword arguments and they will be
44
+ passed along to the VPCConnection object.
45
+
46
+ :rtype: list
47
+ :return: A list of :class:`boto.ec2.regioninfo.RegionInfo`
48
+ """
49
+ regions = []
50
+ for region_name in RegionData:
51
+ region = RegionInfo(name=region_name,
52
+ endpoint=RegionData[region_name],
53
+ connection_cls=VPCConnection)
54
+ regions.append(region)
55
+ return regions
56
+
57
+
58
+ def connect_to_region(region_name, **kw_params):
59
+ """
60
+ Given a valid region name, return a
61
+ :class:`boto.vpc.VPCConnection`.
62
+ Any additional parameters after the region_name are passed on to
63
+ the connect method of the region object.
64
+
65
+ :type: str
66
+ :param region_name: The name of the region to connect to.
67
+
68
+ :rtype: :class:`boto.vpc.VPCConnection` or ``None``
69
+ :return: A connection to the given region, or None if an invalid region
70
+ name is given
71
+ """
72
+ for region in regions(**kw_params):
73
+ if region.name == region_name:
74
+ return region.connect(**kw_params)
75
+ return None
76
+
77
+
78
+ class VPCConnection(EC2Connection):
79
+
80
+ # VPC methods
81
+
82
+ def get_all_vpcs(self, vpc_ids=None, filters=None):
83
+ """
84
+ Retrieve information about your VPCs. You can filter results to
85
+ return information only about those VPCs that match your search
86
+ parameters. Otherwise, all VPCs associated with your account
87
+ are returned.
88
+
89
+ :type vpc_ids: list
90
+ :param vpc_ids: A list of strings with the desired VPC ID's
91
+
92
+ :type filters: list of tuples
93
+ :param filters: A list of tuples containing filters. Each tuple
94
+ consists of a filter key and a filter value.
95
+ Possible filter keys are:
96
+
97
+ * *state* - a list of states of the VPC (pending or available)
98
+ * *cidrBlock* - a list CIDR blocks of the VPC
99
+ * *dhcpOptionsId* - a list of IDs of a set of DHCP options
100
+
101
+ :rtype: list
102
+ :return: A list of :class:`boto.vpc.vpc.VPC`
103
+ """
104
+ params = {}
105
+ if vpc_ids:
106
+ self.build_list_params(params, vpc_ids, 'VpcId')
107
+ if filters:
108
+ self.build_filter_params(params, dict(filters))
109
+ return self.get_list('DescribeVpcs', params, [('item', VPC)])
110
+
111
+ def create_vpc(self, cidr_block):
112
+ """
113
+ Create a new Virtual Private Cloud.
114
+
115
+ :type cidr_block: str
116
+ :param cidr_block: A valid CIDR block
117
+
118
+ :rtype: The newly created VPC
119
+ :return: A :class:`boto.vpc.vpc.VPC` object
120
+ """
121
+ params = {'CidrBlock' : cidr_block}
122
+ return self.get_object('CreateVpc', params, VPC)
123
+
124
+ def delete_vpc(self, vpc_id):
125
+ """
126
+ Delete a Virtual Private Cloud.
127
+
128
+ :type vpc_id: str
129
+ :param vpc_id: The ID of the vpc to be deleted.
130
+
131
+ :rtype: bool
132
+ :return: True if successful
133
+ """
134
+ params = {'VpcId': vpc_id}
135
+ return self.get_status('DeleteVpc', params)
136
+
137
+ # Route Tables
138
+
139
+ def get_all_route_tables(self, route_table_ids=None, filters=None):
140
+ """
141
+ Retrieve information about your routing tables. You can filter results
142
+ to return information only about those route tables that match your
143
+ search parameters. Otherwise, all route tables associated with your
144
+ account are returned.
145
+
146
+ :type route_table_ids: list
147
+ :param route_table_ids: A list of strings with the desired route table
148
+ IDs.
149
+
150
+ :type filters: list of tuples
151
+ :param filters: A list of tuples containing filters. Each tuple
152
+ consists of a filter key and a filter value.
153
+
154
+ :rtype: list
155
+ :return: A list of :class:`boto.vpc.routetable.RouteTable`
156
+ """
157
+ params = {}
158
+ if route_table_ids:
159
+ self.build_list_params(params, route_table_ids, "RouteTableId")
160
+ if filters:
161
+ self.build_filter_params(params, dict(filters))
162
+ return self.get_list('DescribeRouteTables', params,
163
+ [('item', RouteTable)])
164
+
165
+ def associate_route_table(self, route_table_id, subnet_id):
166
+ """
167
+ Associates a route table with a specific subnet.
168
+
169
+ :type route_table_id: str
170
+ :param route_table_id: The ID of the route table to associate.
171
+
172
+ :type subnet_id: str
173
+ :param subnet_id: The ID of the subnet to associate with.
174
+
175
+ :rtype: str
176
+ :return: The ID of the association created
177
+ """
178
+ params = {
179
+ 'RouteTableId': route_table_id,
180
+ 'SubnetId': subnet_id
181
+ }
182
+
183
+ result = self.get_object('AssociateRouteTable', params, ResultSet)
184
+ return result.associationId
185
+
186
+ def disassociate_route_table(self, association_id):
187
+ """
188
+ Removes an association from a route table. This will cause all subnets
189
+ that would've used this association to now use the main routing
190
+ association instead.
191
+
192
+ :type association_id: str
193
+ :param association_id: The ID of the association to disassociate.
194
+
195
+ :rtype: bool
196
+ :return: True if successful
197
+ """
198
+ params = { 'AssociationId': association_id }
199
+ return self.get_status('DisassociateRouteTable', params)
200
+
201
+ def create_route_table(self, vpc_id):
202
+ """
203
+ Creates a new route table.
204
+
205
+ :type vpc_id: str
206
+ :param vpc_id: The VPC ID to associate this route table with.
207
+
208
+ :rtype: The newly created route table
209
+ :return: A :class:`boto.vpc.routetable.RouteTable` object
210
+ """
211
+ params = { 'VpcId': vpc_id }
212
+ return self.get_object('CreateRouteTable', params, RouteTable)
213
+
214
+ def delete_route_table(self, route_table_id):
215
+ """
216
+ Delete a route table.
217
+
218
+ :type route_table_id: str
219
+ :param route_table_id: The ID of the route table to delete.
220
+
221
+ :rtype: bool
222
+ :return: True if successful
223
+ """
224
+ params = { 'RouteTableId': route_table_id }
225
+ return self.get_status('DeleteRouteTable', params)
226
+
227
+ def create_route(self, route_table_id, destination_cidr_block,
228
+ gateway_id=None, instance_id=None):
229
+ """
230
+ Creates a new route in the route table within a VPC. The route's target
231
+ can be either a gateway attached to the VPC or a NAT instance in the
232
+ VPC.
233
+
234
+ :type route_table_id: str
235
+ :param route_table_id: The ID of the route table for the route.
236
+
237
+ :type destination_cidr_block: str
238
+ :param destination_cidr_block: The CIDR address block used for the
239
+ destination match.
240
+
241
+ :type gateway_id: str
242
+ :param gateway_id: The ID of the gateway attached to your VPC.
243
+
244
+ :type instance_id: str
245
+ :param instance_id: The ID of a NAT instance in your VPC.
246
+
247
+ :rtype: bool
248
+ :return: True if successful
249
+ """
250
+ params = {
251
+ 'RouteTableId': route_table_id,
252
+ 'DestinationCidrBlock': destination_cidr_block
253
+ }
254
+
255
+ if gateway_id is not None:
256
+ params['GatewayId'] = gateway_id
257
+ elif instance_id is not None:
258
+ params['InstanceId'] = instance_id
259
+
260
+ return self.get_status('CreateRoute', params)
261
+
262
+ def replace_route(self, route_table_id, destination_cidr_block,
263
+ gateway_id=None, instance_id=None, interface_id=None):
264
+ """
265
+ Replaces an existing route within a route table in a VPC.
266
+
267
+ :type route_table_id: str
268
+ :param route_table_id: The ID of the route table for the route.
269
+
270
+ :type destination_cidr_block: str
271
+ :param destination_cidr_block: The CIDR address block used for the
272
+ destination match.
273
+
274
+ :type gateway_id: str
275
+ :param gateway_id: The ID of the gateway attached to your VPC.
276
+
277
+ :type instance_id: str
278
+ :param instance_id: The ID of a NAT instance in your VPC.
279
+
280
+ :type interface_id: str
281
+ :param interface_id: Allows routing to network interface attachments.
282
+
283
+ :rtype: bool
284
+ :return: True if successful
285
+ """
286
+ params = {
287
+ 'RouteTableId': route_table_id,
288
+ 'DestinationCidrBlock': destination_cidr_block
289
+ }
290
+
291
+ if gateway_id is not None:
292
+ params['GatewayId'] = gateway_id
293
+ elif instance_id is not None:
294
+ params['InstanceId'] = instance_id
295
+ elif interface_id is not None:
296
+ params['NetworkInterfaceId'] = interface_id
297
+
298
+ return self.get_status('ReplaceRoute', params)
299
+
300
+ def delete_route(self, route_table_id, destination_cidr_block):
301
+ """
302
+ Deletes a route from a route table within a VPC.
303
+
304
+ :type route_table_id: str
305
+ :param route_table_id: The ID of the route table with the route.
306
+
307
+ :type destination_cidr_block: str
308
+ :param destination_cidr_block: The CIDR address block used for
309
+ destination match.
310
+
311
+ :rtype: bool
312
+ :return: True if successful
313
+ """
314
+ params = {
315
+ 'RouteTableId': route_table_id,
316
+ 'DestinationCidrBlock': destination_cidr_block
317
+ }
318
+
319
+ return self.get_status('DeleteRoute', params)
320
+
321
+ # Internet Gateways
322
+
323
+ def get_all_internet_gateways(self, internet_gateway_ids=None,
324
+ filters=None):
325
+ """
326
+ Get a list of internet gateways. You can filter results to return information
327
+ about only those gateways that you're interested in.
328
+
329
+ :type internet_gateway_ids: list
330
+ :param internet_gateway_ids: A list of strings with the desired gateway IDs.
331
+
332
+ :type filters: list of tuples
333
+ :param filters: A list of tuples containing filters. Each tuple
334
+ consists of a filter key and a filter value.
335
+ """
336
+ params = {}
337
+
338
+ if internet_gateway_ids:
339
+ self.build_list_params(params, internet_gateway_ids,
340
+ 'InternetGatewayId')
341
+ if filters:
342
+ self.build_filter_params(params, dict(filters))
343
+ return self.get_list('DescribeInternetGateways', params,
344
+ [('item', InternetGateway)])
345
+
346
+ def create_internet_gateway(self):
347
+ """
348
+ Creates an internet gateway for VPC.
349
+
350
+ :rtype: Newly created internet gateway.
351
+ :return: `boto.vpc.internetgateway.InternetGateway`
352
+ """
353
+ return self.get_object('CreateInternetGateway', {}, InternetGateway)
354
+
355
+ def delete_internet_gateway(self, internet_gateway_id):
356
+ """
357
+ Deletes an internet gateway from the VPC.
358
+
359
+ :type internet_gateway_id: str
360
+ :param internet_gateway_id: The ID of the internet gateway to delete.
361
+
362
+ :rtype: Bool
363
+ :return: True if successful
364
+ """
365
+ params = { 'InternetGatewayId': internet_gateway_id }
366
+ return self.get_status('DeleteInternetGateway', params)
367
+
368
+ def attach_internet_gateway(self, internet_gateway_id, vpc_id):
369
+ """
370
+ Attach an internet gateway to a specific VPC.
371
+
372
+ :type internet_gateway_id: str
373
+ :param internet_gateway_id: The ID of the internet gateway to delete.
374
+
375
+ :type vpc_id: str
376
+ :param vpc_id: The ID of the VPC to attach to.
377
+
378
+ :rtype: Bool
379
+ :return: True if successful
380
+ """
381
+ params = {
382
+ 'InternetGatewayId': internet_gateway_id,
383
+ 'VpcId': vpc_id
384
+ }
385
+
386
+ return self.get_status('AttachInternetGateway', params)
387
+
388
+ def detach_internet_gateway(self, internet_gateway_id, vpc_id):
389
+ """
390
+ Detach an internet gateway from a specific VPC.
391
+
392
+ :type internet_gateway_id: str
393
+ :param internet_gateway_id: The ID of the internet gateway to detach.
394
+
395
+ :type vpc_id: str
396
+ :param vpc_id: The ID of the VPC to attach to.
397
+
398
+ :rtype: Bool
399
+ :return: True if successful
400
+ """
401
+ params = {
402
+ 'InternetGatewayId': internet_gateway_id,
403
+ 'VpcId': vpc_id
404
+ }
405
+
406
+ return self.get_status('DetachInternetGateway', params)
407
+
408
+ # Customer Gateways
409
+
410
+ def get_all_customer_gateways(self, customer_gateway_ids=None,
411
+ filters=None):
412
+ """
413
+ Retrieve information about your CustomerGateways. You can filter
414
+ results to return information only about those CustomerGateways that
415
+ match your search parameters. Otherwise, all CustomerGateways
416
+ associated with your account are returned.
417
+
418
+ :type customer_gateway_ids: list
419
+ :param customer_gateway_ids: A list of strings with the desired
420
+ CustomerGateway ID's.
421
+
422
+ :type filters: list of tuples
423
+ :param filters: A list of tuples containing filters. Each tuple
424
+ consists of a filter key and a filter value.
425
+ Possible filter keys are:
426
+
427
+ - *state*, the state of the CustomerGateway
428
+ (pending,available,deleting,deleted)
429
+ - *type*, the type of customer gateway (ipsec.1)
430
+ - *ipAddress* the IP address of customer gateway's
431
+ internet-routable external inteface
432
+
433
+ :rtype: list
434
+ :return: A list of :class:`boto.vpc.customergateway.CustomerGateway`
435
+ """
436
+ params = {}
437
+ if customer_gateway_ids:
438
+ self.build_list_params(params, customer_gateway_ids,
439
+ 'CustomerGatewayId')
440
+ if filters:
441
+ self.build_filter_params(params, dict(filters))
442
+
443
+ return self.get_list('DescribeCustomerGateways', params,
444
+ [('item', CustomerGateway)])
445
+
446
+ def create_customer_gateway(self, type, ip_address, bgp_asn):
447
+ """
448
+ Create a new Customer Gateway
449
+
450
+ :type type: str
451
+ :param type: Type of VPN Connection. Only valid valid currently is 'ipsec.1'
452
+
453
+ :type ip_address: str
454
+ :param ip_address: Internet-routable IP address for customer's gateway.
455
+ Must be a static address.
456
+
457
+ :type bgp_asn: str
458
+ :param bgp_asn: Customer gateway's Border Gateway Protocol (BGP)
459
+ Autonomous System Number (ASN)
460
+
461
+ :rtype: The newly created CustomerGateway
462
+ :return: A :class:`boto.vpc.customergateway.CustomerGateway` object
463
+ """
464
+ params = {'Type' : type,
465
+ 'IpAddress' : ip_address,
466
+ 'BgpAsn' : bgp_asn}
467
+ return self.get_object('CreateCustomerGateway', params, CustomerGateway)
468
+
469
+ def delete_customer_gateway(self, customer_gateway_id):
470
+ """
471
+ Delete a Customer Gateway.
472
+
473
+ :type customer_gateway_id: str
474
+ :param customer_gateway_id: The ID of the customer_gateway to be deleted.
475
+
476
+ :rtype: bool
477
+ :return: True if successful
478
+ """
479
+ params = {'CustomerGatewayId': customer_gateway_id}
480
+ return self.get_status('DeleteCustomerGateway', params)
481
+
482
+ # VPN Gateways
483
+
484
+ def get_all_vpn_gateways(self, vpn_gateway_ids=None, filters=None):
485
+ """
486
+ Retrieve information about your VpnGateways. You can filter results to
487
+ return information only about those VpnGateways that match your search
488
+ parameters. Otherwise, all VpnGateways associated with your account
489
+ are returned.
490
+
491
+ :type vpn_gateway_ids: list
492
+ :param vpn_gateway_ids: A list of strings with the desired VpnGateway ID's
493
+
494
+ :type filters: list of tuples
495
+ :param filters: A list of tuples containing filters. Each tuple
496
+ consists of a filter key and a filter value.
497
+ Possible filter keys are:
498
+
499
+ - *state*, a list of states of the VpnGateway
500
+ (pending,available,deleting,deleted)
501
+ - *type*, a list types of customer gateway (ipsec.1)
502
+ - *availabilityZone*, a list of Availability zones the
503
+ VPN gateway is in.
504
+
505
+ :rtype: list
506
+ :return: A list of :class:`boto.vpc.customergateway.VpnGateway`
507
+ """
508
+ params = {}
509
+ if vpn_gateway_ids:
510
+ self.build_list_params(params, vpn_gateway_ids, 'VpnGatewayId')
511
+ if filters:
512
+ self.build_filter_params(params, dict(filters))
513
+ return self.get_list('DescribeVpnGateways', params,
514
+ [('item', VpnGateway)])
515
+
516
+ def create_vpn_gateway(self, type, availability_zone=None):
517
+ """
518
+ Create a new Vpn Gateway
519
+
520
+ :type type: str
521
+ :param type: Type of VPN Connection. Only valid valid currently is 'ipsec.1'
522
+
523
+ :type availability_zone: str
524
+ :param availability_zone: The Availability Zone where you want the VPN gateway.
525
+
526
+ :rtype: The newly created VpnGateway
527
+ :return: A :class:`boto.vpc.vpngateway.VpnGateway` object
528
+ """
529
+ params = {'Type' : type}
530
+ if availability_zone:
531
+ params['AvailabilityZone'] = availability_zone
532
+ return self.get_object('CreateVpnGateway', params, VpnGateway)
533
+
534
+ def delete_vpn_gateway(self, vpn_gateway_id):
535
+ """
536
+ Delete a Vpn Gateway.
537
+
538
+ :type vpn_gateway_id: str
539
+ :param vpn_gateway_id: The ID of the vpn_gateway to be deleted.
540
+
541
+ :rtype: bool
542
+ :return: True if successful
543
+ """
544
+ params = {'VpnGatewayId': vpn_gateway_id}
545
+ return self.get_status('DeleteVpnGateway', params)
546
+
547
+ def attach_vpn_gateway(self, vpn_gateway_id, vpc_id):
548
+ """
549
+ Attaches a VPN gateway to a VPC.
550
+
551
+ :type vpn_gateway_id: str
552
+ :param vpn_gateway_id: The ID of the vpn_gateway to attach
553
+
554
+ :type vpc_id: str
555
+ :param vpc_id: The ID of the VPC you want to attach the gateway to.
556
+
557
+ :rtype: An attachment
558
+ :return: a :class:`boto.vpc.vpngateway.Attachment`
559
+ """
560
+ params = {'VpnGatewayId': vpn_gateway_id,
561
+ 'VpcId' : vpc_id}
562
+ return self.get_object('AttachVpnGateway', params, Attachment)
563
+
564
+ # Subnets
565
+
566
+ def get_all_subnets(self, subnet_ids=None, filters=None):
567
+ """
568
+ Retrieve information about your Subnets. You can filter results to
569
+ return information only about those Subnets that match your search
570
+ parameters. Otherwise, all Subnets associated with your account
571
+ are returned.
572
+
573
+ :type subnet_ids: list
574
+ :param subnet_ids: A list of strings with the desired Subnet ID's
575
+
576
+ :type filters: list of tuples
577
+ :param filters: A list of tuples containing filters. Each tuple
578
+ consists of a filter key and a filter value.
579
+ Possible filter keys are:
580
+
581
+ - *state*, a list of states of the Subnet
582
+ (pending,available)
583
+ - *vpcId*, a list of IDs of teh VPC the subnet is in.
584
+ - *cidrBlock*, a list of CIDR blocks of the subnet
585
+ - *availabilityZone*, list of the Availability Zones
586
+ the subnet is in.
587
+
588
+
589
+ :rtype: list
590
+ :return: A list of :class:`boto.vpc.subnet.Subnet`
591
+ """
592
+ params = {}
593
+ if subnet_ids:
594
+ self.build_list_params(params, subnet_ids, 'SubnetId')
595
+ if filters:
596
+ self.build_filter_params(params, dict(filters))
597
+ return self.get_list('DescribeSubnets', params, [('item', Subnet)])
598
+
599
+ def create_subnet(self, vpc_id, cidr_block, availability_zone=None):
600
+ """
601
+ Create a new Subnet
602
+
603
+ :type vpc_id: str
604
+ :param vpc_id: The ID of the VPC where you want to create the subnet.
605
+
606
+ :type cidr_block: str
607
+ :param cidr_block: The CIDR block you want the subnet to cover.
608
+
609
+ :type availability_zone: str
610
+ :param availability_zone: The AZ you want the subnet in
611
+
612
+ :rtype: The newly created Subnet
613
+ :return: A :class:`boto.vpc.customergateway.Subnet` object
614
+ """
615
+ params = {'VpcId' : vpc_id,
616
+ 'CidrBlock' : cidr_block}
617
+ if availability_zone:
618
+ params['AvailabilityZone'] = availability_zone
619
+ return self.get_object('CreateSubnet', params, Subnet)
620
+
621
+ def delete_subnet(self, subnet_id):
622
+ """
623
+ Delete a subnet.
624
+
625
+ :type subnet_id: str
626
+ :param subnet_id: The ID of the subnet to be deleted.
627
+
628
+ :rtype: bool
629
+ :return: True if successful
630
+ """
631
+ params = {'SubnetId': subnet_id}
632
+ return self.get_status('DeleteSubnet', params)
633
+
634
+
635
+ # DHCP Options
636
+
637
+ def get_all_dhcp_options(self, dhcp_options_ids=None):
638
+ """
639
+ Retrieve information about your DhcpOptions.
640
+
641
+ :type dhcp_options_ids: list
642
+ :param dhcp_options_ids: A list of strings with the desired DhcpOption ID's
643
+
644
+ :rtype: list
645
+ :return: A list of :class:`boto.vpc.dhcpoptions.DhcpOptions`
646
+ """
647
+ params = {}
648
+ if dhcp_options_ids:
649
+ self.build_list_params(params, dhcp_options_ids, 'DhcpOptionsId')
650
+ return self.get_list('DescribeDhcpOptions', params,
651
+ [('item', DhcpOptions)])
652
+
653
+ def create_dhcp_options(self, domain_name=None, domain_name_servers=None,
654
+ ntp_servers=None, netbios_name_servers=None,
655
+ netbios_node_type=None):
656
+ """
657
+ Create a new DhcpOption
658
+
659
+ This corresponds to
660
+ http://docs.amazonwebservices.com/AWSEC2/latest/APIReference/ApiReference-query-CreateDhcpOptions.html
661
+
662
+ :type domain_name: str
663
+ :param domain_name: A domain name of your choice (for example,
664
+ example.com)
665
+
666
+ :type domain_name_servers: list of strings
667
+ :param domain_name_servers: The IP address of a domain name server. You
668
+ can specify up to four addresses.
669
+
670
+ :type ntp_servers: list of strings
671
+ :param ntp_servers: The IP address of a Network Time Protocol (NTP)
672
+ server. You can specify up to four addresses.
673
+
674
+ :type netbios_name_servers: list of strings
675
+ :param netbios_name_servers: The IP address of a NetBIOS name server.
676
+ You can specify up to four addresses.
677
+
678
+ :type netbios_node_type: str
679
+ :param netbios_node_type: The NetBIOS node type (1, 2, 4, or 8). For
680
+ more information about the values, see RFC 2132. We recommend you
681
+ only use 2 at this time (broadcast and multicast are currently not
682
+ supported).
683
+
684
+ :rtype: The newly created DhcpOption
685
+ :return: A :class:`boto.vpc.customergateway.DhcpOption` object
686
+ """
687
+
688
+ key_counter = 1
689
+ params = {}
690
+
691
+ def insert_option(params, name, value):
692
+ params['DhcpConfiguration.%d.Key' % (key_counter,)] = name
693
+ if isinstance(value, (list, tuple)):
694
+ for idx, value in enumerate(value, 1):
695
+ key_name = 'DhcpConfiguration.%d.Value.%d' % (
696
+ key_counter, idx)
697
+ params[key_name] = value
698
+ else:
699
+ key_name = 'DhcpConfiguration.%d.Value.1' % (key_counter,)
700
+ params[key_name] = value
701
+
702
+ return key_counter + 1
703
+
704
+ if domain_name:
705
+ key_counter = insert_option(params,
706
+ 'domain-name', domain_name)
707
+ if domain_name_servers:
708
+ key_counter = insert_option(params,
709
+ 'domain-name-servers', domain_name_servers)
710
+ if ntp_servers:
711
+ key_counter = insert_option(params,
712
+ 'ntp-servers', ntp_servers)
713
+ if netbios_name_servers:
714
+ key_counter = insert_option(params,
715
+ 'netbios-name-servers', netbios_name_servers)
716
+ if netbios_node_type:
717
+ key_counter = insert_option(params,
718
+ 'netbios-node-type', netbios_node_type)
719
+
720
+ return self.get_object('CreateDhcpOptions', params, DhcpOptions)
721
+
722
+ def delete_dhcp_options(self, dhcp_options_id):
723
+ """
724
+ Delete a DHCP Options
725
+
726
+ :type dhcp_options_id: str
727
+ :param dhcp_options_id: The ID of the DHCP Options to be deleted.
728
+
729
+ :rtype: bool
730
+ :return: True if successful
731
+ """
732
+ params = {'DhcpOptionsId': dhcp_options_id}
733
+ return self.get_status('DeleteDhcpOptions', params)
734
+
735
+ def associate_dhcp_options(self, dhcp_options_id, vpc_id):
736
+ """
737
+ Associate a set of Dhcp Options with a VPC.
738
+
739
+ :type dhcp_options_id: str
740
+ :param dhcp_options_id: The ID of the Dhcp Options
741
+
742
+ :type vpc_id: str
743
+ :param vpc_id: The ID of the VPC.
744
+
745
+ :rtype: bool
746
+ :return: True if successful
747
+ """
748
+ params = {'DhcpOptionsId': dhcp_options_id,
749
+ 'VpcId' : vpc_id}
750
+ return self.get_status('AssociateDhcpOptions', params)
751
+
752
+ # VPN Connection
753
+
754
+ def get_all_vpn_connections(self, vpn_connection_ids=None, filters=None):
755
+ """
756
+ Retrieve information about your VPN_CONNECTIONs. You can filter results to
757
+ return information only about those VPN_CONNECTIONs that match your search
758
+ parameters. Otherwise, all VPN_CONNECTIONs associated with your account
759
+ are returned.
760
+
761
+ :type vpn_connection_ids: list
762
+ :param vpn_connection_ids: A list of strings with the desired VPN_CONNECTION ID's
763
+
764
+ :type filters: list of tuples
765
+ :param filters: A list of tuples containing filters. Each tuple
766
+ consists of a filter key and a filter value.
767
+ Possible filter keys are:
768
+
769
+ - *state*, a list of states of the VPN_CONNECTION
770
+ pending,available,deleting,deleted
771
+ - *type*, a list of types of connection, currently 'ipsec.1'
772
+ - *customerGatewayId*, a list of IDs of the customer gateway
773
+ associated with the VPN
774
+ - *vpnGatewayId*, a list of IDs of the VPN gateway associated
775
+ with the VPN connection
776
+
777
+ :rtype: list
778
+ :return: A list of :class:`boto.vpn_connection.vpnconnection.VpnConnection`
779
+ """
780
+ params = {}
781
+ if vpn_connection_ids:
782
+ self.build_list_params(params, vpn_connection_ids,
783
+ 'Vpn_ConnectionId')
784
+ if filters:
785
+ self.build_filter_params(params, dict(filters))
786
+ return self.get_list('DescribeVpnConnections', params,
787
+ [('item', VpnConnection)])
788
+
789
+ def create_vpn_connection(self, type, customer_gateway_id, vpn_gateway_id):
790
+ """
791
+ Create a new VPN Connection.
792
+
793
+ :type type: str
794
+ :param type: The type of VPN Connection. Currently only 'ipsec.1'
795
+ is supported
796
+
797
+ :type customer_gateway_id: str
798
+ :param customer_gateway_id: The ID of the customer gateway.
799
+
800
+ :type vpn_gateway_id: str
801
+ :param vpn_gateway_id: The ID of the VPN gateway.
802
+
803
+ :rtype: The newly created VpnConnection
804
+ :return: A :class:`boto.vpc.vpnconnection.VpnConnection` object
805
+ """
806
+ params = {'Type' : type,
807
+ 'CustomerGatewayId' : customer_gateway_id,
808
+ 'VpnGatewayId' : vpn_gateway_id}
809
+ return self.get_object('CreateVpnConnection', params, VpnConnection)
810
+
811
+ def delete_vpn_connection(self, vpn_connection_id):
812
+ """
813
+ Delete a VPN Connection.
814
+
815
+ :type vpn_connection_id: str
816
+ :param vpn_connection_id: The ID of the vpn_connection to be deleted.
817
+
818
+ :rtype: bool
819
+ :return: True if successful
820
+ """
821
+ params = {'VpnConnectionId': vpn_connection_id}
822
+ return self.get_status('DeleteVpnConnection', params)
823
+
824
+ def disable_vgw_route_propagation(self, route_table_id, gateway_id):
825
+ """
826
+ Disables a virtual private gateway (VGW) from propagating routes to the
827
+ routing tables of an Amazon VPC.
828
+
829
+ :type route_table_id: str
830
+ :param route_table_id: The ID of the routing table.
831
+
832
+ :type gateway_id: str
833
+ :param gateway_id: The ID of the virtual private gateway.
834
+
835
+ :rtype: bool
836
+ :return: True if successful
837
+ """
838
+ params = {
839
+ 'RouteTableId': route_table_id,
840
+ 'GatewayId': gateway_id,
841
+ }
842
+ self.get_status('DisableVgwRoutePropagation', params)
843
+
844
+ def enable_vgw_route_propagation(self, route_table_id, gateway_id):
845
+ """
846
+ Enables a virtual private gateway (VGW) to propagate routes to the
847
+ routing tables of an Amazon VPC.
848
+
849
+ :type route_table_id: str
850
+ :param route_table_id: The ID of the routing table.
851
+
852
+ :type gateway_id: str
853
+ :param gateway_id: The ID of the virtual private gateway.
854
+
855
+ :rtype: bool
856
+ :return: True if successful
857
+ """
858
+ params = {
859
+ 'RouteTableId': route_table_id,
860
+ 'GatewayId': gateway_id,
861
+ }
862
+ self.get_status('EnableVgwRoutePropagation', params)
863
+
864
+ def create_vpn_connection_route(self, destination_cidr_block,
865
+ vpn_connection_id):
866
+ """
867
+ Creates a new static route associated with a VPN connection between an
868
+ existing virtual private gateway and a VPN customer gateway. The static
869
+ route allows traffic to be routed from the virtual private gateway to
870
+ the VPN customer gateway.
871
+
872
+ :type destination_cidr_block: str
873
+ :param destination_cidr_block: The CIDR block associated with the local
874
+ subnet of the customer data center.
875
+
876
+ :type vpn_connection_id: str
877
+ :param vpn_connection_id: The ID of the VPN connection.
878
+
879
+ :rtype: bool
880
+ :return: True if successful
881
+ """
882
+ params = {
883
+ 'DestinationCidrBlock': destination_cidr_block,
884
+ 'VpnConnectionId': vpn_connection_id,
885
+ }
886
+ self.get_status('CreateVpnConnectionRoute', params)
887
+
888
+ def delete_vpn_connection_route(self, destination_cidr_block,
889
+ vpn_connection_id):
890
+ """
891
+ Deletes a static route associated with a VPN connection between an
892
+ existing virtual private gateway and a VPN customer gateway. The static
893
+ route allows traffic to be routed from the virtual private gateway to
894
+ the VPN customer gateway.
895
+
896
+ :type destination_cidr_block: str
897
+ :param destination_cidr_block: The CIDR block associated with the local
898
+ subnet of the customer data center.
899
+
900
+ :type vpn_connection_id: str
901
+ :param vpn_connection_id: The ID of the VPN connection.
902
+
903
+ :rtype: bool
904
+ :return: True if successful
905
+ """
906
+ params = {
907
+ 'DestinationCidrBlock': destination_cidr_block,
908
+ 'VpnConnectionId': vpn_connection_id,
909
+ }
910
+ self.get_status('DeleteVpnConnectionRoute', params)