def downcase_symbolize(obj)
      if obj.is_a? Hash
        return obj.each_with_object({}) do |(k, v), memo|
          memo.tap { |m| m[underscore(k).to_sym] = downcase_symbolize(v) }
        end
      end

      if obj.is_a? Array
        return obj.each_with_object([]) do |v, memo|
          memo << downcase_symbolize(v)
          memo
        end
      end
      obj
    end
def downcase_symbolize(obj)
      if obj.is_a? Hash
        return obj.each_with_object({}) do |(k, v), memo|
          memo.tap { |m| m[underscore(k).to_sym] = downcase_symbolize(v) }
        end
      end

      if obj.is_a? Array
        return obj.each_with_object([]) do |v, memo|
          memo << downcase_symbolize(v)
          memo
        end
      end
      obj
    end
hyper.sh responses are capital camel cased json, ie:

 {"HostConfigs": "value"}

 this fn is used to format all hyper.sh api reponses