ruby_input_type

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