Sha256: e94473eabcd80e106d6ba85d238da778492570525f021075a2dfcaae18b915d9

Contents?: true

Size: 1.24 KB

Versions: 3

Compression:

Stored size: 1.24 KB

Contents

require_relative "includes"
module AwsAssumeRole
    module Types
        Dry = Dry::Types.module

        ::Dry::Types.register_class(::Aws::Credentials)
        AwsAssumeRole::Types::Credentials = ::Dry::Types["aws.credentials"]

        ACCESS_KEY_REGEX = /[\w]+/
        ACCESS_KEY_VALIDATOR = proc { filled? & str? & format?(ACCESS_KEY_REGEX) & min_size?(16) & max_size?(32) }
        ARN_REGEX = %r{arn:[\w+=\/,.@-]+:[\w+=\/,.@-]+:[\w+=\/,.@-]*:[0-9]+:[\w+=,.@-]+(\/[\w+=\/,.@-]+)*}
        EXTERNAL_ID_REGEX = %r{[\w+=,.@:\/-]*}
        MFA_REGEX = %r{arn:aws:iam::[0-9]+:mfa\/([\w+=,.@-]+)*|automatic}
        REGION_REGEX = /^(us|eu|ap|sa|ca)\-\w+\-\d+$|^cn\-\w+\-\d+$|^us\-gov\-\w+\-\d+$/
        REGION_VALIDATOR = proc { filled? & str? & format?(REGION_REGEX) }
        ROLE_REGEX = %r{arn:aws:iam::[0-9]+:role\/([\w+=,.@-]+)*}
        ROLE_SESSION_NAME_REGEX = /[\w+=,.@-]*/
        SECRET_ACCESS_KEY_REGEX = //
        SECRET_ACCESS_KEY_VALIDATOR = proc { filled? & str? & format?(SECRET_ACCESS_KEY_REGEX) }

        AwsAssumeRole::Types::Region = Dry::Strict::String.constrained(
            format: REGION_REGEX,
        )

        AwsAssumeRole::Types::MfaSerial = Dry::Strict::String.constrained(
            format: MFA_REGEX,
        )
    end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
aws_assume_role-0.2.2 lib/aws_assume_role/types.rb
aws_assume_role-0.2.0 lib/aws_assume_role/types.rb
aws_assume_role-0.1.2 lib/aws_assume_role/types.rb