in build_tools/aws-sdk-code-generator/lib/aws-sdk-code-generator/api.rb [49:90]
def ruby_input_type(shape_ref, api, operation = nil, options = {})
nested = options.fetch(:nested, false)
_, shape = resolve(shape_ref, api)
case shape['type']
when 'byte' then 'Integer<byte>'
when 'blob'
if streaming_input?(shape, operation)
'String, IO'
else
'String, StringIO, File'
end
when 'boolean' then 'Boolean'
when 'character' then 'String<character>'
when 'double' then 'Float'
when 'float' then 'Float'
when 'integer' then 'Integer'
when 'list'
if nested
"Array"
else
"Array<#{ruby_input_type(shape['member'], api, operation, nested: true)}>"
end
when 'long' then 'Integer'
when 'map'
if nested
"Hash"
else
"Hash<String,#{ruby_input_type(shape['value'], api, operation, nested: true)}>"
end
when 'string' then 'String'
when 'structure'
if shape['document']
'Hash,Array,String,Numeric,Boolean'
else
"Types::#{shape_ref['shape']}"
end
when 'timestamp' then 'Time,DateTime,Date,Integer,String'
else
raise "unhandled type #{shape.type}.inspect"
end
end