aws-sdk-core 2.9.44 → 3.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (630) hide show
  1. checksums.yaml +4 -4
  2. data/VERSION +1 -0
  3. data/lib/aws-sdk-core/client_stubs.rb +1 -2
  4. data/lib/aws-sdk-core/credential_provider.rb +2 -0
  5. data/lib/aws-sdk-core/credential_provider_chain.rb +2 -1
  6. data/lib/aws-sdk-core/errors.rb +19 -8
  7. data/lib/aws-sdk-core/ini_parser.rb +1 -0
  8. data/lib/aws-sdk-core/json/handler.rb +3 -2
  9. data/lib/aws-sdk-core/json/parser.rb +1 -1
  10. data/lib/aws-sdk-core/json.rb +4 -5
  11. data/lib/aws-sdk-core/log/param_filter.rb +4 -3
  12. data/lib/aws-sdk-core/pageable_response.rb +1 -0
  13. data/lib/aws-sdk-core/pager.rb +30 -25
  14. data/lib/aws-sdk-core/param_converter.rb +3 -3
  15. data/lib/aws-sdk-core/param_validator.rb +10 -4
  16. data/lib/aws-sdk-core/plugins/credentials_configuration.rb +62 -0
  17. data/lib/aws-sdk-core/plugins/global_configuration.rb +19 -10
  18. data/lib/aws-sdk-core/plugins/idempotency_token.rb +1 -2
  19. data/lib/aws-sdk-core/plugins/logging.rb +18 -18
  20. data/lib/aws-sdk-core/plugins/param_converter.rb +9 -5
  21. data/lib/aws-sdk-core/plugins/param_validator.rb +8 -5
  22. data/lib/aws-sdk-core/plugins/protocols/ec2.rb +2 -1
  23. data/lib/aws-sdk-core/plugins/protocols/json_rpc.rb +13 -12
  24. data/lib/aws-sdk-core/plugins/protocols/query.rb +2 -2
  25. data/lib/aws-sdk-core/plugins/regional_endpoint.rb +23 -15
  26. data/lib/aws-sdk-core/plugins/response_paging.rb +5 -18
  27. data/lib/aws-sdk-core/plugins/retry_errors.rb +11 -8
  28. data/lib/aws-sdk-core/plugins/signature_v2.rb +51 -0
  29. data/lib/aws-sdk-core/plugins/signature_v4.rb +139 -0
  30. data/lib/aws-sdk-core/plugins/stub_responses.rb +13 -11
  31. data/lib/aws-sdk-core/plugins/user_agent.rb +17 -6
  32. data/lib/aws-sdk-core/query/handler.rb +15 -16
  33. data/lib/aws-sdk-core/query/param_builder.rb +1 -1
  34. data/lib/aws-sdk-core/query.rb +5 -0
  35. data/lib/aws-sdk-core/resources/collection.rb +121 -0
  36. data/lib/aws-sdk-core/rest/handler.rb +1 -0
  37. data/lib/aws-sdk-core/rest/response/parser.rb +14 -14
  38. data/lib/aws-sdk-core/rest.rb +10 -0
  39. data/lib/aws-sdk-core/shared_config.rb +1 -1
  40. data/lib/aws-sdk-core/shared_credentials.rb +2 -0
  41. data/lib/aws-sdk-core/structure.rb +17 -12
  42. data/lib/aws-sdk-core/stubbing/data_applicator.rb +1 -1
  43. data/lib/aws-sdk-core/stubbing/empty_stub.rb +6 -2
  44. data/lib/aws-sdk-core/stubbing/protocols/ec2.rb +1 -1
  45. data/lib/aws-sdk-core/stubbing/stub_data.rb +4 -0
  46. data/lib/aws-sdk-core/util.rb +39 -0
  47. data/lib/aws-sdk-core/version.rb +1 -1
  48. data/lib/aws-sdk-core/waiters/poller.rb +5 -9
  49. data/lib/aws-sdk-core/waiters/waiter.rb +1 -0
  50. data/lib/aws-sdk-core/waiters.rb +3 -0
  51. data/lib/aws-sdk-core/xml/builder.rb +2 -2
  52. data/lib/aws-sdk-core/xml/error_handler.rb +1 -2
  53. data/lib/aws-sdk-core/xml/parser/frame.rb +4 -4
  54. data/lib/aws-sdk-core/xml/parser.rb +1 -11
  55. data/lib/aws-sdk-core/xml.rb +9 -0
  56. data/lib/aws-sdk-core.rb +66 -454
  57. data/lib/aws-sdk-sts/client.rb +1439 -0
  58. data/lib/aws-sdk-sts/client_api.rb +264 -0
  59. data/lib/aws-sdk-sts/customizations.rb +0 -0
  60. data/lib/aws-sdk-sts/errors.rb +14 -0
  61. data/lib/aws-sdk-sts/resource.rb +23 -0
  62. data/lib/aws-sdk-sts/types.rb +919 -0
  63. data/lib/aws-sdk-sts.rb +45 -0
  64. data/lib/seahorse/client/base.rb +1 -7
  65. data/lib/seahorse/client/logging/formatter.rb +2 -0
  66. data/lib/seahorse/client/logging/handler.rb +2 -0
  67. data/lib/seahorse/client/net_http/connection_pool.rb +3 -0
  68. data/lib/seahorse/client/net_http/handler.rb +2 -0
  69. data/lib/seahorse/client/net_http/patches.rb +1 -0
  70. data/lib/seahorse/client/plugin.rb +66 -6
  71. data/lib/seahorse/client/plugins/endpoint.rb +14 -10
  72. data/lib/seahorse/client/plugins/logging.rb +17 -19
  73. data/lib/seahorse/client/plugins/net_http.rb +23 -15
  74. data/lib/seahorse/client/plugins/raise_response_errors.rb +4 -4
  75. data/lib/seahorse/client/plugins/response_target.rb +2 -0
  76. data/lib/seahorse/model/api.rb +4 -0
  77. data/lib/seahorse/model/shapes.rb +18 -2
  78. data/lib/seahorse/util.rb +0 -20
  79. data/lib/seahorse.rb +50 -60
  80. metadata +36 -557
  81. data/apis/acm/2015-12-08/api-2.json +0 -595
  82. data/apis/acm/2015-12-08/examples-1.json +0 -5
  83. data/apis/acm/2015-12-08/paginators-1.json +0 -10
  84. data/apis/apigateway/2015-07-09/api-2.json +0 -4733
  85. data/apis/apigateway/2015-07-09/examples-1.json +0 -5
  86. data/apis/apigateway/2015-07-09/paginators-1.json +0 -70
  87. data/apis/application-autoscaling/2016-02-06/api-2.json +0 -601
  88. data/apis/application-autoscaling/2016-02-06/examples-1.json +0 -257
  89. data/apis/application-autoscaling/2016-02-06/paginators-1.json +0 -22
  90. data/apis/appstream/2016-12-01/api-2.json +0 -944
  91. data/apis/appstream/2016-12-01/examples-1.json +0 -5
  92. data/apis/appstream/2016-12-01/paginators-1.json +0 -4
  93. data/apis/appstream/2016-12-01/waiters-2.json +0 -55
  94. data/apis/athena/2017-05-18/api-2.json +0 -615
  95. data/apis/athena/2017-05-18/examples-1.json +0 -5
  96. data/apis/athena/2017-05-18/paginators-1.json +0 -19
  97. data/apis/autoscaling/2011-01-01/api-2.json +0 -2172
  98. data/apis/autoscaling/2011-01-01/examples-1.json +0 -1396
  99. data/apis/autoscaling/2011-01-01/paginators-1.json +0 -52
  100. data/apis/autoscaling/2011-01-01/resources-1.json +0 -1624
  101. data/apis/autoscaling/2011-01-01/waiters-2.json +0 -62
  102. data/apis/batch/2016-08-10/api-2.json +0 -920
  103. data/apis/batch/2016-08-10/examples-1.json +0 -589
  104. data/apis/batch/2016-08-10/paginators-1.json +0 -4
  105. data/apis/budgets/2016-10-20/api-2.json +0 -697
  106. data/apis/budgets/2016-10-20/examples-1.json +0 -5
  107. data/apis/budgets/2016-10-20/paginators-1.json +0 -4
  108. data/apis/clouddirectory/2016-05-10/api-2.json +0 -3595
  109. data/apis/clouddirectory/2016-05-10/examples-1.json +0 -5
  110. data/apis/clouddirectory/2016-05-10/paginators-1.json +0 -94
  111. data/apis/cloudformation/2010-05-15/api-2.json +0 -1464
  112. data/apis/cloudformation/2010-05-15/examples-1.json +0 -5
  113. data/apis/cloudformation/2010-05-15/paginators-1.json +0 -37
  114. data/apis/cloudformation/2010-05-15/resources-1.json +0 -211
  115. data/apis/cloudformation/2010-05-15/waiters-2.json +0 -182
  116. data/apis/cloudfront/2016-01-28/api-2.json +0 -2219
  117. data/apis/cloudfront/2016-01-28/examples-1.json +0 -5
  118. data/apis/cloudfront/2016-01-28/paginators-1.json +0 -32
  119. data/apis/cloudfront/2016-01-28/waiters-2.json +0 -47
  120. data/apis/cloudfront/2016-08-01/api-2.json +0 -2548
  121. data/apis/cloudfront/2016-08-01/examples-1.json +0 -5
  122. data/apis/cloudfront/2016-08-01/paginators-1.json +0 -32
  123. data/apis/cloudfront/2016-08-01/waiters-2.json +0 -47
  124. data/apis/cloudfront/2016-08-20/api-2.json +0 -2586
  125. data/apis/cloudfront/2016-08-20/paginators-1.json +0 -32
  126. data/apis/cloudfront/2016-08-20/waiters-2.json +0 -47
  127. data/apis/cloudfront/2016-09-07/api-2.json +0 -2596
  128. data/apis/cloudfront/2016-09-07/examples-1.json +0 -5
  129. data/apis/cloudfront/2016-09-07/paginators-1.json +0 -32
  130. data/apis/cloudfront/2016-09-07/waiters-2.json +0 -47
  131. data/apis/cloudfront/2016-09-29/api-2.json +0 -2599
  132. data/apis/cloudfront/2016-09-29/examples-1.json +0 -5
  133. data/apis/cloudfront/2016-09-29/paginators-1.json +0 -32
  134. data/apis/cloudfront/2016-09-29/waiters-2.json +0 -47
  135. data/apis/cloudfront/2016-11-25/api-2.json +0 -2665
  136. data/apis/cloudfront/2016-11-25/examples-1.json +0 -5
  137. data/apis/cloudfront/2016-11-25/paginators-1.json +0 -32
  138. data/apis/cloudfront/2016-11-25/waiters-2.json +0 -47
  139. data/apis/cloudfront/2017-03-25/api-2.json +0 -2689
  140. data/apis/cloudfront/2017-03-25/examples-1.json +0 -83
  141. data/apis/cloudfront/2017-03-25/paginators-1.json +0 -32
  142. data/apis/cloudfront/2017-03-25/waiters-2.json +0 -47
  143. data/apis/cloudhsm/2014-05-30/api-2.json +0 -878
  144. data/apis/cloudhsm/2014-05-30/examples-1.json +0 -5
  145. data/apis/cloudsearch/2013-01-01/api-2.json +0 -2002
  146. data/apis/cloudsearch/2013-01-01/paginators-1.json +0 -20
  147. data/apis/cloudsearchdomain/2013-01-01/api-2.json +0 -374
  148. data/apis/cloudsearchdomain/2013-01-01/examples-1.json +0 -5
  149. data/apis/cloudtrail/2013-11-01/api-2.json +0 -912
  150. data/apis/cloudtrail/2013-11-01/examples-1.json +0 -5
  151. data/apis/cloudtrail/2013-11-01/paginators-1.json +0 -13
  152. data/apis/codebuild/2016-10-06/api-2.json +0 -704
  153. data/apis/codebuild/2016-10-06/examples-1.json +0 -5
  154. data/apis/codebuild/2016-10-06/paginators-1.json +0 -4
  155. data/apis/codecommit/2015-04-13/api-2.json +0 -1112
  156. data/apis/codecommit/2015-04-13/examples-1.json +0 -5
  157. data/apis/codecommit/2015-04-13/paginators-1.json +0 -19
  158. data/apis/codedeploy/2014-10-06/api-2.json +0 -2380
  159. data/apis/codedeploy/2014-10-06/examples-1.json +0 -5
  160. data/apis/codedeploy/2014-10-06/paginators-1.json +0 -34
  161. data/apis/codedeploy/2014-10-06/waiters-2.json +0 -30
  162. data/apis/codepipeline/2015-07-09/api-2.json +0 -1714
  163. data/apis/codepipeline/2015-07-09/examples-1.json +0 -5
  164. data/apis/codestar/2017-04-19/api-2.json +0 -755
  165. data/apis/codestar/2017-04-19/examples-1.json +0 -5
  166. data/apis/codestar/2017-04-19/paginators-1.json +0 -4
  167. data/apis/cognito-identity/2014-06-30/api-2.json +0 -943
  168. data/apis/cognito-identity/2014-06-30/examples-1.json +0 -5
  169. data/apis/cognito-identity/2014-06-30/paginators-1.json +0 -4
  170. data/apis/cognito-idp/2016-04-18/api-2.json +0 -3847
  171. data/apis/cognito-idp/2016-04-18/examples-1.json +0 -5
  172. data/apis/cognito-idp/2016-04-18/paginators-1.json +0 -4
  173. data/apis/cognito-sync/2014-06-30/api-2.json +0 -1875
  174. data/apis/config/2014-11-12/api-2.json +0 -1418
  175. data/apis/config/2014-11-12/examples-1.json +0 -5
  176. data/apis/config/2014-11-12/paginators-1.json +0 -10
  177. data/apis/cur/2017-01-06/api-2.json +0 -226
  178. data/apis/cur/2017-01-06/examples-1.json +0 -5
  179. data/apis/cur/2017-01-06/paginators-1.json +0 -9
  180. data/apis/datapipeline/2012-10-29/api-2.json +0 -1168
  181. data/apis/datapipeline/2012-10-29/paginators-1.json +0 -26
  182. data/apis/devicefarm/2015-06-23/api-2.json +0 -2312
  183. data/apis/devicefarm/2015-06-23/examples-1.json +0 -1242
  184. data/apis/devicefarm/2015-06-23/paginators-1.json +0 -77
  185. data/apis/directconnect/2012-10-25/api-2.json +0 -1351
  186. data/apis/directconnect/2012-10-25/examples-1.json +0 -5
  187. data/apis/directconnect/2012-10-25/paginators-1.json +0 -22
  188. data/apis/discovery/2015-11-01/api-2.json +0 -938
  189. data/apis/discovery/2015-11-01/examples-1.json +0 -5
  190. data/apis/discovery/2015-11-01/paginators-1.json +0 -4
  191. data/apis/dms/2016-01-01/api-2.json +0 -1881
  192. data/apis/dms/2016-01-01/examples-1.json +0 -1053
  193. data/apis/dms/2016-01-01/paginators-1.json +0 -64
  194. data/apis/ds/2015-04-16/api-2.json +0 -1972
  195. data/apis/ds/2015-04-16/examples-1.json +0 -5
  196. data/apis/dynamodb/2011-12-05/api-2.json +0 -802
  197. data/apis/dynamodb/2011-12-05/examples-1.json +0 -5
  198. data/apis/dynamodb/2011-12-05/paginators-1.json +0 -26
  199. data/apis/dynamodb/2011-12-05/waiters-2.json +0 -35
  200. data/apis/dynamodb/2012-08-10/api-2.json +0 -1405
  201. data/apis/dynamodb/2012-08-10/examples-1.json +0 -628
  202. data/apis/dynamodb/2012-08-10/paginators-1.json +0 -26
  203. data/apis/dynamodb/2012-08-10/resources-1.json +0 -136
  204. data/apis/dynamodb/2012-08-10/waiters-2.json +0 -35
  205. data/apis/ec2/2015-10-01/api-2.json +0 -13760
  206. data/apis/ec2/2015-10-01/examples-1.json +0 -5
  207. data/apis/ec2/2015-10-01/paginators-1.json +0 -138
  208. data/apis/ec2/2015-10-01/resources-1.json +0 -2582
  209. data/apis/ec2/2015-10-01/waiters-2.json +0 -593
  210. data/apis/ec2/2016-04-01/api-2.json +0 -14191
  211. data/apis/ec2/2016-04-01/examples-1.json +0 -3729
  212. data/apis/ec2/2016-04-01/paginators-1.json +0 -138
  213. data/apis/ec2/2016-04-01/resources-1.json +0 -2582
  214. data/apis/ec2/2016-04-01/waiters-2.json +0 -593
  215. data/apis/ec2/2016-09-15/api-2.json +0 -14415
  216. data/apis/ec2/2016-09-15/examples-1.json +0 -3740
  217. data/apis/ec2/2016-09-15/paginators-1.json +0 -138
  218. data/apis/ec2/2016-09-15/resources-1.json +0 -2582
  219. data/apis/ec2/2016-09-15/waiters-2.json +0 -593
  220. data/apis/ec2/2016-11-15/api-2.json +0 -15590
  221. data/apis/ec2/2016-11-15/examples-1.json +0 -3740
  222. data/apis/ec2/2016-11-15/paginators-1.json +0 -144
  223. data/apis/ec2/2016-11-15/resources-1.json +0 -2582
  224. data/apis/ec2/2016-11-15/waiters-2.json +0 -611
  225. data/apis/ecr/2015-09-21/api-2.json +0 -947
  226. data/apis/ecr/2015-09-21/examples-1.json +0 -215
  227. data/apis/ecr/2015-09-21/paginators-1.json +0 -22
  228. data/apis/ecs/2014-11-13/api-2.json +0 -1629
  229. data/apis/ecs/2014-11-13/examples-1.json +0 -883
  230. data/apis/ecs/2014-11-13/paginators-1.json +0 -40
  231. data/apis/ecs/2014-11-13/waiters-2.json +0 -93
  232. data/apis/elasticache/2015-02-02/api-2.json +0 -2550
  233. data/apis/elasticache/2015-02-02/examples-1.json +0 -3145
  234. data/apis/elasticache/2015-02-02/paginators-1.json +0 -76
  235. data/apis/elasticache/2015-02-02/waiters-2.json +0 -143
  236. data/apis/elasticbeanstalk/2010-12-01/api-2.json +0 -2332
  237. data/apis/elasticbeanstalk/2010-12-01/examples-1.json +0 -1109
  238. data/apis/elasticbeanstalk/2010-12-01/paginators-1.json +0 -25
  239. data/apis/elasticfilesystem/2015-02-01/api-2.json +0 -714
  240. data/apis/elasticfilesystem/2015-02-01/examples-1.json +0 -222
  241. data/apis/elasticloadbalancing/2012-06-01/api-2.json +0 -1629
  242. data/apis/elasticloadbalancing/2012-06-01/examples-1.json +0 -1036
  243. data/apis/elasticloadbalancing/2012-06-01/paginators-1.json +0 -18
  244. data/apis/elasticloadbalancing/2012-06-01/waiters-2.json +0 -49
  245. data/apis/elasticloadbalancingv2/2015-12-01/api-2.json +0 -1867
  246. data/apis/elasticloadbalancingv2/2015-12-01/examples-1.json +0 -1384
  247. data/apis/elasticloadbalancingv2/2015-12-01/paginators-1.json +0 -19
  248. data/apis/elasticloadbalancingv2/2015-12-01/waiters-2.json +0 -64
  249. data/apis/elasticmapreduce/2009-03-31/api-2.json +0 -2056
  250. data/apis/elasticmapreduce/2009-03-31/examples-1.json +0 -5
  251. data/apis/elasticmapreduce/2009-03-31/paginators-1.json +0 -37
  252. data/apis/elasticmapreduce/2009-03-31/waiters-2.json +0 -86
  253. data/apis/elastictranscoder/2012-09-25/api-2.json +0 -1483
  254. data/apis/elastictranscoder/2012-09-25/examples-1.json +0 -5
  255. data/apis/elastictranscoder/2012-09-25/paginators-1.json +0 -24
  256. data/apis/elastictranscoder/2012-09-25/waiters-2.json +0 -30
  257. data/apis/email/2010-12-01/api-2.json +0 -2212
  258. data/apis/email/2010-12-01/examples-1.json +0 -953
  259. data/apis/email/2010-12-01/paginators-1.json +0 -13
  260. data/apis/email/2010-12-01/waiters-2.json +0 -18
  261. data/apis/entitlement.marketplace/2017-01-11/api-2.json +0 -128
  262. data/apis/entitlement.marketplace/2017-01-11/examples-1.json +0 -5
  263. data/apis/entitlement.marketplace/2017-01-11/paginators-1.json +0 -4
  264. data/apis/es/2015-01-01/api-2.json +0 -862
  265. data/apis/es/2015-01-01/examples-1.json +0 -5
  266. data/apis/es/2015-01-01/paginators-1.json +0 -14
  267. data/apis/events/2015-10-07/api-2.json +0 -649
  268. data/apis/events/2015-10-07/examples-1.json +0 -5
  269. data/apis/events/2015-10-07/paginators-1.json +0 -4
  270. data/apis/firehose/2015-08-04/api-2.json +0 -866
  271. data/apis/firehose/2015-08-04/examples-1.json +0 -5
  272. data/apis/gamelift/2015-10-01/api-2.json +0 -2316
  273. data/apis/gamelift/2015-10-01/examples-1.json +0 -5
  274. data/apis/gamelift/2015-10-01/paginators-1.json +0 -4
  275. data/apis/glacier/2012-06-01/api-2.json +0 -1734
  276. data/apis/glacier/2012-06-01/examples-1.json +0 -806
  277. data/apis/glacier/2012-06-01/paginators-1.json +0 -28
  278. data/apis/glacier/2012-06-01/resources-1.json +0 -563
  279. data/apis/glacier/2012-06-01/waiters-2.json +0 -39
  280. data/apis/greengrass/2017-06-07/api-2.json +0 -3451
  281. data/apis/health/2016-08-04/api-2.json +0 -547
  282. data/apis/health/2016-08-04/examples-1.json +0 -5
  283. data/apis/health/2016-08-04/paginators-1.json +0 -31
  284. data/apis/iam/2010-05-08/api-2.json +0 -4832
  285. data/apis/iam/2010-05-08/examples-1.json +0 -1191
  286. data/apis/iam/2010-05-08/paginators-1.json +0 -198
  287. data/apis/iam/2010-05-08/resources-1.json +0 -1740
  288. data/apis/iam/2010-05-08/waiters-2.json +0 -39
  289. data/apis/importexport/2010-06-01/api-2.json +0 -667
  290. data/apis/importexport/2010-06-01/paginators-1.json +0 -11
  291. data/apis/inspector/2016-02-16/api-2.json +0 -2051
  292. data/apis/inspector/2016-02-16/examples-1.json +0 -1147
  293. data/apis/inspector/2016-02-16/paginators-1.json +0 -4
  294. data/apis/iot/2015-05-28/api-2.json +0 -2928
  295. data/apis/iot/2015-05-28/examples-1.json +0 -5
  296. data/apis/iot/2015-05-28/paginators-1.json +0 -4
  297. data/apis/iot-data/2015-05-28/api-2.json +0 -264
  298. data/apis/kinesis/2013-12-02/api-2.json +0 -890
  299. data/apis/kinesis/2013-12-02/examples-1.json +0 -5
  300. data/apis/kinesis/2013-12-02/paginators-1.json +0 -18
  301. data/apis/kinesis/2013-12-02/waiters-2.json +0 -30
  302. data/apis/kinesisanalytics/2015-08-14/api-2.json +0 -1175
  303. data/apis/kinesisanalytics/2015-08-14/examples-1.json +0 -5
  304. data/apis/kinesisanalytics/2015-08-14/paginators-1.json +0 -4
  305. data/apis/kms/2014-11-01/api-2.json +0 -1492
  306. data/apis/kms/2014-11-01/examples-1.json +0 -904
  307. data/apis/kms/2014-11-01/paginators-1.json +0 -32
  308. data/apis/lambda/2014-11-11/api-2.json +0 -668
  309. data/apis/lambda/2014-11-11/paginators-1.json +0 -16
  310. data/apis/lambda/2015-03-31/api-2.json +0 -1647
  311. data/apis/lambda/2015-03-31/examples-1.json +0 -614
  312. data/apis/lambda/2015-03-31/paginators-1.json +0 -16
  313. data/apis/lex-models/2017-04-19/api-2.json +0 -2033
  314. data/apis/lex-models/2017-04-19/examples-1.json +0 -758
  315. data/apis/lex-models/2017-04-19/paginators-1.json +0 -54
  316. data/apis/lightsail/2016-11-28/api-2.json +0 -2187
  317. data/apis/lightsail/2016-11-28/examples-1.json +0 -5
  318. data/apis/lightsail/2016-11-28/paginators-1.json +0 -4
  319. data/apis/logs/2014-03-28/api-2.json +0 -1246
  320. data/apis/logs/2014-03-28/examples-1.json +0 -5
  321. data/apis/logs/2014-03-28/paginators-1.json +0 -49
  322. data/apis/machinelearning/2014-12-12/api-2.json +0 -1978
  323. data/apis/machinelearning/2014-12-12/examples-1.json +0 -5
  324. data/apis/machinelearning/2014-12-12/paginators-1.json +0 -28
  325. data/apis/machinelearning/2014-12-12/waiters-2.json +0 -81
  326. data/apis/marketplacecommerceanalytics/2015-07-01/api-2.json +0 -171
  327. data/apis/marketplacecommerceanalytics/2015-07-01/examples-1.json +0 -5
  328. data/apis/marketplacecommerceanalytics/2015-07-01/paginators-1.json +0 -4
  329. data/apis/meteringmarketplace/2016-01-14/api-2.json +0 -263
  330. data/apis/meteringmarketplace/2016-01-14/examples-1.json +0 -5
  331. data/apis/monitoring/2010-08-01/api-2.json +0 -827
  332. data/apis/monitoring/2010-08-01/examples-1.json +0 -5
  333. data/apis/monitoring/2010-08-01/paginators-1.json +0 -24
  334. data/apis/monitoring/2010-08-01/resources-1.json +0 -346
  335. data/apis/monitoring/2010-08-01/waiters-2.json +0 -18
  336. data/apis/mturk-requester/2017-01-17/api-2.json +0 -1665
  337. data/apis/mturk-requester/2017-01-17/examples-1.json +0 -5
  338. data/apis/mturk-requester/2017-01-17/paginators-1.json +0 -54
  339. data/apis/opsworks/2013-02-18/api-2.json +0 -2839
  340. data/apis/opsworks/2013-02-18/examples-1.json +0 -5
  341. data/apis/opsworks/2013-02-18/paginators-1.json +0 -55
  342. data/apis/opsworks/2013-02-18/resources-1.json +0 -173
  343. data/apis/opsworks/2013-02-18/waiters-2.json +0 -295
  344. data/apis/opsworkscm/2016-11-01/api-2.json +0 -730
  345. data/apis/opsworkscm/2016-11-01/examples-1.json +0 -5
  346. data/apis/opsworkscm/2016-11-01/paginators-1.json +0 -4
  347. data/apis/organizations/2016-11-28/api-2.json +0 -2006
  348. data/apis/organizations/2016-11-28/examples-1.json +0 -1409
  349. data/apis/organizations/2016-11-28/paginators-1.json +0 -64
  350. data/apis/pinpoint/2016-12-01/api-2.json +0 -3949
  351. data/apis/pinpoint/2016-12-01/examples-1.json +0 -5
  352. data/apis/polly/2016-06-10/api-2.json +0 -539
  353. data/apis/polly/2016-06-10/examples-1.json +0 -171
  354. data/apis/polly/2016-06-10/paginators-1.json +0 -4
  355. data/apis/rds/2013-01-10/api-2.json +0 -2902
  356. data/apis/rds/2013-01-10/examples-1.json +0 -5
  357. data/apis/rds/2013-01-10/paginators-1.json +0 -97
  358. data/apis/rds/2013-02-12/api-2.json +0 -3058
  359. data/apis/rds/2013-02-12/examples-1.json +0 -5
  360. data/apis/rds/2013-02-12/paginators-1.json +0 -110
  361. data/apis/rds/2013-09-09/api-2.json +0 -3159
  362. data/apis/rds/2013-09-09/examples-1.json +0 -5
  363. data/apis/rds/2013-09-09/paginators-1.json +0 -110
  364. data/apis/rds/2013-09-09/waiters-2.json +0 -97
  365. data/apis/rds/2014-09-01/api-2.json +0 -3272
  366. data/apis/rds/2014-09-01/examples-1.json +0 -5
  367. data/apis/rds/2014-09-01/paginators-1.json +0 -4
  368. data/apis/rds/2014-10-31/api-2.json +0 -5187
  369. data/apis/rds/2014-10-31/examples-1.json +0 -1951
  370. data/apis/rds/2014-10-31/paginators-1.json +0 -110
  371. data/apis/rds/2014-10-31/resources-1.json +0 -3272
  372. data/apis/rds/2014-10-31/waiters-2.json +0 -90
  373. data/apis/redshift/2012-12-01/api-2.json +0 -3840
  374. data/apis/redshift/2012-12-01/examples-1.json +0 -5
  375. data/apis/redshift/2012-12-01/paginators-1.json +0 -94
  376. data/apis/redshift/2012-12-01/waiters-2.json +0 -97
  377. data/apis/rekognition/2016-06-27/api-2.json +0 -992
  378. data/apis/rekognition/2016-06-27/examples-1.json +0 -651
  379. data/apis/rekognition/2016-06-27/paginators-1.json +0 -16
  380. data/apis/resourcegroupstaggingapi/2017-01-26/api-2.json +0 -328
  381. data/apis/resourcegroupstaggingapi/2017-01-26/examples-1.json +0 -5
  382. data/apis/resourcegroupstaggingapi/2017-01-26/paginators-1.json +0 -20
  383. data/apis/route53/2013-04-01/api-2.json +0 -3312
  384. data/apis/route53/2013-04-01/examples-1.json +0 -762
  385. data/apis/route53/2013-04-01/paginators-1.json +0 -33
  386. data/apis/route53/2013-04-01/waiters-2.json +0 -18
  387. data/apis/route53domains/2014-05-15/api-2.json +0 -1323
  388. data/apis/route53domains/2014-05-15/examples-1.json +0 -5
  389. data/apis/route53domains/2014-05-15/paginators-1.json +0 -16
  390. data/apis/runtime.lex/2016-11-28/api-2.json +0 -390
  391. data/apis/runtime.lex/2016-11-28/examples-1.json +0 -5
  392. data/apis/runtime.lex/2016-11-28/paginators-1.json +0 -4
  393. data/apis/s3/2006-03-01/api-2.json +0 -5368
  394. data/apis/s3/2006-03-01/examples-1.json +0 -1876
  395. data/apis/s3/2006-03-01/paginators-1.json +0 -66
  396. data/apis/s3/2006-03-01/resources-1.json +0 -1176
  397. data/apis/s3/2006-03-01/waiters-2.json +0 -73
  398. data/apis/sdb/2009-04-15/api-2.json +0 -955
  399. data/apis/sdb/2009-04-15/paginators-1.json +0 -15
  400. data/apis/servicecatalog/2015-12-10/api-2.json +0 -2022
  401. data/apis/servicecatalog/2015-12-10/examples-1.json +0 -5
  402. data/apis/servicecatalog/2015-12-10/paginators-1.json +0 -4
  403. data/apis/shield/2016-06-02/api-2.json +0 -494
  404. data/apis/shield/2016-06-02/examples-1.json +0 -5
  405. data/apis/sms/2016-10-24/api-2.json +0 -612
  406. data/apis/sms/2016-10-24/examples-1.json +0 -5
  407. data/apis/sms/2016-10-24/paginators-1.json +0 -28
  408. data/apis/snowball/2016-06-30/api-2.json +0 -855
  409. data/apis/snowball/2016-06-30/examples-1.json +0 -442
  410. data/apis/snowball/2016-06-30/paginators-1.json +0 -16
  411. data/apis/sns/2010-03-31/api-2.json +0 -1145
  412. data/apis/sns/2010-03-31/examples-1.json +0 -5
  413. data/apis/sns/2010-03-31/paginators-1.json +0 -29
  414. data/apis/sns/2010-03-31/resources-1.json +0 -327
  415. data/apis/sqs/2012-11-05/api-2.json +0 -988
  416. data/apis/sqs/2012-11-05/examples-1.json +0 -5
  417. data/apis/sqs/2012-11-05/paginators-1.json +0 -7
  418. data/apis/sqs/2012-11-05/resources-1.json +0 -232
  419. data/apis/ssm/2014-11-06/api-2.json +0 -5317
  420. data/apis/ssm/2014-11-06/examples-1.json +0 -5
  421. data/apis/ssm/2014-11-06/paginators-1.json +0 -40
  422. data/apis/states/2016-11-23/api-2.json +0 -1021
  423. data/apis/states/2016-11-23/examples-1.json +0 -5
  424. data/apis/states/2016-11-23/paginators-1.json +0 -28
  425. data/apis/storagegateway/2013-06-30/api-2.json +0 -2591
  426. data/apis/storagegateway/2013-06-30/examples-1.json +0 -1381
  427. data/apis/storagegateway/2013-06-30/paginators-1.json +0 -52
  428. data/apis/streams.dynamodb/2012-08-10/api-2.json +0 -406
  429. data/apis/streams.dynamodb/2012-08-10/examples-1.json +0 -212
  430. data/apis/streams.dynamodb/2012-08-10/paginators-1.json +0 -4
  431. data/apis/sts/2011-06-15/api-2.json +0 -522
  432. data/apis/sts/2011-06-15/examples-1.json +0 -206
  433. data/apis/sts/2011-06-15/paginators-1.json +0 -4
  434. data/apis/support/2013-04-15/api-2.json +0 -772
  435. data/apis/support/2013-04-15/examples-1.json +0 -5
  436. data/apis/support/2013-04-15/paginators-1.json +0 -25
  437. data/apis/swf/2012-01-25/api-2.json +0 -2839
  438. data/apis/swf/2012-01-25/paginators-1.json +0 -46
  439. data/apis/waf/2015-08-24/api-2.json +0 -1959
  440. data/apis/waf/2015-08-24/examples-1.json +0 -1017
  441. data/apis/waf/2015-08-24/paginators-1.json +0 -4
  442. data/apis/waf-regional/2016-11-28/api-2.json +0 -2090
  443. data/apis/waf-regional/2016-11-28/examples-1.json +0 -1017
  444. data/apis/waf-regional/2016-11-28/paginators-1.json +0 -4
  445. data/apis/workdocs/2016-05-01/api-2.json +0 -2684
  446. data/apis/workdocs/2016-05-01/examples-1.json +0 -5
  447. data/apis/workdocs/2016-05-01/paginators-1.json +0 -25
  448. data/apis/workspaces/2015-04-08/api-2.json +0 -840
  449. data/apis/workspaces/2015-04-08/examples-1.json +0 -5
  450. data/apis/workspaces/2015-04-08/paginators-1.json +0 -20
  451. data/apis/xray/2016-04-12/api-2.json +0 -492
  452. data/apis/xray/2016-04-12/examples-1.json +0 -5
  453. data/apis/xray/2016-04-12/paginators-1.json +0 -4
  454. data/bin/aws.rb +0 -180
  455. data/endpoints.json +0 -1935
  456. data/lib/aws-sdk-core/acm.rb +0 -6
  457. data/lib/aws-sdk-core/api/builder.rb +0 -106
  458. data/lib/aws-sdk-core/api/customizations.rb +0 -262
  459. data/lib/aws-sdk-core/api/docs/builder.rb +0 -223
  460. data/lib/aws-sdk-core/api/docs/client_type_documenter.rb +0 -118
  461. data/lib/aws-sdk-core/api/docs/crosslink.rb +0 -43
  462. data/lib/aws-sdk-core/api/docs/docstring_provider.rb +0 -75
  463. data/lib/aws-sdk-core/api/docs/operation_documenter.rb +0 -151
  464. data/lib/aws-sdk-core/api/docs/param_formatter.rb +0 -163
  465. data/lib/aws-sdk-core/api/docs/request_syntax_example.rb +0 -22
  466. data/lib/aws-sdk-core/api/docs/response_structure_example.rb +0 -91
  467. data/lib/aws-sdk-core/api/docs/shared_example.rb +0 -100
  468. data/lib/aws-sdk-core/api/docs/utils.rb +0 -133
  469. data/lib/aws-sdk-core/api/shape_map.rb +0 -142
  470. data/lib/aws-sdk-core/apigateway.rb +0 -6
  471. data/lib/aws-sdk-core/applicationautoscaling.rb +0 -6
  472. data/lib/aws-sdk-core/applicationdiscoveryservice.rb +0 -6
  473. data/lib/aws-sdk-core/appstream.rb +0 -7
  474. data/lib/aws-sdk-core/athena.rb +0 -6
  475. data/lib/aws-sdk-core/autoscaling.rb +0 -8
  476. data/lib/aws-sdk-core/batch.rb +0 -6
  477. data/lib/aws-sdk-core/budgets.rb +0 -6
  478. data/lib/aws-sdk-core/checksums.rb +0 -51
  479. data/lib/aws-sdk-core/client.rb +0 -60
  480. data/lib/aws-sdk-core/client_waiters.rb +0 -120
  481. data/lib/aws-sdk-core/clouddirectory.rb +0 -6
  482. data/lib/aws-sdk-core/cloudformation.rb +0 -8
  483. data/lib/aws-sdk-core/cloudfront/cookie_signer.rb +0 -44
  484. data/lib/aws-sdk-core/cloudfront/signer.rb +0 -141
  485. data/lib/aws-sdk-core/cloudfront/url_signer.rb +0 -48
  486. data/lib/aws-sdk-core/cloudfront.rb +0 -17
  487. data/lib/aws-sdk-core/cloudhsm.rb +0 -5
  488. data/lib/aws-sdk-core/cloudsearch.rb +0 -5
  489. data/lib/aws-sdk-core/cloudsearchdomain.rb +0 -5
  490. data/lib/aws-sdk-core/cloudtrail.rb +0 -6
  491. data/lib/aws-sdk-core/cloudwatch.rb +0 -8
  492. data/lib/aws-sdk-core/cloudwatchevents.rb +0 -6
  493. data/lib/aws-sdk-core/cloudwatchlogs.rb +0 -6
  494. data/lib/aws-sdk-core/codebuild.rb +0 -6
  495. data/lib/aws-sdk-core/codecommit.rb +0 -6
  496. data/lib/aws-sdk-core/codedeploy.rb +0 -7
  497. data/lib/aws-sdk-core/codepipeline.rb +0 -5
  498. data/lib/aws-sdk-core/codestar.rb +0 -6
  499. data/lib/aws-sdk-core/cognitoidentity.rb +0 -6
  500. data/lib/aws-sdk-core/cognitoidentityprovider.rb +0 -6
  501. data/lib/aws-sdk-core/cognitosync.rb +0 -4
  502. data/lib/aws-sdk-core/configservice.rb +0 -6
  503. data/lib/aws-sdk-core/costandusagereportservice.rb +0 -6
  504. data/lib/aws-sdk-core/databasemigrationservice.rb +0 -6
  505. data/lib/aws-sdk-core/datapipeline.rb +0 -5
  506. data/lib/aws-sdk-core/devicefarm.rb +0 -6
  507. data/lib/aws-sdk-core/directconnect.rb +0 -6
  508. data/lib/aws-sdk-core/directoryservice.rb +0 -5
  509. data/lib/aws-sdk-core/dynamodb/attribute_value.rb +0 -110
  510. data/lib/aws-sdk-core/dynamodb.rb +0 -40
  511. data/lib/aws-sdk-core/dynamodbstreams.rb +0 -6
  512. data/lib/aws-sdk-core/ec2.rb +0 -8
  513. data/lib/aws-sdk-core/ecr.rb +0 -6
  514. data/lib/aws-sdk-core/ecs.rb +0 -7
  515. data/lib/aws-sdk-core/efs.rb +0 -5
  516. data/lib/aws-sdk-core/elasticache.rb +0 -7
  517. data/lib/aws-sdk-core/elasticbeanstalk.rb +0 -6
  518. data/lib/aws-sdk-core/elasticloadbalancing.rb +0 -7
  519. data/lib/aws-sdk-core/elasticloadbalancingv2.rb +0 -7
  520. data/lib/aws-sdk-core/elasticsearchservice.rb +0 -6
  521. data/lib/aws-sdk-core/elastictranscoder.rb +0 -7
  522. data/lib/aws-sdk-core/empty_structure.rb +0 -3
  523. data/lib/aws-sdk-core/emr.rb +0 -7
  524. data/lib/aws-sdk-core/endpoint_provider.rb +0 -104
  525. data/lib/aws-sdk-core/firehose.rb +0 -5
  526. data/lib/aws-sdk-core/gamelift.rb +0 -6
  527. data/lib/aws-sdk-core/glacier.rb +0 -8
  528. data/lib/aws-sdk-core/greengrass.rb +0 -4
  529. data/lib/aws-sdk-core/health.rb +0 -6
  530. data/lib/aws-sdk-core/iam.rb +0 -8
  531. data/lib/aws-sdk-core/importexport.rb +0 -5
  532. data/lib/aws-sdk-core/inspector.rb +0 -6
  533. data/lib/aws-sdk-core/iot.rb +0 -6
  534. data/lib/aws-sdk-core/iotdataplane.rb +0 -4
  535. data/lib/aws-sdk-core/kinesis.rb +0 -7
  536. data/lib/aws-sdk-core/kinesisanalytics.rb +0 -6
  537. data/lib/aws-sdk-core/kms.rb +0 -6
  538. data/lib/aws-sdk-core/lambda.rb +0 -6
  539. data/lib/aws-sdk-core/lambdapreview.rb +0 -5
  540. data/lib/aws-sdk-core/lex.rb +0 -6
  541. data/lib/aws-sdk-core/lexmodelbuildingservice.rb +0 -6
  542. data/lib/aws-sdk-core/lightsail.rb +0 -6
  543. data/lib/aws-sdk-core/machinelearning.rb +0 -7
  544. data/lib/aws-sdk-core/marketplacecommerceanalytics.rb +0 -6
  545. data/lib/aws-sdk-core/marketplaceentitlementservice.rb +0 -6
  546. data/lib/aws-sdk-core/marketplacemetering.rb +0 -5
  547. data/lib/aws-sdk-core/mturk.rb +0 -6
  548. data/lib/aws-sdk-core/opsworks.rb +0 -8
  549. data/lib/aws-sdk-core/opsworkscm.rb +0 -6
  550. data/lib/aws-sdk-core/organizations.rb +0 -6
  551. data/lib/aws-sdk-core/partitions/partition.rb +0 -95
  552. data/lib/aws-sdk-core/partitions/partition_list.rb +0 -60
  553. data/lib/aws-sdk-core/partitions/region.rb +0 -66
  554. data/lib/aws-sdk-core/partitions/service.rb +0 -74
  555. data/lib/aws-sdk-core/partitions.rb +0 -174
  556. data/lib/aws-sdk-core/pinpoint.rb +0 -5
  557. data/lib/aws-sdk-core/plugins/api_gateway_header.rb +0 -19
  558. data/lib/aws-sdk-core/plugins/csd_conditional_signing.rb +0 -30
  559. data/lib/aws-sdk-core/plugins/csd_switch_to_post.rb +0 -36
  560. data/lib/aws-sdk-core/plugins/dynamodb_crc32_validation.rb +0 -52
  561. data/lib/aws-sdk-core/plugins/dynamodb_extended_retries.rb +0 -22
  562. data/lib/aws-sdk-core/plugins/dynamodb_simple_attributes.rb +0 -208
  563. data/lib/aws-sdk-core/plugins/ec2_copy_encrypted_snapshot.rb +0 -56
  564. data/lib/aws-sdk-core/plugins/ec2_region_validation.rb +0 -17
  565. data/lib/aws-sdk-core/plugins/glacier_account_id.rb +0 -19
  566. data/lib/aws-sdk-core/plugins/glacier_api_version.rb +0 -19
  567. data/lib/aws-sdk-core/plugins/glacier_checksums.rb +0 -87
  568. data/lib/aws-sdk-core/plugins/machine_learning_predict_endpoint.rb +0 -20
  569. data/lib/aws-sdk-core/plugins/rds_cross_region_copying.rb +0 -69
  570. data/lib/aws-sdk-core/plugins/request_signer.rb +0 -150
  571. data/lib/aws-sdk-core/plugins/route_53_id_fix.rb +0 -55
  572. data/lib/aws-sdk-core/plugins/s3_accelerate.rb +0 -90
  573. data/lib/aws-sdk-core/plugins/s3_bucket_dns.rb +0 -86
  574. data/lib/aws-sdk-core/plugins/s3_bucket_name_restrictions.rb +0 -21
  575. data/lib/aws-sdk-core/plugins/s3_dualstack.rb +0 -67
  576. data/lib/aws-sdk-core/plugins/s3_expect_100_continue.rb +0 -27
  577. data/lib/aws-sdk-core/plugins/s3_get_bucket_location_fix.rb +0 -21
  578. data/lib/aws-sdk-core/plugins/s3_host_id.rb +0 -26
  579. data/lib/aws-sdk-core/plugins/s3_http_200_errors.rb +0 -45
  580. data/lib/aws-sdk-core/plugins/s3_location_constraint.rb +0 -31
  581. data/lib/aws-sdk-core/plugins/s3_md5s.rb +0 -50
  582. data/lib/aws-sdk-core/plugins/s3_redirects.rb +0 -37
  583. data/lib/aws-sdk-core/plugins/s3_request_signer.rb +0 -166
  584. data/lib/aws-sdk-core/plugins/s3_sse_cpk.rb +0 -64
  585. data/lib/aws-sdk-core/plugins/s3_url_encoded_keys.rb +0 -93
  586. data/lib/aws-sdk-core/plugins/sqs_md5s.rb +0 -162
  587. data/lib/aws-sdk-core/plugins/sqs_queue_urls.rb +0 -34
  588. data/lib/aws-sdk-core/plugins/swf_read_timeouts.rb +0 -23
  589. data/lib/aws-sdk-core/polly/presigner.rb +0 -70
  590. data/lib/aws-sdk-core/polly.rb +0 -14
  591. data/lib/aws-sdk-core/rds/auth_token_generator.rb +0 -63
  592. data/lib/aws-sdk-core/rds.rb +0 -16
  593. data/lib/aws-sdk-core/redshift.rb +0 -7
  594. data/lib/aws-sdk-core/rekognition.rb +0 -6
  595. data/lib/aws-sdk-core/resourcegroupstaggingapi.rb +0 -6
  596. data/lib/aws-sdk-core/route53.rb +0 -7
  597. data/lib/aws-sdk-core/route53domains.rb +0 -6
  598. data/lib/aws-sdk-core/s3/bucket_region_cache.rb +0 -75
  599. data/lib/aws-sdk-core/s3/presigner.rb +0 -116
  600. data/lib/aws-sdk-core/s3.rb +0 -26
  601. data/lib/aws-sdk-core/service.rb +0 -4
  602. data/lib/aws-sdk-core/servicecatalog.rb +0 -6
  603. data/lib/aws-sdk-core/ses.rb +0 -7
  604. data/lib/aws-sdk-core/shield.rb +0 -5
  605. data/lib/aws-sdk-core/signers/base.rb +0 -31
  606. data/lib/aws-sdk-core/signers/s3.rb +0 -185
  607. data/lib/aws-sdk-core/signers/v2.rb +0 -51
  608. data/lib/aws-sdk-core/signers/v3.rb +0 -34
  609. data/lib/aws-sdk-core/signers/v4.rb +0 -234
  610. data/lib/aws-sdk-core/simpledb.rb +0 -5
  611. data/lib/aws-sdk-core/sms.rb +0 -6
  612. data/lib/aws-sdk-core/snowball.rb +0 -6
  613. data/lib/aws-sdk-core/sns.rb +0 -7
  614. data/lib/aws-sdk-core/sqs.rb +0 -7
  615. data/lib/aws-sdk-core/ssm.rb +0 -6
  616. data/lib/aws-sdk-core/states.rb +0 -6
  617. data/lib/aws-sdk-core/storagegateway.rb +0 -6
  618. data/lib/aws-sdk-core/sts.rb +0 -6
  619. data/lib/aws-sdk-core/support.rb +0 -6
  620. data/lib/aws-sdk-core/swf.rb +0 -5
  621. data/lib/aws-sdk-core/tree_hash.rb +0 -69
  622. data/lib/aws-sdk-core/waf.rb +0 -6
  623. data/lib/aws-sdk-core/wafregional.rb +0 -6
  624. data/lib/aws-sdk-core/waiters/null_provider.rb +0 -12
  625. data/lib/aws-sdk-core/waiters/provider.rb +0 -35
  626. data/lib/aws-sdk-core/workdocs.rb +0 -6
  627. data/lib/aws-sdk-core/workspaces.rb +0 -6
  628. data/lib/aws-sdk-core/xray.rb +0 -6
  629. data/lib/seahorse/client/plugins/restful_bindings.rb +0 -125
  630. data/service-models.json +0 -405
@@ -0,0 +1,1439 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'seahorse/client/plugins/content_length.rb'
9
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
10
+ require 'aws-sdk-core/plugins/logging.rb'
11
+ require 'aws-sdk-core/plugins/param_converter.rb'
12
+ require 'aws-sdk-core/plugins/param_validator.rb'
13
+ require 'aws-sdk-core/plugins/user_agent.rb'
14
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
+ require 'aws-sdk-core/plugins/retry_errors.rb'
16
+ require 'aws-sdk-core/plugins/global_configuration.rb'
17
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/response_paging.rb'
19
+ require 'aws-sdk-core/plugins/stub_responses.rb'
20
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
21
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
22
+ require 'aws-sdk-core/plugins/signature_v4.rb'
23
+ require 'aws-sdk-core/plugins/protocols/query.rb'
24
+
25
+ Aws::Plugins::GlobalConfiguration.add_identifier(:sts)
26
+
27
+ module Aws::STS
28
+ class Client < Seahorse::Client::Base
29
+
30
+ include Aws::ClientStubs
31
+
32
+ @identifier = :sts
33
+
34
+ set_api(ClientApi::API)
35
+
36
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
37
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
38
+ add_plugin(Aws::Plugins::Logging)
39
+ add_plugin(Aws::Plugins::ParamConverter)
40
+ add_plugin(Aws::Plugins::ParamValidator)
41
+ add_plugin(Aws::Plugins::UserAgent)
42
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
43
+ add_plugin(Aws::Plugins::RetryErrors)
44
+ add_plugin(Aws::Plugins::GlobalConfiguration)
45
+ add_plugin(Aws::Plugins::RegionalEndpoint)
46
+ add_plugin(Aws::Plugins::ResponsePaging)
47
+ add_plugin(Aws::Plugins::StubResponses)
48
+ add_plugin(Aws::Plugins::IdempotencyToken)
49
+ add_plugin(Aws::Plugins::JsonvalueConverter)
50
+ add_plugin(Aws::Plugins::SignatureV4)
51
+ add_plugin(Aws::Plugins::Protocols::Query)
52
+
53
+ # @option options [required, Aws::CredentialProvider] :credentials
54
+ # Your AWS credentials. This can be an instance of any one of the
55
+ # following classes:
56
+ #
57
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
58
+ # credentials.
59
+ #
60
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
61
+ # from an EC2 IMDS on an EC2 instance.
62
+ #
63
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
64
+ # shared file, such as `~/.aws/config`.
65
+ #
66
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
67
+ #
68
+ # When `:credentials` are not configured directly, the following
69
+ # locations will be searched for credentials:
70
+ #
71
+ # * `Aws.config[:credentials]`
72
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
73
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
74
+ # * `~/.aws/credentials`
75
+ # * `~/.aws/config`
76
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
77
+ # very aggressive. Construct and pass an instance of
78
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
79
+ # timeouts.
80
+ #
81
+ # @option options [required, String] :region
82
+ # The AWS region to connect to. The configured `:region` is
83
+ # used to determine the service `:endpoint`. When not passed,
84
+ # a default `:region` is search for in the following locations:
85
+ #
86
+ # * `Aws.config[:region]`
87
+ # * `ENV['AWS_REGION']`
88
+ # * `ENV['AMAZON_REGION']`
89
+ # * `ENV['AWS_DEFAULT_REGION']`
90
+ # * `~/.aws/credentials`
91
+ # * `~/.aws/config`
92
+ #
93
+ # @option options [String] :access_key_id
94
+ #
95
+ # @option options [Boolean] :convert_params (true)
96
+ # When `true`, an attempt is made to coerce request parameters into
97
+ # the required types.
98
+ #
99
+ # @option options [String] :endpoint
100
+ # The client endpoint is normally constructed from the `:region`
101
+ # option. You should only configure an `:endpoint` when connecting
102
+ # to test endpoints. This should be avalid HTTP(S) URI.
103
+ #
104
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
105
+ # The log formatter.
106
+ #
107
+ # @option options [Symbol] :log_level (:info)
108
+ # The log level to send messages to the `:logger` at.
109
+ #
110
+ # @option options [Logger] :logger
111
+ # The Logger instance to send log messages to. If this option
112
+ # is not set, logging will be disabled.
113
+ #
114
+ # @option options [String] :profile ("default")
115
+ # Used when loading credentials from the shared credentials file
116
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
117
+ #
118
+ # @option options [Integer] :retry_limit (3)
119
+ # The maximum number of times to retry failed requests. Only
120
+ # ~ 500 level server errors and certain ~ 400 level client errors
121
+ # are retried. Generally, these are throttling errors, data
122
+ # checksum errors, networking errors, timeout errors and auth
123
+ # errors from expired credentials.
124
+ #
125
+ # @option options [String] :secret_access_key
126
+ #
127
+ # @option options [String] :session_token
128
+ #
129
+ # @option options [Boolean] :stub_responses (false)
130
+ # Causes the client to return stubbed responses. By default
131
+ # fake responses are generated and returned. You can specify
132
+ # the response data to return or errors to raise by calling
133
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
134
+ #
135
+ # ** Please note ** When response stubbing is enabled, no HTTP
136
+ # requests are made, and retries are disabled.
137
+ #
138
+ # @option options [Boolean] :validate_params (true)
139
+ # When `true`, request parameters are validated before
140
+ # sending the request.
141
+ #
142
+ def initialize(*args)
143
+ super
144
+ end
145
+
146
+ # @!group API Operations
147
+
148
+ # Returns a set of temporary security credentials (consisting of an
149
+ # access key ID, a secret access key, and a security token) that you can
150
+ # use to access AWS resources that you might not normally have access
151
+ # to. Typically, you use `AssumeRole` for cross-account access or
152
+ # federation. For a comparison of `AssumeRole` with the other APIs that
153
+ # produce temporary credentials, see [Requesting Temporary Security
154
+ # Credentials][1] and [Comparing the AWS STS APIs][2] in the *IAM User
155
+ # Guide*.
156
+ #
157
+ # **Important:** You cannot call `AssumeRole` by using AWS root account
158
+ # credentials; access is denied. You must use credentials for an IAM
159
+ # user or an IAM role to call `AssumeRole`.
160
+ #
161
+ # For cross-account access, imagine that you own multiple accounts and
162
+ # need to access resources in each account. You could create long-term
163
+ # credentials in each account to access those resources. However,
164
+ # managing all those credentials and remembering which one can access
165
+ # which account can be time consuming. Instead, you can create one set
166
+ # of long-term credentials in one account and then use temporary
167
+ # security credentials to access all the other accounts by assuming
168
+ # roles in those accounts. For more information about roles, see [IAM
169
+ # Roles (Delegation and Federation)][3] in the *IAM User Guide*.
170
+ #
171
+ # For federation, you can, for example, grant single sign-on access to
172
+ # the AWS Management Console. If you already have an identity and
173
+ # authentication system in your corporate network, you don't have to
174
+ # recreate user identities in AWS in order to grant those user
175
+ # identities access to AWS. Instead, after a user has been
176
+ # authenticated, you call `AssumeRole` (and specify the role with the
177
+ # appropriate permissions) to get temporary security credentials for
178
+ # that user. With those temporary security credentials, you construct a
179
+ # sign-in URL that users can use to access the console. For more
180
+ # information, see [Common Scenarios for Temporary Credentials][4] in
181
+ # the *IAM User Guide*.
182
+ #
183
+ # The temporary security credentials are valid for the duration that you
184
+ # specified when calling `AssumeRole`, which can be from 900 seconds (15
185
+ # minutes) to a maximum of 3600 seconds (1 hour). The default is 1 hour.
186
+ #
187
+ # The temporary security credentials created by `AssumeRole` can be used
188
+ # to make API calls to any AWS service with the following exception: you
189
+ # cannot call the STS service's `GetFederationToken` or
190
+ # `GetSessionToken` APIs.
191
+ #
192
+ # Optionally, you can pass an IAM access policy to this operation. If
193
+ # you choose not to pass a policy, the temporary security credentials
194
+ # that are returned by the operation have the permissions that are
195
+ # defined in the access policy of the role that is being assumed. If you
196
+ # pass a policy to this operation, the temporary security credentials
197
+ # that are returned by the operation have the permissions that are
198
+ # allowed by both the access policy of the role that is being assumed,
199
+ # <i> <b>and</b> </i> the policy that you pass. This gives you a way to
200
+ # further restrict the permissions for the resulting temporary security
201
+ # credentials. You cannot use the passed policy to grant permissions
202
+ # that are in excess of those allowed by the access policy of the role
203
+ # that is being assumed. For more information, see [Permissions for
204
+ # AssumeRole, AssumeRoleWithSAML, and AssumeRoleWithWebIdentity][5] in
205
+ # the *IAM User Guide*.
206
+ #
207
+ # To assume a role, your AWS account must be trusted by the role. The
208
+ # trust relationship is defined in the role's trust policy when the
209
+ # role is created. That trust policy states which accounts are allowed
210
+ # to delegate access to this account's role.
211
+ #
212
+ # The user who wants to access the role must also have permissions
213
+ # delegated from the role's administrator. If the user is in a
214
+ # different account than the role, then the user's administrator must
215
+ # attach a policy that allows the user to call AssumeRole on the ARN of
216
+ # the role in the other account. If the user is in the same account as
217
+ # the role, then you can either attach a policy to the user (identical
218
+ # to the previous different account user), or you can add the user as a
219
+ # principal directly in the role's trust policy
220
+ #
221
+ # **Using MFA with AssumeRole**
222
+ #
223
+ # You can optionally include multi-factor authentication (MFA)
224
+ # information when you call `AssumeRole`. This is useful for
225
+ # cross-account scenarios in which you want to make sure that the user
226
+ # who is assuming the role has been authenticated using an AWS MFA
227
+ # device. In that scenario, the trust policy of the role being assumed
228
+ # includes a condition that tests for MFA authentication; if the caller
229
+ # does not include valid MFA information, the request to assume the role
230
+ # is denied. The condition in a trust policy that tests for MFA
231
+ # authentication might look like the following example.
232
+ #
233
+ # `"Condition": \{"Bool": \{"aws:MultiFactorAuthPresent": true\}\}`
234
+ #
235
+ # For more information, see [Configuring MFA-Protected API Access][6] in
236
+ # the *IAM User Guide* guide.
237
+ #
238
+ # To use MFA with `AssumeRole`, you pass values for the `SerialNumber`
239
+ # and `TokenCode` parameters. The `SerialNumber` value identifies the
240
+ # user's hardware or virtual MFA device. The `TokenCode` is the
241
+ # time-based one-time password (TOTP) that the MFA devices produces.
242
+ #
243
+ #
244
+ #
245
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
246
+ # [2]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
247
+ # [3]: http://docs.aws.amazon.com/IAM/latest/UserGuide/roles-toplevel.html
248
+ # [4]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp.html#sts-introduction
249
+ # [5]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html
250
+ # [6]: http://docs.aws.amazon.com/IAM/latest/UserGuide/MFAProtectedAPI.html
251
+ #
252
+ # @option params [required, String] :role_arn
253
+ # The Amazon Resource Name (ARN) of the role to assume.
254
+ #
255
+ # @option params [required, String] :role_session_name
256
+ # An identifier for the assumed role session.
257
+ #
258
+ # Use the role session name to uniquely identify a session when the same
259
+ # role is assumed by different principals or for different reasons. In
260
+ # cross-account scenarios, the role session name is visible to, and can
261
+ # be logged by the account that owns the role. The role session name is
262
+ # also used in the ARN of the assumed role principal. This means that
263
+ # subsequent cross-account API requests using the temporary security
264
+ # credentials will expose the role session name to the external account
265
+ # in their CloudTrail logs.
266
+ #
267
+ # The regex used to validate this parameter is a string of characters
268
+ # consisting of upper- and lower-case alphanumeric characters with no
269
+ # spaces. You can also include underscores or any of the following
270
+ # characters: =,.@-
271
+ #
272
+ # @option params [String] :policy
273
+ # An IAM policy in JSON format.
274
+ #
275
+ # This parameter is optional. If you pass a policy, the temporary
276
+ # security credentials that are returned by the operation have the
277
+ # permissions that are allowed by both (the intersection of) the access
278
+ # policy of the role that is being assumed, *and* the policy that you
279
+ # pass. This gives you a way to further restrict the permissions for the
280
+ # resulting temporary security credentials. You cannot use the passed
281
+ # policy to grant permissions that are in excess of those allowed by the
282
+ # access policy of the role that is being assumed. For more information,
283
+ # see [Permissions for AssumeRole, AssumeRoleWithSAML, and
284
+ # AssumeRoleWithWebIdentity][1] in the *IAM User Guide*.
285
+ #
286
+ # The format for this parameter, as described by its regex pattern, is a
287
+ # string of characters up to 2048 characters in length. The characters
288
+ # can be any ASCII character from the space character to the end of the
289
+ # valid character list (\\u0020-\\u00FF). It can also include the tab
290
+ # (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
291
+ # characters.
292
+ #
293
+ # <note markdown="1"> The policy plain text must be 2048 bytes or shorter. However, an
294
+ # internal conversion compresses it into a packed binary format with a
295
+ # separate limit. The PackedPolicySize response element indicates by
296
+ # percentage how close to the upper size limit the policy is, with 100%
297
+ # equaling the maximum allowed size.
298
+ #
299
+ # </note>
300
+ #
301
+ #
302
+ #
303
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html
304
+ #
305
+ # @option params [Integer] :duration_seconds
306
+ # The duration, in seconds, of the role session. The value can range
307
+ # from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default,
308
+ # the value is set to 3600 seconds.
309
+ #
310
+ # <note markdown="1"> This is separate from the duration of a console session that you might
311
+ # request using the returned credentials. The request to the federation
312
+ # endpoint for a console sign-in token takes a `SessionDuration`
313
+ # parameter that specifies the maximum length of the console session,
314
+ # separately from the `DurationSeconds` parameter on this API. For more
315
+ # information, see [Creating a URL that Enables Federated Users to
316
+ # Access the AWS Management Console][1] in the *IAM User Guide*.
317
+ #
318
+ # </note>
319
+ #
320
+ #
321
+ #
322
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html
323
+ #
324
+ # @option params [String] :external_id
325
+ # A unique identifier that is used by third parties when assuming roles
326
+ # in their customers' accounts. For each role that the third party can
327
+ # assume, they should instruct their customers to ensure the role's
328
+ # trust policy checks for the external ID that the third party
329
+ # generated. Each time the third party assumes the role, they should
330
+ # pass the customer's external ID. The external ID is useful in order
331
+ # to help third parties bind a role to the customer who created it. For
332
+ # more information about the external ID, see [How to Use an External ID
333
+ # When Granting Access to Your AWS Resources to a Third Party][1] in the
334
+ # *IAM User Guide*.
335
+ #
336
+ # The regex used to validated this parameter is a string of characters
337
+ # consisting of upper- and lower-case alphanumeric characters with no
338
+ # spaces. You can also include underscores or any of the following
339
+ # characters: =,.@:/-
340
+ #
341
+ #
342
+ #
343
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html
344
+ #
345
+ # @option params [String] :serial_number
346
+ # The identification number of the MFA device that is associated with
347
+ # the user who is making the `AssumeRole` call. Specify this value if
348
+ # the trust policy of the role being assumed includes a condition that
349
+ # requires MFA authentication. The value is either the serial number for
350
+ # a hardware device (such as `GAHT12345678`) or an Amazon Resource Name
351
+ # (ARN) for a virtual device (such as
352
+ # `arn:aws:iam::123456789012:mfa/user`).
353
+ #
354
+ # The regex used to validate this parameter is a string of characters
355
+ # consisting of upper- and lower-case alphanumeric characters with no
356
+ # spaces. You can also include underscores or any of the following
357
+ # characters: =,.@-
358
+ #
359
+ # @option params [String] :token_code
360
+ # The value provided by the MFA device, if the trust policy of the role
361
+ # being assumed requires MFA (that is, if the policy includes a
362
+ # condition that tests for MFA). If the role being assumed requires MFA
363
+ # and if the `TokenCode` value is missing or expired, the `AssumeRole`
364
+ # call returns an "access denied" error.
365
+ #
366
+ # The format for this parameter, as described by its regex pattern, is a
367
+ # sequence of six numeric digits.
368
+ #
369
+ # @return [Types::AssumeRoleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
370
+ #
371
+ # * {Types::AssumeRoleResponse#credentials #credentials} => Types::Credentials
372
+ # * {Types::AssumeRoleResponse#assumed_role_user #assumed_role_user} => Types::AssumedRoleUser
373
+ # * {Types::AssumeRoleResponse#packed_policy_size #packed_policy_size} => Integer
374
+ #
375
+ #
376
+ # @example Example: To assume a role
377
+ #
378
+ # #
379
+ #
380
+ # resp = client.assume_role({
381
+ # duration_seconds: 3600,
382
+ # external_id: "123ABC",
383
+ # policy: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:*\",\"Resource\":\"*\"}]}",
384
+ # role_arn: "arn:aws:iam::123456789012:role/demo",
385
+ # role_session_name: "Bob",
386
+ # })
387
+ #
388
+ # resp.to_h outputs the following:
389
+ # {
390
+ # assumed_role_user: {
391
+ # arn: "arn:aws:sts::123456789012:assumed-role/demo/Bob",
392
+ # assumed_role_id: "ARO123EXAMPLE123:Bob",
393
+ # },
394
+ # credentials: {
395
+ # access_key_id: "AKIAIOSFODNN7EXAMPLE",
396
+ # expiration: Time.parse("2011-07-15T23:28:33.359Z"),
397
+ # secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
398
+ # session_token: "AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==",
399
+ # },
400
+ # packed_policy_size: 6,
401
+ # }
402
+ #
403
+ # @example Request syntax with placeholder values
404
+ #
405
+ # resp = client.assume_role({
406
+ # role_arn: "arnType", # required
407
+ # role_session_name: "roleSessionNameType", # required
408
+ # policy: "sessionPolicyDocumentType",
409
+ # duration_seconds: 1,
410
+ # external_id: "externalIdType",
411
+ # serial_number: "serialNumberType",
412
+ # token_code: "tokenCodeType",
413
+ # })
414
+ #
415
+ # @example Response structure
416
+ #
417
+ # resp.credentials.access_key_id #=> String
418
+ # resp.credentials.secret_access_key #=> String
419
+ # resp.credentials.session_token #=> String
420
+ # resp.credentials.expiration #=> Time
421
+ # resp.assumed_role_user.assumed_role_id #=> String
422
+ # resp.assumed_role_user.arn #=> String
423
+ # resp.packed_policy_size #=> Integer
424
+ #
425
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRole AWS API Documentation
426
+ #
427
+ # @overload assume_role(params = {})
428
+ # @param [Hash] params ({})
429
+ def assume_role(params = {}, options = {})
430
+ req = build_request(:assume_role, params)
431
+ req.send_request(options)
432
+ end
433
+
434
+ # Returns a set of temporary security credentials for users who have
435
+ # been authenticated via a SAML authentication response. This operation
436
+ # provides a mechanism for tying an enterprise identity store or
437
+ # directory to role-based AWS access without user-specific credentials
438
+ # or configuration. For a comparison of `AssumeRoleWithSAML` with the
439
+ # other APIs that produce temporary credentials, see [Requesting
440
+ # Temporary Security Credentials][1] and [Comparing the AWS STS APIs][2]
441
+ # in the *IAM User Guide*.
442
+ #
443
+ # The temporary security credentials returned by this operation consist
444
+ # of an access key ID, a secret access key, and a security token.
445
+ # Applications can use these temporary security credentials to sign
446
+ # calls to AWS services.
447
+ #
448
+ # The temporary security credentials are valid for the duration that you
449
+ # specified when calling `AssumeRole`, or until the time specified in
450
+ # the SAML authentication response's `SessionNotOnOrAfter` value,
451
+ # whichever is shorter. The duration can be from 900 seconds (15
452
+ # minutes) to a maximum of 3600 seconds (1 hour). The default is 1 hour.
453
+ #
454
+ # The temporary security credentials created by `AssumeRoleWithSAML` can
455
+ # be used to make API calls to any AWS service with the following
456
+ # exception: you cannot call the STS service's `GetFederationToken` or
457
+ # `GetSessionToken` APIs.
458
+ #
459
+ # Optionally, you can pass an IAM access policy to this operation. If
460
+ # you choose not to pass a policy, the temporary security credentials
461
+ # that are returned by the operation have the permissions that are
462
+ # defined in the access policy of the role that is being assumed. If you
463
+ # pass a policy to this operation, the temporary security credentials
464
+ # that are returned by the operation have the permissions that are
465
+ # allowed by the intersection of both the access policy of the role that
466
+ # is being assumed, <i> <b>and</b> </i> the policy that you pass. This
467
+ # means that both policies must grant the permission for the action to
468
+ # be allowed. This gives you a way to further restrict the permissions
469
+ # for the resulting temporary security credentials. You cannot use the
470
+ # passed policy to grant permissions that are in excess of those allowed
471
+ # by the access policy of the role that is being assumed. For more
472
+ # information, see [Permissions for AssumeRole, AssumeRoleWithSAML, and
473
+ # AssumeRoleWithWebIdentity][3] in the *IAM User Guide*.
474
+ #
475
+ # Before your application can call `AssumeRoleWithSAML`, you must
476
+ # configure your SAML identity provider (IdP) to issue the claims
477
+ # required by AWS. Additionally, you must use AWS Identity and Access
478
+ # Management (IAM) to create a SAML provider entity in your AWS account
479
+ # that represents your identity provider, and create an IAM role that
480
+ # specifies this SAML provider in its trust policy.
481
+ #
482
+ # Calling `AssumeRoleWithSAML` does not require the use of AWS security
483
+ # credentials. The identity of the caller is validated by using keys in
484
+ # the metadata document that is uploaded for the SAML provider entity
485
+ # for your identity provider.
486
+ #
487
+ # Calling `AssumeRoleWithSAML` can result in an entry in your AWS
488
+ # CloudTrail logs. The entry includes the value in the `NameID` element
489
+ # of the SAML assertion. We recommend that you use a NameIDType that is
490
+ # not associated with any personally identifiable information (PII). For
491
+ # example, you could instead use the Persistent Identifier
492
+ # (`urn:oasis:names:tc:SAML:2.0:nameid-format:persistent`).
493
+ #
494
+ # For more information, see the following resources:
495
+ #
496
+ # * [About SAML 2.0-based Federation][4] in the *IAM User Guide*.
497
+ #
498
+ # * [Creating SAML Identity Providers][5] in the *IAM User Guide*.
499
+ #
500
+ # * [Configuring a Relying Party and Claims][6] in the *IAM User Guide*.
501
+ #
502
+ # * [Creating a Role for SAML 2.0 Federation][7] in the *IAM User
503
+ # Guide*.
504
+ #
505
+ #
506
+ #
507
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
508
+ # [2]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
509
+ # [3]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html
510
+ # [4]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html
511
+ # [5]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml.html
512
+ # [6]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_create_saml_relying-party.html
513
+ # [7]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-idp_saml.html
514
+ #
515
+ # @option params [required, String] :role_arn
516
+ # The Amazon Resource Name (ARN) of the role that the caller is
517
+ # assuming.
518
+ #
519
+ # @option params [required, String] :principal_arn
520
+ # The Amazon Resource Name (ARN) of the SAML provider in IAM that
521
+ # describes the IdP.
522
+ #
523
+ # @option params [required, String] :saml_assertion
524
+ # The base-64 encoded SAML authentication response provided by the IdP.
525
+ #
526
+ # For more information, see [Configuring a Relying Party and Adding
527
+ # Claims][1] in the *Using IAM* guide.
528
+ #
529
+ #
530
+ #
531
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/create-role-saml-IdP-tasks.html
532
+ #
533
+ # @option params [String] :policy
534
+ # An IAM policy in JSON format.
535
+ #
536
+ # The policy parameter is optional. If you pass a policy, the temporary
537
+ # security credentials that are returned by the operation have the
538
+ # permissions that are allowed by both the access policy of the role
539
+ # that is being assumed, <i> <b>and</b> </i> the policy that you pass.
540
+ # This gives you a way to further restrict the permissions for the
541
+ # resulting temporary security credentials. You cannot use the passed
542
+ # policy to grant permissions that are in excess of those allowed by the
543
+ # access policy of the role that is being assumed. For more information,
544
+ # [Permissions for AssumeRole, AssumeRoleWithSAML, and
545
+ # AssumeRoleWithWebIdentity][1] in the *IAM User Guide*.
546
+ #
547
+ # The format for this parameter, as described by its regex pattern, is a
548
+ # string of characters up to 2048 characters in length. The characters
549
+ # can be any ASCII character from the space character to the end of the
550
+ # valid character list (\\u0020-\\u00FF). It can also include the tab
551
+ # (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
552
+ # characters.
553
+ #
554
+ # <note markdown="1"> The policy plain text must be 2048 bytes or shorter. However, an
555
+ # internal conversion compresses it into a packed binary format with a
556
+ # separate limit. The PackedPolicySize response element indicates by
557
+ # percentage how close to the upper size limit the policy is, with 100%
558
+ # equaling the maximum allowed size.
559
+ #
560
+ # </note>
561
+ #
562
+ #
563
+ #
564
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html
565
+ #
566
+ # @option params [Integer] :duration_seconds
567
+ # The duration, in seconds, of the role session. The value can range
568
+ # from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default,
569
+ # the value is set to 3600 seconds. An expiration can also be specified
570
+ # in the SAML authentication response's `SessionNotOnOrAfter` value.
571
+ # The actual expiration time is whichever value is shorter.
572
+ #
573
+ # <note markdown="1"> This is separate from the duration of a console session that you might
574
+ # request using the returned credentials. The request to the federation
575
+ # endpoint for a console sign-in token takes a `SessionDuration`
576
+ # parameter that specifies the maximum length of the console session,
577
+ # separately from the `DurationSeconds` parameter on this API. For more
578
+ # information, see [Enabling SAML 2.0 Federated Users to Access the AWS
579
+ # Management Console][1] in the *IAM User Guide*.
580
+ #
581
+ # </note>
582
+ #
583
+ #
584
+ #
585
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-saml.html
586
+ #
587
+ # @return [Types::AssumeRoleWithSAMLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
588
+ #
589
+ # * {Types::AssumeRoleWithSAMLResponse#credentials #credentials} => Types::Credentials
590
+ # * {Types::AssumeRoleWithSAMLResponse#assumed_role_user #assumed_role_user} => Types::AssumedRoleUser
591
+ # * {Types::AssumeRoleWithSAMLResponse#packed_policy_size #packed_policy_size} => Integer
592
+ # * {Types::AssumeRoleWithSAMLResponse#subject #subject} => String
593
+ # * {Types::AssumeRoleWithSAMLResponse#subject_type #subject_type} => String
594
+ # * {Types::AssumeRoleWithSAMLResponse#issuer #issuer} => String
595
+ # * {Types::AssumeRoleWithSAMLResponse#audience #audience} => String
596
+ # * {Types::AssumeRoleWithSAMLResponse#name_qualifier #name_qualifier} => String
597
+ #
598
+ # @example Request syntax with placeholder values
599
+ #
600
+ # resp = client.assume_role_with_saml({
601
+ # role_arn: "arnType", # required
602
+ # principal_arn: "arnType", # required
603
+ # saml_assertion: "SAMLAssertionType", # required
604
+ # policy: "sessionPolicyDocumentType",
605
+ # duration_seconds: 1,
606
+ # })
607
+ #
608
+ # @example Response structure
609
+ #
610
+ # resp.credentials.access_key_id #=> String
611
+ # resp.credentials.secret_access_key #=> String
612
+ # resp.credentials.session_token #=> String
613
+ # resp.credentials.expiration #=> Time
614
+ # resp.assumed_role_user.assumed_role_id #=> String
615
+ # resp.assumed_role_user.arn #=> String
616
+ # resp.packed_policy_size #=> Integer
617
+ # resp.subject #=> String
618
+ # resp.subject_type #=> String
619
+ # resp.issuer #=> String
620
+ # resp.audience #=> String
621
+ # resp.name_qualifier #=> String
622
+ #
623
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithSAML AWS API Documentation
624
+ #
625
+ # @overload assume_role_with_saml(params = {})
626
+ # @param [Hash] params ({})
627
+ def assume_role_with_saml(params = {}, options = {})
628
+ req = build_request(:assume_role_with_saml, params)
629
+ req.send_request(options)
630
+ end
631
+
632
+ # Returns a set of temporary security credentials for users who have
633
+ # been authenticated in a mobile or web application with a web identity
634
+ # provider, such as Amazon Cognito, Login with Amazon, Facebook, Google,
635
+ # or any OpenID Connect-compatible identity provider.
636
+ #
637
+ # <note markdown="1"> For mobile applications, we recommend that you use Amazon Cognito. You
638
+ # can use Amazon Cognito with the [AWS SDK for iOS][1] and the [AWS SDK
639
+ # for Android][2] to uniquely identify a user and supply the user with a
640
+ # consistent identity throughout the lifetime of an application.
641
+ #
642
+ # To learn more about Amazon Cognito, see [Amazon Cognito Overview][3]
643
+ # in the *AWS SDK for Android Developer Guide* guide and [Amazon Cognito
644
+ # Overview][4] in the *AWS SDK for iOS Developer Guide*.
645
+ #
646
+ # </note>
647
+ #
648
+ # Calling `AssumeRoleWithWebIdentity` does not require the use of AWS
649
+ # security credentials. Therefore, you can distribute an application
650
+ # (for example, on mobile devices) that requests temporary security
651
+ # credentials without including long-term AWS credentials in the
652
+ # application, and without deploying server-based proxy services that
653
+ # use long-term AWS credentials. Instead, the identity of the caller is
654
+ # validated by using a token from the web identity provider. For a
655
+ # comparison of `AssumeRoleWithWebIdentity` with the other APIs that
656
+ # produce temporary credentials, see [Requesting Temporary Security
657
+ # Credentials][5] and [Comparing the AWS STS APIs][6] in the *IAM User
658
+ # Guide*.
659
+ #
660
+ # The temporary security credentials returned by this API consist of an
661
+ # access key ID, a secret access key, and a security token. Applications
662
+ # can use these temporary security credentials to sign calls to AWS
663
+ # service APIs.
664
+ #
665
+ # The credentials are valid for the duration that you specified when
666
+ # calling `AssumeRoleWithWebIdentity`, which can be from 900 seconds (15
667
+ # minutes) to a maximum of 3600 seconds (1 hour). The default is 1 hour.
668
+ #
669
+ # The temporary security credentials created by
670
+ # `AssumeRoleWithWebIdentity` can be used to make API calls to any AWS
671
+ # service with the following exception: you cannot call the STS
672
+ # service's `GetFederationToken` or `GetSessionToken` APIs.
673
+ #
674
+ # Optionally, you can pass an IAM access policy to this operation. If
675
+ # you choose not to pass a policy, the temporary security credentials
676
+ # that are returned by the operation have the permissions that are
677
+ # defined in the access policy of the role that is being assumed. If you
678
+ # pass a policy to this operation, the temporary security credentials
679
+ # that are returned by the operation have the permissions that are
680
+ # allowed by both the access policy of the role that is being assumed,
681
+ # <i> <b>and</b> </i> the policy that you pass. This gives you a way to
682
+ # further restrict the permissions for the resulting temporary security
683
+ # credentials. You cannot use the passed policy to grant permissions
684
+ # that are in excess of those allowed by the access policy of the role
685
+ # that is being assumed. For more information, see [Permissions for
686
+ # AssumeRole, AssumeRoleWithSAML, and AssumeRoleWithWebIdentity][7] in
687
+ # the *IAM User Guide*.
688
+ #
689
+ # Before your application can call `AssumeRoleWithWebIdentity`, you must
690
+ # have an identity token from a supported identity provider and create a
691
+ # role that the application can assume. The role that your application
692
+ # assumes must trust the identity provider that is associated with the
693
+ # identity token. In other words, the identity provider must be
694
+ # specified in the role's trust policy.
695
+ #
696
+ # Calling `AssumeRoleWithWebIdentity` can result in an entry in your AWS
697
+ # CloudTrail logs. The entry includes the [Subject][8] of the provided
698
+ # Web Identity Token. We recommend that you avoid using any personally
699
+ # identifiable information (PII) in this field. For example, you could
700
+ # instead use a GUID or a pairwise identifier, as [suggested in the OIDC
701
+ # specification][9].
702
+ #
703
+ # For more information about how to use web identity federation and the
704
+ # `AssumeRoleWithWebIdentity` API, see the following resources:
705
+ #
706
+ # * [Using Web Identity Federation APIs for Mobile Apps][10] and
707
+ # [Federation Through a Web-based Identity Provider][11].
708
+ #
709
+ # * [ Web Identity Federation Playground][12]. This interactive website
710
+ # lets you walk through the process of authenticating via Login with
711
+ # Amazon, Facebook, or Google, getting temporary security credentials,
712
+ # and then using those credentials to make a request to AWS.
713
+ #
714
+ # * [AWS SDK for iOS][1] and [AWS SDK for Android][2]. These toolkits
715
+ # contain sample apps that show how to invoke the identity providers,
716
+ # and then how to use the information from these providers to get and
717
+ # use temporary security credentials.
718
+ #
719
+ # * [Web Identity Federation with Mobile Applications][13]. This article
720
+ # discusses web identity federation and shows an example of how to use
721
+ # web identity federation to get access to content in Amazon S3.
722
+ #
723
+ #
724
+ #
725
+ # [1]: http://aws.amazon.com/sdkforios/
726
+ # [2]: http://aws.amazon.com/sdkforandroid/
727
+ # [3]: http://docs.aws.amazon.com/mobile/sdkforandroid/developerguide/cognito-auth.html#d0e840
728
+ # [4]: http://docs.aws.amazon.com/mobile/sdkforios/developerguide/cognito-auth.html#d0e664
729
+ # [5]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
730
+ # [6]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
731
+ # [7]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html
732
+ # [8]: http://openid.net/specs/openid-connect-core-1_0.html#Claims
733
+ # [9]: http://openid.net/specs/openid-connect-core-1_0.html#SubjectIDTypes
734
+ # [10]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_oidc_manual.html
735
+ # [11]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
736
+ # [12]: https://web-identity-federation-playground.s3.amazonaws.com/index.html
737
+ # [13]: http://aws.amazon.com/articles/4617974389850313
738
+ #
739
+ # @option params [required, String] :role_arn
740
+ # The Amazon Resource Name (ARN) of the role that the caller is
741
+ # assuming.
742
+ #
743
+ # @option params [required, String] :role_session_name
744
+ # An identifier for the assumed role session. Typically, you pass the
745
+ # name or identifier that is associated with the user who is using your
746
+ # application. That way, the temporary security credentials that your
747
+ # application will use are associated with that user. This session name
748
+ # is included as part of the ARN and assumed role ID in the
749
+ # `AssumedRoleUser` response element.
750
+ #
751
+ # The regex used to validate this parameter is a string of characters
752
+ # consisting of upper- and lower-case alphanumeric characters with no
753
+ # spaces. You can also include underscores or any of the following
754
+ # characters: =,.@-
755
+ #
756
+ # @option params [required, String] :web_identity_token
757
+ # The OAuth 2.0 access token or OpenID Connect ID token that is provided
758
+ # by the identity provider. Your application must get this token by
759
+ # authenticating the user who is using your application with a web
760
+ # identity provider before the application makes an
761
+ # `AssumeRoleWithWebIdentity` call.
762
+ #
763
+ # @option params [String] :provider_id
764
+ # The fully qualified host component of the domain name of the identity
765
+ # provider.
766
+ #
767
+ # Specify this value only for OAuth 2.0 access tokens. Currently
768
+ # `www.amazon.com` and `graph.facebook.com` are the only supported
769
+ # identity providers for OAuth 2.0 access tokens. Do not include URL
770
+ # schemes and port numbers.
771
+ #
772
+ # Do not specify this value for OpenID Connect ID tokens.
773
+ #
774
+ # @option params [String] :policy
775
+ # An IAM policy in JSON format.
776
+ #
777
+ # The policy parameter is optional. If you pass a policy, the temporary
778
+ # security credentials that are returned by the operation have the
779
+ # permissions that are allowed by both the access policy of the role
780
+ # that is being assumed, <i> <b>and</b> </i> the policy that you pass.
781
+ # This gives you a way to further restrict the permissions for the
782
+ # resulting temporary security credentials. You cannot use the passed
783
+ # policy to grant permissions that are in excess of those allowed by the
784
+ # access policy of the role that is being assumed. For more information,
785
+ # see [Permissions for AssumeRoleWithWebIdentity][1] in the *IAM User
786
+ # Guide*.
787
+ #
788
+ # The format for this parameter, as described by its regex pattern, is a
789
+ # string of characters up to 2048 characters in length. The characters
790
+ # can be any ASCII character from the space character to the end of the
791
+ # valid character list (\\u0020-\\u00FF). It can also include the tab
792
+ # (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
793
+ # characters.
794
+ #
795
+ # <note markdown="1"> The policy plain text must be 2048 bytes or shorter. However, an
796
+ # internal conversion compresses it into a packed binary format with a
797
+ # separate limit. The PackedPolicySize response element indicates by
798
+ # percentage how close to the upper size limit the policy is, with 100%
799
+ # equaling the maximum allowed size.
800
+ #
801
+ # </note>
802
+ #
803
+ #
804
+ #
805
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_assumerole.html
806
+ #
807
+ # @option params [Integer] :duration_seconds
808
+ # The duration, in seconds, of the role session. The value can range
809
+ # from 900 seconds (15 minutes) to 3600 seconds (1 hour). By default,
810
+ # the value is set to 3600 seconds.
811
+ #
812
+ # <note markdown="1"> This is separate from the duration of a console session that you might
813
+ # request using the returned credentials. The request to the federation
814
+ # endpoint for a console sign-in token takes a `SessionDuration`
815
+ # parameter that specifies the maximum length of the console session,
816
+ # separately from the `DurationSeconds` parameter on this API. For more
817
+ # information, see [Creating a URL that Enables Federated Users to
818
+ # Access the AWS Management Console][1] in the *IAM User Guide*.
819
+ #
820
+ # </note>
821
+ #
822
+ #
823
+ #
824
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_enable-console-custom-url.html
825
+ #
826
+ # @return [Types::AssumeRoleWithWebIdentityResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
827
+ #
828
+ # * {Types::AssumeRoleWithWebIdentityResponse#credentials #credentials} => Types::Credentials
829
+ # * {Types::AssumeRoleWithWebIdentityResponse#subject_from_web_identity_token #subject_from_web_identity_token} => String
830
+ # * {Types::AssumeRoleWithWebIdentityResponse#assumed_role_user #assumed_role_user} => Types::AssumedRoleUser
831
+ # * {Types::AssumeRoleWithWebIdentityResponse#packed_policy_size #packed_policy_size} => Integer
832
+ # * {Types::AssumeRoleWithWebIdentityResponse#provider #provider} => String
833
+ # * {Types::AssumeRoleWithWebIdentityResponse#audience #audience} => String
834
+ #
835
+ #
836
+ # @example Example: To assume a role as an OpenID Connect-federated user
837
+ #
838
+ # #
839
+ #
840
+ # resp = client.assume_role_with_web_identity({
841
+ # duration_seconds: 3600,
842
+ # provider_id: "www.amazon.com",
843
+ # role_arn: "arn:aws:iam::123456789012:role/FederatedWebIdentityRole",
844
+ # role_session_name: "app1",
845
+ # web_identity_token: "Atza%7CIQEBLjAsAhRFiXuWpUXuRvQ9PZL3GMFcYevydwIUFAHZwXZXXXXXXXXJnrulxKDHwy87oGKPznh0D6bEQZTSCzyoCtL_8S07pLpr0zMbn6w1lfVZKNTBdDansFBmtGnIsIapjI6xKR02Yc_2bQ8LZbUXSGm6Ry6_BG7PrtLZtj_dfCTj92xNGed-CrKqjG7nPBjNIL016GGvuS5gSvPRUxWES3VYfm1wl7WTI7jn-Pcb6M-buCgHhFOzTQxod27L9CqnOLio7N3gZAGpsp6n1-AJBOCJckcyXe2c6uD0srOJeZlKUm2eTDVMf8IehDVI0r1QOnTV6KzzAI3OY87Vd_cVMQ",
846
+ # })
847
+ #
848
+ # resp.to_h outputs the following:
849
+ # {
850
+ # assumed_role_user: {
851
+ # arn: "arn:aws:sts::123456789012:assumed-role/FederatedWebIdentityRole/app1",
852
+ # assumed_role_id: "AROACLKWSDQRAOEXAMPLE:app1",
853
+ # },
854
+ # audience: "client.5498841531868486423.1548@apps.example.com",
855
+ # credentials: {
856
+ # access_key_id: "AKIAIOSFODNN7EXAMPLE",
857
+ # expiration: Time.parse("2014-10-24T23:00:23Z"),
858
+ # secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
859
+ # session_token: "AQoDYXdzEE0a8ANXXXXXXXXNO1ewxE5TijQyp+IEXAMPLE",
860
+ # },
861
+ # packed_policy_size: 123,
862
+ # provider: "www.amazon.com",
863
+ # subject_from_web_identity_token: "amzn1.account.AF6RHO7KZU5XRVQJGXK6HEXAMPLE",
864
+ # }
865
+ #
866
+ # @example Request syntax with placeholder values
867
+ #
868
+ # resp = client.assume_role_with_web_identity({
869
+ # role_arn: "arnType", # required
870
+ # role_session_name: "roleSessionNameType", # required
871
+ # web_identity_token: "clientTokenType", # required
872
+ # provider_id: "urlType",
873
+ # policy: "sessionPolicyDocumentType",
874
+ # duration_seconds: 1,
875
+ # })
876
+ #
877
+ # @example Response structure
878
+ #
879
+ # resp.credentials.access_key_id #=> String
880
+ # resp.credentials.secret_access_key #=> String
881
+ # resp.credentials.session_token #=> String
882
+ # resp.credentials.expiration #=> Time
883
+ # resp.subject_from_web_identity_token #=> String
884
+ # resp.assumed_role_user.assumed_role_id #=> String
885
+ # resp.assumed_role_user.arn #=> String
886
+ # resp.packed_policy_size #=> Integer
887
+ # resp.provider #=> String
888
+ # resp.audience #=> String
889
+ #
890
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/AssumeRoleWithWebIdentity AWS API Documentation
891
+ #
892
+ # @overload assume_role_with_web_identity(params = {})
893
+ # @param [Hash] params ({})
894
+ def assume_role_with_web_identity(params = {}, options = {})
895
+ req = build_request(:assume_role_with_web_identity, params)
896
+ req.send_request(options)
897
+ end
898
+
899
+ # Decodes additional information about the authorization status of a
900
+ # request from an encoded message returned in response to an AWS
901
+ # request.
902
+ #
903
+ # For example, if a user is not authorized to perform an action that he
904
+ # or she has requested, the request returns a
905
+ # `Client.UnauthorizedOperation` response (an HTTP 403 response). Some
906
+ # AWS actions additionally return an encoded message that can provide
907
+ # details about this authorization failure.
908
+ #
909
+ # <note markdown="1"> Only certain AWS actions return an encoded authorization message. The
910
+ # documentation for an individual action indicates whether that action
911
+ # returns an encoded message in addition to returning an HTTP code.
912
+ #
913
+ # </note>
914
+ #
915
+ # The message is encoded because the details of the authorization status
916
+ # can constitute privileged information that the user who requested the
917
+ # action should not see. To decode an authorization status message, a
918
+ # user must be granted permissions via an IAM policy to request the
919
+ # `DecodeAuthorizationMessage` (`sts:DecodeAuthorizationMessage`)
920
+ # action.
921
+ #
922
+ # The decoded message includes the following type of information:
923
+ #
924
+ # * Whether the request was denied due to an explicit deny or due to the
925
+ # absence of an explicit allow. For more information, see [Determining
926
+ # Whether a Request is Allowed or Denied][1] in the *IAM User Guide*.
927
+ #
928
+ # * The principal who made the request.
929
+ #
930
+ # * The requested action.
931
+ #
932
+ # * The requested resource.
933
+ #
934
+ # * The values of condition keys in the context of the user's request.
935
+ #
936
+ #
937
+ #
938
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_evaluation-logic.html#policy-eval-denyallow
939
+ #
940
+ # @option params [required, String] :encoded_message
941
+ # The encoded message that was returned with the response.
942
+ #
943
+ # @return [Types::DecodeAuthorizationMessageResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
944
+ #
945
+ # * {Types::DecodeAuthorizationMessageResponse#decoded_message #decoded_message} => String
946
+ #
947
+ #
948
+ # @example Example: To decode information about an authorization status of a request
949
+ #
950
+ # #
951
+ #
952
+ # resp = client.decode_authorization_message({
953
+ # encoded_message: "<encoded-message>",
954
+ # })
955
+ #
956
+ # resp.to_h outputs the following:
957
+ # {
958
+ # decoded_message: "{\"allowed\": \"false\",\"explicitDeny\": \"false\",\"matchedStatements\": \"\",\"failures\": \"\",\"context\": {\"principal\": {\"id\": \"AIDACKCEVSQ6C2EXAMPLE\",\"name\": \"Bob\",\"arn\": \"arn:aws:iam::123456789012:user/Bob\"},\"action\": \"ec2:StopInstances\",\"resource\": \"arn:aws:ec2:us-east-1:123456789012:instance/i-dd01c9bd\",\"conditions\": [{\"item\": {\"key\": \"ec2:Tenancy\",\"values\": [\"default\"]},{\"item\": {\"key\": \"ec2:ResourceTag/elasticbeanstalk:environment-name\",\"values\": [\"Default-Environment\"]}},(Additional items ...)]}}",
959
+ # }
960
+ #
961
+ # @example Request syntax with placeholder values
962
+ #
963
+ # resp = client.decode_authorization_message({
964
+ # encoded_message: "encodedMessageType", # required
965
+ # })
966
+ #
967
+ # @example Response structure
968
+ #
969
+ # resp.decoded_message #=> String
970
+ #
971
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/DecodeAuthorizationMessage AWS API Documentation
972
+ #
973
+ # @overload decode_authorization_message(params = {})
974
+ # @param [Hash] params ({})
975
+ def decode_authorization_message(params = {}, options = {})
976
+ req = build_request(:decode_authorization_message, params)
977
+ req.send_request(options)
978
+ end
979
+
980
+ # Returns details about the IAM identity whose credentials are used to
981
+ # call the API.
982
+ #
983
+ # @return [Types::GetCallerIdentityResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
984
+ #
985
+ # * {Types::GetCallerIdentityResponse#user_id #user_id} => String
986
+ # * {Types::GetCallerIdentityResponse#account #account} => String
987
+ # * {Types::GetCallerIdentityResponse#arn #arn} => String
988
+ #
989
+ #
990
+ # @example Example: To get details about a calling IAM user
991
+ #
992
+ # # This example shows a request and response made with the credentials for a user named Alice in the AWS account 123456789012.
993
+ #
994
+ # resp = client.get_caller_identity({
995
+ # })
996
+ #
997
+ # resp.to_h outputs the following:
998
+ # {
999
+ # account: "123456789012",
1000
+ # arn: "arn:aws:iam::123456789012:user/Alice",
1001
+ # user_id: "AKIAI44QH8DHBEXAMPLE",
1002
+ # }
1003
+ #
1004
+ # @example Example: To get details about a calling user federated with AssumeRole
1005
+ #
1006
+ # # This example shows a request and response made with temporary credentials created by AssumeRole. The name of the assumed role is my-role-name, and the RoleSessionName is set to my-role-session-name.
1007
+ #
1008
+ # resp = client.get_caller_identity({
1009
+ # })
1010
+ #
1011
+ # resp.to_h outputs the following:
1012
+ # {
1013
+ # account: "123456789012",
1014
+ # arn: "arn:aws:sts::123456789012:assumed-role/my-role-name/my-role-session-name",
1015
+ # user_id: "AKIAI44QH8DHBEXAMPLE:my-role-session-name",
1016
+ # }
1017
+ #
1018
+ # @example Example: To get details about a calling user federated with GetFederationToken
1019
+ #
1020
+ # # This example shows a request and response made with temporary credentials created by using GetFederationToken. The Name parameter is set to my-federated-user-name.
1021
+ #
1022
+ # resp = client.get_caller_identity({
1023
+ # })
1024
+ #
1025
+ # resp.to_h outputs the following:
1026
+ # {
1027
+ # account: "123456789012",
1028
+ # arn: "arn:aws:sts::123456789012:federated-user/my-federated-user-name",
1029
+ # user_id: "123456789012:my-federated-user-name",
1030
+ # }
1031
+ #
1032
+ # @example Response structure
1033
+ #
1034
+ # resp.user_id #=> String
1035
+ # resp.account #=> String
1036
+ # resp.arn #=> String
1037
+ #
1038
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetCallerIdentity AWS API Documentation
1039
+ #
1040
+ # @overload get_caller_identity(params = {})
1041
+ # @param [Hash] params ({})
1042
+ def get_caller_identity(params = {}, options = {})
1043
+ req = build_request(:get_caller_identity, params)
1044
+ req.send_request(options)
1045
+ end
1046
+
1047
+ # Returns a set of temporary security credentials (consisting of an
1048
+ # access key ID, a secret access key, and a security token) for a
1049
+ # federated user. A typical use is in a proxy application that gets
1050
+ # temporary security credentials on behalf of distributed applications
1051
+ # inside a corporate network. Because you must call the
1052
+ # `GetFederationToken` action using the long-term security credentials
1053
+ # of an IAM user, this call is appropriate in contexts where those
1054
+ # credentials can be safely stored, usually in a server-based
1055
+ # application. For a comparison of `GetFederationToken` with the other
1056
+ # APIs that produce temporary credentials, see [Requesting Temporary
1057
+ # Security Credentials][1] and [Comparing the AWS STS APIs][2] in the
1058
+ # *IAM User Guide*.
1059
+ #
1060
+ # <note markdown="1"> If you are creating a mobile-based or browser-based app that can
1061
+ # authenticate users using a web identity provider like Login with
1062
+ # Amazon, Facebook, Google, or an OpenID Connect-compatible identity
1063
+ # provider, we recommend that you use [Amazon Cognito][3] or
1064
+ # `AssumeRoleWithWebIdentity`. For more information, see [Federation
1065
+ # Through a Web-based Identity Provider][4].
1066
+ #
1067
+ # </note>
1068
+ #
1069
+ # The `GetFederationToken` action must be called by using the long-term
1070
+ # AWS security credentials of an IAM user. You can also call
1071
+ # `GetFederationToken` using the security credentials of an AWS root
1072
+ # account, but we do not recommended it. Instead, we recommend that you
1073
+ # create an IAM user for the purpose of the proxy application and then
1074
+ # attach a policy to the IAM user that limits federated users to only
1075
+ # the actions and resources that they need access to. For more
1076
+ # information, see [IAM Best Practices][5] in the *IAM User Guide*.
1077
+ #
1078
+ # The temporary security credentials that are obtained by using the
1079
+ # long-term credentials of an IAM user are valid for the specified
1080
+ # duration, from 900 seconds (15 minutes) up to a maximium of 129600
1081
+ # seconds (36 hours). The default is 43200 seconds (12 hours). Temporary
1082
+ # credentials that are obtained by using AWS root account credentials
1083
+ # have a maximum duration of 3600 seconds (1 hour).
1084
+ #
1085
+ # The temporary security credentials created by `GetFederationToken` can
1086
+ # be used to make API calls to any AWS service with the following
1087
+ # exceptions:
1088
+ #
1089
+ # * You cannot use these credentials to call any IAM APIs.
1090
+ #
1091
+ # * You cannot call any STS APIs except `GetCallerIdentity`.
1092
+ #
1093
+ # **Permissions**
1094
+ #
1095
+ # The permissions for the temporary security credentials returned by
1096
+ # `GetFederationToken` are determined by a combination of the following:
1097
+ #
1098
+ # * The policy or policies that are attached to the IAM user whose
1099
+ # credentials are used to call `GetFederationToken`.
1100
+ #
1101
+ # * The policy that is passed as a parameter in the call.
1102
+ #
1103
+ # The passed policy is attached to the temporary security credentials
1104
+ # that result from the `GetFederationToken` API call--that is, to the
1105
+ # *federated user*. When the federated user makes an AWS request, AWS
1106
+ # evaluates the policy attached to the federated user in combination
1107
+ # with the policy or policies attached to the IAM user whose credentials
1108
+ # were used to call `GetFederationToken`. AWS allows the federated
1109
+ # user's request only when both the federated user <i> <b>and</b> </i>
1110
+ # the IAM user are explicitly allowed to perform the requested action.
1111
+ # The passed policy cannot grant more permissions than those that are
1112
+ # defined in the IAM user policy.
1113
+ #
1114
+ # A typical use case is that the permissions of the IAM user whose
1115
+ # credentials are used to call `GetFederationToken` are designed to
1116
+ # allow access to all the actions and resources that any federated user
1117
+ # will need. Then, for individual users, you pass a policy to the
1118
+ # operation that scopes down the permissions to a level that's
1119
+ # appropriate to that individual user, using a policy that allows only a
1120
+ # subset of permissions that are granted to the IAM user.
1121
+ #
1122
+ # If you do not pass a policy, the resulting temporary security
1123
+ # credentials have no effective permissions. The only exception is when
1124
+ # the temporary security credentials are used to access a resource that
1125
+ # has a resource-based policy that specifically allows the federated
1126
+ # user to access the resource.
1127
+ #
1128
+ # For more information about how permissions work, see [Permissions for
1129
+ # GetFederationToken][6]. For information about using
1130
+ # `GetFederationToken` to create temporary security credentials, see
1131
+ # [GetFederationToken—Federation Through a Custom Identity Broker][7].
1132
+ #
1133
+ #
1134
+ #
1135
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1136
+ # [2]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1137
+ # [3]: http://aws.amazon.com/cognito/
1138
+ # [4]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_assumerolewithwebidentity
1139
+ # [5]: http://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html
1140
+ # [6]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getfederationtoken.html
1141
+ # [7]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getfederationtoken
1142
+ #
1143
+ # @option params [required, String] :name
1144
+ # The name of the federated user. The name is used as an identifier for
1145
+ # the temporary security credentials (such as `Bob`). For example, you
1146
+ # can reference the federated user name in a resource-based policy, such
1147
+ # as in an Amazon S3 bucket policy.
1148
+ #
1149
+ # The regex used to validate this parameter is a string of characters
1150
+ # consisting of upper- and lower-case alphanumeric characters with no
1151
+ # spaces. You can also include underscores or any of the following
1152
+ # characters: =,.@-
1153
+ #
1154
+ # @option params [String] :policy
1155
+ # An IAM policy in JSON format that is passed with the
1156
+ # `GetFederationToken` call and evaluated along with the policy or
1157
+ # policies that are attached to the IAM user whose credentials are used
1158
+ # to call `GetFederationToken`. The passed policy is used to scope down
1159
+ # the permissions that are available to the IAM user, by allowing only a
1160
+ # subset of the permissions that are granted to the IAM user. The passed
1161
+ # policy cannot grant more permissions than those granted to the IAM
1162
+ # user. The final permissions for the federated user are the most
1163
+ # restrictive set based on the intersection of the passed policy and the
1164
+ # IAM user policy.
1165
+ #
1166
+ # If you do not pass a policy, the resulting temporary security
1167
+ # credentials have no effective permissions. The only exception is when
1168
+ # the temporary security credentials are used to access a resource that
1169
+ # has a resource-based policy that specifically allows the federated
1170
+ # user to access the resource.
1171
+ #
1172
+ # The format for this parameter, as described by its regex pattern, is a
1173
+ # string of characters up to 2048 characters in length. The characters
1174
+ # can be any ASCII character from the space character to the end of the
1175
+ # valid character list (\\u0020-\\u00FF). It can also include the tab
1176
+ # (\\u0009), linefeed (\\u000A), and carriage return (\\u000D)
1177
+ # characters.
1178
+ #
1179
+ # <note markdown="1"> The policy plain text must be 2048 bytes or shorter. However, an
1180
+ # internal conversion compresses it into a packed binary format with a
1181
+ # separate limit. The PackedPolicySize response element indicates by
1182
+ # percentage how close to the upper size limit the policy is, with 100%
1183
+ # equaling the maximum allowed size.
1184
+ #
1185
+ # </note>
1186
+ #
1187
+ # For more information about how permissions work, see [Permissions for
1188
+ # GetFederationToken][1].
1189
+ #
1190
+ #
1191
+ #
1192
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_control-access_getfederationtoken.html
1193
+ #
1194
+ # @option params [Integer] :duration_seconds
1195
+ # The duration, in seconds, that the session should last. Acceptable
1196
+ # durations for federation sessions range from 900 seconds (15 minutes)
1197
+ # to 129600 seconds (36 hours), with 43200 seconds (12 hours) as the
1198
+ # default. Sessions obtained using AWS account (root) credentials are
1199
+ # restricted to a maximum of 3600 seconds (one hour). If the specified
1200
+ # duration is longer than one hour, the session obtained by using AWS
1201
+ # account (root) credentials defaults to one hour.
1202
+ #
1203
+ # @return [Types::GetFederationTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1204
+ #
1205
+ # * {Types::GetFederationTokenResponse#credentials #credentials} => Types::Credentials
1206
+ # * {Types::GetFederationTokenResponse#federated_user #federated_user} => Types::FederatedUser
1207
+ # * {Types::GetFederationTokenResponse#packed_policy_size #packed_policy_size} => Integer
1208
+ #
1209
+ #
1210
+ # @example Example: To get temporary credentials for a role by using GetFederationToken
1211
+ #
1212
+ # #
1213
+ #
1214
+ # resp = client.get_federation_token({
1215
+ # duration_seconds: 3600,
1216
+ # name: "Bob",
1217
+ # policy: "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"Stmt1\",\"Effect\":\"Allow\",\"Action\":\"s3:*\",\"Resource\":\"*\"}]}",
1218
+ # })
1219
+ #
1220
+ # resp.to_h outputs the following:
1221
+ # {
1222
+ # credentials: {
1223
+ # access_key_id: "AKIAIOSFODNN7EXAMPLE",
1224
+ # expiration: Time.parse("2011-07-15T23:28:33.359Z"),
1225
+ # secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
1226
+ # session_token: "AQoDYXdzEPT//////////wEXAMPLEtc764bNrC9SAPBSM22wDOk4x4HIZ8j4FZTwdQWLWsKWHGBuFqwAeMicRXmxfpSPfIeoIYRqTflfKD8YUuwthAx7mSEI/qkPpKPi/kMcGdQrmGdeehM4IC1NtBmUpp2wUE8phUZampKsburEDy0KPkyQDYwT7WZ0wq5VSXDvp75YU9HFvlRd8Tx6q6fE8YQcHNVXAkiY9q6d+xo0rKwT38xVqr7ZD0u0iPPkUL64lIZbqBAz+scqKmlzm8FDrypNC9Yjc8fPOLn9FX9KSYvKTr4rvx3iSIlTJabIQwj2ICCR/oLxBA==",
1227
+ # },
1228
+ # federated_user: {
1229
+ # arn: "arn:aws:sts::123456789012:federated-user/Bob",
1230
+ # federated_user_id: "123456789012:Bob",
1231
+ # },
1232
+ # packed_policy_size: 6,
1233
+ # }
1234
+ #
1235
+ # @example Request syntax with placeholder values
1236
+ #
1237
+ # resp = client.get_federation_token({
1238
+ # name: "userNameType", # required
1239
+ # policy: "sessionPolicyDocumentType",
1240
+ # duration_seconds: 1,
1241
+ # })
1242
+ #
1243
+ # @example Response structure
1244
+ #
1245
+ # resp.credentials.access_key_id #=> String
1246
+ # resp.credentials.secret_access_key #=> String
1247
+ # resp.credentials.session_token #=> String
1248
+ # resp.credentials.expiration #=> Time
1249
+ # resp.federated_user.federated_user_id #=> String
1250
+ # resp.federated_user.arn #=> String
1251
+ # resp.packed_policy_size #=> Integer
1252
+ #
1253
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetFederationToken AWS API Documentation
1254
+ #
1255
+ # @overload get_federation_token(params = {})
1256
+ # @param [Hash] params ({})
1257
+ def get_federation_token(params = {}, options = {})
1258
+ req = build_request(:get_federation_token, params)
1259
+ req.send_request(options)
1260
+ end
1261
+
1262
+ # Returns a set of temporary credentials for an AWS account or IAM user.
1263
+ # The credentials consist of an access key ID, a secret access key, and
1264
+ # a security token. Typically, you use `GetSessionToken` if you want to
1265
+ # use MFA to protect programmatic calls to specific AWS APIs like Amazon
1266
+ # EC2 `StopInstances`. MFA-enabled IAM users would need to call
1267
+ # `GetSessionToken` and submit an MFA code that is associated with their
1268
+ # MFA device. Using the temporary security credentials that are returned
1269
+ # from the call, IAM users can then make programmatic calls to APIs that
1270
+ # require MFA authentication. If you do not supply a correct MFA code,
1271
+ # then the API returns an access denied error. For a comparison of
1272
+ # `GetSessionToken` with the other APIs that produce temporary
1273
+ # credentials, see [Requesting Temporary Security Credentials][1] and
1274
+ # [Comparing the AWS STS APIs][2] in the *IAM User Guide*.
1275
+ #
1276
+ # The `GetSessionToken` action must be called by using the long-term AWS
1277
+ # security credentials of the AWS account or an IAM user. Credentials
1278
+ # that are created by IAM users are valid for the duration that you
1279
+ # specify, from 900 seconds (15 minutes) up to a maximum of 129600
1280
+ # seconds (36 hours), with a default of 43200 seconds (12 hours);
1281
+ # credentials that are created by using account credentials can range
1282
+ # from 900 seconds (15 minutes) up to a maximum of 3600 seconds (1
1283
+ # hour), with a default of 1 hour.
1284
+ #
1285
+ # The temporary security credentials created by `GetSessionToken` can be
1286
+ # used to make API calls to any AWS service with the following
1287
+ # exceptions:
1288
+ #
1289
+ # * You cannot call any IAM APIs unless MFA authentication information
1290
+ # is included in the request.
1291
+ #
1292
+ # * You cannot call any STS API *except* `AssumeRole` or
1293
+ # `GetCallerIdentity`.
1294
+ #
1295
+ # <note markdown="1"> We recommend that you do not call `GetSessionToken` with root account
1296
+ # credentials. Instead, follow our [best practices][3] by creating one
1297
+ # or more IAM users, giving them the necessary permissions, and using
1298
+ # IAM users for everyday interaction with AWS.
1299
+ #
1300
+ # </note>
1301
+ #
1302
+ # The permissions associated with the temporary security credentials
1303
+ # returned by `GetSessionToken` are based on the permissions associated
1304
+ # with account or IAM user whose credentials are used to call the
1305
+ # action. If `GetSessionToken` is called using root account credentials,
1306
+ # the temporary credentials have root account permissions. Similarly, if
1307
+ # `GetSessionToken` is called using the credentials of an IAM user, the
1308
+ # temporary credentials have the same permissions as the IAM user.
1309
+ #
1310
+ # For more information about using `GetSessionToken` to create temporary
1311
+ # credentials, go to [Temporary Credentials for Users in Untrusted
1312
+ # Environments][4] in the *IAM User Guide*.
1313
+ #
1314
+ #
1315
+ #
1316
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html
1317
+ # [2]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#stsapi_comparison
1318
+ # [3]: http://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#create-iam-users
1319
+ # [4]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_request.html#api_getsessiontoken
1320
+ #
1321
+ # @option params [Integer] :duration_seconds
1322
+ # The duration, in seconds, that the credentials should remain valid.
1323
+ # Acceptable durations for IAM user sessions range from 900 seconds (15
1324
+ # minutes) to 129600 seconds (36 hours), with 43200 seconds (12 hours)
1325
+ # as the default. Sessions for AWS account owners are restricted to a
1326
+ # maximum of 3600 seconds (one hour). If the duration is longer than one
1327
+ # hour, the session for AWS account owners defaults to one hour.
1328
+ #
1329
+ # @option params [String] :serial_number
1330
+ # The identification number of the MFA device that is associated with
1331
+ # the IAM user who is making the `GetSessionToken` call. Specify this
1332
+ # value if the IAM user has a policy that requires MFA authentication.
1333
+ # The value is either the serial number for a hardware device (such as
1334
+ # `GAHT12345678`) or an Amazon Resource Name (ARN) for a virtual device
1335
+ # (such as `arn:aws:iam::123456789012:mfa/user`). You can find the
1336
+ # device for an IAM user by going to the AWS Management Console and
1337
+ # viewing the user's security credentials.
1338
+ #
1339
+ # The regex used to validated this parameter is a string of characters
1340
+ # consisting of upper- and lower-case alphanumeric characters with no
1341
+ # spaces. You can also include underscores or any of the following
1342
+ # characters: =,.@:/-
1343
+ #
1344
+ # @option params [String] :token_code
1345
+ # The value provided by the MFA device, if MFA is required. If any
1346
+ # policy requires the IAM user to submit an MFA code, specify this
1347
+ # value. If MFA authentication is required, and the user does not
1348
+ # provide a code when requesting a set of temporary security
1349
+ # credentials, the user will receive an "access denied" response when
1350
+ # requesting resources that require MFA authentication.
1351
+ #
1352
+ # The format for this parameter, as described by its regex pattern, is a
1353
+ # sequence of six numeric digits.
1354
+ #
1355
+ # @return [Types::GetSessionTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1356
+ #
1357
+ # * {Types::GetSessionTokenResponse#credentials #credentials} => Types::Credentials
1358
+ #
1359
+ #
1360
+ # @example Example: To get temporary credentials for an IAM user or an AWS account
1361
+ #
1362
+ # #
1363
+ #
1364
+ # resp = client.get_session_token({
1365
+ # duration_seconds: 3600,
1366
+ # serial_number: "YourMFASerialNumber",
1367
+ # token_code: "123456",
1368
+ # })
1369
+ #
1370
+ # resp.to_h outputs the following:
1371
+ # {
1372
+ # credentials: {
1373
+ # access_key_id: "AKIAIOSFODNN7EXAMPLE",
1374
+ # expiration: Time.parse("2011-07-11T19:55:29.611Z"),
1375
+ # secret_access_key: "wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY",
1376
+ # session_token: "AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4OlgkBN9bkUDNCJiBeb/AXlzBBko7b15fjrBs2+cTQtpZ3CYWFXG8C5zqx37wnOE49mRl/+OtkIKGO7fAE",
1377
+ # },
1378
+ # }
1379
+ #
1380
+ # @example Request syntax with placeholder values
1381
+ #
1382
+ # resp = client.get_session_token({
1383
+ # duration_seconds: 1,
1384
+ # serial_number: "serialNumberType",
1385
+ # token_code: "tokenCodeType",
1386
+ # })
1387
+ #
1388
+ # @example Response structure
1389
+ #
1390
+ # resp.credentials.access_key_id #=> String
1391
+ # resp.credentials.secret_access_key #=> String
1392
+ # resp.credentials.session_token #=> String
1393
+ # resp.credentials.expiration #=> Time
1394
+ #
1395
+ # @see http://docs.aws.amazon.com/goto/WebAPI/sts-2011-06-15/GetSessionToken AWS API Documentation
1396
+ #
1397
+ # @overload get_session_token(params = {})
1398
+ # @param [Hash] params ({})
1399
+ def get_session_token(params = {}, options = {})
1400
+ req = build_request(:get_session_token, params)
1401
+ req.send_request(options)
1402
+ end
1403
+
1404
+ # @!endgroup
1405
+
1406
+ # @param params ({})
1407
+ # @api private
1408
+ def build_request(operation_name, params = {})
1409
+ handlers = @handlers.for(operation_name)
1410
+ context = Seahorse::Client::RequestContext.new(
1411
+ operation_name: operation_name,
1412
+ operation: config.api.operation(operation_name),
1413
+ client: self,
1414
+ params: params,
1415
+ config: config)
1416
+ context[:gem_name] = 'aws-sdk-core'
1417
+ context[:gem_version] = '3.1.0'
1418
+ Seahorse::Client::Request.new(handlers, context)
1419
+ end
1420
+
1421
+ # @api private
1422
+ # @deprecated
1423
+ def waiter_names
1424
+ []
1425
+ end
1426
+
1427
+ class << self
1428
+
1429
+ # @api private
1430
+ attr_reader :identifier
1431
+
1432
+ # @api private
1433
+ def errors_module
1434
+ Errors
1435
+ end
1436
+
1437
+ end
1438
+ end
1439
+ end