[ { "description": "Scalar members", "metadata": { "protocol": "json" }, "shapes": { "OutputShape": { "type": "structure", "members": { "Str": { "shape": "StringType" }, "Num": { "shape": "IntegerType" }, "FalseBool": { "shape": "BooleanType" }, "TrueBool": { "shape": "BooleanType" }, "Float": { "shape": "FloatType" }, "Double": { "shape": "DoubleType" }, "Long": { "shape": "LongType" }, "Char": { "shape": "CharType" } } }, "StringType": { "type": "string" }, "IntegerType": { "type": "integer" }, "BooleanType": { "type": "boolean" }, "FloatType": { "type": "float" }, "DoubleType": { "type": "double" }, "LongType": { "type": "long" }, "CharType": { "type": "character" } }, "cases": [ { "given": { "output": { "shape": "OutputShape" }, "name": "OperationName" }, "result": { "Str": "myname", "Num": 123, "FalseBool": false, "TrueBool": true, "Float": 1.2, "Double": 1.3, "Long": 200, "Char": "a" }, "response": { "status_code": 200, "headers": {}, "body": "{\"Str\": \"myname\", \"Num\": 123, \"FalseBool\": false, \"TrueBool\": true, \"Float\": 1.2, \"Double\": 1.3, \"Long\": 200, \"Char\": \"a\"}" } } ] }, { "description": "Blob members", "metadata": { "protocol": "json" }, "shapes": { "OutputShape": { "type": "structure", "members": { "BlobMember": { "shape": "BlobType" }, "StructMember": { "shape": "BlobContainer" } } }, "BlobType": { "type": "blob" }, "BlobContainer": { "type": "structure", "members": { "foo": { "shape": "BlobType" } } } }, "cases": [ { "given": { "output": { "shape": "OutputShape" }, "name": "OperationName" }, "result": { "BlobMember": "hi!", "StructMember": { "foo": "there!" } }, "response": { "status_code": 200, "headers": {}, "body": "{\"BlobMember\": \"aGkh\", \"StructMember\": {\"foo\": \"dGhlcmUh\"}}" } } ] }, { "description": "Timestamp members", "metadata": { "protocol": "json" }, "shapes": { "OutputShape": { "type": "structure", "members": { "TimeArg": { "shape": "TimestampType" }, "TimeCustom": { "timestampFormat": "rfc822", "shape": "TimestampType" }, "TimeFormat": { "shape": "TimestampFormatType" }, "StructMember": { "shape": "TimeContainer" } } }, "TimeContainer": { "type": "structure", "members": { "foo": { "shape": "TimestampType" }, "bar": { "shape": "TimestampFormatType" } } }, "TimestampFormatType": { "timestampFormat": "iso8601", "type": "timestamp" }, "TimestampType": { "type": "timestamp" } }, "cases": [ { "given": { "output": { "shape": "OutputShape" }, "name": "OperationName" }, "result": { "TimeArg": 1398796238, "TimeCustom": 1398796238, "TimeFormat": 1398796238, "StructMember": { "foo": 1398796238, "bar": 1398796238 } }, "response": { "status_code": 200, "headers": {}, "body": "{\"TimeArg\": 1398796238, \"TimeCustom\": \"Tue, 29 Apr 2014 18:30:38 GMT\", \"TimeFormat\": \"2014-04-29T18:30:38+00:00\", \"StructMember\": {\"foo\": 1398796238, \"bar\": \"2014-04-29T18:30:38+00:00\"}}" } } ] }, { "description": "Lists", "metadata": { "protocol": "json" }, "shapes": { "OutputShape": { "type": "structure", "members": { "ListMember": { "shape": "ListType" }, "ListMemberMap": { "shape": "ListTypeMap" }, "ListMemberStruct": { "shape": "ListTypeStruct" } } }, "ListType": { "type": "list", "member": { "shape": "StringType" } }, "ListTypeMap": { "type": "list", "member": { "shape": "MapType" } }, "ListTypeStruct": { "type": "list", "member": { "shape": "StructType" } }, "StringType": { "type": "string" }, "StructType": { "type": "structure", "members": { } }, "MapType": { "type": "string", "key": { "shape": "StringType" }, "value": { "shape": "StringType" } } }, "cases": [ { "given": { "output": { "shape": "OutputShape" }, "name": "OperationName" }, "result": { "ListMember": ["a", "b"] }, "response": { "status_code": 200, "headers": {}, "body": "{\"ListMember\": [\"a\", \"b\"]}" } }, { "given": { "output": { "shape": "OutputShape" }, "name": "OperationName" }, "result": { "ListMember": ["a", null], "ListMemberMap": [{}, null, null, {}], "ListMemberStruct": [{}, null, null, {}] }, "response": { "status_code": 200, "headers": {}, "body": "{\"ListMember\": [\"a\", null], \"ListMemberMap\": [{}, null, null, {}], \"ListMemberStruct\": [{}, null, null, {}]}" } } ] }, { "description": "Maps", "metadata": { "protocol": "json" }, "shapes": { "OutputShape": { "type": "structure", "members": { "MapMember": { "shape": "MapType" } } }, "MapType": { "type": "map", "key": { "shape": "StringType" }, "value": { "shape": "NumberList" } }, "StringType": { "type": "string" }, "NumberList": { "type": "list", "member": { "shape": "IntegerType" } }, "IntegerType": { "type": "integer" } }, "cases": [ { "given": { "output": { "shape": "OutputShape" }, "name": "OperationName" }, "result": { "MapMember": { "a": [1, 2], "b": [3, 4] } }, "response": { "status_code": 200, "headers": {}, "body": "{\"MapMember\": {\"a\": [1, 2], \"b\": [3, 4]}}" } } ] }, { "description": "Ignores extra data", "metadata": { "protocol": "json" }, "shapes": { "OutputShape": { "type": "structure", "members": { "StrType": { "shape": "StrType" } } }, "StrType": { "type": "string" } }, "cases": [ { "given": { "output": { "shape": "OutputShape" }, "name": "OperationName" }, "result": {}, "response": { "status_code": 200, "headers": {}, "body": "{\"foo\": \"bar\"}" } } ] } ]