Sha256: d92cf90cfe2d3d2db97d12dbc56ea4ccff8522deb2cc9dde45ddf01b265a0574

Contents?: true

Size: 1.21 KB

Versions: 5

Compression:

Stored size: 1.21 KB

Contents

class Organizations < Mapper
  #
  # Returns an array of resources.
  #
  def collect
    resources = []

    #
    # describe_organization
    #
    @client.describe_organization.each do |response|
      log(response.context.operation_name)

      struct = OpenStruct.new(response.organization.to_h)
      struct.type = 'organization'

      resources.push(struct.to_h)
    end

    #
    # list_handshakes_for_account
    #
    @client.list_handshakes_for_account.each_with_index do |response, page|
      log(response.context.operation_name, page)

      response.handshakes.each do |handshake|
        struct = OpenStruct.new(handshake.to_h)
        struct.type = 'handshake'

        resources.push(struct.to_h)
      end
    end

    #
    # list_policies
    #
    @client.list_policies({ filter: 'SERVICE_CONTROL_POLICY' }).each_with_index do |response, page|
      log(response.context.operation_name, page)

      response.policies.each do |policy|
        struct = OpenStruct.new(policy.to_h)
        struct.type = 'service_control_policy'
        struct.content = @client.describe_policy({ policy_id: policy.id }).policy.content.parse_policy

        resources.push(struct.to_h)
      end
    end

    resources
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
aws_recon-0.2.23 lib/aws_recon/collectors/organizations.rb
aws_recon-0.2.22 lib/aws_recon/collectors/organizations.rb
aws_recon-0.2.21 lib/aws_recon/collectors/organizations.rb
aws_recon-0.2.20 lib/aws_recon/collectors/organizations.rb
aws_recon-0.2.19 lib/aws_recon/collectors/organizations.rb