fog-aws 0.0.8 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 63e0bc6ed8840b40f95208a3254e449f22cf295e
4
- data.tar.gz: 566b518ff636d7b6f2e2572da30a1959155c0da7
3
+ metadata.gz: 22f2c524c85c86ab1668a6852c9c6c4f22545f45
4
+ data.tar.gz: 790fb6ee76f14d24586006db89bcd96a6f890e2e
5
5
  SHA512:
6
- metadata.gz: e9445b6c2d33ad2d37476237fe18c4637a59d4b7179e60ab90403a172b4a36945dc394ea6dce655261cbc07c9db7d3412bd7a078a4b9d8377804b8c4914f00bf
7
- data.tar.gz: 036d202d04d82ac75435c2b3267d7d6909646ebccdc7058839a096fab118d8b5fd2303cee2b4811d6c2eb80e85983a7edf12dc8187c8c99de9467d7f0560bbeb
6
+ metadata.gz: 09ac54ca56bc9da50d39ee43c762a4837daa9fb5a2c6617c75d11adb191a18ed863d339e141f257edec655e03475772065d0237e210776223723700257fa8df7
7
+ data.tar.gz: 2606b75208e8cf01a729b8ae2ab930619c2b1b021925ffa67d087657ced1a8ec714bb4a917095ea7ca3787eb8499c68e2480358fc0615c8e31a5fa945874762b
data/.gitignore CHANGED
@@ -12,3 +12,4 @@
12
12
  *.o
13
13
  *.a
14
14
  mkmf.log
15
+ tests/.fog
@@ -19,6 +19,7 @@ require 'fog/aws/dynamodb'
19
19
  require 'fog/aws/elasticache'
20
20
  require 'fog/aws/elb'
21
21
  require 'fog/aws/emr'
22
+ require 'fog/aws/federation'
22
23
  require 'fog/aws/glacier'
23
24
  require 'fog/aws/iam'
24
25
  require 'fog/aws/rds'
@@ -21,6 +21,7 @@ module Fog
21
21
  service(:elasticache, 'Elasticache')
22
22
  service(:elb, 'ELB')
23
23
  service(:emr, 'EMR')
24
+ service(:federation, 'Federation')
24
25
  service(:glacier, 'Glacier')
25
26
  service(:iam, 'IAM')
26
27
  service(:rds, 'RDS')
@@ -109,7 +110,7 @@ module Fog
109
110
  end
110
111
  end
111
112
  body.chop!
112
-
113
+
113
114
  headers['Authorization'] = options[:signer].sign({:method => options[:method], :headers => headers, :body => body, :query => {}, :path => options[:path]}, date)
114
115
 
115
116
  return body, headers
@@ -0,0 +1,58 @@
1
+ require 'fog/aws/core'
2
+
3
+ module Fog
4
+ module AWS
5
+ class Federation < Fog::Service
6
+ extend Fog::AWS::CredentialFetcher::ServiceMethods
7
+
8
+ recognizes :instrumentor, :instrumentor_name
9
+
10
+ request_path 'fog/aws/requests/federation'
11
+
12
+ request 'get_signin_token'
13
+
14
+ class Mock
15
+ def self.data
16
+ @data ||= {}
17
+ end
18
+
19
+ def self.reset
20
+ @data = nil
21
+ end
22
+
23
+ def initialize(options={})
24
+ end
25
+
26
+ def data
27
+ self.class.data
28
+ end
29
+
30
+ def reset_data
31
+ self.class.reset
32
+ end
33
+ end
34
+
35
+ class Real
36
+ include Fog::AWS::CredentialFetcher::ConnectionMethods
37
+
38
+ def initialize(options={})
39
+ @instrumentor = options[:instrumentor]
40
+ @instrumentor_name = options[:instrumentor_name] || 'fog.aws.federation'
41
+ @connection_options = options[:connection_options] || {}
42
+ @host = 'signin.aws.amazon.com'
43
+ @path = '/federation'
44
+ @scheme = 'https'
45
+ @connection = Excon.new("#{@scheme}://#{@host}#{@path}")
46
+ end
47
+
48
+ def request(action, session)
49
+ response = @connection.get(
50
+ :query => "Action=#{action}&SessionType=json&Session=#{session}",
51
+ :expects => 200
52
+ ).body
53
+ Fog::JSON.decode(response)
54
+ end
55
+ end
56
+ end
57
+ end
58
+ end
@@ -25,7 +25,7 @@ module Fog
25
25
  request :create_role
26
26
  request :create_user
27
27
  request :delete_access_key
28
- request :delete_account_password_policy
28
+ request :delete_account_password_policy
29
29
  request :delete_account_alias
30
30
  request :delete_group
31
31
  request :delete_group_policy
@@ -120,6 +120,27 @@ module Fog
120
120
  :created_at => Time.now,
121
121
  :policies => {}
122
122
  }
123
+ end,
124
+ :roles => Hash.new do |rhash, rkey|
125
+ rhash[rkey] = {
126
+ :role_id => Fog::AWS::Mock.key_id,
127
+ :arn => "arn:aws:iam:#{Fog::AWS::Mock.owner_id}:role/#{rkey}",
128
+ :create_date => Time.now,
129
+ :assume_role_policy_document => {
130
+ "Version" => "2012-10-17",
131
+ "Statement" => [
132
+ {
133
+ "Effect" => "Allow",
134
+ "Principal" => {
135
+ "Service" => [
136
+ "ec2.amazonaws.com"
137
+ ]
138
+ },
139
+ "Action" => ["sts:AssumeRole"]
140
+ }
141
+ ]
142
+ },
143
+ }
123
144
  end
124
145
  }
125
146
  end
@@ -28,20 +28,21 @@ module Fog
28
28
  attribute :unit, :aliases => 'Unit'
29
29
 
30
30
  def initialize(attributes)
31
- attributes['EvaluationPeriods'] ||= 1
32
- attributes['Namespace'] ||= 'AWS/EC2'
31
+ self.namespace ||= "AWS/EC2"
32
+ self.evaluation_periods ||= 1
33
33
  super
34
34
  end
35
35
 
36
36
  def save
37
37
  requires :id
38
38
  requires :comparison_operator
39
- requires :evaluation_periods
40
39
  requires :metric_name
41
- requires :namespace
42
40
  requires :period
43
41
  requires :statistic
44
42
  requires :threshold
43
+ requires :namespace
44
+ requires :evaluation_periods
45
+
45
46
 
46
47
  options = Hash[self.class.aliases.map { |key, value| [key, send(value)] }]
47
48
  options.delete_if { |key, value| value.nil? }
@@ -30,7 +30,7 @@ module Fog
30
30
  case name
31
31
  when 'blockDeviceMapping'
32
32
  @in_block_device_mapping = false
33
- when 'deviceName', 'virtualName', 'snapshotId', 'deleteOnTermination'
33
+ when 'deviceName', 'virtualName', 'snapshotId', 'deleteOnTermination', 'volumeType', 'encrypted'
34
34
  @block_device_mapping[name] = value
35
35
  when 'volumeSize'
36
36
  @block_device_mapping[name] = value.to_i
@@ -0,0 +1,20 @@
1
+ module Fog
2
+ module Parsers
3
+ module AWS
4
+ module STS
5
+ class AssumeRoleWithWithWebIdentity < Fog::Parsers::Base
6
+ def reset
7
+ @response = {}
8
+ end
9
+
10
+ def end_element(name)
11
+ case name
12
+ when 'AssumedRoleUser', 'Audience', 'Credentials', 'PackedPolicySize', 'Provider', 'SubjectFromWebIdentityToken'
13
+ @response[name] = @value.strip
14
+ end
15
+ end
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -35,17 +35,24 @@ module Fog
35
35
 
36
36
  class Mock
37
37
  def describe_alarms(options={})
38
- results = { 'MetricAlarms' => [] }
39
- data[:metric_alarms].each do |alarm_name, alarm_data|
40
- results['MetricAlarms'] << {
41
- 'AlarmName' => alarm_name
42
- }.merge!(alarm_data)
38
+
39
+ records = if alarm_names = options.delete('AlarmNames')
40
+ [*alarm_names].inject({}) do |r, name|
41
+ (record = data[:metric_alarms][name]) ? r.merge(name => record) : r
42
+ end
43
+ else
44
+ self.data[:metric_alarms]
45
+ end
46
+
47
+ results = records.inject([]) do |r, (name, data)|
48
+ r << {'AlarmName' => name}.merge(data)
43
49
  end
50
+
44
51
  response = Excon::Response.new
45
52
  response.status = 200
46
53
  response.body = {
47
- 'DescribeAlarmsResult' => results,
48
- 'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
54
+ 'DescribeAlarmsResult' => { 'MetricAlarms' => results },
55
+ 'ResponseMetadata' => { 'RequestId' => Fog::AWS::Mock.request_id }
49
56
  }
50
57
  response
51
58
  end
@@ -0,0 +1,20 @@
1
+ module Fog
2
+ module AWS
3
+ class Federation
4
+ class Real
5
+ def get_signin_token(session)
6
+
7
+ request('getSigninToken', CGI.escape(Fog::JSON.encode(session)))
8
+ end
9
+ end
10
+
11
+ class Mock
12
+ def get_signin_token(session)
13
+ {
14
+ 'SigninToken' => Fog::Mock.random_base64(752)
15
+ }
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
@@ -50,6 +50,30 @@ module Fog
50
50
  )
51
51
  end
52
52
  end
53
+
54
+ class Mock
55
+ def create_role(role_name, assume_role_policy_document, path = '/')
56
+ if data[:roles].key?(role_name)
57
+ raise Fog::AWS::IAM::EntityAlreadyExists.new("Role with name #{role_name} already exists")
58
+ else
59
+ data[:roles][role_name][:path] = path
60
+ Excon::Response.new.tap do |response|
61
+ response.body = {
62
+ 'Role' => {
63
+ 'Arn' => data[:roles][role_name][:arn].strip,
64
+ 'AssumeRolePolicyDocument' => Fog::JSON.encode(data[:roles][role_name][:assume_role_policy_document]),
65
+ 'CreateDate' => data[:roles][role_name][:create_date],
66
+ 'Path' => path,
67
+ 'RoleId' => data[:roles][role_name][:role_id].strip,
68
+ 'RoleName' => role_name,
69
+ },
70
+ 'RequestId' => Fog::AWS::Mock.request_id
71
+ }
72
+ response.status = 200
73
+ end
74
+ end
75
+ end
76
+ end
53
77
  end
54
78
  end
55
79
  end
@@ -25,6 +25,22 @@ module Fog
25
25
  )
26
26
  end
27
27
  end
28
+
29
+ class Mock
30
+ def delete_role(role_name)
31
+ role = data[:roles][role_name]
32
+
33
+ if role
34
+ data[:roles].delete(role_name)
35
+ Excon::Response.new.tap do |response|
36
+ response.status = 200
37
+ response.body = { 'RequestId' => Fog::AWS::Mock.request_id }
38
+ end
39
+ else
40
+ raise Fog::AWS::IAM::NotFound.new("The role with name #{role_name} cannot be found.")
41
+ end
42
+ end
43
+ end
28
44
  end
29
45
  end
30
46
  end
@@ -31,6 +31,29 @@ module Fog
31
31
  )
32
32
  end
33
33
  end
34
+
35
+ class Mock
36
+ def get_role(role_name)
37
+ role = self.data[:roles][role_name]
38
+
39
+ raise Fog::AWS::IAM::NotFound.new("The role with name #{role_name} cannot be found") unless role
40
+
41
+ Excon::Response.new.tap do |response|
42
+ response.body = {
43
+ 'Role' => {
44
+ 'Arn' => role[:arn].strip,
45
+ 'AssumeRolePolicyDocument' => Fog::JSON.encode(role[:assume_role_policy_document]),
46
+ 'CreateDate' => role[:create_date],
47
+ 'Path' => role[:path],
48
+ 'RoleId' => role[:role_id].strip,
49
+ 'RoleName' => role_name,
50
+ },
51
+ 'RequestId' => Fog::AWS::Mock.request_id
52
+ }
53
+ response.status = 200
54
+ end
55
+ end
56
+ end
34
57
  end
35
58
  end
36
59
  end
@@ -36,6 +36,28 @@ module Fog
36
36
  }.merge!(options))
37
37
  end
38
38
  end
39
+
40
+ class Mock
41
+ def list_roles(options={})
42
+ Excon::Response.new.tap do |response|
43
+ response.body = {
44
+ 'Roles' => data[:roles].map do |role, data|
45
+ {
46
+ 'Arn' => data[:arn].strip,
47
+ 'AssumeRolePolicyDocument' => Fog::JSON.encode(data[:assume_role_policy_document]),
48
+ 'RoleId' => data[:role_id],
49
+ 'Path' => data[:path],
50
+ 'RoleName' => role,
51
+ 'CreateDate' => data[:create_date],
52
+ }
53
+ end,
54
+ 'RequestId' => Fog::AWS::Mock.request_id,
55
+ 'IsTruncated' => false,
56
+ }
57
+ response.status = 200
58
+ end
59
+ end
60
+ end
39
61
  end
40
62
  end
41
63
  end
@@ -0,0 +1,45 @@
1
+ module Fog
2
+ module AWS
3
+ class STS
4
+ class Real
5
+ require 'fog/aws/parsers/sts/assume_role_with_web_identity'
6
+
7
+ def assume_role_with_web_identity(role_arn, web_identity_token, role_session_name, options={})
8
+ request_unsigned(
9
+ 'Action' => 'AssumeRoleWithWebIdentity',
10
+ 'RoleArn' => role_arn,
11
+ 'RoleSessionName' => role_session_name,
12
+ 'DurationSeconds' => options[:duration] || 3600,
13
+ :idempotent => true,
14
+ :parser => Fog::Parsers::AWS::STS::AssumeRoleWithWebIdentity.new
15
+ )
16
+ end
17
+ end
18
+
19
+ class Mock
20
+ def assume_role_with_web_identity(role_arn, web_identity_token, role_session_name, options={})
21
+ role = options[:iam].data[:roles].values.detect { |r| r[:arn] == role_arn }
22
+
23
+ Excon::Response.new.tap do |response|
24
+ response.body = {
25
+ 'AssumedRoleUser' => {
26
+ 'Arn' => role[:arn],
27
+ 'AssumedRoleId' => role[:role_id]
28
+ },
29
+ 'Audience' => 'fog',
30
+ 'Credentials' => {
31
+ 'AccessKeyId' => Fog::AWS::Mock.key_id(20),
32
+ 'Expiration' => options[:expiration] || Time.now + 3600,
33
+ 'SecretAccessKey' => Fog::AWS::Mock.key_id(40),
34
+ 'SessionToken' => Fog::Mock.random_hex(8)
35
+ },
36
+ 'Provider' => 'fog',
37
+ 'SubjectFromWebIdentityToken' => Fog::Mock.random_hex(8)
38
+ }
39
+ response.status = 200
40
+ end
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
@@ -79,7 +79,9 @@ DATA
79
79
  protected
80
80
 
81
81
  def canonical_path(path)
82
- components = path.split(%r{/+}, -1)
82
+ #leading and trailing repeated slashes are collapsed, but not ones that appear elsewhere
83
+ path = path.gsub(%r{\A/+},'/').gsub(%r{/+\z},'/')
84
+ components = path.split('/',-1)
83
85
  path = components.inject([]) do |acc, component|
84
86
  case component
85
87
  when '.' #canonicalize by removing .
@@ -16,6 +16,7 @@ module Fog
16
16
  request :get_session_token
17
17
  request :assume_role
18
18
  request :assume_role_with_saml
19
+ request :assume_role_with_web_identity
19
20
 
20
21
  class Mock
21
22
  def self.data
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module AWS
3
- VERSION = "0.0.8"
3
+ VERSION = "0.1.0"
4
4
  end
5
5
  end
@@ -0,0 +1,11 @@
1
+ Shindo.tests('AWS::Federation | signin tokens', ['aws']) do
2
+ @signin_token_format = {
3
+ 'SigninToken' => String
4
+ }
5
+
6
+ tests("#get_signin_token").formats(@signin_token_format) do
7
+ pending unless Fog.mocking?
8
+
9
+ Fog::AWS[:federation].get_signin_token("test_policy")
10
+ end
11
+ end
@@ -2,42 +2,32 @@ Shindo.tests('AWS::IAM | role requests', ['aws']) do
2
2
  tests('success') do
3
3
 
4
4
  @role = {
5
- 'Arn' => String,
5
+ 'Arn' => String,
6
6
  'AssumeRolePolicyDocument' => String,
7
- 'CreateDate' => Time,
8
- 'Path' => String,
9
- 'RoleId' => String,
10
- 'RoleName' => String
7
+ 'CreateDate' => Time,
8
+ 'Path' => String,
9
+ 'RoleId' => String,
10
+ 'RoleName' => String
11
11
  }
12
12
  @role_format = {
13
13
  'Role' => @role,
14
14
  'RequestId' => String
15
15
  }
16
16
  tests("#create_role('fogrole')").formats(@role_format) do
17
- pending if Fog.mocking?
18
17
  Fog::AWS[:iam].create_role('fogrole', Fog::AWS::IAM::EC2_ASSUME_ROLE_POLICY).body
19
18
  end
20
19
 
21
20
  tests("#get_role('fogrole')").formats(@role_format) do
22
- pending if Fog.mocking?
23
21
  Fog::AWS[:iam].get_role('fogrole').body
24
22
  end
25
23
 
26
24
  @list_roles_format = {
27
- 'Roles' => [{
28
- 'Arn' => String,
29
- 'AssumeRolePolicyDocument' => String,
30
- 'CreateDate' => Time,
31
- 'Path' => String,
32
- 'RoleId' => String,
33
- 'RoleName' => String
34
- }],
35
- 'RequestId' => String,
25
+ 'Roles' => [@role],
26
+ 'RequestId' => String,
36
27
  'IsTruncated' => Fog::Boolean,
37
28
  }
38
29
 
39
30
  tests("#list_roles").formats(@list_roles_format) do
40
- pending if Fog.mocking?
41
31
  body = Fog::AWS[:iam].list_roles.body
42
32
  returns(true){!! body['Roles'].find {|role| role['RoleName'] == 'fogrole'}}
43
33
  body
@@ -159,7 +149,6 @@ Shindo.tests('AWS::IAM | role requests', ['aws']) do
159
149
  end
160
150
 
161
151
  tests("#delete_role('fogrole'").formats(AWS::IAM::Formats::BASIC) do
162
- pending if Fog.mocking?
163
152
  Fog::AWS[:iam].delete_role('fogrole').body
164
153
  end
165
154
  end
@@ -1,19 +1,19 @@
1
1
  Shindo.tests('AWS::STS | assume role', ['aws']) do
2
2
 
3
- @policy = {"Statement" => [{"Effect" => "Allow", "Action" => "*", "Resource" => "*"}]}
3
+ @policy = {"Statement" => [{"Effect" => "Allow", "Action" => "*", "Resource" => "*"}]}
4
4
 
5
- @response_format = {
6
- 'SessionToken' => String,
7
- 'SecretAccessKey' => String,
8
- 'Expiration' => String,
9
- 'AccessKeyId' => String,
10
- 'Arn' => String,
11
- 'RequestId' => String
12
- }
5
+ @response_format = {
6
+ 'SessionToken' => String,
7
+ 'SecretAccessKey' => String,
8
+ 'Expiration' => String,
9
+ 'AccessKeyId' => String,
10
+ 'Arn' => String,
11
+ 'RequestId' => String
12
+ }
13
13
 
14
- tests("#assume_role('rolename', 'assumed_role_session', 'external_id', #{@policy.inspect}, 900)").formats(@response_format) do
15
- pending if Fog.mocking?
16
- Fog::AWS[:sts].assume_role("rolename","assumed_role_session","external_id", @policy, 900).body
17
- end
14
+ tests("#assume_role('rolename', 'assumed_role_session', 'external_id', #{@policy.inspect}, 900)").formats(@response_format) do
15
+ pending if Fog.mocking?
16
+ Fog::AWS[:sts].assume_role("rolename","assumed_role_session","external_id", @policy, 900).body
17
+ end
18
18
 
19
19
  end
@@ -1,18 +1,18 @@
1
1
  Shindo.tests('AWS::STS | assume role with SAML', ['aws']) do
2
2
 
3
- @policy = {"Statement" => [{"Effect" => "Allow", "Action" => "*", "Resource" => "*"}]}
3
+ @policy = {"Statement" => [{"Effect" => "Allow", "Action" => "*", "Resource" => "*"}]}
4
4
 
5
- @response_format = {
6
- 'SessionToken' => String,
7
- 'SecretAccessKey' => String,
8
- 'Expiration' => String,
9
- 'AccessKeyId' => String,
10
- 'Arn' => String,
11
- 'RequestId' => String
12
- }
5
+ @response_format = {
6
+ 'SessionToken' => String,
7
+ 'SecretAccessKey' => String,
8
+ 'Expiration' => String,
9
+ 'AccessKeyId' => String,
10
+ 'Arn' => String,
11
+ 'RequestId' => String
12
+ }
13
13
 
14
- tests("#assume_role_with_saml('role_arn', 'principal_arn', 'saml_assertion', #{@policy.inspect}, 900)").formats(@response_format) do
15
- pending if Fog.mocking?
16
- Fog::AWS[:sts].assume_role_with_saml("role_arn","principal_arn","saml_assertion", @policy, 900).body
17
- end
14
+ tests("#assume_role_with_saml('role_arn', 'principal_arn', 'saml_assertion', #{@policy.inspect}, 900)").formats(@response_format) do
15
+ pending if Fog.mocking?
16
+ Fog::AWS[:sts].assume_role_with_saml("role_arn","principal_arn","saml_assertion", @policy, 900).body
17
+ end
18
18
  end
@@ -0,0 +1,26 @@
1
+ Shindo.tests('AWS::STS | assume role with web identity', ['aws']) do
2
+ @sts = Fog::AWS[:sts]
3
+ @iam = Fog::AWS[:iam]
4
+ @role = @iam.create_role('sts', Fog::AWS::IAM::EC2_ASSUME_ROLE_POLICY).body['Role']
5
+ @token = Fog::AWS::Mock.key_id
6
+
7
+ @response_format = {
8
+ 'AssumedRoleUser' => {
9
+ 'Arn' => String,
10
+ 'AssumedRoleId' => String,
11
+ },
12
+ 'Audience' => String,
13
+ 'Credentials' => {
14
+ 'AccessKeyId' => String,
15
+ 'Expiration' => Time,
16
+ 'SecretAccessKey' => String,
17
+ 'SessionToken' => String,
18
+ },
19
+ 'Provider' => String,
20
+ 'SubjectFromWebIdentityToken' => String,
21
+ }
22
+
23
+ tests("#assume_role_with_web_identity('#{@role['Arn']}', '#{@token}', 'fog')").formats(@response_format) do
24
+ @sts.assume_role_with_web_identity(@role['Arn'], @token, 'fog', :iam => @iam).body
25
+ end
26
+ end
@@ -62,6 +62,12 @@ Shindo.tests('AWS | signaturev4', ['aws']) do
62
62
  end
63
63
  end
64
64
 
65
+ tests('get with repeated // inside path') do
66
+ returns(@signer.sign({:query => {}, :headers => {'Host' => 'host.foo.com', 'Date' => 'Mon, 09 Sep 2011 23:36:00 GMT'}, :method => :get, :path => '/foo//bar//baz'}, @now)) do
67
+ 'AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20110909/us-east-1/host/aws4_request, SignedHeaders=date;host, Signature=b250c85c72c5d7c33f67759c7a1ad79ea381cf62105290cecd530af2771575d4'
68
+ end
69
+ end
70
+
65
71
  tests('get with repeated trailing / ') do
66
72
  returns(@signer.sign({:query => {}, :headers => {'Host' => 'host.foo.com', 'Date' => 'Mon, 09 Sep 2011 23:36:00 GMT'}, :method => :get, :path => '//foo//'}, @now)) do
67
73
  'AWS4-HMAC-SHA256 Credential=AKIDEXAMPLE/20110909/us-east-1/host/aws4_request, SignedHeaders=date;host, Signature=b00392262853cfe3201e47ccf945601079e9b8a7f51ee4c3d9ee4f187aa9bf19'
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.0.8
4
+ version: 0.1.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-01-27 00:00:00.000000000 Z
12
+ date: 2015-02-03 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -146,6 +146,7 @@ files:
146
146
  - lib/fog/aws/elb.rb
147
147
  - lib/fog/aws/elb/policy_types.rb
148
148
  - lib/fog/aws/emr.rb
149
+ - lib/fog/aws/federation.rb
149
150
  - lib/fog/aws/glacier.rb
150
151
  - lib/fog/aws/iam.rb
151
152
  - lib/fog/aws/models/auto_scaling/activities.rb
@@ -624,6 +625,7 @@ files:
624
625
  - lib/fog/aws/parsers/storage/list_parts.rb
625
626
  - lib/fog/aws/parsers/sts/assume_role.rb
626
627
  - lib/fog/aws/parsers/sts/assume_role_with_saml.rb
628
+ - lib/fog/aws/parsers/sts/assume_role_with_web_identity.rb
627
629
  - lib/fog/aws/parsers/sts/get_session_token.rb
628
630
  - lib/fog/aws/rds.rb
629
631
  - lib/fog/aws/redshift.rb
@@ -926,6 +928,7 @@ files:
926
928
  - lib/fog/aws/requests/emr/run_job_flow.rb
927
929
  - lib/fog/aws/requests/emr/set_termination_protection.rb
928
930
  - lib/fog/aws/requests/emr/terminate_job_flows.rb
931
+ - lib/fog/aws/requests/federation/get_signin_token.rb
929
932
  - lib/fog/aws/requests/glacier/abort_multipart_upload.rb
930
933
  - lib/fog/aws/requests/glacier/complete_multipart_upload.rb
931
934
  - lib/fog/aws/requests/glacier/create_archive.rb
@@ -1176,6 +1179,7 @@ files:
1176
1179
  - lib/fog/aws/requests/storage/upload_part.rb
1177
1180
  - lib/fog/aws/requests/sts/assume_role.rb
1178
1181
  - lib/fog/aws/requests/sts/assume_role_with_saml.rb
1182
+ - lib/fog/aws/requests/sts/assume_role_with_web_identity.rb
1179
1183
  - lib/fog/aws/requests/sts/get_federation_token.rb
1180
1184
  - lib/fog/aws/requests/sts/get_session_token.rb
1181
1185
  - lib/fog/aws/ses.rb
@@ -1345,6 +1349,7 @@ files:
1345
1349
  - tests/requests/emr/helper.rb
1346
1350
  - tests/requests/emr/instance_group_tests.rb
1347
1351
  - tests/requests/emr/job_flow_tests.rb
1352
+ - tests/requests/federation/get_signin_token_tests.rb
1348
1353
  - tests/requests/glacier/archive_tests.rb
1349
1354
  - tests/requests/glacier/multipart_upload_tests.rb
1350
1355
  - tests/requests/glacier/tree_hash_tests.rb
@@ -1397,6 +1402,7 @@ files:
1397
1402
  - tests/requests/storage/versioning_tests.rb
1398
1403
  - tests/requests/sts/assume_role_tests.rb
1399
1404
  - tests/requests/sts/assume_role_with_saml_tests.rb
1405
+ - tests/requests/sts/assume_role_with_web_identity_tests.rb
1400
1406
  - tests/requests/sts/get_federation_token_tests.rb
1401
1407
  - tests/requests/sts/session_token_tests.rb
1402
1408
  - tests/signaturev4_tests.rb