[ { "description": "Basic XML serialization", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "Name": { "shape": "StringType" }, "Description": { "shape": "StringType" } } }, "StringType": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "Name": "foo", "Description": "bar" }, "serialized": { "method": "POST", "body": "foobar", "uri": "/2014-01-01/hostedzone", "headers": {} } }, { "given": { "http": { "method": "PUT", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "Name": "foo", "Description": "bar" }, "serialized": { "method": "PUT", "body": "foobar", "uri": "/2014-01-01/hostedzone", "headers": {} } }, { "given": { "http": { "method": "GET", "requestUri": "/2014-01-01/hostedzone" }, "name": "OperationName" }, "params": {}, "serialized": { "method": "GET", "body": "", "uri": "/2014-01-01/hostedzone", "headers": {} } } ] }, { "description": "Serialize other scalar types", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "First": { "shape": "BoolType" }, "Second": { "shape": "BoolType" }, "Third": { "shape": "FloatType" }, "Fourth": { "shape": "IntegerType" } } }, "BoolType": { "type": "boolean" }, "FloatType": { "type": "float" }, "IntegerType": { "type": "integer" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "First": true, "Second": false, "Third": 1.2, "Fourth": 3 }, "serialized": { "method": "POST", "body": "truefalse1.23", "uri": "/2014-01-01/hostedzone", "headers": {} } } ] }, { "description": "Nested structures", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "SubStructure": { "shape": "SubStructure" }, "Description": { "shape": "StringType" } } }, "SubStructure": { "type": "structure", "members": { "Foo": { "shape": "StringType" }, "Bar": { "shape": "StringType" } } }, "StringType": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "SubStructure": { "Foo": "a", "Bar": "b" }, "Description": "baz" }, "serialized": { "method": "POST", "body": "abbaz", "uri": "/2014-01-01/hostedzone", "headers": {} } }, { "given": { "http": { "method": "POST", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "SubStructure": { "Foo": "a", "Bar": null }, "Description": "baz" }, "serialized": { "method": "POST", "body": "abaz", "uri": "/2014-01-01/hostedzone", "headers": {} } } ] }, { "description": "Nested structures", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "SubStructure": { "shape": "SubStructure" }, "Description": { "shape": "StringType" } } }, "SubStructure": { "type": "structure", "members": { "Foo": { "shape": "StringType" }, "Bar": { "shape": "StringType" } } }, "StringType": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "SubStructure": {}, "Description": "baz" }, "serialized": { "method": "POST", "body": "baz", "uri": "/2014-01-01/hostedzone", "headers": {} } } ] }, { "description": "Non flattened lists", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "ListParam": { "shape": "ListShape" } } }, "ListShape": { "type": "list", "member": { "shape": "StringType" } }, "StringType": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "ListParam": [ "one", "two", "three" ] }, "serialized": { "method": "POST", "body": "onetwothree", "uri": "/2014-01-01/hostedzone", "headers": {} } } ] }, { "description": "Non flattened lists with locationName", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "ListParam": { "shape": "ListShape", "locationName": "AlternateName" } } }, "ListShape": { "type": "list", "member": { "shape": "StringType", "locationName": "NotMember" } }, "StringType": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "ListParam": [ "one", "two", "three" ] }, "serialized": { "method": "POST", "body": "onetwothree", "uri": "/2014-01-01/hostedzone", "headers": {} } } ] }, { "description": "Flattened lists", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "ListParam": { "shape": "ListShape" } } }, "ListShape": { "type": "list", "member": { "shape": "StringType" }, "flattened": true }, "StringType": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "ListParam": [ "one", "two", "three" ] }, "serialized": { "method": "POST", "body": "onetwothree", "uri": "/2014-01-01/hostedzone", "headers": {} } } ] }, { "description": "Flattened lists with locationName", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "ListParam": { "shape": "ListShape", "locationName": "item" } } }, "ListShape": { "type": "list", "member": { "shape": "StringType" }, "flattened": true }, "StringType": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "ListParam": [ "one", "two", "three" ] }, "serialized": { "method": "POST", "body": "onetwothree", "uri": "/2014-01-01/hostedzone", "headers": {} } } ] }, { "description": "List of structures", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "ListParam": { "shape": "ListShape", "locationName": "item" } } }, "ListShape": { "type": "list", "member": { "shape": "SingleFieldStruct" }, "flattened": true }, "StringType": { "type": "string" }, "SingleFieldStruct": { "type": "structure", "members": { "Element": { "shape": "StringType", "locationName": "value" } } } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "ListParam": [ { "Element": "one" }, { "Element": "two" }, { "Element": "three" } ] }, "serialized": { "method": "POST", "body": "onetwothree", "uri": "/2014-01-01/hostedzone", "headers": {} } } ] }, { "description": "Blob shapes", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "StructureParam": { "shape": "StructureShape" } } }, "StructureShape": { "type": "structure", "members": { "b": { "shape": "BShape" } } }, "BShape": { "type": "blob" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "StructureParam": { "b": "foo" } }, "serialized": { "method": "POST", "body": "Zm9v", "uri": "/2014-01-01/hostedzone", "headers": {} } } ] }, { "description": "Timestamp shapes", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "TimeArg": { "shape": "TimestampType" }, "TimeArgInHeader": { "shape": "TimestampType", "location": "header", "locationName": "x-amz-timearg" }, "TimeArgInQuery": { "shape": "TimestampType", "location": "querystring", "locationName": "TimeQuery" }, "TimeCustom": { "timestampFormat": "rfc822", "shape": "TimestampType" }, "TimeCustomInHeader": { "timestampFormat": "unixTimestamp", "shape": "TimestampType", "location": "header", "locationName": "x-amz-timecustom-header" }, "TimeCustomInQuery": { "timestampFormat": "unixTimestamp", "shape": "TimestampType", "location": "querystring", "locationName": "TimeCustomQuery" }, "TimeFormat": { "shape": "TimestampFormatRfcType" }, "TimeFormatInHeader": { "shape": "TimestampFormatUnixType", "location": "header", "locationName": "x-amz-timeformat-header" }, "TimeFormatInQuery": { "shape": "TimestampFormatUnixType", "location": "querystring", "locationName": "TimeFormatQuery" } } }, "TimestampFormatRfcType": { "timestampFormat": "rfc822", "type": "timestamp" }, "TimestampFormatUnixType": { "timestampFormat": "unixTimestamp", "type": "timestamp" }, "TimestampType": { "type": "timestamp" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/2014-01-01/hostedzone" }, "input": { "shape": "InputShape", "locationName": "TimestampStructure", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "TimeArg": 1422172800, "TimeArgInQuery": 1422172800, "TimeArgInHeader": 1422172800, "TimeCustom": 1422172800, "TimeCustomInQuery": 1422172800, "TimeCustomInHeader": 1422172800, "TimeFormat": 1422172800, "TimeFormatInQuery": 1422172800, "TimeFormatInHeader": 1422172800 }, "serialized": { "method": "POST", "body": "2015-01-25T08:00:00ZSun, 25 Jan 2015 08:00:00 GMTSun, 25 Jan 2015 08:00:00 GMT", "uri": "/2014-01-01/hostedzone?TimeQuery=2015-01-25T08%3A00%3A00Z&TimeCustomQuery=1422172800&TimeFormatQuery=1422172800", "headers": { "x-amz-timearg": "Sun, 25 Jan 2015 08:00:00 GMT", "x-amz-timecustom-header": "1422172800", "x-amz-timeformat-header": "1422172800" } } } ] }, { "description": "Header maps", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "foo": { "shape": "FooShape" } } }, "FooShape": { "type": "map", "location": "headers", "locationName": "x-foo-", "key": { "shape": "FooKeyValue" }, "value": { "shape": "FooKeyValue" } }, "FooKeyValue": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/" }, "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "name": "OperationName" }, "params": { "foo": { "a": "b", "c": "d" } }, "serialized": { "method": "POST", "body": "", "uri": "/", "headers": { "x-foo-a": "b", "x-foo-c": "d" } } } ] }, { "description": "Querystring list of strings", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "Items": { "shape": "StringList", "location": "querystring", "locationName": "item" } } }, "StringList": { "type": "list", "member": { "shape": "String" } }, "String": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "GET", "requestUri": "/path" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { "Items": ["value1", "value2"] }, "serialized": { "body": "", "uri": "/path?item=value1&item=value2", "headers": {} } } ] }, { "description": "String to string maps in querystring", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "PipelineId": { "shape": "StringType", "location": "uri" }, "QueryDoc": { "shape": "MapStringStringType", "location": "querystring" } } }, "MapStringStringType": { "type": "map", "key": { "shape": "StringType" }, "value": { "shape": "StringType" } }, "StringType": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "GET", "requestUri": "/2014-01-01/jobsByPipeline/{PipelineId}" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { "PipelineId": "foo", "QueryDoc": { "bar": "baz", "fizz": "buzz" } }, "serialized": { "body": "", "uri": "/2014-01-01/jobsByPipeline/foo?bar=baz&fizz=buzz", "headers": {} } } ] }, { "description": "String to string list maps in querystring", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "PipelineId": { "shape": "StringType", "location": "uri" }, "QueryDoc": { "shape": "MapStringStringListType", "location": "querystring" } } }, "MapStringStringListType": { "type": "map", "key": { "shape": "StringType" }, "value": { "shape": "StringListType" } }, "StringListType": { "type": "list", "member": { "shape": "StringType" } }, "StringType": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "GET", "requestUri": "/2014-01-01/jobsByPipeline/{PipelineId}" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { "PipelineId": "id", "QueryDoc": { "foo": ["bar", "baz"], "fizz": ["buzz", "pop"] } }, "serialized": { "body": "", "uri": "/2014-01-01/jobsByPipeline/id?foo=bar&foo=baz&fizz=buzz&fizz=pop", "headers": {} } } ] }, { "description": "Boolean in querystring", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "BoolQuery": { "shape": "BoolType", "location": "querystring", "locationName": "bool-query" } } }, "BoolType": { "type": "boolean" } }, "cases": [ { "given": { "http": { "method": "GET", "requestUri": "/path" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { "BoolQuery": true }, "serialized": { "body": "", "uri": "/path?bool-query=true", "headers": {} } }, { "given": { "http": { "method": "GET", "requestUri": "/path" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { "BoolQuery": false }, "serialized": { "body": "", "uri": "/path?bool-query=false", "headers": {} } } ] }, { "description": "String payload", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "foo": { "shape": "FooShape" } }, "payload": "foo" }, "FooShape": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { "foo": "bar" }, "serialized": { "method": "POST", "body": "bar", "uri": "/" } } ] }, { "description": "Blob payload", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "foo": { "shape": "FooShape" } }, "payload": "foo" }, "FooShape": { "type": "blob" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { "foo": "bar" }, "serialized": { "method": "POST", "body": "bar", "uri": "/" } }, { "given": { "http": { "method": "POST", "requestUri": "/" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { }, "serialized": { "method": "POST", "body": "", "uri": "/" } } ] }, { "description": "Structure payload", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "foo": { "shape": "FooShape" } }, "payload": "foo" }, "FooShape": { "locationName": "foo", "type": "structure", "members": { "baz": { "shape": "BazShape" } } }, "BazShape": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { "foo": { "baz": "bar" } }, "serialized": { "method": "POST", "body": "bar", "uri": "/" } }, { "given": { "http": { "method": "POST", "requestUri": "/" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": {}, "serialized": { "method": "POST", "body": "", "uri": "/" } }, { "given": { "http": { "method": "POST", "requestUri": "/" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { "foo": {} }, "serialized": { "method": "POST", "body": "", "uri": "/" } }, { "given": { "http": { "method": "POST", "requestUri": "/" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { "foo": null }, "serialized": { "method": "POST", "body": "", "uri": "/" } } ] }, { "description": "XML Attribute", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "Grant": { "shape": "Grant" } }, "payload": "Grant" }, "Grant": { "type": "structure", "locationName": "Grant", "members": { "Grantee": { "shape": "Grantee" } } }, "Grantee": { "type": "structure", "members": { "Type": { "shape": "Type", "locationName": "xsi:type", "xmlAttribute": true }, "EmailAddress": { "shape": "StringType" } }, "xmlNamespace": { "prefix": "xsi", "uri":"http://www.w3.org/2001/XMLSchema-instance" } }, "Type": { "type": "string" }, "StringType": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "POST", "requestUri": "/" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { "Grant": { "Grantee": { "EmailAddress": "foo@example.com", "Type": "CanonicalUser" } } }, "serialized": { "method": "POST", "body": "foo@example.com", "uri": "/" } } ] }, { "description": "Greedy keys", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "Bucket": { "shape": "BucketShape", "location": "uri" }, "Key": { "shape": "KeyShape", "location": "uri" } } }, "BucketShape": { "type": "string" }, "KeyShape": { "type": "string" } }, "cases": [ { "given": { "http": { "method": "GET", "requestUri": "/{Bucket}/{Key+}" }, "input": { "shape": "InputShape" }, "name": "OperationName" }, "params": { "Key": "testing /123", "Bucket": "my/bucket" }, "serialized": { "method": "GET", "body": "", "uri": "/my%2Fbucket/testing%20/123" } } ] }, { "description": "Omits null query params, but serializes empty strings", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "foo": { "location":"querystring", "locationName":"param-name", "shape": "Foo" } } }, "Foo": { "type": "string" } }, "cases": [ { "given": { "name": "OperationName", "http": { "method": "POST", "requestUri": "/path" }, "input": { "shape": "InputShape" } }, "params": { "foo": null }, "serialized": { "method": "POST", "body": "", "uri": "/path" } }, { "given": { "name": "OperationName", "http": { "method": "POST", "requestUri": "/path?abc=mno" }, "input": { "shape": "InputShape" } }, "params": { "foo": "" }, "serialized": { "method": "POST", "body": "", "uri": "/path?abc=mno¶m-name=" } } ] }, { "description": "Recursive shapes", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "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", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "http": { "method": "POST", "requestUri": "/path" }, "name": "OperationName" }, "params": { "RecursiveStruct": { "NoRecurse": "foo" } }, "serialized": { "uri": "/path", "body": "foo" } }, { "given": { "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "http": { "method": "POST", "requestUri": "/path" }, "name": "OperationName" }, "params": { "RecursiveStruct": { "RecursiveStruct": { "NoRecurse": "foo" } } }, "serialized": { "uri": "/path", "body": "foo" } }, { "given": { "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "http": { "method": "POST", "requestUri": "/path" }, "name": "OperationName" }, "params": { "RecursiveStruct": { "RecursiveStruct": { "RecursiveStruct": { "RecursiveStruct": { "NoRecurse": "foo" } } } } }, "serialized": { "uri": "/path", "body": "foo" } }, { "given": { "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "http": { "method": "POST", "requestUri": "/path" }, "name": "OperationName" }, "params": { "RecursiveStruct": { "RecursiveList": [ { "NoRecurse": "foo" }, { "NoRecurse": "bar" } ] } }, "serialized": { "uri": "/path", "body": "foobar" } }, { "given": { "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "http": { "method": "POST", "requestUri": "/path" }, "name": "OperationName" }, "params": { "RecursiveStruct": { "RecursiveList": [ { "NoRecurse": "foo" }, { "RecursiveStruct": { "NoRecurse": "bar" } } ] } }, "serialized": { "uri": "/path", "body": "foobar" } }, { "given": { "input": { "shape": "InputShape", "locationName": "OperationRequest", "xmlNamespace": {"uri": "https://foo/"} }, "http": { "method": "POST", "requestUri": "/path" }, "name": "OperationName" }, "params": { "RecursiveStruct": { "RecursiveMap": { "foo": { "NoRecurse": "foo" }, "bar": { "NoRecurse": "bar" } } } }, "serialized": { "uri": "/path", "body": "foofoobarbar" } } ] }, { "description": "Idempotency token auto fill", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "Token": { "shape": "StringType", "idempotencyToken": true } } }, "StringType": { "type": "string" } }, "cases": [ { "given": { "input": { "shape": "InputShape" }, "http": { "method": "POST", "requestUri": "/path" }, "name": "OperationName" }, "params": { "Token": "abc123" }, "serialized": { "uri": "/path", "headers": {}, "body": "abc123" } }, { "given": { "input": { "shape": "InputShape" }, "http": { "method": "POST", "requestUri": "/path" }, "name": "OperationName" }, "params": { }, "serialized": { "uri": "/path", "headers": {}, "body": "00000000-0000-4000-8000-000000000000" } } ] }, { "description": "JSON value trait", "metadata": { "protocol": "rest-xml", "apiVersion": "2014-01-01" }, "shapes": { "InputShape": { "type": "structure", "members": { "Attr": { "shape": "StringType", "jsonvalue": true, "location": "header", "locationName": "X-Amz-Foo" } } }, "StringType": { "type": "string" } }, "cases": [ { "given": { "input": { "shape": "InputShape" }, "http": { "method": "POST", "requestUri": "/path" }, "name": "OperationName" }, "params": { "Attr": {"Foo":"Bar"} }, "serialized": { "uri": "/path", "headers": {"X-Amz-Foo": "eyJGb28iOiJCYXIifQ=="}, "body": "" } }, { "given": { "input": { "shape": "InputShape" }, "http": { "method": "POST", "requestUri": "/path" }, "name": "OperationName" }, "params": { }, "serialized": { "uri": "/path", "headers": {}, "body": "" } } ] } ]