aws-sdk 1.3.6 → 1.3.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -556,6 +556,17 @@
556
556
  - :pattern: !ruby/regexp /[\w+=,.@-]*/
557
557
  - :required
558
558
  :output: []
559
+ ChangePassword:
560
+ :input:
561
+ OldPassword:
562
+ - :string
563
+ - :pattern: !ruby/regexp /[\u0009\u000A\u000D\u0020-\u00FF]+/
564
+ - :required
565
+ NewPassword:
566
+ - :string
567
+ - :pattern: !ruby/regexp /[\u0009\u000A\u000D\u0020-\u00FF]+/
568
+ - :required
569
+ :output: []
559
570
  UploadServerCertificate:
560
571
  :input:
561
572
  Path:
@@ -666,6 +677,36 @@
666
677
  - :pattern: !ruby/regexp /^[a-z0-9](([a-z0-9]|-(?!-))*[a-z0-9])?$/
667
678
  - :required
668
679
  :output: []
680
+ UpdateAccountPasswordPolicy:
681
+ :input:
682
+ MinimumPasswordLength:
683
+ - :integer
684
+ RequireSymbols:
685
+ - :boolean
686
+ RequireNumbers:
687
+ - :boolean
688
+ RequireUppercaseCharacters:
689
+ - :boolean
690
+ RequireLowercaseCharacters:
691
+ - :boolean
692
+ :output: []
693
+ DeleteAccountPasswordPolicy:
694
+ :input: {}
695
+ :output: []
696
+ GetAccountPasswordPolicy:
697
+ :input: {}
698
+ :output:
699
+ - PasswordPolicy:
700
+ - MinimumPasswordLength:
701
+ - :integer
702
+ - RequireSymbols:
703
+ - :boolean
704
+ - RequireNumbers:
705
+ - :boolean
706
+ - RequireUppercaseCharacters:
707
+ - :boolean
708
+ - RequireLowercaseCharacters:
709
+ - :boolean
669
710
  :client_errors:
670
711
  NoSuchEntity: []
671
712
  MalformedCertificate: []
@@ -678,6 +719,7 @@
678
719
  InvalidCertificate: []
679
720
  DuplicateCertificate: []
680
721
  KeyPairMismatch: []
722
+ PasswordPolicyViolation: []
681
723
  NoSuchVendor: []
682
724
  InvalidPublicKey: []
683
725
  DuplicatePublicKey: []
@@ -59,7 +59,7 @@ require 'aws/core/autoloader'
59
59
  module AWS
60
60
 
61
61
  # Current version of the AWS SDK for Ruby
62
- VERSION = "1.3.6"
62
+ VERSION = "1.3.7"
63
63
 
64
64
  register_autoloads(self) do
65
65
  autoload :Errors, 'errors'
@@ -38,6 +38,7 @@ module AWS
38
38
  options[:ssl_ca_path] = request.ssl_ca_path if request.ssl_ca_path
39
39
 
40
40
  connection = self.class.pool.connection_for(request.host, options)
41
+ connection.read_timeout = request.read_timeout
41
42
 
42
43
  begin
43
44
  http_response = connection.request(build_request(request))
@@ -13,6 +13,7 @@
13
13
 
14
14
  require 'uuidtools'
15
15
  require 'date'
16
+ require 'json'
16
17
 
17
18
  module AWS
18
19
  module Core
@@ -340,5 +340,80 @@ module AWS
340
340
  end
341
341
  end
342
342
 
343
+ # Changes the web password associated with the current IAM user.
344
+ # In order to change your password you must configure the sdk
345
+ # to use your IAM user credentials.
346
+ #
347
+ #
348
+ # To change a user password, you must be using credentials from the
349
+ # user you want to change:
350
+ #
351
+ # # pass in a key pair generated for the user you want to change
352
+ # # the password for
353
+ # iam = AWS::IAM.new(:access_key_id => '...', :secret_access_key => '...)
354
+ # iam.change_password('old-password', 'new-password')
355
+ #
356
+ # @param [String] old_password
357
+ #
358
+ # @param [String] new_password
359
+ #
360
+ # @return [nil]
361
+ #
362
+ def change_password old_password, new_password
363
+ client_opts = {}
364
+ client_opts[:old_password] = old_password
365
+ client_opts[:new_password] = new_password
366
+ client.change_password(client_opts)
367
+ nil
368
+ end
369
+
370
+ # Updates the account password policy for all IAM accounts.
371
+ # @param [Hash] options
372
+ # @option options [Integer] :minimum_password_length
373
+ # @option options [Boolean] :require_symbols
374
+ # @option options [Boolean] :require_numbers
375
+ # @option options [Boolean] :require_uppercase_characters
376
+ # @option options [Boolean] :require_lowercase_characters
377
+ # @return [nil]
378
+ def update_account_password_policy options = {}
379
+ client.update_account_password_policy(options)
380
+ nil
381
+ end
382
+
383
+ # Removes the account password policy.
384
+ # @return [nil]
385
+ def delete_account_password_policy
386
+ client.delete_account_password_policy
387
+ nil
388
+ end
389
+
390
+ # Returns the account password policy details as a hash. This method
391
+ # returns nil if no password policy has been set for this account.
392
+ #
393
+ # # set the policy
394
+ # iam.update_account_password_policy :minimum_password_length => 8
395
+ #
396
+ # iam.account_password_policy
397
+ # #=> {:require_symbols=>false, :require_numbers=>false, :require_uppercase_characters=>false, :require_lowercase_characters=>false, :minimum_password_length=>8}
398
+ #
399
+ # @return [Hash,nil]
400
+ def account_password_policy
401
+ begin
402
+ policy = client.get_account_password_policy.password_policy
403
+ [
404
+ :minimum_password_length,
405
+ :require_symbols?,
406
+ :require_numbers?,
407
+ :require_uppercase_characters?,
408
+ :require_lowercase_characters?,
409
+ ].inject({}) do |hash,method|
410
+ key = method.to_s.sub(/\?/, '').to_sym
411
+ hash.merge(key => policy.send(method))
412
+ end
413
+ rescue Errors::NoSuchEntity
414
+ nil
415
+ end
416
+ end
417
+
343
418
  end
344
419
  end
@@ -11,6 +11,7 @@
11
11
  # language governing permissions and limitations under the License.
12
12
 
13
13
  require 'uri'
14
+ require 'json'
14
15
 
15
16
  module AWS
16
17
  class IAM
@@ -126,9 +126,11 @@ module AWS
126
126
  end
127
127
 
128
128
  def self.deserialize string_value, options = {}
129
- left, right = float.to_s.split('.')
130
- left = SortableIntegerAttr.deserialize(left, options)
131
- "#{left}.#{right}".to_f
129
+ expect(String, string_value) do
130
+ left, right = string_value.split('.')
131
+ left = SortableIntegerAttr.deserialize(left, options)
132
+ "#{left}.#{right}".to_f
133
+ end
132
134
  end
133
135
 
134
136
  end
@@ -11,6 +11,8 @@
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 'timeout'
15
+
14
16
  module AWS
15
17
  class SimpleWorkflow
16
18
 
@@ -105,8 +107,12 @@ module AWS
105
107
 
106
108
  def poll task_list, options = {}, &block
107
109
  loop do
108
- poll_for_single_task(task_list, options) do |activity_task|
109
- yield(activity_task)
110
+ begin
111
+ poll_for_single_task(task_list, options) do |activity_task|
112
+ yield(activity_task)
113
+ end
114
+ rescue Timeout::Error
115
+ retry
110
116
  end
111
117
  end
112
118
  nil
@@ -13,6 +13,8 @@ require 'uuidtools'
13
13
  # ANY KIND, either express or implied. See the License for the specific
14
14
  # language governing permissions and limitations under the License.
15
15
 
16
+ require 'timeout'
17
+
16
18
  module AWS
17
19
  class SimpleWorkflow
18
20
 
@@ -207,8 +209,12 @@ module AWS
207
209
  #
208
210
  def poll task_list, options = {}, &block
209
211
  loop do
210
- poll_for_single_task(task_list, options) do |decision_task|
211
- yield(decision_task)
212
+ begin
213
+ poll_for_single_task(task_list, options) do |decision_task|
214
+ yield(decision_task)
215
+ end
216
+ rescue Timeout::Error
217
+ retry
212
218
  end
213
219
  end
214
220
  nil
@@ -68,7 +68,7 @@ module AWS
68
68
  def read_timeout
69
69
  # these two operations have long polling
70
70
  if headers['x-amz-target'] =~ /PollFor(Decision|Activity)Task/
71
- 90
71
+ 90
72
72
  else
73
73
  @read_timeout
74
74
  end
@@ -124,7 +124,7 @@ class Net::HTTP::ConnectionPool
124
124
 
125
125
  begin
126
126
 
127
- session = session_for(connection)
127
+ session = session_for(connection, retried)
128
128
  session.http_session.read_timeout = connection.read_timeout
129
129
  response = session.request(*request_args, &block)
130
130
 
@@ -174,13 +174,16 @@ class Net::HTTP::ConnectionPool
174
174
 
175
175
  # Returns a suitable session from the pool or creates a new one
176
176
  private
177
- def session_for connection
177
+ def session_for connection, force_new = false
178
+
178
179
  session = nil
179
180
 
180
- @pool_mutex.synchronize do
181
- _clean
182
- session = @pool.find{|idle_session| idle_session.key == connection.key }
183
- @pool.delete(session) if session
181
+ unless force_new
182
+ @pool_mutex.synchronize do
183
+ _clean
184
+ session = @pool.find{|idle_session| idle_session.key == connection.key }
185
+ @pool.delete(session) if session
186
+ end
184
187
  end
185
188
 
186
189
  if session.nil?
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 21
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
8
  - 3
9
- - 6
10
- version: 1.3.6
9
+ - 7
10
+ version: 1.3.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Amazon Web Services
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2012-03-07 00:00:00 Z
18
+ date: 2012-03-09 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  prerelease: false
@@ -53,14 +53,14 @@ dependencies:
53
53
  requirement: &id003 !ruby/object:Gem::Requirement
54
54
  none: false
55
55
  requirements:
56
- - - ">="
56
+ - - <=
57
57
  - !ruby/object:Gem::Version
58
- hash: 15
58
+ hash: 3
59
59
  segments:
60
60
  - 1
61
- - 4
62
- - 4
63
- version: 1.4.4
61
+ - 5
62
+ - 0
63
+ version: 1.5.0
64
64
  name: nokogiri
65
65
  version_requirements: *id003
66
66
  - !ruby/object:Gem::Dependency