825 lines
19 KiB
JSON
825 lines
19 KiB
JSON
[
|
|
{
|
|
"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\"}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "RPC JSON Event Stream",
|
|
"metadata": {
|
|
"protocol": "json"
|
|
},
|
|
"shapes": {
|
|
"OutputShape": {
|
|
"type": "structure",
|
|
"members": {
|
|
"Payload": {"shape": "EventStream"},
|
|
"InitialResponse": {"shape": "StringType"}
|
|
}
|
|
},
|
|
"EventStream": {
|
|
"type": "structure",
|
|
"eventstream": true,
|
|
"members": {
|
|
"TypeA": {"shape": "TypeAEvent"},
|
|
"TypeB": {"shape": "TypeBEvent"}
|
|
}
|
|
},
|
|
"TypeAEvent": {
|
|
"type": "structure",
|
|
"event": true,
|
|
"members": {
|
|
"Payload": {
|
|
"shape": "BlobType",
|
|
"eventpayload": true
|
|
}
|
|
}
|
|
},
|
|
"TypeBEvent": {
|
|
"type": "structure",
|
|
"event": true,
|
|
"members": {
|
|
"Details": {
|
|
"shape": "Details",
|
|
"eventpayload": true
|
|
}
|
|
}
|
|
},
|
|
"Details": {
|
|
"type": "structure",
|
|
"members": {
|
|
"StringField": {"shape": "StringType"},
|
|
"IntegerField": {"shape": "IntegerType"}
|
|
}
|
|
},
|
|
"StringType": {
|
|
"type": "string"
|
|
},
|
|
"IntegerType": {
|
|
"type": "integer"
|
|
},
|
|
"BlobType": {
|
|
"type": "blob"
|
|
}
|
|
},
|
|
"cases": [
|
|
{
|
|
"given": {
|
|
"output": {
|
|
"shape": "OutputShape"
|
|
},
|
|
"name": "OperationName"
|
|
},
|
|
"result": {
|
|
"InitialResponse": "sometext",
|
|
"Payload": [
|
|
{
|
|
"TypeA": {"Payload": "somebytes"}
|
|
},
|
|
{
|
|
"TypeB": {
|
|
"Details": {
|
|
"StringField": "somestring",
|
|
"IntegerField": 123
|
|
}
|
|
}
|
|
}
|
|
]
|
|
},
|
|
"response": {
|
|
"status_code": 200,
|
|
"headers": {},
|
|
"body": "AAAAfgAAAE/Fo93GDTptZXNzYWdlLXR5cGUHAAVldmVudAs6ZXZlbnQtdHlwZQcAEGluaXRpYWwtcmVzcG9uc2UNOmNvbnRlbnQtdHlwZQcACXRleHQvanNvbnsiSW5pdGlhbFJlc3BvbnNlIjogInNvbWV0ZXh0In32mCSDAAAAbAAAAFPLgkVrDTptZXNzYWdlLXR5cGUHAAVldmVudAs6ZXZlbnQtdHlwZQcABVR5cGVBDTpjb250ZW50LXR5cGUHABhhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1zb21lYnl0ZXMesj2HAAAAhgAAAEQqNR/SDTptZXNzYWdlLXR5cGUHAAVldmVudAs6ZXZlbnQtdHlwZQcABVR5cGVCDTpjb250ZW50LXR5cGUHAAl0ZXh0L2pzb257IlN0cmluZ0ZpZWxkIjogInNvbWVzdHJpbmciLCAiSW50ZWdlckZpZWxkIjogMTIzfffGN30="
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "Modeled exceptions",
|
|
"metadata": {
|
|
"protocol": "json"
|
|
},
|
|
"shapes": {
|
|
"ExceptionShape": {
|
|
"exception": true,
|
|
"type": "structure",
|
|
"members": {
|
|
"BodyMember": {
|
|
"shape": "StringType"
|
|
},
|
|
"Code": {
|
|
"shape": "StringType"
|
|
},
|
|
"Message": {
|
|
"shape": "StringType"
|
|
}
|
|
}
|
|
},
|
|
"OtherExceptionShape": {
|
|
"exception": true,
|
|
"type": "structure",
|
|
"members": {
|
|
"BodyMember": {
|
|
"shape": "StringType"
|
|
}
|
|
}
|
|
},
|
|
"StringType": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"cases": [
|
|
{
|
|
"given": {
|
|
"errors": [
|
|
{"shape": "ExceptionShape"}
|
|
],
|
|
"name": "OperationName"
|
|
},
|
|
"error": {
|
|
"BodyMember": "mybody",
|
|
"Code": "OtherExceptionShape",
|
|
"Message": "mymessage"
|
|
},
|
|
"errorCode": "ExceptionShape",
|
|
"errorMessage": "mymessage",
|
|
"response": {
|
|
"status_code": 400,
|
|
"headers": {},
|
|
"body": "{ \"__type\": \"ExceptionShape\", \"Code\": \"OtherExceptionShape\", \"BodyMember\": \"mybody\", \"Message\": \"mymessage\"}"
|
|
}
|
|
},
|
|
{
|
|
"given": {
|
|
"errors": [
|
|
{"shape": "ExceptionShape"}
|
|
],
|
|
"name": "OperationName"
|
|
},
|
|
"error": {
|
|
"BodyMember": "mybody"
|
|
},
|
|
"errorCode": "OtherExceptionShape",
|
|
"errorMessage": "mymessage",
|
|
"response": {
|
|
"status_code": 400,
|
|
"headers": {},
|
|
"body": "{ \"__type\": \"OtherExceptionShape\", \"Code\": \"ExceptionShape\", \"BodyMember\": \"mybody\", \"Message\": \"mymessage\"}"
|
|
}
|
|
},
|
|
{
|
|
"given": {
|
|
"errors": [
|
|
{"shape": "ExceptionShape"}
|
|
],
|
|
"name": "OperationName"
|
|
},
|
|
"error": {},
|
|
"errorCode": "UndefinedShape",
|
|
"response": {
|
|
"status_code": 400,
|
|
"headers": {
|
|
"ImaHeader": "test",
|
|
"X-Foo": "abc"
|
|
},
|
|
"body": "{ \"__type\": \"UndefinedShape\", \"Code\": \"ExceptionShape\", \"BodyMember\": \"mybody\"}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "Modeled exceptions with jsonVersion 1.0",
|
|
"metadata": {
|
|
"protocol": "json",
|
|
"jsonVersion": "1.0"
|
|
},
|
|
"shapes": {
|
|
"ExceptionShape": {
|
|
"exception": true,
|
|
"type": "structure",
|
|
"members": {
|
|
"BodyMember": {
|
|
"shape": "StringType"
|
|
},
|
|
"Message": {
|
|
"shape": "StringType"
|
|
}
|
|
}
|
|
},
|
|
"StringType": {
|
|
"type": "string"
|
|
}
|
|
},
|
|
"cases": [
|
|
{
|
|
"given": {
|
|
"errors": [
|
|
{"shape": "ExceptionShape"}
|
|
],
|
|
"name": "OperationName"
|
|
},
|
|
"error": {
|
|
"BodyMember": "mybody",
|
|
"Message": "mymessage"
|
|
},
|
|
"errorCode": "ExceptionShape",
|
|
"errorMessage": "mymessage",
|
|
"response": {
|
|
"status_code": 400,
|
|
"headers": {},
|
|
"body": "{ \"__type\": \"FooPrefix#ExceptionShape\", \"BodyMember\": \"mybody\", \"Message\": \"mymessage\"}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "Serialize document with standalone primitive type in a JSON response",
|
|
"metadata": {
|
|
"protocol": "json"
|
|
},
|
|
"shapes": {
|
|
"OutputShape": {
|
|
"type": "structure",
|
|
"members": {
|
|
"inlineDocument": {
|
|
"shape": "DocumentType"
|
|
}
|
|
}
|
|
},
|
|
"DocumentType": {
|
|
"type": "structure",
|
|
"document": true
|
|
}
|
|
},
|
|
"cases": [
|
|
{
|
|
"given": {
|
|
"output": {
|
|
"shape": "OutputShape"
|
|
},
|
|
"name": "OperationName"
|
|
},
|
|
"result": {
|
|
"inlineDocument": "foo"
|
|
},
|
|
"response": {
|
|
"status_code": 200,
|
|
"headers": {},
|
|
"body": "{\"inlineDocument\": \"foo\"}"
|
|
}
|
|
},
|
|
{
|
|
"given": {
|
|
"output": {
|
|
"shape": "OutputShape"
|
|
},
|
|
"name": "OperationName"
|
|
},
|
|
"result": {
|
|
"inlineDocument": 123
|
|
},
|
|
"response": {
|
|
"status_code": 200,
|
|
"headers": {},
|
|
"body": "{\"inlineDocument\": 123}"
|
|
}
|
|
},
|
|
{
|
|
"given": {
|
|
"output": {
|
|
"shape": "OutputShape"
|
|
},
|
|
"name": "OperationName"
|
|
},
|
|
"result": {
|
|
"inlineDocument": 1.2
|
|
},
|
|
"response": {
|
|
"status_code": 200,
|
|
"headers": {},
|
|
"body": "{\"inlineDocument\": 1.2}"
|
|
}
|
|
},
|
|
{
|
|
"given": {
|
|
"output": {
|
|
"shape": "OutputShape"
|
|
},
|
|
"name": "OperationName"
|
|
},
|
|
"result": {
|
|
"inlineDocument": true
|
|
},
|
|
"response": {
|
|
"status_code": 200,
|
|
"headers": {},
|
|
"body": "{\"inlineDocument\": true}"
|
|
}
|
|
},
|
|
{
|
|
"given": {
|
|
"output": {
|
|
"shape": "OutputShape"
|
|
},
|
|
"name": "OperationName"
|
|
},
|
|
"result": {
|
|
"inlineDocument": ""
|
|
},
|
|
"response": {
|
|
"status_code": 200,
|
|
"headers": {},
|
|
"body": "{\"inlineDocument\": \"\"}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "Serialize inline document in a JSON response",
|
|
"metadata": {
|
|
"protocol": "json"
|
|
},
|
|
"shapes": {
|
|
"OutputShape": {
|
|
"type": "structure",
|
|
"members": {
|
|
"inlineDocument": {
|
|
"shape": "DocumentType"
|
|
}
|
|
}
|
|
},
|
|
"DocumentType": {
|
|
"type": "structure",
|
|
"document": true
|
|
}
|
|
},
|
|
"cases": [
|
|
{
|
|
"given": {
|
|
"output": {
|
|
"shape": "OutputShape"
|
|
},
|
|
"name": "OperationName"
|
|
},
|
|
"result": {
|
|
"inlineDocument": {"foo": "bar"}
|
|
},
|
|
"response": {
|
|
"status_code": 200,
|
|
"headers": {},
|
|
"body": "{\"inlineDocument\": {\"foo\": \"bar\"}}"
|
|
}
|
|
}
|
|
]
|
|
},
|
|
{
|
|
"description": "Serialize aggregate documents in a JSON response",
|
|
"metadata": {
|
|
"protocol": "json"
|
|
},
|
|
"shapes": {
|
|
"OutputShape": {
|
|
"type": "structure",
|
|
"members": {
|
|
"parentDocument": {
|
|
"shape": "DocumentType"
|
|
}
|
|
}
|
|
},
|
|
"DocumentType": {
|
|
"type": "structure",
|
|
"document": true
|
|
}
|
|
},
|
|
"cases": [
|
|
{
|
|
"given": {
|
|
"output": {
|
|
"shape": "OutputShape"
|
|
},
|
|
"name": "OperationName"
|
|
},
|
|
"result": {
|
|
"parentDocument": {
|
|
"str": "test",
|
|
"num": 123,
|
|
"float": 1.2,
|
|
"bool": true,
|
|
"null": "",
|
|
"document": {"foo": false},
|
|
"list": ["myname", 321, 1.3, true, "", {"nested": true}, [200, ""]]
|
|
}
|
|
},
|
|
"response": {
|
|
"status_code": 200,
|
|
"headers": {},
|
|
"body": "{\"parentDocument\": {\"str\": \"test\", \"num\": 123, \"float\": 1.2, \"bool\": true, \"null\": \"\", \"document\": {\"foo\": false}, \"list\": [\"myname\", 321, 1.3, true, \"\", {\"nested\": true}, [200, \"\"]]}}"
|
|
}
|
|
},
|
|
{
|
|
"given": {
|
|
"output": {
|
|
"shape": "OutputShape"
|
|
},
|
|
"name": "OperationName"
|
|
},
|
|
"result": {
|
|
"parentDocument": [
|
|
"test",
|
|
123,
|
|
1.2,
|
|
true,
|
|
"",
|
|
{"str": "myname", "num": 321, "float": 1.3, "bool": true, "null": "", "document": {"nested": true}, "list": [200, ""]},
|
|
["foo", false]
|
|
]
|
|
},
|
|
"response": {
|
|
"status_code": 200,
|
|
"headers": {},
|
|
"body": "{\"parentDocument\": [\"test\", 123, 1.2, true, \"\", {\"str\": \"myname\", \"num\": 321, \"float\": 1.3, \"bool\": true, \"null\": \"\", \"document\": {\"nested\": true}, \"list\": [200, \"\"]}, [\"foo\", false]]}"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
]
|