aws-sdk 1.12.0 → 1.13.0
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.
- checksums.yaml +4 -4
- data/README.md +2 -2
- data/bin/aws-rb +18 -0
- data/lib/aws/api_config/{CloudFront-2012-07-01.yml → CloudFront-2013-05-12.yml} +73 -23
- data/lib/aws/api_config/{RDS-2013-02-12.yml → RDS-2013-05-15.yml} +92 -5
- data/lib/aws/api_config/Redshift-2012-12-01.yml +188 -12
- data/lib/aws/api_config/STS-2011-06-15.yml +10 -0
- data/lib/aws/auto_scaling/client.rb +6 -0
- data/lib/aws/cloud_formation/client.rb +6 -0
- data/lib/aws/cloud_front/client.rb +37 -1
- data/lib/aws/cloud_search/client.rb +6 -0
- data/lib/aws/cloud_watch/client.rb +6 -0
- data/lib/aws/core.rb +15 -20
- data/lib/aws/core/client.rb +36 -0
- data/lib/aws/core/credential_providers.rb +45 -0
- data/lib/aws/core/region_collection.rb +4 -1
- data/lib/aws/data_pipeline/client.rb +6 -0
- data/lib/aws/direct_connect/client.rb +6 -0
- data/lib/aws/dynamo_db/client.rb +35 -1249
- data/lib/aws/dynamo_db/client/v20111205.rb +1266 -0
- data/lib/aws/dynamo_db/client/v20120810.rb +1409 -0
- data/lib/aws/dynamo_db/client_base.rb +1 -0
- data/lib/aws/dynamo_db/client_v2.rb +25 -1396
- data/lib/aws/ec2/client.rb +6 -0
- data/lib/aws/elastic_beanstalk/client.rb +6 -0
- data/lib/aws/elastic_transcoder/client.rb +6 -0
- data/lib/aws/elasticache/client.rb +6 -0
- data/lib/aws/elb/client.rb +6 -0
- data/lib/aws/emr/client.rb +6 -0
- data/lib/aws/glacier/client.rb +14 -8
- data/lib/aws/iam/client.rb +6 -0
- data/lib/aws/import_export/client.rb +6 -0
- data/lib/aws/ops_works/client.rb +6 -0
- data/lib/aws/rds/client.rb +83 -18
- data/lib/aws/record/abstract_base.rb +19 -22
- data/lib/aws/record/attributes.rb +5 -1
- data/lib/aws/record/hash_model.rb +50 -6
- data/lib/aws/record/model.rb +26 -0
- data/lib/aws/record/validator.rb +1 -1
- data/lib/aws/redshift/client.rb +186 -53
- data/lib/aws/route_53/client.rb +6 -0
- data/lib/aws/route_53/hosted_zone.rb +1 -1
- data/lib/aws/route_53/resource_record_set.rb +3 -3
- data/lib/aws/s3/client.rb +4 -1
- data/lib/aws/s3/presigned_post.rb +18 -21
- data/lib/aws/simple_db/client.rb +6 -0
- data/lib/aws/simple_email_service/client.rb +6 -0
- data/lib/aws/simple_email_service/identity.rb +1 -1
- data/lib/aws/simple_workflow/client.rb +24 -18
- data/lib/aws/sns/client.rb +6 -0
- data/lib/aws/sqs/client.rb +21 -15
- data/lib/aws/storage_gateway/client.rb +6 -0
- data/lib/aws/sts/client.rb +57 -38
- data/lib/aws/support/client.rb +6 -0
- data/lib/aws/version.rb +1 -1
- metadata +6 -4
data/lib/aws/ec2/client.rb
CHANGED
@@ -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
|
+
API_VERSION = '2013-02-01'
|
21
|
+
|
20
22
|
# @api private
|
21
23
|
CACHEABLE_REQUESTS = Set[
|
22
24
|
:describe_addresses,
|
@@ -56,6 +58,10 @@ module AWS
|
|
56
58
|
:describe_network_interface_attribute,
|
57
59
|
]
|
58
60
|
|
61
|
+
end
|
62
|
+
|
63
|
+
class Client::V20130201 < Client
|
64
|
+
|
59
65
|
# client methods #
|
60
66
|
|
61
67
|
# @!method activate_license(options = {})
|
@@ -17,9 +17,15 @@ module AWS
|
|
17
17
|
# Client class for AWS Elastic Beanstalk.
|
18
18
|
class Client < Core::QueryClient
|
19
19
|
|
20
|
+
API_VERSION = '2010-12-01'
|
21
|
+
|
20
22
|
# @api private
|
21
23
|
CACHEABLE_REQUESTS = Set[]
|
22
24
|
|
25
|
+
end
|
26
|
+
|
27
|
+
class Client::V20101201 < Client
|
28
|
+
|
23
29
|
# client methods #
|
24
30
|
|
25
31
|
# @!method check_dns_availability(options = {})
|
@@ -16,6 +16,8 @@ module AWS
|
|
16
16
|
|
17
17
|
class Client < Core::RESTJSONClient
|
18
18
|
|
19
|
+
API_VERSION = '2012-09-25'
|
20
|
+
|
19
21
|
# @api private
|
20
22
|
def extract_error_details response
|
21
23
|
if
|
@@ -33,6 +35,10 @@ module AWS
|
|
33
35
|
# @api private
|
34
36
|
CACHEABLE_REQUESTS = Set[]
|
35
37
|
|
38
|
+
end
|
39
|
+
|
40
|
+
class Client::V20120925 < Client
|
41
|
+
|
36
42
|
# client methods #
|
37
43
|
|
38
44
|
# @!method cancel_job(options = {})
|
@@ -17,9 +17,15 @@ module AWS
|
|
17
17
|
# Client class for Amazon ElastiCache.
|
18
18
|
class Client < Core::QueryClient
|
19
19
|
|
20
|
+
API_VERSION = '2012-11-15'
|
21
|
+
|
20
22
|
# @api private
|
21
23
|
CACHEABLE_REQUESTS = Set[]
|
22
24
|
|
25
|
+
end
|
26
|
+
|
27
|
+
class Client::V20121115 < Client
|
28
|
+
|
23
29
|
# client methods #
|
24
30
|
|
25
31
|
# @!method authorize_cache_security_group_ingress(options = {})
|
data/lib/aws/elb/client.rb
CHANGED
@@ -17,9 +17,15 @@ module AWS
|
|
17
17
|
# Client class for Elastic Load Balancing (ELB).
|
18
18
|
class Client < Core::QueryClient
|
19
19
|
|
20
|
+
API_VERSION = '2012-06-01'
|
21
|
+
|
20
22
|
# @api private
|
21
23
|
CACHEABLE_REQUESTS = Set[]
|
22
24
|
|
25
|
+
end
|
26
|
+
|
27
|
+
class Client::V20120601 < Client
|
28
|
+
|
23
29
|
# client methods #
|
24
30
|
|
25
31
|
# @!method apply_security_groups_to_load_balancer(options = {})
|
data/lib/aws/emr/client.rb
CHANGED
@@ -17,9 +17,15 @@ module AWS
|
|
17
17
|
# Client class for Elastic MapReduce (EMR).
|
18
18
|
class Client < Core::QueryClient
|
19
19
|
|
20
|
+
API_VERSION = '2009-03-31'
|
21
|
+
|
20
22
|
# @api private
|
21
23
|
CACHEABLE_REQUESTS = Set[]
|
22
24
|
|
25
|
+
end
|
26
|
+
|
27
|
+
class Client::V20090331 < Client
|
28
|
+
|
23
29
|
# client methods #
|
24
30
|
|
25
31
|
# @!method add_instance_groups(options = {})
|
data/lib/aws/glacier/client.rb
CHANGED
@@ -23,9 +23,23 @@ module AWS
|
|
23
23
|
#
|
24
24
|
class Client < Core::RESTJSONClient
|
25
25
|
|
26
|
+
API_VERSION = '2012-06-01'
|
27
|
+
|
26
28
|
# @api private
|
27
29
|
CACHEABLE_REQUESTS = Set[]
|
28
30
|
|
31
|
+
private
|
32
|
+
|
33
|
+
def build_request *args
|
34
|
+
request = super(*args)
|
35
|
+
request.headers['x-amz-glacier-version'] = self.class.const_get(:API_VERSION)
|
36
|
+
request
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
class Client::V20120601 < Client
|
42
|
+
|
29
43
|
# client methods #
|
30
44
|
|
31
45
|
# @!method abort_multipart_upload(options = {})
|
@@ -306,14 +320,6 @@ module AWS
|
|
306
320
|
|
307
321
|
define_client_methods('2012-06-01')
|
308
322
|
|
309
|
-
private
|
310
|
-
|
311
|
-
def build_request *args
|
312
|
-
request = super(*args)
|
313
|
-
request.headers['x-amz-glacier-version'] = API_VERSION
|
314
|
-
request
|
315
|
-
end
|
316
|
-
|
317
323
|
end
|
318
324
|
end
|
319
325
|
end
|
data/lib/aws/iam/client.rb
CHANGED
@@ -17,6 +17,8 @@ module AWS
|
|
17
17
|
# Client class for AWS Identity and Access Management (IAM).
|
18
18
|
class Client < Core::QueryClient
|
19
19
|
|
20
|
+
API_VERSION = '2010-05-08'
|
21
|
+
|
20
22
|
# @api private
|
21
23
|
CACHEABLE_REQUESTS = Set[
|
22
24
|
:get_group,
|
@@ -34,6 +36,10 @@ module AWS
|
|
34
36
|
:list_virtual_mfa_devices,
|
35
37
|
]
|
36
38
|
|
39
|
+
end
|
40
|
+
|
41
|
+
class Client::V20100508 < Client
|
42
|
+
|
37
43
|
# client methods #
|
38
44
|
|
39
45
|
# @!method add_role_to_instance_profile(options = {})
|
@@ -17,9 +17,15 @@ module AWS
|
|
17
17
|
# Client class for AWS Import/Export.
|
18
18
|
class Client < Core::QueryClient
|
19
19
|
|
20
|
+
API_VERSION = '2010-06-01'
|
21
|
+
|
20
22
|
# @api private
|
21
23
|
CACHEABLE_REQUESTS = Set[]
|
22
24
|
|
25
|
+
end
|
26
|
+
|
27
|
+
class Client::V20100601 < Client
|
28
|
+
|
23
29
|
# client methods #
|
24
30
|
|
25
31
|
# @!method cancel_job(options = {})
|
data/lib/aws/ops_works/client.rb
CHANGED
@@ -17,9 +17,15 @@ module AWS
|
|
17
17
|
# Client class for AWS OpsWorks.
|
18
18
|
class Client < Core::JSONClient
|
19
19
|
|
20
|
+
API_VERSION = '2013-02-18'
|
21
|
+
|
20
22
|
# @api private
|
21
23
|
CACHEABLE_REQUESTS = Set[]
|
22
24
|
|
25
|
+
end
|
26
|
+
|
27
|
+
class Client::V20130218 < Client
|
28
|
+
|
23
29
|
# client methods #
|
24
30
|
|
25
31
|
# @!method attach_elastic_load_balancer(options = {})
|
data/lib/aws/rds/client.rb
CHANGED
@@ -17,9 +17,15 @@ module AWS
|
|
17
17
|
# Client class for Amazon Relational Database Service (RDS).
|
18
18
|
class Client < Core::QueryClient
|
19
19
|
|
20
|
+
API_VERSION = '2013-05-15'
|
21
|
+
|
20
22
|
# @api private
|
21
23
|
CACHEABLE_REQUESTS = Set[]
|
22
24
|
|
25
|
+
end
|
26
|
+
|
27
|
+
class Client::V20130515 < Client
|
28
|
+
|
23
29
|
# client methods #
|
24
30
|
|
25
31
|
# @!method add_source_identifier_to_subscription(options = {})
|
@@ -281,6 +287,11 @@ module AWS
|
|
281
287
|
# * `:character_set_name` - (String)
|
282
288
|
# * `:secondary_availability_zone` - (String)
|
283
289
|
# * `:publicly_accessible` - (Boolean)
|
290
|
+
# * `:status_infos` - (Array<Hash>)
|
291
|
+
# * `:status_type` - (String)
|
292
|
+
# * `:normal` - (Boolean)
|
293
|
+
# * `:status` - (String)
|
294
|
+
# * `:message` - (String)
|
284
295
|
|
285
296
|
# @!method create_db_instance_read_replica(options = {})
|
286
297
|
# Calls the CreateDBInstanceReadReplica API operation.
|
@@ -392,6 +403,11 @@ module AWS
|
|
392
403
|
# * `:character_set_name` - (String)
|
393
404
|
# * `:secondary_availability_zone` - (String)
|
394
405
|
# * `:publicly_accessible` - (Boolean)
|
406
|
+
# * `:status_infos` - (Array<Hash>)
|
407
|
+
# * `:status_type` - (String)
|
408
|
+
# * `:normal` - (Boolean)
|
409
|
+
# * `:status` - (String)
|
410
|
+
# * `:message` - (String)
|
395
411
|
|
396
412
|
# @!method create_db_parameter_group(options = {})
|
397
413
|
# Calls the CreateDBParameterGroup API operation.
|
@@ -572,6 +588,7 @@ module AWS
|
|
572
588
|
# * `:option_name` - (String)
|
573
589
|
# * `:option_description` - (String)
|
574
590
|
# * `:persistent` - (Boolean)
|
591
|
+
# * `:permanent` - (Boolean)
|
575
592
|
# * `:port` - (Integer)
|
576
593
|
# * `:option_settings` - (Array<Hash>)
|
577
594
|
# * `:name` - (String)
|
@@ -667,6 +684,11 @@ module AWS
|
|
667
684
|
# * `:character_set_name` - (String)
|
668
685
|
# * `:secondary_availability_zone` - (String)
|
669
686
|
# * `:publicly_accessible` - (Boolean)
|
687
|
+
# * `:status_infos` - (Array<Hash>)
|
688
|
+
# * `:status_type` - (String)
|
689
|
+
# * `:normal` - (Boolean)
|
690
|
+
# * `:status` - (String)
|
691
|
+
# * `:message` - (String)
|
670
692
|
|
671
693
|
# @!method delete_db_parameter_group(options = {})
|
672
694
|
# Calls the DeleteDBParameterGroup API operation.
|
@@ -875,6 +897,11 @@ module AWS
|
|
875
897
|
# * `:character_set_name` - (String)
|
876
898
|
# * `:secondary_availability_zone` - (String)
|
877
899
|
# * `:publicly_accessible` - (Boolean)
|
900
|
+
# * `:status_infos` - (Array<Hash>)
|
901
|
+
# * `:status_type` - (String)
|
902
|
+
# * `:normal` - (Boolean)
|
903
|
+
# * `:status` - (String)
|
904
|
+
# * `:message` - (String)
|
878
905
|
|
879
906
|
# @!method describe_db_log_files(options = {})
|
880
907
|
# Calls the DescribeDBLogFiles API operation.
|
@@ -1224,6 +1251,7 @@ module AWS
|
|
1224
1251
|
# * `:default_port` - (Integer)
|
1225
1252
|
# * `:options_depended_on` - (Array<String>)
|
1226
1253
|
# * `:persistent` - (Boolean)
|
1254
|
+
# * `:permanent` - (Boolean)
|
1227
1255
|
# * `:option_group_option_settings` - (Array<Hash>)
|
1228
1256
|
# * `:setting_name` - (String)
|
1229
1257
|
# * `:setting_description` - (String)
|
@@ -1268,6 +1296,7 @@ module AWS
|
|
1268
1296
|
# * `:option_name` - (String)
|
1269
1297
|
# * `:option_description` - (String)
|
1270
1298
|
# * `:persistent` - (Boolean)
|
1299
|
+
# * `:permanent` - (Boolean)
|
1271
1300
|
# * `:port` - (Integer)
|
1272
1301
|
# * `:option_settings` - (Array<Hash>)
|
1273
1302
|
# * `:name` - (String)
|
@@ -1619,6 +1648,11 @@ module AWS
|
|
1619
1648
|
# * `:character_set_name` - (String)
|
1620
1649
|
# * `:secondary_availability_zone` - (String)
|
1621
1650
|
# * `:publicly_accessible` - (Boolean)
|
1651
|
+
# * `:status_infos` - (Array<Hash>)
|
1652
|
+
# * `:status_type` - (String)
|
1653
|
+
# * `:normal` - (Boolean)
|
1654
|
+
# * `:status` - (String)
|
1655
|
+
# * `:message` - (String)
|
1622
1656
|
|
1623
1657
|
# @!method modify_db_parameter_group(options = {})
|
1624
1658
|
# Calls the ModifyDBParameterGroup API operation.
|
@@ -1738,22 +1772,24 @@ module AWS
|
|
1738
1772
|
# DBSecurityGroupMemebrship name strings used for this option.
|
1739
1773
|
# * `:vpc_security_group_memberships` - (Array<String>) A list of
|
1740
1774
|
# VpcSecurityGroupMemebrship name strings used for this option.
|
1741
|
-
# * `:option_settings` - (Array<Hash>)
|
1742
|
-
#
|
1743
|
-
# * `:name` - (String) The name of the
|
1744
|
-
#
|
1745
|
-
# * `:
|
1746
|
-
# * `:
|
1747
|
-
# * `:apply_type` - (String) Specifies the apply type for this
|
1775
|
+
# * `:option_settings` - (Array<Hash>) The option settings to include
|
1776
|
+
# in an option group.
|
1777
|
+
# * `:name` - (String) The name of the option that has settings
|
1778
|
+
# that you can set.
|
1779
|
+
# * `:value` - (String) The current value of the option setting.
|
1780
|
+
# * `:default_value` - (String) The default value of the option
|
1748
1781
|
# setting.
|
1749
|
-
# * `:
|
1750
|
-
# setting
|
1751
|
-
# * `:
|
1752
|
-
#
|
1753
|
-
# * `:
|
1754
|
-
#
|
1755
|
-
# * `:
|
1756
|
-
#
|
1782
|
+
# * `:description` - (String) The description of the option
|
1783
|
+
# setting.
|
1784
|
+
# * `:apply_type` - (String) The DB engine specific parameter type.
|
1785
|
+
# * `:data_type` - (String) The data type of the option setting.
|
1786
|
+
# * `:allowed_values` - (String) The allowed values of the option
|
1787
|
+
# setting.
|
1788
|
+
# * `:is_modifiable` - (Boolean) A Boolean value that, when `true`
|
1789
|
+
# , indicates the option setting can be modified from the
|
1790
|
+
# default.
|
1791
|
+
# * `:is_collection` - (Boolean) Indicates if the option setting is
|
1792
|
+
# part of a collection.
|
1757
1793
|
# * `:options_to_remove` - (Array<String>) Options in this list are
|
1758
1794
|
# removed from the Option Group.
|
1759
1795
|
# * `:apply_immediately` - (Boolean) Indicates whether the changes
|
@@ -1771,6 +1807,7 @@ module AWS
|
|
1771
1807
|
# * `:option_name` - (String)
|
1772
1808
|
# * `:option_description` - (String)
|
1773
1809
|
# * `:persistent` - (Boolean)
|
1810
|
+
# * `:permanent` - (Boolean)
|
1774
1811
|
# * `:port` - (Integer)
|
1775
1812
|
# * `:option_settings` - (Array<Hash>)
|
1776
1813
|
# * `:name` - (String)
|
@@ -1881,6 +1918,11 @@ module AWS
|
|
1881
1918
|
# * `:character_set_name` - (String)
|
1882
1919
|
# * `:secondary_availability_zone` - (String)
|
1883
1920
|
# * `:publicly_accessible` - (Boolean)
|
1921
|
+
# * `:status_infos` - (Array<Hash>)
|
1922
|
+
# * `:status_type` - (String)
|
1923
|
+
# * `:normal` - (Boolean)
|
1924
|
+
# * `:status` - (String)
|
1925
|
+
# * `:message` - (String)
|
1884
1926
|
|
1885
1927
|
# @!method purchase_reserved_db_instances_offering(options = {})
|
1886
1928
|
# Calls the PurchaseReservedDBInstancesOffering API operation.
|
@@ -1986,6 +2028,11 @@ module AWS
|
|
1986
2028
|
# * `:character_set_name` - (String)
|
1987
2029
|
# * `:secondary_availability_zone` - (String)
|
1988
2030
|
# * `:publicly_accessible` - (Boolean)
|
2031
|
+
# * `:status_infos` - (Array<Hash>)
|
2032
|
+
# * `:status_type` - (String)
|
2033
|
+
# * `:normal` - (Boolean)
|
2034
|
+
# * `:status` - (String)
|
2035
|
+
# * `:message` - (String)
|
1989
2036
|
|
1990
2037
|
# @!method remove_source_identifier_from_subscription(options = {})
|
1991
2038
|
# Calls the RemoveSourceIdentifierFromSubscription API operation.
|
@@ -2110,7 +2157,11 @@ module AWS
|
|
2110
2157
|
# * `:iops` - (Integer) The amount of Provisioned IOPS (input/output
|
2111
2158
|
# operations per second) to be initially allocated for the DB
|
2112
2159
|
# Instance. Constraints: Must be an integer greater than 1000.
|
2113
|
-
# * `:option_group_name` - (String)
|
2160
|
+
# * `:option_group_name` - (String) The name of the option group to be
|
2161
|
+
# used for the restored DB instance. Permanent options, such as the
|
2162
|
+
# TDE option for Oracle Advanced Security TDE, cannot be removed from
|
2163
|
+
# an option group, and that option group cannot be removed from a DB
|
2164
|
+
# instance once it is associated with a DB instance
|
2114
2165
|
# @return [Core::Response]
|
2115
2166
|
# The #data method of the response object returns
|
2116
2167
|
# a hash with the following structure:
|
@@ -2174,6 +2225,11 @@ module AWS
|
|
2174
2225
|
# * `:character_set_name` - (String)
|
2175
2226
|
# * `:secondary_availability_zone` - (String)
|
2176
2227
|
# * `:publicly_accessible` - (Boolean)
|
2228
|
+
# * `:status_infos` - (Array<Hash>)
|
2229
|
+
# * `:status_type` - (String)
|
2230
|
+
# * `:normal` - (Boolean)
|
2231
|
+
# * `:status` - (String)
|
2232
|
+
# * `:message` - (String)
|
2177
2233
|
|
2178
2234
|
# @!method restore_db_instance_to_point_in_time(options = {})
|
2179
2235
|
# Calls the RestoreDBInstanceToPointInTime API operation.
|
@@ -2226,7 +2282,11 @@ module AWS
|
|
2226
2282
|
# * `:iops` - (Integer) The amount of Provisioned IOPS (input/output
|
2227
2283
|
# operations per second) to be initially allocated for the DB
|
2228
2284
|
# Instance. Constraints: Must be an integer greater than 1000.
|
2229
|
-
# * `:option_group_name` - (String)
|
2285
|
+
# * `:option_group_name` - (String) The name of the option group to be
|
2286
|
+
# used for the restored DB instance. Permanent options, such as the
|
2287
|
+
# TDE option for Oracle Advanced Security TDE, cannot be removed from
|
2288
|
+
# an option group, and that option group cannot be removed from a DB
|
2289
|
+
# instance once it is associated with a DB instance
|
2230
2290
|
# @return [Core::Response]
|
2231
2291
|
# The #data method of the response object returns
|
2232
2292
|
# a hash with the following structure:
|
@@ -2290,6 +2350,11 @@ module AWS
|
|
2290
2350
|
# * `:character_set_name` - (String)
|
2291
2351
|
# * `:secondary_availability_zone` - (String)
|
2292
2352
|
# * `:publicly_accessible` - (Boolean)
|
2353
|
+
# * `:status_infos` - (Array<Hash>)
|
2354
|
+
# * `:status_type` - (String)
|
2355
|
+
# * `:normal` - (Boolean)
|
2356
|
+
# * `:status` - (String)
|
2357
|
+
# * `:message` - (String)
|
2293
2358
|
|
2294
2359
|
# @!method revoke_db_security_group_ingress(options = {})
|
2295
2360
|
# Calls the RevokeDBSecurityGroupIngress API operation.
|
@@ -2328,7 +2393,7 @@ module AWS
|
|
2328
2393
|
|
2329
2394
|
# end client methods #
|
2330
2395
|
|
2331
|
-
define_client_methods('2013-
|
2396
|
+
define_client_methods('2013-05-15')
|
2332
2397
|
|
2333
2398
|
end
|
2334
2399
|
end
|
@@ -72,19 +72,10 @@ module AWS
|
|
72
72
|
end
|
73
73
|
alias_method :domain, :shard # for backwards compatability
|
74
74
|
|
75
|
-
# The id for each record is auto-generated. The default strategy
|
76
|
-
# generates uuid strings.
|
77
|
-
# @return [String] Returns the id string (uuid) for this record. Retuns
|
78
|
-
# nil if this is a new record that has not been persisted yet.
|
79
|
-
def id
|
80
|
-
@_id
|
81
|
-
end
|
82
|
-
|
83
75
|
# @return [Hash] A hash with attribute names as hash keys (strings) and
|
84
76
|
# attribute values (of mixed types) as hash values.
|
85
77
|
def attributes
|
86
78
|
attributes = Core::IndifferentHash.new
|
87
|
-
attributes['id'] = id if persisted?
|
88
79
|
self.class.attributes.keys.inject(attributes) do |hash,attr_name|
|
89
80
|
hash.merge(attr_name => __send__(attr_name))
|
90
81
|
end
|
@@ -288,11 +279,6 @@ module AWS
|
|
288
279
|
update_storage
|
289
280
|
end
|
290
281
|
|
291
|
-
protected
|
292
|
-
def populate_id
|
293
|
-
@_id = UUIDTools::UUID.random_create.to_s.downcase
|
294
|
-
end
|
295
|
-
|
296
282
|
protected
|
297
283
|
def touch_timestamps *attributes
|
298
284
|
now = Time.now
|
@@ -343,12 +329,13 @@ module AWS
|
|
343
329
|
# populate default attribute values
|
344
330
|
ignore_changes do
|
345
331
|
self.class.attributes.values.each do |attribute|
|
332
|
+
default = attribute.default_value
|
346
333
|
begin
|
347
334
|
# copy default values down so methods like #gsub! don't
|
348
335
|
# modify the default values for other objects
|
349
|
-
@_data[attribute.name] =
|
336
|
+
@_data[attribute.name] = default.clone
|
350
337
|
rescue TypeError
|
351
|
-
@_data[attribute.name] =
|
338
|
+
@_data[attribute.name] = default
|
352
339
|
end
|
353
340
|
end
|
354
341
|
end
|
@@ -451,11 +438,6 @@ module AWS
|
|
451
438
|
# @api private
|
452
439
|
protected
|
453
440
|
def hydrate id, data
|
454
|
-
|
455
|
-
# @todo need to do something about partial hyrdation of attributes
|
456
|
-
|
457
|
-
@_id = id
|
458
|
-
|
459
441
|
# New objects are populated with default values, but we don't
|
460
442
|
# want these values to hang around when hydrating persisted values
|
461
443
|
# (those values may have been blanked out before save).
|
@@ -468,7 +450,6 @@ module AWS
|
|
468
450
|
end
|
469
451
|
|
470
452
|
@_persisted = true
|
471
|
-
|
472
453
|
end
|
473
454
|
|
474
455
|
protected
|
@@ -675,6 +656,22 @@ module AWS
|
|
675
656
|
|
676
657
|
end
|
677
658
|
|
659
|
+
# @api private
|
660
|
+
def remove_attribute(attribute)
|
661
|
+
send(:remove_method, attribute.name)
|
662
|
+
send(:remove_method, "#{attribute.name}=")
|
663
|
+
send(:remove_method, "#{attribute.name}_before_type_cast")
|
664
|
+
send(:remove_method, "#{attribute.name}_changed?")
|
665
|
+
send(:remove_method, "#{attribute.name}_change")
|
666
|
+
send(:remove_method, "#{attribute.name}_was")
|
667
|
+
send(:remove_method, "#{attribute.name}_will_change!")
|
668
|
+
send(:remove_method, "reset_#{attribute.name}!")
|
669
|
+
validators.each do |validator|
|
670
|
+
validator.attribute_names.delete(attribute.name)
|
671
|
+
end
|
672
|
+
attributes.delete(attribute.name)
|
673
|
+
end
|
674
|
+
|
678
675
|
private
|
679
676
|
|
680
677
|
def create_impl attributes = {}, create_method = :create, save_method = :save
|