lib/resources/aws/aws_iam_policies.rb in inspec-2.0.32 vs lib/resources/aws/aws_iam_policies.rb in inspec-2.0.45
- old
+ new
@@ -1,46 +1,53 @@
-class AwsIamPolicies < Inspec.resource(1)
- name 'aws_iam_policies'
- desc 'Verifies settings for AWS IAM Policies in bulk'
- example '
- describe aws_iam_policies do
- it { should exist }
- end
- '
- supports platform: 'aws'
-
- include AwsPluralResourceMixin
- def validate_params(resource_params)
- unless resource_params.empty?
- raise ArgumentError, 'aws_iam_policies does not accept resource parameters.'
- end
- resource_params
- end
-
- # Underlying FilterTable implementation.
- filter = FilterTable.create
- filter.add_accessor(:entries)
- .add(:exists?) { |x| !x.entries.empty? }
- .add(:policy_names, field: :policy_name)
- .add(:arns, field: :arn)
- filter.connect(self, :table)
-
- def to_s
- 'IAM Policies'
- end
-
- def fetch_from_api
- backend = BackendFactory.create(inspec_runner)
- @table = backend.list_policies({}).to_h[:policies]
- end
-
- class Backend
- class AwsClientApi < AwsBackendBase
- BackendFactory.set_default_backend(self)
- self.aws_client_class = Aws::IAM::Client
-
- def list_policies(query)
- aws_service_client.list_policies(query)
- end
- end
- end
-end
+class AwsIamPolicies < Inspec.resource(1)
+ name 'aws_iam_policies'
+ desc 'Verifies settings for AWS IAM Policies in bulk'
+ example '
+ describe aws_iam_policies do
+ it { should exist }
+ end
+ '
+ supports platform: 'aws'
+
+ include AwsPluralResourceMixin
+ def validate_params(resource_params)
+ unless resource_params.empty?
+ raise ArgumentError, 'aws_iam_policies does not accept resource parameters.'
+ end
+ resource_params
+ end
+
+ # Underlying FilterTable implementation.
+ filter = FilterTable.create
+ filter.add_accessor(:entries)
+ .add(:exists?) { |x| !x.entries.empty? }
+ .add(:policy_names, field: :policy_name)
+ .add(:arns, field: :arn)
+ filter.connect(self, :table)
+
+ def to_s
+ 'IAM Policies'
+ end
+
+ def fetch_from_api
+ backend = BackendFactory.create(inspec_runner)
+ @table = []
+ pagination_opts = {}
+ loop do
+ api_result = backend.list_policies(pagination_opts)
+ @table += api_result.policies.map(&:to_h)
+ pagination_opts = { marker: api_result.marker }
+ break unless api_result.is_truncated
+ end
+ end
+
+ class Backend
+ class AwsClientApi < AwsBackendBase
+ BackendFactory.set_default_backend(self)
+ self.aws_client_class = Aws::IAM::Client
+
+ def list_policies(query)
+ aws_service_client.list_policies(query)
+ end
+ end
+ end
+end