fog-aws 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +51 -2
  3. data/lib/fog/aws.rb +29 -27
  4. data/lib/fog/aws/elb.rb +0 -1
  5. data/lib/fog/aws/iam.rb +4 -2
  6. data/lib/fog/aws/kms.rb +180 -0
  7. data/lib/fog/aws/mock.rb +13 -1
  8. data/lib/fog/aws/models/compute/flavors.rb +40 -0
  9. data/lib/fog/aws/models/elasticache/cluster.rb +1 -0
  10. data/lib/fog/aws/models/kms/key.rb +34 -0
  11. data/lib/fog/aws/models/kms/keys.rb +29 -0
  12. data/lib/fog/aws/models/rds/server.rb +33 -26
  13. data/lib/fog/aws/parsers/compute/describe_reserved_instances.rb +1 -1
  14. data/lib/fog/aws/parsers/elasticache/cache_cluster_parser.rb +15 -3
  15. data/lib/fog/aws/parsers/kms/describe_key.rb +34 -0
  16. data/lib/fog/aws/parsers/kms/list_keys.rb +38 -0
  17. data/lib/fog/aws/parsers/rds/db_parser.rb +7 -14
  18. data/lib/fog/aws/rds.rb +1 -1
  19. data/lib/fog/aws/requests/compute/describe_spot_price_history.rb +59 -0
  20. data/lib/fog/aws/requests/compute/request_spot_instances.rb +80 -0
  21. data/lib/fog/aws/requests/dns/change_resource_record_sets.rb +36 -5
  22. data/lib/fog/aws/requests/dns/list_resource_record_sets.rb +33 -5
  23. data/lib/fog/aws/requests/elb/create_load_balancer.rb +15 -2
  24. data/lib/fog/aws/requests/iam/create_role.rb +5 -5
  25. data/lib/fog/aws/requests/kms/create_key.rb +62 -0
  26. data/lib/fog/aws/requests/kms/describe_key.rb +27 -0
  27. data/lib/fog/aws/requests/kms/list_keys.rb +82 -0
  28. data/lib/fog/aws/requests/rds/create_db_instance.rb +33 -38
  29. data/lib/fog/aws/requests/rds/create_db_instance_read_replica.rb +7 -2
  30. data/lib/fog/aws/requests/rds/promote_read_replica.rb +7 -6
  31. data/lib/fog/aws/requests/sns/subscribe.rb +1 -1
  32. data/lib/fog/aws/storage.rb +6 -3
  33. data/lib/fog/aws/version.rb +1 -1
  34. data/tests/helper.rb +2 -2
  35. data/tests/models/rds/helper.rb +10 -3
  36. data/tests/models/rds/server_tests.rb +7 -4
  37. data/tests/requests/compute/spot_instance_tests.rb +2 -2
  38. data/tests/requests/compute/spot_price_history_tests.rb +0 -2
  39. data/tests/requests/kms/helper.rb +27 -0
  40. data/tests/requests/kms/key_tests.rb +23 -0
  41. data/tests/requests/rds/helper.rb +52 -46
  42. data/tests/requests/rds/instance_tests.rb +16 -12
  43. metadata +12 -2
@@ -36,16 +36,17 @@ module Fog
36
36
  def promote_read_replica(identifier, backup_retention_period = nil, preferred_backup_window = nil)
37
37
  if self.data[:servers][identifier]
38
38
  data = {
39
- 'BackupRetentionPeriod' => backup_retention_period || 1,
40
- 'PreferredBackupWindow' => preferred_backup_window || '08:00-08:30',
41
- 'DBInstanceIdentifier' => identifier
39
+ 'BackupRetentionPeriod' => backup_retention_period || 1,
40
+ 'PreferredBackupWindow' => preferred_backup_window || '08:00-08:30',
41
+ 'DBInstanceIdentifier' => identifier,
42
42
  }
43
- self.data[:servers][identifier].merge(data)
43
+
44
+ db_instance = self.data[:servers][identifier].merge(data)
44
45
 
45
46
  response = Excon::Response.new
46
47
  response.body = {
47
- "ResponseMetadata" => { "RequestId" => Fog::AWS::Mock.request_id },
48
- "PromoteReadReplicaResult" => { "DBInstance" => data}
48
+ "ResponseMetadata" => { "RequestId" => Fog::AWS::Mock.request_id },
49
+ "PromoteReadReplicaResult" => { "DBInstance" => db_instance }
49
50
  }
50
51
  response.status = 200
51
52
  response
@@ -65,7 +65,7 @@ module Fog
65
65
  :aws_secret_access_key => SecureRandom.hex(3)
66
66
  ).send_message(endpoint, Fog::JSON.encode(
67
67
  "Type" => "SubscriptionConfirmation",
68
- "MessageId" => SecureRandom.uuid,
68
+ "MessageId" => UUID.uuid,
69
69
  "Token" => token,
70
70
  "TopicArn" => arn,
71
71
  "Message" => message,
@@ -139,6 +139,8 @@ module Fog
139
139
  end
140
140
 
141
141
  def signed_url(params, expires)
142
+ refresh_credentials_if_expired
143
+
142
144
  #convert expires from a point in time to a delta to now
143
145
  expires = expires.to_i
144
146
  if @signature_version == 4
@@ -314,6 +316,7 @@ module Fog
314
316
 
315
317
  class Mock
316
318
  include Utils
319
+ include Fog::AWS::CredentialFetcher::ConnectionMethods
317
320
 
318
321
  def self.acls(type)
319
322
  case type
@@ -559,10 +562,10 @@ module Fog
559
562
  params[:headers]['x-amz-content-sha256'] = 'STREAMING-AWS4-HMAC-SHA256-PAYLOAD'
560
563
  params[:headers]['x-amz-decoded-content-length'] = params[:headers].delete 'Content-Length'
561
564
 
562
- if params[:headers]['Content-Encoding']
563
- encoding = "aws-chunked, #{params[:headers]['Content-Encoding']}"
565
+ if params[:headers]['Content-Encoding'] && params[:headers]['Content-Encoding'].to_s.length > 0
566
+ encoding = "aws-chunked,#{params[:headers]['Content-Encoding']}"
564
567
  else
565
- encoding = "aws-chunked, identity"
568
+ encoding = "aws-chunked"
566
569
  end
567
570
 
568
571
  params[:headers]['Content-Encoding'] = encoding
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module AWS
3
- VERSION = "0.1.2"
3
+ VERSION = "0.2.0"
4
4
  end
5
5
  end
@@ -14,8 +14,8 @@ Excon.defaults.merge!(:debug_request => true, :debug_response => true)
14
14
  require File.expand_path(File.join(File.dirname(__FILE__), 'helpers', 'mock_helper'))
15
15
 
16
16
  # This overrides the default 600 seconds timeout during live test runs
17
- if Fog.mocking?
18
- Fog.timeout = ENV['FOG_TEST_TIMEOUT'] || 2000
17
+ unless Fog.mocking?
18
+ Fog.timeout = ENV['FOG_TEST_TIMEOUT'] || 2_000
19
19
  Fog::Logger.warning "Setting default fog timeout to #{Fog.timeout} seconds"
20
20
  end
21
21
 
@@ -1,5 +1,12 @@
1
1
  def rds_default_server_params
2
- { :id => uniq_id, :allocated_storage => 5, :engine => 'mysql',
3
- :master_username => 'foguser', :password => 'fogpassword',
4
- :backup_retention_period => 0 }
2
+ {
3
+ :allocated_storage => 5,
4
+ :backup_retention_period => 0,
5
+ :engine => 'mysql',
6
+ :version => '5.6.22',
7
+ :id => uniq_id,
8
+ :master_username => 'foguser',
9
+ :password => 'fogpassword',
10
+ :flavor_id => 'db.m3.medium',
11
+ }
5
12
  end
@@ -13,22 +13,25 @@ Shindo.tests("AWS::RDS | server", ['aws', 'rds']) do
13
13
  snapshot = nil
14
14
 
15
15
  tests('#create').succeeds do
16
- snapshot = @instance.snapshots.create(:id => 'fog-test-snapshot')
16
+ snapshot = @instance.snapshots.create(:id => uniq_id('fog-snapshot-test'))
17
17
  end
18
18
 
19
19
  snapshot.wait_for { ready?}
20
20
 
21
21
  @instance.wait_for { ready? }
22
22
 
23
- returns(true) { @instance.snapshots.map{|s| s.id}.include?(snapshot.id) }
23
+ returns(true) { @instance.snapshots.map{ |s| s.id }.include?(snapshot.id) }
24
24
  snapshot.destroy
25
25
  end
26
26
 
27
27
  tests("#modify").succeeds do
28
28
  pending if Fog.mocking?
29
29
 
30
+ engine = rds_default_server_params.fetch(:engine)
31
+ version = rds_default_server_params.fetch(:version).match(/\d+\.\d+/).to_s
32
+
30
33
  orig_parameter_group = @instance.db_parameter_groups.first['DBParameterGroupName']
31
- parameter_group = Fog::AWS[:rds].parameter_groups.create(:id => uniq_id, :family => 'mysql5.5', :description => 'fog-test')
34
+ parameter_group = Fog::AWS[:rds].parameter_groups.create(:id => uniq_id, :family => "#{engine}#{version}", :description => 'fog-test')
32
35
 
33
36
  orig_security_groups = @instance.db_security_groups.map{|h| h['DBSecurityGroupName']}
34
37
  security_group = Fog::AWS[:rds].security_groups.create(:id => uniq_id, :description => 'fog-test')
@@ -94,7 +97,7 @@ Shindo.tests("AWS::RDS | server", ['aws', 'rds']) do
94
97
  end
95
98
 
96
99
  test("Destroying with a final snapshot") do
97
- final_snapshot_id = 'fog-test-snapshot'
100
+ final_snapshot_id = uniq_id('fog-test-snapshot')
98
101
 
99
102
  @instance_with_final_snapshot.wait_for { ready? }
100
103
  @instance_with_final_snapshot.destroy(final_snapshot_id)
@@ -36,14 +36,14 @@ Shindo.tests('Fog::Compute[:aws] | spot instance requests', ['aws']) do
36
36
 
37
37
  tests('success') do
38
38
 
39
- pending if Fog.mocking?
40
-
41
39
  tests("#request_spot_instances('ami-3202f25b', 't1.micro', '0.001')").formats(@spot_instance_requests_format) do
42
40
  data = Fog::Compute[:aws].request_spot_instances('ami-3202f25b', 't1.micro', '0.001',{'LaunchSpecification.EbsOptimized' => false}).body
43
41
  @spot_instance_request_id = data['spotInstanceRequestSet'].first['spotInstanceRequestId']
44
42
  data
45
43
  end
46
44
 
45
+ pending if Fog.mocking?
46
+
47
47
  tests("#describe_spot_instance_requests").formats(@spot_instance_requests_format) do
48
48
  Fog::Compute[:aws].describe_spot_instance_requests('spot-instance-request-id' => [@spot_instance_request_id]).body
49
49
  end
@@ -14,8 +14,6 @@ Shindo.tests('Fog::Compute[:aws] | spot price history requests', ['aws']) do
14
14
 
15
15
  tests('success') do
16
16
 
17
- pending # Some history data doesn't have an availability zone
18
-
19
17
  tests("#describe_spot_price_history").formats(@spot_price_history_format) do
20
18
  Fog::Compute[:aws].describe_spot_price_history.body
21
19
  end
@@ -0,0 +1,27 @@
1
+ class AWS
2
+ module KMS
3
+ module Formats
4
+ BASIC = {
5
+ 'ResponseMetadata' => { 'RequestId' => String }
6
+ }
7
+
8
+ DESCRIBE_KEY = {
9
+ "KeyMetadata" => {
10
+ "KeyUsage" => String,
11
+ "AWSAccountId" => String,
12
+ "KeyId" => String,
13
+ "Description" => Fog::Nullable::String,
14
+ "CreationDate" => Time,
15
+ "Arn" => String,
16
+ "Enabled" => Fog::Boolean
17
+ }
18
+ }
19
+
20
+ LIST_KEYS = {
21
+ "Keys" => [{ "KeyId" => String, "KeyArn" => String }],
22
+ "Truncated" => Fog::Boolean,
23
+ "Marker" => Fog::Nullable::String
24
+ }
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,23 @@
1
+ Shindo.tests('AWS::KMS | key requests', ['aws', 'kms']) do
2
+ key_id = nil
3
+
4
+ tests('success') do
5
+ tests("#create_key").data_matches_schema(AWS::KMS::Formats::DESCRIBE_KEY) do
6
+ result = Fog::AWS[:kms].create_key.body
7
+ key_id = result["KeyMetadata"]["KeyId"]
8
+
9
+ result
10
+ end
11
+ end
12
+
13
+ tests("#describe_key").data_matches_schema(AWS::KMS::Formats::DESCRIBE_KEY) do
14
+ result = Fog::AWS[:kms].describe_key(key_id).body
15
+ returns(key_id) { result['KeyMetadata']['KeyId'] }
16
+ result
17
+ end
18
+
19
+ tests("#list_keys").data_matches_schema(AWS::KMS::Formats::LIST_KEYS) do
20
+ Fog::AWS[:kms].list_keys.body
21
+ end
22
+
23
+ end
@@ -6,14 +6,14 @@ class AWS
6
6
  }
7
7
 
8
8
  DB_AVAILABILITY_ZONE_OPTION = {
9
- 'Name' => String,
10
- 'ProvisionedIopsCapable' => Fog::Boolean
9
+ 'Name' => String,
10
+ 'ProvisionedIopsCapable' => Fog::Boolean
11
11
  }
12
12
 
13
13
  DB_PARAMETER_GROUP = {
14
- 'DBParameterGroupFamily' => String,
15
- 'DBParameterGroupName' => String,
16
- 'Description' => String
14
+ 'DBParameterGroupFamily' => String,
15
+ 'DBParameterGroupName' => String,
16
+ 'Description' => String
17
17
  }
18
18
  CREATE_DB_PARAMETER_GROUP = {
19
19
  'ResponseMetadata' => { 'RequestId' => String },
@@ -32,7 +32,7 @@ class AWS
32
32
 
33
33
  CREATE_DB_SECURITY_GROUP = BASIC.merge({
34
34
  'CreateDBSecurityGroupResult' => {
35
- 'DBSecurityGroup' => DB_SECURITY_GROUP
35
+ 'DBSecurityGroup' => DB_SECURITY_GROUP
36
36
  }
37
37
  })
38
38
 
@@ -82,20 +82,20 @@ class AWS
82
82
  }
83
83
 
84
84
  ORDERABLE_DB_INSTANCE_OPTION = {
85
- 'MultiAZCapable' => Fog::Boolean,
86
- 'Engine' => String,
87
- 'LicenseModel' => String,
88
- 'ReadReplicaCapable' => Fog::Boolean,
89
- 'EngineVersion' => String,
90
- 'AvailabilityZones' => [DB_AVAILABILITY_ZONE_OPTION],
91
- 'DBInstanceClass' => String,
92
- 'Vpc' => Fog::Boolean
85
+ 'MultiAZCapable' => Fog::Boolean,
86
+ 'Engine' => String,
87
+ 'LicenseModel' => String,
88
+ 'ReadReplicaCapable' => Fog::Boolean,
89
+ 'EngineVersion' => String,
90
+ 'AvailabilityZones' => [DB_AVAILABILITY_ZONE_OPTION],
91
+ 'DBInstanceClass' => String,
92
+ 'Vpc' => Fog::Boolean
93
93
  }
94
94
 
95
95
  DESCRIBE_ORDERABLE_DB_INSTANCE_OPTION = BASIC.merge({
96
- 'DescribeOrderableDBInstanceOptionsResult' => {
97
- 'OrderableDBInstanceOptions' => [ORDERABLE_DB_INSTANCE_OPTION]
98
- }
96
+ 'DescribeOrderableDBInstanceOptionsResult' => {
97
+ 'OrderableDBInstanceOptions' => [ORDERABLE_DB_INSTANCE_OPTION]
98
+ }
99
99
  })
100
100
 
101
101
  MODIFY_PARAMETER_GROUP = BASIC.merge({
@@ -153,53 +153,59 @@ class AWS
153
153
  }
154
154
 
155
155
  INSTANCE = {
156
- 'AllocatedStorage' => Integer,
156
+ 'AllocatedStorage' => Integer,
157
157
  'AutoMinorVersionUpgrade' => Fog::Boolean,
158
- 'AvailabilityZone' => Fog::Nullable::String,
159
- 'BackupRetentionPeriod' => Integer,
160
- 'DBInstanceClass' => String,
161
- 'DBInstanceIdentifier' => String,
162
- 'DBInstanceStatus' => String,
163
- 'DBName' => Fog::Nullable::String,
158
+ 'AvailabilityZone' => Fog::Nullable::String,
159
+ 'BackupRetentionPeriod' => Integer,
160
+ 'CACertificateIdentifier' => String,
161
+ 'CharacterSetName' => Fog::Nullable::String,
162
+ 'DbiResourceId' => Fog::Nullable::String,
163
+ 'DBInstanceClass' => String,
164
+ 'DBInstanceIdentifier' => String,
165
+ 'DBInstanceStatus' => String,
166
+ 'DBName' => Fog::Nullable::String,
164
167
  'DBParameterGroups' => [{
165
- 'ParameterApplyStatus' => String,
166
- 'DBParameterGroupName' => String
167
- }],
168
+ 'ParameterApplyStatus' => String,
169
+ 'DBParameterGroupName' => String
170
+ }],
168
171
  'DBSecurityGroups' => [{
169
- 'Status' => String,
170
- 'DBSecurityGroupName' => String
171
- }],
172
- 'DBSubnetGroupName' => Fog::Nullable::String,
172
+ 'Status' => String,
173
+ 'DBSecurityGroupName' => String
174
+ }],
175
+ 'DBSubnetGroupName' => Fog::Nullable::String,
173
176
  'PubliclyAccessible' => Fog::Boolean,
174
177
  'Endpoint' => {
175
178
  'Address' => Fog::Nullable::String,
176
- 'Port' => Fog::Nullable::Integer
179
+ 'Port' => Fog::Nullable::Integer
177
180
  },
178
- 'Engine' => String,
179
- 'EngineVersion' => String,
180
- 'InstanceCreateTime' => Fog::Nullable::Time,
181
- 'Iops' => Fog::Nullable::Integer,
181
+ 'Engine' => String,
182
+ 'EngineVersion' => String,
183
+ 'InstanceCreateTime' => Fog::Nullable::Time,
184
+ 'Iops' => Fog::Nullable::Integer,
185
+ 'KmsKeyId' => Fog::Nullable::String,
182
186
  'LatestRestorableTime' => Fog::Nullable::Time,
183
- 'LicenseModel' => String,
184
- 'MasterUsername' => String,
185
- 'MultiAZ' => Fog::Boolean,
187
+ 'LicenseModel' => String,
188
+ 'MasterUsername' => String,
189
+ 'MultiAZ' => Fog::Boolean,
186
190
  'PendingModifiedValues' => {
187
191
  'BackupRetentionPeriod' => Fog::Nullable::Integer,
188
192
  'DBInstanceClass' => Fog::Nullable::String,
189
193
  'EngineVersion' => Fog::Nullable::String,
190
194
  'MasterUserPassword' => Fog::Nullable::String,
191
- 'MultiAZ' => Fog::Nullable::String,
195
+ 'MultiAZ' => Fog::Nullable::Boolean,
192
196
  'AllocatedStorage' => Fog::Nullable::Integer,
193
197
  'Port' => Fog::Nullable::Integer
194
198
  },
195
- 'PreferredBackupWindow' => String,
196
- 'PreferredMaintenanceWindow' => String,
197
- 'ReadReplicaDBInstanceIdentifiers' => [Fog::Nullable::String]
199
+ 'PreferredBackupWindow' => String,
200
+ 'PreferredMaintenanceWindow' => String,
201
+ 'ReadReplicaDBInstanceIdentifiers' => [Fog::Nullable::String],
202
+ 'StorageType' => String,
203
+ 'StorageEncrypted' => Fog::Boolean,
204
+ 'TdeCredentialArn' => Fog::Nullable::String
198
205
  }
199
206
 
200
207
  REPLICA_INSTANCE = INSTANCE.merge({
201
- 'BackupRetentionPeriod' => Fog::Nullable::String,
202
- 'PreferredBackupWindow' => Fog::Nullable::String,
208
+ 'PreferredBackupWindow' => Fog::Nullable::String,
203
209
  'ReadReplicaSourceDBInstanceIdentifier' => String
204
210
  })
205
211
 
@@ -242,7 +248,7 @@ class AWS
242
248
 
243
249
  PROMOTE_READ_REPLICA = BASIC.merge({
244
250
  'PromoteReadReplicaResult' => {
245
- 'DBInstance' => INSTANCE
251
+ 'DBInstance' => INSTANCE
246
252
  }
247
253
  })
248
254
 
@@ -1,6 +1,4 @@
1
1
  Shindo.tests('AWS::RDS | instance requests', ['aws', 'rds']) do
2
- # Disabled due to https://github.com/fog/fog/1546
3
- pending
4
2
 
5
3
  # random_differentiator
6
4
  # Useful when rapidly re-running tests, so we don't have to wait
@@ -9,20 +7,26 @@ Shindo.tests('AWS::RDS | instance requests', ['aws', 'rds']) do
9
7
 
10
8
  @db_instance_id = "fog-test-#{suffix}"
11
9
  @db_replica_id = "fog-replica-#{suffix}"
12
- @db_snapshot_id = "fog-snapshot"
13
- @db_final_snapshot_id = "fog-final-snapshot"
10
+ @db_snapshot_id = "fog-snapshot-#{suffix}"
11
+ @db_final_snapshot_id = "fog-final-snapshot-#{suffix}"
14
12
 
15
13
  tests('success') do
16
14
 
17
15
  tests("#create_db_instance").formats(AWS::RDS::Formats::CREATE_DB_INSTANCE) do
16
+ default_params = rds_default_server_params
17
+
18
+ # creation of replicas requires a > 0 BackupRetentionPeriod value
19
+ # InvalidDBInstanceState => Automated backups are not enabled for this database instance. To enable automated backups, use ModifyDBInstance to set the backup retention period to a non-zero value. (Fog::AWS::RDS::Error)
20
+ backup_retention_period = 1
21
+
18
22
  result = Fog::AWS[:rds].create_db_instance(@db_instance_id,
19
- 'AllocatedStorage' => 5,
20
- 'DBInstanceClass' => 'db.m1.small',
21
- 'Engine' => 'mysql',
22
- 'EngineVersion' => '5.1.50',
23
- 'MasterUsername' => 'foguser',
24
- 'BackupRetentionPeriod' => 1,
25
- 'MasterUserPassword' => 'fogpassword').body
23
+ 'AllocatedStorage' => default_params.fetch(:allocated_storage),
24
+ 'DBInstanceClass' => default_params.fetch(:flavor_id),
25
+ 'Engine' => default_params.fetch(:engine),
26
+ 'EngineVersion' => default_params.fetch(:version),
27
+ 'MasterUsername' => default_params.fetch(:master_username),
28
+ 'BackupRetentionPeriod' => backup_retention_period,
29
+ 'MasterUserPassword' => default_params.fetch(:password)).body
26
30
 
27
31
  instance = result['CreateDBInstanceResult']['DBInstance']
28
32
  returns('creating') { instance['DBInstanceStatus'] }
@@ -69,7 +73,7 @@ Shindo.tests('AWS::RDS | instance requests', ['aws', 'rds']) do
69
73
  end
70
74
 
71
75
  tests("#describe_db_snapshots").formats(AWS::RDS::Formats::DESCRIBE_DB_SNAPSHOTS) do
72
- body = Fog::AWS[:rds].describe_db_snapshots.body
76
+ Fog::AWS[:rds].describe_db_snapshots.body
73
77
  end
74
78
 
75
79
  server.wait_for { state == 'available' }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fog-aws
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josh Lane
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-04-07 00:00:00.000000000 Z
12
+ date: 2015-05-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -149,6 +149,7 @@ files:
149
149
  - lib/fog/aws/federation.rb
150
150
  - lib/fog/aws/glacier.rb
151
151
  - lib/fog/aws/iam.rb
152
+ - lib/fog/aws/kms.rb
152
153
  - lib/fog/aws/mock.rb
153
154
  - lib/fog/aws/models/auto_scaling/activities.rb
154
155
  - lib/fog/aws/models/auto_scaling/activity.rb
@@ -258,6 +259,8 @@ files:
258
259
  - lib/fog/aws/models/iam/roles.rb
259
260
  - lib/fog/aws/models/iam/user.rb
260
261
  - lib/fog/aws/models/iam/users.rb
262
+ - lib/fog/aws/models/kms/key.rb
263
+ - lib/fog/aws/models/kms/keys.rb
261
264
  - lib/fog/aws/models/rds/event_subscription.rb
262
265
  - lib/fog/aws/models/rds/event_subscriptions.rb
263
266
  - lib/fog/aws/models/rds/instance_option.rb
@@ -511,6 +514,8 @@ files:
511
514
  - lib/fog/aws/parsers/iam/update_user.rb
512
515
  - lib/fog/aws/parsers/iam/upload_server_certificate.rb
513
516
  - lib/fog/aws/parsers/iam/upload_signing_certificate.rb
517
+ - lib/fog/aws/parsers/kms/describe_key.rb
518
+ - lib/fog/aws/parsers/kms/list_keys.rb
514
519
  - lib/fog/aws/parsers/rds/authorize_db_security_group_ingress.rb
515
520
  - lib/fog/aws/parsers/rds/base.rb
516
521
  - lib/fog/aws/parsers/rds/create_db_instance.rb
@@ -1022,6 +1027,9 @@ files:
1022
1027
  - lib/fog/aws/requests/iam/update_user.rb
1023
1028
  - lib/fog/aws/requests/iam/upload_server_certificate.rb
1024
1029
  - lib/fog/aws/requests/iam/upload_signing_certificate.rb
1030
+ - lib/fog/aws/requests/kms/create_key.rb
1031
+ - lib/fog/aws/requests/kms/describe_key.rb
1032
+ - lib/fog/aws/requests/kms/list_keys.rb
1025
1033
  - lib/fog/aws/requests/rds/add_tags_to_resource.rb
1026
1034
  - lib/fog/aws/requests/rds/authorize_db_security_group_ingress.rb
1027
1035
  - lib/fog/aws/requests/rds/create_db_instance.rb
@@ -1382,6 +1390,8 @@ files:
1382
1390
  - tests/requests/iam/server_certificate_tests.rb
1383
1391
  - tests/requests/iam/user_policy_tests.rb
1384
1392
  - tests/requests/iam/user_tests.rb
1393
+ - tests/requests/kms/helper.rb
1394
+ - tests/requests/kms/key_tests.rb
1385
1395
  - tests/requests/rds/db_engine_versions.rb
1386
1396
  - tests/requests/rds/describe_events.rb
1387
1397
  - tests/requests/rds/event_subscription_tests.rb