aws-sdk 1.6.5 → 1.6.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -37,7 +37,7 @@ module AWS
37
37
  if code == 'RequestEntityTooLarge'
38
38
  message = 'Request body must be less than 1 MB'
39
39
  else
40
- message = json['message']
40
+ message = json['message'] || json['Message']
41
41
  end
42
42
  [code, message]
43
43
  end
@@ -11,7 +11,7 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'builder'
14
+ require 'nokogiri'
15
15
 
16
16
  module AWS
17
17
  module Core
@@ -11,8 +11,6 @@
11
11
  # ANY KIND, either express or implied. See the License for the specific
12
12
  # language governing permissions and limitations under the License.
13
13
 
14
- require 'builder'
15
-
16
14
  module AWS
17
15
  module Core
18
16
 
@@ -68,7 +68,7 @@ module AWS
68
68
  cfg = self.respond_to?(:config) ? self.config :
69
69
  (options[:config] || AWS.config)
70
70
 
71
- cfg.dynamo_db_big_decimals ? BigDecimal.new(number) : number.to_f
71
+ cfg.dynamo_db_big_decimals ? BigDecimal.new(number.to_s) : number.to_f
72
72
 
73
73
  end
74
74
 
@@ -17,6 +17,8 @@ module AWS
17
17
  # Client class for Amazon Elastic Compute Cloud (EC2).
18
18
  class Client < Core::QueryClient
19
19
 
20
+ define_client_methods('2012-07-20')
21
+
20
22
  # @private
21
23
  CACHEABLE_REQUESTS = Set[
22
24
  :describe_addresses,
@@ -340,6 +342,33 @@ module AWS
340
342
  # * +:export_task_id+ - *required* - (String)
341
343
  # @return [Core::Response]
342
344
 
345
+ # Calls the CancelReservedInstancesListing API operation.
346
+ # @method cancel_reserved_instances_listing(options = {})
347
+ # @param [Hash] options
348
+ # * +:reserved_instances_listing_id+ - *required* - (String)
349
+ # @return [Core::Response]
350
+ # The #data method of the response object returns
351
+ # a hash with the following structure:
352
+ # * +:reserved_instances_listings_set+ - (Array<Hash>)
353
+ # * +:reserved_instances_listing_id+ - (String)
354
+ # * +:reserved_instances_id+ - (String)
355
+ # * +:create_date+ - (Time)
356
+ # * +:update_date+ - (Time)
357
+ # * +:status+ - (String)
358
+ # * +:status_message+ - (String)
359
+ # * +:instance_counts+ - (Array<Hash>)
360
+ # * +:state+ - (String)
361
+ # * +:instance_count+ - (Integer)
362
+ # * +:price_schedules+ - (Array<Hash>)
363
+ # * +:term+ - (Integer)
364
+ # * +:price+ - (Numeric)
365
+ # * +:currency_code+ - (String)
366
+ # * +:active+ - (Boolean)
367
+ # * +:tag_set+ - (Array<Hash>)
368
+ # * +:key+ - (String)
369
+ # * +:value+ - (String)
370
+ # * +:client_token+ - (String)
371
+
343
372
  # Calls the CancelSpotInstanceRequests API operation.
344
373
  # @method cancel_spot_instance_requests(options = {})
345
374
  # @param [Hash] options
@@ -626,6 +655,39 @@ module AWS
626
655
  # * +:strategy+ - *required* - (String) The PlacementGroup strategy.
627
656
  # @return [Core::Response]
628
657
 
658
+ # Calls the CreateReservedInstancesListing API operation.
659
+ # @method create_reserved_instances_listing(options = {})
660
+ # @param [Hash] options
661
+ # * +:reserved_instances_id+ - *required* - (String)
662
+ # * +:instance_count+ - *required* - (Integer)
663
+ # * +:price_schedules+ - *required* - (Array<Hash>)
664
+ # * +:term+ - (Integer)
665
+ # * +:price+ - (Float)
666
+ # * +:currency_code+ - (String)
667
+ # * +:client_token+ - *required* - (String)
668
+ # @return [Core::Response]
669
+ # The #data method of the response object returns
670
+ # a hash with the following structure:
671
+ # * +:reserved_instances_listings_set+ - (Array<Hash>)
672
+ # * +:reserved_instances_listing_id+ - (String)
673
+ # * +:reserved_instances_id+ - (String)
674
+ # * +:create_date+ - (Time)
675
+ # * +:update_date+ - (Time)
676
+ # * +:status+ - (String)
677
+ # * +:status_message+ - (String)
678
+ # * +:instance_counts+ - (Array<Hash>)
679
+ # * +:state+ - (String)
680
+ # * +:instance_count+ - (Integer)
681
+ # * +:price_schedules+ - (Array<Hash>)
682
+ # * +:term+ - (Integer)
683
+ # * +:price+ - (Numeric)
684
+ # * +:currency_code+ - (String)
685
+ # * +:active+ - (Boolean)
686
+ # * +:tag_set+ - (Array<Hash>)
687
+ # * +:key+ - (String)
688
+ # * +:value+ - (String)
689
+ # * +:client_token+ - (String)
690
+
629
691
  # Calls the CreateRoute API operation.
630
692
  # @method create_route(options = {})
631
693
  # @param [Hash] options
@@ -668,6 +730,13 @@ module AWS
668
730
  # * +:tag_set+ - (Array<Hash>)
669
731
  # * +:key+ - (String)
670
732
  # * +:value+ - (String)
733
+ # * +:propagating_vgw_set+ - (Array<Hash>)
734
+ # * +:gateway_id+ - (String)
735
+ # * +:propagated_route_set+ - (Array<Hash>)
736
+ # * +:destination_cidr_block+ - (String)
737
+ # * +:gateway_id+ - (String)
738
+ # * +:status+ - (String)
739
+ # * +:source_id+ - (String)
671
740
 
672
741
  # Calls the CreateSecurityGroup API operation.
673
742
  # @method create_security_group(options = {})
@@ -820,6 +889,8 @@ module AWS
820
889
  # customer gateway.
821
890
  # * +:vpn_gateway_id+ - *required* - (String) The ID of the VPN
822
891
  # gateway.
892
+ # * +:options+ - (Hash)
893
+ # * +:static_routes_only+ - (Boolean)
823
894
  # @return [Core::Response]
824
895
  # The #data method of the response object returns
825
896
  # a hash with the following structure:
@@ -839,6 +910,19 @@ module AWS
839
910
  # * +:last_status_change+ - (Time)
840
911
  # * +:status_message+ - (String)
841
912
  # * +:accepted_route_count+ - (Integer)
913
+ # * +:options+ - (Hash)
914
+ # * +:static_routes_only+ - (Boolean)
915
+ # * +:routes+ - (Array<Hash>)
916
+ # * +:destination_cidr_block+ - (String)
917
+ # * +:source+ - (String)
918
+ # * +:state+ - (String)
919
+
920
+ # Calls the CreateVpnConnectionRoute API operation.
921
+ # @method create_vpn_connection_route(options = {})
922
+ # @param [Hash] options
923
+ # * +:vpn_connection_id+ - *required* - (String)
924
+ # * +:destination_cidr_block+ - *required* - (String)
925
+ # @return [Core::Response]
842
926
 
843
927
  # Calls the CreateVpnGateway API operation.
844
928
  # @method create_vpn_gateway(options = {})
@@ -1009,6 +1093,13 @@ module AWS
1009
1093
  # connection to delete
1010
1094
  # @return [Core::Response]
1011
1095
 
1096
+ # Calls the DeleteVpnConnectionRoute API operation.
1097
+ # @method delete_vpn_connection_route(options = {})
1098
+ # @param [Hash] options
1099
+ # * +:vpn_connection_id+ - *required* - (String)
1100
+ # * +:destination_cidr_block+ - *required* - (String)
1101
+ # @return [Core::Response]
1102
+
1012
1103
  # Calls the DeleteVpnGateway API operation.
1013
1104
  # @method delete_vpn_gateway(options = {})
1014
1105
  # @param [Hash] options
@@ -1767,6 +1858,38 @@ module AWS
1767
1858
  # * +:frequency+ - (String)
1768
1859
  # * +:amount+ - (Numeric)
1769
1860
 
1861
+ # Calls the DescribeReservedInstancesListings API operation.
1862
+ # @method describe_reserved_instances_listings(options = {})
1863
+ # @param [Hash] options
1864
+ # * +:reserved_instances_id+ - (String)
1865
+ # * +:reserved_instances_listing_id+ - (String)
1866
+ # * +:filters+ - (Array<Hash>)
1867
+ # * +:name+ - (String) Specifies the name of the filter.
1868
+ # * +:values+ - (Array<String>) Contains one or more values for the
1869
+ # filter.
1870
+ # @return [Core::Response]
1871
+ # The #data method of the response object returns
1872
+ # a hash with the following structure:
1873
+ # * +:reserved_instances_listings_set+ - (Array<Hash>)
1874
+ # * +:reserved_instances_listing_id+ - (String)
1875
+ # * +:reserved_instances_id+ - (String)
1876
+ # * +:create_date+ - (Time)
1877
+ # * +:update_date+ - (Time)
1878
+ # * +:status+ - (String)
1879
+ # * +:status_message+ - (String)
1880
+ # * +:instance_counts+ - (Array<Hash>)
1881
+ # * +:state+ - (String)
1882
+ # * +:instance_count+ - (Integer)
1883
+ # * +:price_schedules+ - (Array<Hash>)
1884
+ # * +:term+ - (Integer)
1885
+ # * +:price+ - (Numeric)
1886
+ # * +:currency_code+ - (String)
1887
+ # * +:active+ - (Boolean)
1888
+ # * +:tag_set+ - (Array<Hash>)
1889
+ # * +:key+ - (String)
1890
+ # * +:value+ - (String)
1891
+ # * +:client_token+ - (String)
1892
+
1770
1893
  # Calls the DescribeReservedInstancesOfferings API operation.
1771
1894
  # @method describe_reserved_instances_offerings(options = {})
1772
1895
  # @param [Hash] options
@@ -1807,6 +1930,11 @@ module AWS
1807
1930
  # * +:recurring_charges+ - (Array<Hash>)
1808
1931
  # * +:frequency+ - (String)
1809
1932
  # * +:amount+ - (Numeric)
1933
+ # * +:marketplace+ - (Boolean)
1934
+ # * +:pricing_details_set+ - (Array<Hash>)
1935
+ # * +:price+ - (Numeric)
1936
+ # * +:count+ - (Integer)
1937
+ # * +:next_token+ - (String)
1810
1938
 
1811
1939
  # Calls the DescribeRouteTables API operation.
1812
1940
  # @method describe_route_tables(options = {})
@@ -1840,6 +1968,13 @@ module AWS
1840
1968
  # * +:tag_set+ - (Array<Hash>)
1841
1969
  # * +:key+ - (String)
1842
1970
  # * +:value+ - (String)
1971
+ # * +:propagating_vgw_set+ - (Array<Hash>)
1972
+ # * +:gateway_id+ - (String)
1973
+ # * +:propagated_route_set+ - (Array<Hash>)
1974
+ # * +:destination_cidr_block+ - (String)
1975
+ # * +:gateway_id+ - (String)
1976
+ # * +:status+ - (String)
1977
+ # * +:source_id+ - (String)
1843
1978
 
1844
1979
  # Calls the DescribeSecurityGroups API operation.
1845
1980
  # @method describe_security_groups(options = {})
@@ -2242,6 +2377,12 @@ module AWS
2242
2377
  # * +:last_status_change+ - (Time)
2243
2378
  # * +:status_message+ - (String)
2244
2379
  # * +:accepted_route_count+ - (Integer)
2380
+ # * +:options+ - (Hash)
2381
+ # * +:static_routes_only+ - (Boolean)
2382
+ # * +:routes+ - (Array<Hash>)
2383
+ # * +:destination_cidr_block+ - (String)
2384
+ # * +:source+ - (String)
2385
+ # * +:state+ - (String)
2245
2386
 
2246
2387
  # Calls the DescribeVpnGateways API operation.
2247
2388
  # @method describe_vpn_gateways(options = {})
@@ -2323,6 +2464,13 @@ module AWS
2323
2464
  # VPN gateway from.
2324
2465
  # @return [Core::Response]
2325
2466
 
2467
+ # Calls the DisableVgwRoutePropagation API operation.
2468
+ # @method disable_vgw_route_propagation(options = {})
2469
+ # @param [Hash] options
2470
+ # * +:route_table_id+ - *required* - (String)
2471
+ # * +:gateway_id+ - *required* - (String)
2472
+ # @return [Core::Response]
2473
+
2326
2474
  # Calls the DisassociateAddress API operation.
2327
2475
  # @method disassociate_address(options = {})
2328
2476
  # @param [Hash] options
@@ -2340,6 +2488,13 @@ module AWS
2340
2488
  # subnet.
2341
2489
  # @return [Core::Response]
2342
2490
 
2491
+ # Calls the EnableVgwRoutePropagation API operation.
2492
+ # @method enable_vgw_route_propagation(options = {})
2493
+ # @param [Hash] options
2494
+ # * +:route_table_id+ - *required* - (String)
2495
+ # * +:gateway_id+ - *required* - (String)
2496
+ # @return [Core::Response]
2497
+
2343
2498
  # Calls the EnableVolumeIO API operation.
2344
2499
  # @method enable_volume_io(options = {})
2345
2500
  # @param [Hash] options
@@ -2688,6 +2843,9 @@ module AWS
2688
2843
  # unique ID of the Reserved Instances offering being purchased.
2689
2844
  # * +:instance_count+ - *required* - (Integer) The number of Reserved
2690
2845
  # Instances to purchase.
2846
+ # * +:limit_price+ - (Hash)
2847
+ # * +:amount+ - (Float)
2848
+ # * +:currency_code+ - (String)
2691
2849
  # @return [Core::Response]
2692
2850
  # The #data method of the response object returns
2693
2851
  # a hash with the following structure:
@@ -2864,9 +3022,6 @@ module AWS
2864
3022
  # instance information.
2865
3023
  # * +:image_id+ - (String) The AMI ID.
2866
3024
  # * +:key_name+ - (String) The name of the key pair.
2867
- # * +:security_groups+ - (Array<Hash>)
2868
- # * +:group_name+ - (String)
2869
- # * +:group_id+ - (String)
2870
3025
  # * +:user_data+ - (String) Optional data, specific to a user's
2871
3026
  # application, to provide in the launch request. All instances that
2872
3027
  # collectively comprise the launch request have access to this
@@ -2923,6 +3078,9 @@ module AWS
2923
3078
  # * +:arn+ - (String)
2924
3079
  # * +:name+ - (String)
2925
3080
  # * +:ebs_optimized+ - (Boolean)
3081
+ # * +:security_groups+ - (Array<Hash>)
3082
+ # * +:group_name+ - (String)
3083
+ # * +:group_id+ - (String)
2926
3084
  # @return [Core::Response]
2927
3085
  # The #data method of the response object returns
2928
3086
  # a hash with the following structure:
@@ -3359,7 +3517,6 @@ module AWS
3359
3517
  # * +:private_ip_addresses+ - *required* - (Array<String>)
3360
3518
  # @return [Core::Response]
3361
3519
 
3362
- # Calls the UnmonitorInstances API operation.
3363
3520
  # @method unmonitor_instances(options = {})
3364
3521
  # @param [Hash] options
3365
3522
  # * +:instance_ids+ - *required* - (Array<String>) The list of Amazon
@@ -3374,8 +3531,6 @@ module AWS
3374
3531
 
3375
3532
  ## end client methods ##
3376
3533
 
3377
- define_client_methods('2012-07-20')
3378
-
3379
3534
  end
3380
3535
  end
3381
3536
  end
@@ -113,9 +113,12 @@ module AWS
113
113
  autoload :ACLOptions, 'acl_options'
114
114
  autoload :Bucket, 'bucket'
115
115
  autoload :BucketCollection, 'bucket_collection'
116
+ autoload :BucketTagCollection, 'bucket_tag_collection'
116
117
  autoload :BucketLifecycleConfiguration, 'bucket_lifecycle_configuration'
117
118
  autoload :BucketVersionCollection, 'bucket_version_collection'
118
119
  autoload :Client, 'client'
120
+ autoload :CORSRule, 'cors_rule'
121
+ autoload :CORSRuleCollection, 'cors_rule_collection'
119
122
  autoload :DataOptions, 'data_options'
120
123
  autoload :EncryptionUtils, 'encryption_utils'
121
124
  autoload :CipherIO, 'cipher_io'
@@ -225,13 +225,67 @@ module AWS
225
225
  versions.first ? false : true
226
226
  end
227
227
 
228
- # @return [String,nil] Returns the location constraint for a bucket
228
+ # @return [String,nil] Returns the location constraint for a bucket
229
229
  # (if it has one), nil otherwise.
230
230
  def location_constraint
231
231
  client.get_bucket_location(:bucket_name => name).location_constraint
232
232
  end
233
233
 
234
- # Enables versioning on this bucket.
234
+ # Returns the tags for this bucket.
235
+ #
236
+ # tags = bucket.tags
237
+ # #=> <AWS::S3::BucketTagCollection>
238
+ #
239
+ # # adds a tag to the bucket
240
+ # tags['foo'] = 'abc'
241
+ #
242
+ # # replaces all tags
243
+ # tags.set('new' => 'tags')
244
+ #
245
+ # # removes all tags from the bucket
246
+ # tags.clear
247
+ #
248
+ # # returns tags as a hash
249
+ # tags.to_h
250
+ #
251
+ # @return [BucketTagCollection] Returns a collection that represents
252
+ # the tags for this bucket.
253
+ #
254
+ def tags
255
+ BucketTagCollection.new(self)
256
+ end
257
+
258
+ # Sets the tags for this bucket.
259
+ #
260
+ # bucket.tags = { 'contents' => 'photots' }
261
+ #
262
+ # You can remove all tags for the bucket by passing an empty
263
+ # hash or +nil+.
264
+ #
265
+ # bucket.tags = nil # {} also deletes all tags
266
+ # bucket.tags
267
+ # #=> {}
268
+ #
269
+ # @param [Hash,nil] tags The tags to set on this bucket.
270
+ #
271
+ def tags= tags
272
+ self.tags.set(tags)
273
+ end
274
+
275
+ # @return [CORSRuleCollection] Returns a collection that can be
276
+ # used to manage (add, edit and delete) CORS rules for this bucket.
277
+ def cors
278
+ CORSRuleCollection.new(self)
279
+ end
280
+
281
+ # Sets the bucket CORS rules.
282
+ # @param (see CORSRuleCollection#set)
283
+ # @see CORSRuleCollection#set
284
+ def cors= *rules
285
+ self.cors.set(*rules)
286
+ end
287
+
288
+ # Enables versioning on this bucket.
235
289
  # @return [nil]
236
290
  def enable_versioning
237
291
  client.set_bucket_versioning(
@@ -240,7 +294,7 @@ module AWS
240
294
  nil
241
295
  end
242
296
 
243
- # Suspends versioning on this bucket.
297
+ # Suspends versioning on this bucket.
244
298
  # @return [nil]
245
299
  def suspend_versioning
246
300
  client.set_bucket_versioning(
@@ -316,7 +370,7 @@ module AWS
316
370
  begin
317
371
  versioned? # makes a get bucket request without listing contents
318
372
  # raises a client error if the bucket doesn't exist or
319
- # if you don't have permission to get the bucket
373
+ # if you don't have permission to get the bucket
320
374
  # versioning status.
321
375
  true
322
376
  rescue Errors::NoSuchBucket => e
@@ -326,7 +380,7 @@ module AWS
326
380
  end
327
381
  end
328
382
 
329
- # @return [ObjectCollection] Represents all objects(keys) in
383
+ # @return [ObjectCollection] Represents all objects(keys) in
330
384
  # this bucket.
331
385
  def objects
332
386
  ObjectCollection.new(self)
@@ -482,11 +536,11 @@ module AWS
482
536
  #
483
537
  # bucket.lifecycle_configuration = other_bucket.lifecycle_configuration
484
538
  #
485
- # If you call this method, passing nil, the lifecycle configuration
539
+ # If you call this method, passing nil, the lifecycle configuration
486
540
  # for this bucket will be deleted.
487
541
  #
488
- # @param [String,Object] config You can pass an xml string or any
489
- # other object that responds to #to_xml (e.g.
542
+ # @param [String,Object] config You can pass an xml string or any
543
+ # other object that responds to #to_xml (e.g.
490
544
  # BucketLifecycleConfiguration).
491
545
  #
492
546
  # @return [nil]
@@ -502,7 +556,7 @@ module AWS
502
556
  @lifecycle_cfg = BucketLifecycleConfiguration.new(self, :empty => true)
503
557
 
504
558
  else
505
-
559
+
506
560
  xml = config.is_a?(String) ? config : config.to_xml
507
561
 
508
562
  client_opts = {}