aws-sdk 1.6.5 → 1.6.6

Sign up to get free protection for your applications and to get access to all the features.
@@ -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 = {}