python-botocore/tests/unit/protocols/input/json.json
2018-08-16 15:01:54 +09:00

558 lines
13 KiB
JSON

[
{
"description": "Scalar members",
"metadata": {
"protocol": "json",
"jsonVersion": "1.1",
"targetPrefix": "com.amazonaws.foo"
},
"shapes": {
"InputShape": {
"type": "structure",
"members": {
"Name": {
"shape": "StringType"
}
}
},
"StringType": {
"type": "string"
}
},
"cases": [
{
"given": {
"input": {
"shape": "InputShape"
},
"name": "OperationName",
"http": {
"method": "POST"
}
},
"params": {
"Name": "myname"
},
"serialized": {
"body": "{\"Name\": \"myname\"}",
"headers": {
"X-Amz-Target": "com.amazonaws.foo.OperationName",
"Content-Type": "application/x-amz-json-1.1"
},
"uri": "/"
}
}
]
},
{
"description": "Timestamp values",
"metadata": {
"protocol": "json",
"jsonVersion": "1.1",
"targetPrefix": "com.amazonaws.foo"
},
"shapes": {
"InputShape": {
"type": "structure",
"members": {
"TimeArg": {
"shape": "TimestampType"
},
"TimeCustom": {
"timestampFormat": "rfc822",
"shape": "TimestampType"
},
"TimeFormat": {
"shape": "TimestampFormatType"
}
}
},
"TimestampFormatType": {
"timestampFormat": "rfc822",
"type": "timestamp"
},
"TimestampType": {
"type": "timestamp"
}
},
"cases": [
{
"given": {
"input": {
"shape": "InputShape"
},
"name": "OperationName"
},
"params": {
"TimeArg": 1422172800,
"TimeCustom": 1422172800,
"TimeFormat": 1422172800
},
"serialized": {
"body": "{\"TimeArg\": 1422172800, \"TimeCustom\": \"Sun, 25 Jan 2015 08:00:00 GMT\", \"TimeFormat\": \"Sun, 25 Jan 2015 08:00:00 GMT\"}",
"headers": {
"X-Amz-Target": "com.amazonaws.foo.OperationName",
"Content-Type": "application/x-amz-json-1.1"
},
"uri": "/"
}
}
]
},
{
"description": "Base64 encoded Blobs",
"metadata": {
"protocol": "json",
"jsonVersion": "1.1",
"targetPrefix": "com.amazonaws.foo"
},
"shapes": {
"InputShape": {
"type": "structure",
"members": {
"BlobArg": {
"shape": "BlobType"
},
"BlobMap": {
"shape": "BlobMapType"
}
}
},
"BlobType": {
"type": "blob"
},
"BlobMapType": {
"type": "map",
"key": {"shape": "StringType"},
"value": {"shape": "BlobType"}
},
"StringType": {
"type": "string"
}
},
"cases": [
{
"given": {
"input": {
"shape": "InputShape"
},
"name": "OperationName"
},
"params": {
"BlobArg": "foo"
},
"serialized": {
"body": "{\"BlobArg\": \"Zm9v\"}",
"headers": {
"X-Amz-Target": "com.amazonaws.foo.OperationName",
"Content-Type": "application/x-amz-json-1.1"
},
"uri": "/"
}
},
{
"given": {
"input": {
"shape": "InputShape"
},
"name": "OperationName"
},
"params": {
"BlobMap": {
"key1": "foo",
"key2": "bar"
}
},
"serialized": {
"body": "{\"BlobMap\": {\"key1\": \"Zm9v\", \"key2\": \"YmFy\"}}",
"headers": {
"X-Amz-Target": "com.amazonaws.foo.OperationName",
"Content-Type": "application/x-amz-json-1.1"
},
"uri": "/"
}
}
]
},
{
"description": "Nested blobs",
"metadata": {
"protocol": "json",
"jsonVersion": "1.1",
"targetPrefix": "com.amazonaws.foo"
},
"shapes": {
"InputShape": {
"type": "structure",
"members": {
"ListParam": {
"shape": "ListOfStructures"
}
}
},
"ListOfStructures": {
"type": "list",
"member": {
"shape": "BlobType"
}
},
"BlobType": {
"type": "blob"
}
},
"cases": [
{
"given": {
"http": {
"method": "POST"
},
"input": {
"shape": "InputShape"
},
"name": "OperationName"
},
"params": {
"ListParam": ["foo", "bar"]
},
"serialized": {
"body": "{\"ListParam\": [\"Zm9v\", \"YmFy\"]}",
"uri": "/",
"headers": {
"X-Amz-Target": "com.amazonaws.foo.OperationName",
"Content-Type": "application/x-amz-json-1.1"
}
}
}
]
},
{
"description": "Recursive shapes",
"metadata": {
"protocol": "json",
"jsonVersion": "1.1",
"targetPrefix": "com.amazonaws.foo"
},
"shapes": {
"InputShape": {
"type": "structure",
"members": {
"RecursiveStruct": {
"shape": "RecursiveStructType"
}
}
},
"RecursiveStructType": {
"type": "structure",
"members": {
"NoRecurse": {
"shape": "StringType"
},
"RecursiveStruct": {
"shape": "RecursiveStructType"
},
"RecursiveList": {
"shape": "RecursiveListType"
},
"RecursiveMap": {
"shape": "RecursiveMapType"
}
}
},
"RecursiveListType": {
"type": "list",
"member": {
"shape": "RecursiveStructType"
}
},
"RecursiveMapType": {
"type": "map",
"key": {
"shape": "StringType"
},
"value": {
"shape": "RecursiveStructType"
}
},
"StringType": {
"type": "string"
}
},
"cases": [
{
"given": {
"input": {
"shape": "InputShape"
},
"name": "OperationName"
},
"params": {
"RecursiveStruct": {
"NoRecurse": "foo"
}
},
"serialized": {
"uri": "/",
"headers": {
"X-Amz-Target": "com.amazonaws.foo.OperationName",
"Content-Type": "application/x-amz-json-1.1"
},
"body": "{\"RecursiveStruct\": {\"NoRecurse\": \"foo\"}}"
}
},
{
"given": {
"input": {
"shape": "InputShape"
},
"name": "OperationName"
},
"params": {
"RecursiveStruct": {
"RecursiveStruct": {
"NoRecurse": "foo"
}
}
},
"serialized": {
"uri": "/",
"headers": {
"X-Amz-Target": "com.amazonaws.foo.OperationName",
"Content-Type": "application/x-amz-json-1.1"
},
"body": "{\"RecursiveStruct\": {\"RecursiveStruct\": {\"NoRecurse\": \"foo\"}}}"
}
},
{
"given": {
"input": {
"shape": "InputShape"
},
"name": "OperationName"
},
"params": {
"RecursiveStruct": {
"RecursiveStruct": {
"RecursiveStruct": {
"RecursiveStruct": {
"NoRecurse": "foo"
}
}
}
}
},
"serialized": {
"uri": "/",
"headers": {
"X-Amz-Target": "com.amazonaws.foo.OperationName",
"Content-Type": "application/x-amz-json-1.1"
},
"body": "{\"RecursiveStruct\": {\"RecursiveStruct\": {\"RecursiveStruct\": {\"RecursiveStruct\": {\"NoRecurse\": \"foo\"}}}}}"
}
},
{
"given": {
"input": {
"shape": "InputShape"
},
"name": "OperationName"
},
"params": {
"RecursiveStruct": {
"RecursiveList": [
{
"NoRecurse": "foo"
},
{
"NoRecurse": "bar"
}
]
}
},
"serialized": {
"uri": "/",
"headers": {
"X-Amz-Target": "com.amazonaws.foo.OperationName",
"Content-Type": "application/x-amz-json-1.1"
},
"body": "{\"RecursiveStruct\": {\"RecursiveList\": [{\"NoRecurse\": \"foo\"}, {\"NoRecurse\": \"bar\"}]}}"
}
},
{
"given": {
"input": {
"shape": "InputShape"
},
"name": "OperationName"
},
"params": {
"RecursiveStruct": {
"RecursiveList": [
{
"NoRecurse": "foo"
},
{
"RecursiveStruct": {
"NoRecurse": "bar"
}
}
]
}
},
"serialized": {
"uri": "/",
"headers": {
"X-Amz-Target": "com.amazonaws.foo.OperationName",
"Content-Type": "application/x-amz-json-1.1"
},
"body": "{\"RecursiveStruct\": {\"RecursiveList\": [{\"NoRecurse\": \"foo\"}, {\"RecursiveStruct\": {\"NoRecurse\": \"bar\"}}]}}"
}
},
{
"given": {
"input": {
"shape": "InputShape"
},
"name": "OperationName"
},
"params": {
"RecursiveStruct": {
"RecursiveMap": {
"foo": {
"NoRecurse": "foo"
},
"bar": {
"NoRecurse": "bar"
}
}
}
},
"serialized": {
"uri": "/",
"headers": {
"X-Amz-Target": "com.amazonaws.foo.OperationName",
"Content-Type": "application/x-amz-json-1.1"
},
"body": "{\"RecursiveStruct\": {\"RecursiveMap\": {\"foo\": {\"NoRecurse\": \"foo\"}, \"bar\": {\"NoRecurse\": \"bar\"}}}}"
}
}
]
},
{
"description": "Empty maps",
"metadata": {
"protocol": "json",
"jsonVersion": "1.1",
"targetPrefix": "com.amazonaws.foo"
},
"shapes": {
"InputShape": {
"type": "structure",
"members": {
"Map": {
"shape": "MapType"
}
}
},
"MapType": {
"type": "map",
"key": {
"shape": "StringType"
},
"value": {
"shape": "StringType"
}
},
"StringType": {
"type": "string"
}
},
"cases": [
{
"given": {
"input": {
"shape": "InputShape"
},
"name": "OperationName",
"http": {
"method": "POST"
}
},
"params": {
"Map": {}
},
"serialized": {
"body": "{\"Map\": {}}",
"headers": {
"X-Amz-Target": "com.amazonaws.foo.OperationName",
"Content-Type": "application/x-amz-json-1.1"
},
"uri": "/"
}
}
]
},
{
"description": "Idempotency token auto fill",
"metadata": {
"protocol": "json",
"apiVersion": "2014-01-01",
"jsonVersion": "1.1",
"targetPrefix": "com.amazonaws.foo"
},
"shapes": {
"InputShape": {
"type": "structure",
"members": {
"Token": {
"shape": "StringType",
"idempotencyToken": true
}
}
},
"StringType": {
"type": "string"
}
},
"cases": [
{
"given": {
"input": {
"shape": "InputShape"
},
"http": {
"method": "POST"
},
"name": "OperationName"
},
"params": {
"Token": "abc123"
},
"serialized": {
"uri": "/",
"headers": {},
"body": "{\"Token\": \"abc123\"}"
}
},
{
"given": {
"input": {
"shape": "InputShape"
},
"http": {
"method": "POST"
},
"name": "OperationName"
},
"params": {
},
"serialized": {
"uri": "/",
"headers": {},
"body": "{\"Token\": \"00000000-0000-4000-8000-000000000000\"}"
}
}
]
}
]