Sha256: c8817dc41f428a81ba6a4031e30b89c98b55d13e618adb1222ad0c0032356079

Contents?: true

Size: 1.31 KB

Versions: 3

Compression:

Stored size: 1.31 KB

Contents

require 'miasma'

module Miasma
  module Contrib
    module Aws
      module Api
        # IAM helper class
        class Iam < Miasma::Types::Api

          # Service name of the API
          API_SERVICE = 'iam'.freeze
          # Supported version of the IAM API
          API_VERSION = '2010-05-08'.freeze

          include Contrib::AwsApiCore::ApiCommon
          include Contrib::AwsApiCore::RequestUtils

          def connect
            super
            service_name = self.class::API_SERVICE.downcase
            self.aws_host = [
              service_name,
              api_endpoint
            ].join('.')
          end

          # Fetch current user information
          def user_info
            result = request(
              :path => '/',
              :params => {
                'Action' => 'GetUser'
              }
            ).get(:body, 'GetUserResponse', 'GetUserResult', 'User')
            Smash.new(
              :user_id => result['UserId'],
              :path => result['Path'],
              :username => result['UserName'],
              :arn => result['Arn'],
              :created => result['CreateDate'],
              :password_last_used => result['PasswordLastUsed'],
              :account_id => result['Arn'].split(':')[4]
            )
          end

        end
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
miasma-aws-0.3.10 lib/miasma-aws/api/iam.rb
miasma-aws-0.3.8 lib/miasma-aws/api/iam.rb
miasma-aws-0.3.6 lib/miasma-aws/api/iam.rb