module Aws::Endpoints::Matchers

def self.attr(value, path)

getAttr(value: Object | Array, path: string) Document
def self.attr(value, path)
  parts = path.split('.')
  val = if (index = parts.first[BRACKET_REGEX, 1])
          # remove brackets and index from part before indexing
          if (base = parts.first.gsub(BRACKET_REGEX, '')) && !base.empty?
            value[base][index.to_i]
          else
            value[index.to_i]
          end
        else
          value[parts.first]
        end
  if parts.size == 1
    val
  else
    attr(val, parts.slice(1..-1).join('.'))
  end
end