aws-sdk 1.5.6 → 1.5.7

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.
Files changed (55) hide show
  1. data/lib/aws.rb +2 -0
  2. data/lib/aws/api_config/CloudWatch-2010-08-01.yml +424 -0
  3. data/lib/aws/api_config/STS-2011-06-15.yml +4 -0
  4. data/lib/aws/auto_scaling/activity.rb +2 -2
  5. data/lib/aws/auto_scaling/activity_collection.rb +1 -1
  6. data/lib/aws/auto_scaling/group_collection.rb +1 -1
  7. data/lib/aws/auto_scaling/instance_collection.rb +1 -1
  8. data/lib/aws/auto_scaling/launch_configuration_collection.rb +1 -1
  9. data/lib/aws/auto_scaling/notification_configuration_collection.rb +1 -1
  10. data/lib/aws/auto_scaling/scaling_policy_collection.rb +1 -1
  11. data/lib/aws/auto_scaling/scheduled_action_collection.rb +1 -1
  12. data/lib/aws/auto_scaling/tag_collection.rb +1 -1
  13. data/lib/aws/cloud_watch.rb +75 -0
  14. data/lib/aws/cloud_watch/alarm.rb +272 -0
  15. data/lib/aws/cloud_watch/alarm_collection.rb +153 -0
  16. data/lib/aws/cloud_watch/alarm_history_item.rb +50 -0
  17. data/lib/aws/cloud_watch/alarm_history_item_collection.rb +84 -0
  18. data/lib/aws/cloud_watch/client.rb +333 -0
  19. data/lib/aws/cloud_watch/config.rb +18 -0
  20. data/lib/aws/cloud_watch/errors.rb +22 -0
  21. data/lib/aws/cloud_watch/metric.rb +135 -0
  22. data/lib/aws/cloud_watch/metric_alarm_collection.rb +160 -0
  23. data/lib/aws/cloud_watch/metric_collection.rb +131 -0
  24. data/lib/aws/cloud_watch/metric_statistics.rb +69 -0
  25. data/lib/aws/cloud_watch/request.rb +23 -0
  26. data/lib/aws/core.rb +1 -1
  27. data/lib/aws/core/client.rb +2 -2
  28. data/lib/aws/core/client/query_json.rb +2 -0
  29. data/lib/aws/core/collection.rb +58 -25
  30. data/lib/aws/core/collection/simple.rb +18 -26
  31. data/lib/aws/core/collection/with_limit_and_next_token.rb +71 -0
  32. data/lib/aws/core/collection/with_next_token.rb +97 -0
  33. data/lib/aws/core/credential_providers.rb +36 -0
  34. data/lib/aws/core/option_grammar.rb +19 -0
  35. data/lib/aws/core/page_result.rb +5 -3
  36. data/lib/aws/dynamo_db/client.rb +0 -16
  37. data/lib/aws/dynamo_db/item_collection.rb +1 -1
  38. data/lib/aws/dynamo_db/request.rb +5 -1
  39. data/lib/aws/dynamo_db/table_collection.rb +1 -1
  40. data/lib/aws/iam/collection.rb +1 -1
  41. data/lib/aws/s3/client.rb +1 -1
  42. data/lib/aws/s3/paginated_collection.rb +1 -1
  43. data/lib/aws/simple_db/domain_collection.rb +14 -41
  44. data/lib/aws/simple_db/item_collection.rb +2 -2
  45. data/lib/aws/simple_email_service/identity_collection.rb +1 -1
  46. data/lib/aws/simple_workflow/domain_collection.rb +1 -1
  47. data/lib/aws/simple_workflow/history_event_collection.rb +1 -1
  48. data/lib/aws/simple_workflow/type_collection.rb +1 -1
  49. data/lib/aws/simple_workflow/workflow_execution_collection.rb +1 -1
  50. data/lib/aws/sns/topic.rb +1 -1
  51. data/lib/aws/sts.rb +9 -1
  52. data/lib/aws/sts/client.rb +31 -14
  53. data/lib/net/http/connection_pool.rb +11 -5
  54. metadata +19 -4
  55. data/lib/aws/core/collection/limitable.rb +0 -99
@@ -1,6 +1,5 @@
1
1
  # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
- #.kkk:w
3
-
2
+ #
4
3
  # Licensed under the Apache License, Version 2.0 (the "License"). You
5
4
  # may not use this file except in compliance with the License. A copy of
6
5
  # the License is located at
@@ -12,6 +11,7 @@
12
11
  # ANY KIND, either express or implied. See the License for the specific
13
12
  # language governing permissions and limitations under the License.
14
13
 
14
+
15
15
  module AWS
16
16
  class AutoScaling
17
17
 
@@ -36,7 +36,7 @@ module AWS
36
36
  #
37
37
  class ActivityCollection
38
38
 
39
- include Core::Collection::Limitable
39
+ include Core::Collection::WithLimitAndNextToken
40
40
 
41
41
  # @private
42
42
  def initialize options = {}
@@ -17,7 +17,7 @@ module AWS
17
17
  class GroupCollection
18
18
 
19
19
  include GroupOptions
20
- include Core::Collection::Limitable
20
+ include Core::Collection::WithLimitAndNextToken
21
21
 
22
22
  # Creates an Auto Scaling Group.
23
23
  #
@@ -28,7 +28,7 @@ module AWS
28
28
  #
29
29
  class InstanceCollection
30
30
 
31
- include Core::Collection::Limitable
31
+ include Core::Collection::WithLimitAndNextToken
32
32
 
33
33
  # @param [String] instance_id An {EC2::Instance} id string.
34
34
  # @return [AutoScaling::Instance]
@@ -17,7 +17,7 @@ module AWS
17
17
  class AutoScaling
18
18
  class LaunchConfigurationCollection
19
19
 
20
- include Core::Collection::Limitable
20
+ include Core::Collection::WithLimitAndNextToken
21
21
 
22
22
  # Creates an Auto Scaling launch configuration.
23
23
  #
@@ -47,7 +47,7 @@ module AWS
47
47
  #
48
48
  class NotificationConfigurationCollection
49
49
 
50
- include Core::Collection::Limitable
50
+ include Core::Collection::WithLimitAndNextToken
51
51
 
52
52
  # @private
53
53
  def initialize options = {}
@@ -15,7 +15,7 @@ module AWS
15
15
  class AutoScaling
16
16
  class ScalingPolicyCollection
17
17
 
18
- include Core::Collection::Limitable
18
+ include Core::Collection::WithLimitAndNextToken
19
19
  include ScalingPolicyOptions
20
20
 
21
21
  def initialize auto_scaling_group, options = {}
@@ -18,7 +18,7 @@ module AWS
18
18
 
19
19
  class ScheduledActionCollection
20
20
 
21
- include Core::Collection::Limitable
21
+ include Core::Collection::WithLimitAndNextToken
22
22
 
23
23
  # @private
24
24
  def initialize options = {}
@@ -59,7 +59,7 @@ module AWS
59
59
  #
60
60
  class TagCollection
61
61
 
62
- include Core::Collection::Limitable
62
+ include Core::Collection::WithLimitAndNextToken
63
63
 
64
64
  # @private
65
65
  def initialize options = {}
@@ -0,0 +1,75 @@
1
+ # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ require 'aws/core'
15
+ require 'aws/cloud_watch/config'
16
+
17
+ module AWS
18
+ class CloudWatch
19
+
20
+ AWS.register_autoloads(self, 'aws/cloud_watch') do
21
+ autoload :Alarm, 'alarm'
22
+ autoload :AlarmCollection, 'alarm_collection'
23
+ autoload :AlarmHistoryItem, 'alarm_history_item'
24
+ autoload :AlarmHistoryItemCollection, 'alarm_history_item_collection'
25
+ autoload :Client, 'client'
26
+ autoload :Errors, 'errors'
27
+ autoload :Metric, 'metric'
28
+ autoload :MetricCollection, 'metric_collection'
29
+ autoload :MetricAlarmCollection, 'metric_alarm_collection'
30
+ autoload :MetricStatistics, 'metric_statistics'
31
+ autoload :Request, 'request'
32
+ end
33
+
34
+ include Core::ServiceInterface
35
+
36
+ # Puts data for a metric. The metric is created if it does not already
37
+ # exist.
38
+ #
39
+ # cw.put_metric_data(
40
+ # :namespace => 'test/cli',
41
+ # :metric_data => [
42
+ # { :metric_name => 'sample', :value => 1 },
43
+ # { :metric_name => 'sample', :value => 2 },
44
+ # { :metric_name => 'sample', :value => 3 },
45
+ # { :metric_name => 'sample', :value => 4 },
46
+ # { :metric_name => 'sample', :value => 5 },
47
+ # ]
48
+ # )
49
+ #
50
+ # @param [Hash] options
51
+ # @see Client#put_metric_data
52
+ # @return [nil]
53
+ #
54
+ def put_metric_data options = {}
55
+ client.put_metric_data(options)
56
+ nil
57
+ end
58
+
59
+ # @return [AlarmCollection]
60
+ def alarms
61
+ AlarmCollection.new(:config => config)
62
+ end
63
+
64
+ # @return [AlarmHistoryItemCollection]
65
+ def alarm_history_items
66
+ AlarmHistoryItemCollection.new(:config => config)
67
+ end
68
+
69
+ # @return [MetricCollection]
70
+ def metrics options = {}
71
+ MetricCollection.new(options.merge(:config => config))
72
+ end
73
+
74
+ end
75
+ end
@@ -0,0 +1,272 @@
1
+ # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ module AWS
15
+ class CloudWatch
16
+
17
+ # @attr_reader [String] metric_name
18
+ #
19
+ # @attr_reader [String] namespace
20
+ #
21
+ # @attr_reader [Array<Hash>] dimensions
22
+ #
23
+ # @attr_reader [Boolean] enabled Indicates whether actions
24
+ # should be executed during any changes to the alarm's state.
25
+ #
26
+ # @attr_reader [Array<String>] actions The list of actions to execute
27
+ # when this alarm transitions into an ALARM state from any other
28
+ # state.
29
+ #
30
+ # @attr_reader [String] arn The Amazon Resource Name (ARN) of the alarm.
31
+ #
32
+ # @attr_reader [Time] configuration_updated_timestamp
33
+ # The time stamp of the last update to the alarm configuration.
34
+ #
35
+ # @attr_reader [String] description The description for the alarm.
36
+ #
37
+ # @attr_reader [String] comparison_operator The arithmetic operation to
38
+ # use when comparing the specified Statistic and Threshold. The
39
+ # specified Statistic value is used as the first operand.
40
+ #
41
+ # @attr_reader [Integer] evaluation_periods The number of periods over
42
+ # which data is compared to the specified threshold.
43
+ #
44
+ # @attr_reader [Array<Hash>] insufficient_data_actions The list of
45
+ # actions to execute when this alarm transitions into an
46
+ # INSUFFICIENT_DATA state
47
+ #
48
+ # @attr_reader [Array<Hash>] ok_actions The list of actions to execute
49
+ # when this alarm transitions into an OK state.
50
+ #
51
+ # @attr_reader [Integer] period The period in seconds over which the
52
+ # statistic is applied.
53
+ #
54
+ # @attr_reader [String] state_reason A human-readable explanation for
55
+ # the alarm's state.
56
+ #
57
+ # @attr_reader [String] state_reason_data An explanation for the alarm's
58
+ # state in machine-readable JSON format.
59
+ #
60
+ # @attr_reader [Time] state_updated_timestamp When the alarm's state
61
+ # last updated.
62
+ #
63
+ # @attr_reader [String] state_value The state value for the alarm.
64
+ #
65
+ # @attr_reader [Float] threshold The value against which the specified
66
+ # statistic is compared.
67
+ #
68
+ # @attr_reader [String] unit The unit of the alarm's associated metric.
69
+ #
70
+ class Alarm < Core::Resource
71
+
72
+ # @private
73
+ def initialize alarm_name, options = {}
74
+ @alarm_name = alarm_name
75
+ super
76
+ end
77
+
78
+ # @return [String]
79
+ attr_reader :alarm_name
80
+
81
+ alias_method :name, :alarm_name
82
+
83
+ attribute :namespace, :static => true
84
+
85
+ attribute :metric_name, :static => true
86
+
87
+ attribute :dimensions, :static => true
88
+
89
+ attribute :actions_enabled
90
+
91
+ alias_method :enabled, :actions_enabled
92
+
93
+ alias_method :enabled?, :enabled
94
+
95
+ attribute :alarm_actions
96
+
97
+ alias_method :actions, :alarm_actions
98
+
99
+ attribute :alarm_arn, :static => true
100
+
101
+ alias_method :arn, :alarm_arn
102
+
103
+ attribute :alarm_configuration_updated_timestamp
104
+
105
+ alias_method :configuration_updated_timestamp,
106
+ :alarm_configuration_updated_timestamp
107
+
108
+ attribute :alarm_description
109
+
110
+ alias_method :description, :alarm_description
111
+
112
+ attribute :comparison_operator
113
+
114
+ attribute :evaluation_periods
115
+
116
+ attribute :insufficient_data_actions
117
+
118
+ attribute :ok_actions
119
+
120
+ attribute :period
121
+
122
+ attribute :state_reason
123
+
124
+ attribute :state_reason_data
125
+
126
+ attribute :state_updated_timestamp
127
+
128
+ attribute :state_value
129
+
130
+ attribute :statistic
131
+
132
+ attribute :threshold
133
+
134
+ attribute :unit
135
+
136
+ populates_from :describe_alarms do |resp|
137
+ resp.data[:metric_alarms].find{|a| a[:alarm_name] == alarm_name }
138
+ end
139
+
140
+ populates_from :describe_alarms_for_metric do |resp|
141
+ resp.data[:metric_alarms].find{|a| a[:alarm_name] == alarm_name }
142
+ end
143
+
144
+ # @return [Metric]
145
+ def metric
146
+ options = {}
147
+ options[:dimensions] = dimensions unless dimensions.empty?
148
+ options[:config] = config
149
+ Metric.new(namespace, metric_name, options)
150
+ end
151
+
152
+ # Updates the metric alarm.
153
+ #
154
+ # @option options [String,required] :comparison_operator The arithmetic
155
+ # operation to use when comparing the specified Statistic and
156
+ # Threshold. The specified Statistic value is used as the first
157
+ # operand. Valid values inlucde:
158
+ # * 'GreaterThanOrEqualToThreshold'
159
+ # * 'GreaterThanThreshold'
160
+ # * 'LessThanThreshold'
161
+ # * 'LessThanOrEqualToThreshold'
162
+ # @option options [Integer,required] :evaluation_periods The number
163
+ # of periods over which data is compared to the specified threshold.
164
+ # @option options [Integer,required] :period The period in seconds
165
+ # over which the specified statistic is applied.
166
+ # @option options [String,required] :statistic The statistic to apply
167
+ # to the alarm's associated metric. Valid values include:
168
+ # * 'SampleCount'
169
+ # * 'Average'
170
+ # * 'Sum'
171
+ # * 'Minimum'
172
+ # * 'Maximum'
173
+ # @option options [Number,required] :threshold The value against which
174
+ # the specified statistic is compared.
175
+ # @option options [Array<String>] :insufficient_data_actions
176
+ # The list of actions to execute when this alarm transitions into an
177
+ # INSUFFICIENT_DATA state from any other state. Each action is
178
+ # specified as an Amazon Resource Number (ARN). Currently the only
179
+ # action supported is publishing to an Amazon SNS topic or an
180
+ # Amazon Auto Scaling policy.
181
+ # @option options [Array<String>] :ok_actions The list of actions to
182
+ # execute when this alarm transitions into an OK state from any
183
+ # other state. Each action is specified as an Amazon Resource
184
+ # Number (ARN). Currently the only action supported is publishing to
185
+ # an Amazon SNS topic or an Amazon Auto Scaling policy.
186
+ # @option options [Boolean] :actions_enabled Indicates whether or not
187
+ # actions should be executed during any changes to the alarm's
188
+ # state.
189
+ # @option options [Array<String>] :alarm_actions The list of actions
190
+ # to execute when this alarm transitions into an ALARM state from
191
+ # any other state. Each action is specified as an Amazon Resource
192
+ # Number (ARN). Currently the only action supported is publishing
193
+ # to an Amazon SNS topic or an Amazon Auto Scaling policy.
194
+ # Maximum of 5 alarm actions.
195
+ # @option options [String] :alarm_description The description for
196
+ # the alarm.
197
+ # @option options [String] :unit The unit for the alarm's associated
198
+ # metric.
199
+ # @return [nil]
200
+ def update options = {}
201
+ options[:alarm_name] = alarm_name
202
+ client.put_metric_alarm(options)
203
+ nil
204
+ end
205
+
206
+ # Deletes the current alarm.
207
+ # @return [nil]
208
+ def delete
209
+ client.delete_alarms(:alarm_names => [ alarm_name ])
210
+ nil
211
+ end
212
+
213
+ # Disable the current alarm actions.
214
+ # @return [nil]
215
+ def disable
216
+ client.disable_alarm_actions(:alarm_names => [ alarm_name ])
217
+ nil
218
+ end
219
+
220
+ # Enable the current alarm actions.
221
+ # @return [nil]
222
+ def enable
223
+ client.enable_alarm_actions(:alarm_names => [ alarm_name ])
224
+ nil
225
+ end
226
+
227
+ # @return [Boolean] Returns true if this alarm exists.
228
+ def exists?
229
+ !get_resource.data[:metric_alarms].empty?
230
+ end
231
+
232
+ # Returns a collection of the history items for current alarm.
233
+ # @return [AlarmHistoryItemCollection]
234
+ def history_items options = {}
235
+ AlarmHistoryItemCollection.new(:config => config).with_alarm_name(name)
236
+ end
237
+ alias_method :history, :history_items
238
+ alias_method :histories, :history_items
239
+
240
+ # Temporarily sets the state of current alarm.
241
+ # @param [String] reason The reason that this alarm is set to this
242
+ # specific state (in human-readable text format).
243
+ # @param [String] value Valid values include:
244
+ # * 'OK'
245
+ # * 'ALARM'
246
+ # * 'INSUFFICIENT_DATA'
247
+ # @param [Hash] options
248
+ # @option options [String] :state_reason_data The reason that this
249
+ # alarm is set to this specific state (in machine-readable JSON
250
+ # format)
251
+ # @return [nil]
252
+ def set_state reason, value, options = {}
253
+ options[:alarm_name] = alarm_name
254
+ options[:state_reason] = reason
255
+ options[:state_value] = value
256
+ client.set_alarm_state(options)
257
+ nil
258
+ end
259
+
260
+ protected
261
+
262
+ def resource_identifiers
263
+ [[:alarm_name, alarm_name]]
264
+ end
265
+
266
+ def get_resource attr_name = nil
267
+ client.describe_alarms(:alarm_names => [ alarm_name ])
268
+ end
269
+
270
+ end
271
+ end
272
+ end
@@ -0,0 +1,153 @@
1
+ # Copyright 2011-2012 Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ #
3
+ # Licensed under the Apache License, Version 2.0 (the "License"). You
4
+ # may not use this file except in compliance with the License. A copy of
5
+ # the License is located at
6
+ #
7
+ # http://aws.amazon.com/apache2.0/
8
+ #
9
+ # or in the "license" file accompanying this file. This file is
10
+ # distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF
11
+ # ANY KIND, either express or implied. See the License for the specific
12
+ # language governing permissions and limitations under the License.
13
+
14
+ module AWS
15
+ class CloudWatch
16
+
17
+ # = AlarmCollection
18
+ #
19
+ # Represents alarms for an AWS account.
20
+ #
21
+ # == Getting an alarm by name
22
+ #
23
+ # If you know the name of the alarm, you can get a reference using
24
+ # the {#[]} method.
25
+ #
26
+ # cw = AWS::CloudWatch.new
27
+ # alarm = cw.alarms['alarm-name']
28
+ #
29
+ # == Enumerating Alarms
30
+ #
31
+ # You can enumerate all alarms using each (or any of the
32
+ # methods defined in {Core::Collection}).
33
+ #
34
+ # cw.alarms.each do |alarm|
35
+ # puts alarm.name
36
+ # end
37
+ #
38
+ # == Filtering Alarms
39
+ #
40
+ # Use one of the filtering methods to reduce the number of alarms
41
+ # returned.
42
+ #
43
+ # cw.alarms.with_name_prefix('some-prefix-').each {|alarm| ... }
44
+ #
45
+ class AlarmCollection
46
+
47
+ include Core::Collection::WithLimitAndNextToken
48
+
49
+ def initialize options = {}
50
+ @filters = options[:filters] || {}
51
+ super
52
+ end
53
+
54
+ # @param [String] alarm_name
55
+ # @return [Alarm]
56
+ def [] alarm_name
57
+ Alarm.new(alarm_name, :config => config)
58
+ end
59
+
60
+ # Creates an alarm and associates it with the specified metric.
61
+ #
62
+ # @param [String] alarm_name The descriptive name for the alarm.
63
+ # This name must be unique within the user's AWS account.
64
+ # @param [Hash] options
65
+ # @option options [String,required] :namespace The namespace for the
66
+ # alarm's associated metric.
67
+ # @option options [String,required] :metric_name The name for the
68
+ # alarm's associated metric.
69
+ # @option options [Array<Hash>] :dimensions The dimensions for the
70
+ # alarm's associated metric. Each dimension must specify a
71
+ # +:name+ and a +:value+.
72
+ # @option (see Alarm#update)
73
+ # @return [Alarm]
74
+ def create alarm_name, options = {}
75
+ options[:alarm_name] = alarm_name
76
+ client.put_metric_alarm(options)
77
+ self[alarm_name]
78
+ end
79
+
80
+ # Delete one or more alarms by name.
81
+ #
82
+ # cloud_watch.alarms.delete('alarm1', 'alarm2')
83
+ #
84
+ # @param [String,Array<String>] alarm_names
85
+ # @return [nil]
86
+ def delete *alarm_names
87
+ client.delete_alarms(:alarm_names => alarm_names.flatten)
88
+ nil
89
+ end
90
+
91
+ # Returns a new collection with the given filter.
92
+ # @param [String,Symbol] name
93
+ # @param [String,Integer] value
94
+ # @return [Alarm]
95
+ def filter name, value
96
+ filters = @filters.merge(name.to_s.to_sym => value)
97
+ AlarmCollection.new(:filters => filters, :config => config)
98
+ end
99
+
100
+ # @param [String] prefix
101
+ # @return [MetricAlarmCollection]
102
+ def with_action_prefix prefix
103
+ filter(:action_prefix, prefix)
104
+ end
105
+
106
+ # @param [String] prefix The alarm name prefix.
107
+ # @return [MetricAlarmCollection]
108
+ def with_name_prefix prefix
109
+ filter(:alarm_name_prefix, prefix)
110
+ end
111
+
112
+ # @param [String,Array<String>] names A list of alarm names to
113
+ # retrieve information for.
114
+ # @return [MetricAlarmCollection]
115
+ def with_name *names
116
+ filter(:alarm_names, names.flatten)
117
+ end
118
+
119
+ # @param [String] state The state value to be used in matching alarms.
120
+ # @return [MetricAlarmCollection]
121
+ def with_state_value state
122
+ filter(:state_value, state)
123
+ end
124
+
125
+ protected
126
+
127
+ def _each_item next_token, limit, options = {}, &block
128
+
129
+ options = @filters.merge(options)
130
+
131
+ options[:next_token] = next_token if next_token
132
+ options[:max_records] = limit if limit
133
+
134
+ resp = client.describe_alarms(options)
135
+ resp.data[:metric_alarms].each do |details|
136
+
137
+ alarm = Alarm.new_from(
138
+ :describe_alarms,
139
+ details,
140
+ details[:alarm_name],
141
+ :config => config)
142
+
143
+ yield(alarm)
144
+
145
+ end
146
+
147
+ resp.data[:next_token]
148
+
149
+ end
150
+
151
+ end
152
+ end
153
+ end