module Aws::ARNParser

Public Class Methods

arn?(str) click to toggle source

Checks whether a String could be a ARN or not. An ARN starts with ‘arn:’ and has at least 6 segments separated by a colon (:).

@param [String] str

@return [Boolean]

# File lib/aws-sdk-core/arn_parser.rb, line 36
def self.arn?(str)
  !str.nil? && str.start_with?('arn:') && str.scan(/:/).length >= 5
end
parse(arn_str) click to toggle source

Parse a string with an ARN format into an {Aws::ARN} object. ‘InvalidARNError` would be raised when encountering a parsing error or the ARN object contains invalid components (nil/empty).

@param [String] arn_str

@return [Aws::ARN] @see docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html#genref-arns

# File lib/aws-sdk-core/arn_parser.rb, line 13
def self.parse(arn_str)
  parts = arn_str.nil? ? [] : arn_str.split(':', 6)
  raise Aws::Errors::InvalidARNError if parts.size < 6

  # part[0] is "arn"
  arn = ARN.new(
    partition: parts[1],
    service: parts[2],
    region: parts[3],
    account_id: parts[4],
    resource: parts[5]
  )
  raise Aws::Errors::InvalidARNError unless arn.valid?

  arn
end