Sha256: f871180d500e147e3eb81bd0212259be1a695fc0f6a7c7ce2666ac1b172ec9f7

Contents?: true

Size: 755 Bytes

Versions: 1

Compression:

Stored size: 755 Bytes

Contents

require 'aws-sdk'

module Awssume
  module Adapter
    # This is aws sts client wrapper class
    class AwsClient
      attr_reader :config

      def initialize(config)
        @config = config
      end

      def assume
        sts_client.assume_role(assume_role_params).credentials.to_h
      end

      def role_session_name
        config[:role_session_name]
      end

      private

      def assume_role_params
        p = {
          role_arn: config[:role_arn],
          role_session_name: role_session_name,
          external_id: config[:external_id]
        }

        p.delete(:external_id) unless p[:external_id]

        p
      end

      def sts_client
        Aws::STS::Client.new(region: config[:region])
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
awssume-0.3.0 lib/awssume/adapter/aws_client.rb