Module: Miasma::Contrib::AwsApiCore::RequestUtils
- Included in:
- Miasma::Contrib::Aws::Api::Iam, Miasma::Contrib::Aws::Api::Sts, Models::AutoScale::Aws, Models::Compute::Aws, Models::LoadBalancer::Aws, Models::Orchestration::Aws, Models::Storage::Aws
- Defined in:
- lib/miasma/contrib/aws.rb
Overview
Utility methods for API requests
Instance Method Summary collapse
-
#all_result_pages(next_token, *result_key) {|options| ... } ⇒ Array
Fetch all results when tokens are being used for paging results.
Instance Method Details
#all_result_pages(next_token, *result_key) {|options| ... } ⇒ Array
Fetch all results when tokens are being used for paging results
29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/miasma/contrib/aws.rb', line 29 def all_result_pages(next_token, *result_key, &block) list = [] = next_token ? Smash.new("NextToken" => next_token) : Smash.new result = block.call() content = result.get(*result_key.dup) if content.is_a?(Array) list += content else list << content end set = result.get(*result_key.slice(0, 3)) if set.is_a?(Hash) && set["NextToken"] [content].flatten.compact.each do |item| if item.is_a?(Hash) item["NextToken"] = set["NextToken"] end end list += all_result_pages(set["NextToken"], *result_key, &block) end list.compact end |