fog-aws 0.0.8 → 0.1.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 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