| [ |
| { |
| "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": "<OperationRequest xmlns=\"https://foo/\"><Name>foo</Name><Description>bar</Description></OperationRequest>", |
| "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": "<OperationRequest xmlns=\"https://foo/\"><Name>foo</Name><Description>bar</Description></OperationRequest>", |
| "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": "<OperationRequest xmlns=\"https://foo/\"><First>true</First><Second>false</Second><Third>1.2</Third><Fourth>3</Fourth></OperationRequest>", |
| "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": "<OperationRequest xmlns=\"https://foo/\"><SubStructure><Foo>a</Foo><Bar>b</Bar></SubStructure><Description>baz</Description></OperationRequest>", |
| "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": "<OperationRequest xmlns=\"https://foo/\"><SubStructure><Foo>a</Foo></SubStructure><Description>baz</Description></OperationRequest>", |
| "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": "<OperationRequest xmlns=\"https://foo/\"><SubStructure /><Description>baz</Description></OperationRequest>", |
| "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": "<OperationRequest xmlns=\"https://foo/\"><ListParam><member>one</member><member>two</member><member>three</member></ListParam></OperationRequest>", |
| "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": "<OperationRequest xmlns=\"https://foo/\"><AlternateName><NotMember>one</NotMember><NotMember>two</NotMember><NotMember>three</NotMember></AlternateName></OperationRequest>", |
| "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": "<OperationRequest xmlns=\"https://foo/\"><ListParam>one</ListParam><ListParam>two</ListParam><ListParam>three</ListParam></OperationRequest>", |
| "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": "<OperationRequest xmlns=\"https://foo/\"><item>one</item><item>two</item><item>three</item></OperationRequest>", |
| "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": "<OperationRequest xmlns=\"https://foo/\"><item><value>one</value></item><item><value>two</value></item><item><value>three</value></item></OperationRequest>", |
| "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": "<OperationRequest xmlns=\"https://foo/\"><StructureParam><b>Zm9v</b></StructureParam></OperationRequest>", |
| "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": "<TimestampStructure xmlns=\"https://foo/\"><TimeArg>2015-01-25T08:00:00Z</TimeArg><TimeCustom>Sun, 25 Jan 2015 08:00:00 GMT</TimeCustom><TimeFormat>Sun, 25 Jan 2015 08:00:00 GMT</TimeFormat></TimestampStructure>", |
| "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": "<foo><baz>bar</baz></foo>", |
| "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": "<foo />", |
| "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": "<Grant><Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\"><EmailAddress>foo@example.com</EmailAddress></Grantee></Grant>", |
| "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": "<OperationRequest xmlns=\"https://foo/\"><RecursiveStruct><NoRecurse>foo</NoRecurse></RecursiveStruct></OperationRequest>" |
| } |
| }, |
| { |
| "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": "<OperationRequest xmlns=\"https://foo/\"><RecursiveStruct><RecursiveStruct><NoRecurse>foo</NoRecurse></RecursiveStruct></RecursiveStruct></OperationRequest>" |
| } |
| }, |
| { |
| "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": "<OperationRequest xmlns=\"https://foo/\"><RecursiveStruct><RecursiveStruct><RecursiveStruct><RecursiveStruct><NoRecurse>foo</NoRecurse></RecursiveStruct></RecursiveStruct></RecursiveStruct></RecursiveStruct></OperationRequest>" |
| } |
| }, |
| { |
| "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": "<OperationRequest xmlns=\"https://foo/\"><RecursiveStruct><RecursiveList><member><NoRecurse>foo</NoRecurse></member><member><NoRecurse>bar</NoRecurse></member></RecursiveList></RecursiveStruct></OperationRequest>" |
| } |
| }, |
| { |
| "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": "<OperationRequest xmlns=\"https://foo/\"><RecursiveStruct><RecursiveList><member><NoRecurse>foo</NoRecurse></member><member><RecursiveStruct><NoRecurse>bar</NoRecurse></RecursiveStruct></member></RecursiveList></RecursiveStruct></OperationRequest>" |
| } |
| }, |
| { |
| "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": "<OperationRequest xmlns=\"https://foo/\"><RecursiveStruct><RecursiveMap><entry><key>bar</key><value><NoRecurse>bar</NoRecurse></value></entry><entry><key>foo</key><value><NoRecurse>foo</NoRecurse></value></entry></RecursiveMap></RecursiveStruct></OperationRequest>" |
| } |
| } |
| ] |
| }, |
| { |
| "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": "<InputShape><Token>abc123</Token></InputShape>" |
| } |
| }, |
| { |
| "given": { |
| "input": { |
| "shape": "InputShape" |
| }, |
| "http": { |
| "method": "POST", |
| "requestUri": "/path" |
| }, |
| "name": "OperationName" |
| }, |
| "params": { |
| }, |
| "serialized": { |
| "uri": "/path", |
| "headers": {}, |
| "body": "<InputShape><Token>00000000-0000-4000-8000-000000000000</Token></InputShape>" |
| } |
| } |
| ] |
| }, |
| { |
| "description": "Enum", |
| "metadata": { |
| "protocol": "rest-xml", |
| "apiVersion": "2014-01-01" |
| }, |
| "shapes": { |
| "InputShape": { |
| "type": "structure", |
| "required": [ |
| "URIFooEnum" |
| ], |
| "members": { |
| "HeaderEnum": { |
| "shape": "EnumType", |
| "location": "header", |
| "locationName": "x-amz-enum" |
| }, |
| "FooEnum": { |
| "shape": "EnumType" |
| }, |
| "URIFooEnum": { |
| "shape": "EnumType", |
| "location": "uri", |
| "locationName": "URIEnum" |
| }, |
| "ListEnums": { |
| "shape": "EnumList" |
| }, |
| "URIListEnums": { |
| "shape": "EnumList", |
| "location": "querystring", |
| "locationName": "ListEnums" |
| } |
| } |
| }, |
| "EnumType":{ |
| "type":"string", |
| "enum":[ |
| "foo", |
| "bar", |
| "0", |
| "1" |
| ] |
| }, |
| "EnumList":{ |
| "type":"list", |
| "member": {"shape": "EnumType"} |
| } |
| }, |
| "cases": [ |
| { |
| "given": { |
| "input": { |
| "shape": "InputShape" |
| }, |
| "http": { |
| "method": "POST", |
| "requestUri": "/Enum/{URIEnum}" |
| }, |
| "name": "OperationName" |
| }, |
| "params": { |
| "HeaderEnum": "baz", |
| "FooEnum": "foo", |
| "URIFooEnum": "bar", |
| "ListEnums": ["foo", "", "bar"], |
| "URIListEnums": ["0", "", "1"] |
| }, |
| "serialized": { |
| "uri": "/Enum/bar?ListEnums=0&ListEnums=&ListEnums=1", |
| "headers": {"x-amz-enum": "baz"}, |
| "body": "<InputShape><FooEnum>foo</FooEnum><ListEnums><member>foo</member><member></member><member>bar</member></ListEnums></InputShape>" |
| } |
| }, |
| { |
| "given": { |
| "input": { |
| "shape": "InputShape" |
| }, |
| "http": { |
| "method": "POST", |
| "requestUri": "/Enum/{URIEnum}" |
| }, |
| "name": "OperationName" |
| }, |
| "params": { |
| "URIFooEnum": "bar" |
| }, |
| "serialized": { |
| "uri": "/Enum/bar", |
| "headers": {} |
| } |
| } |
| ] |
| }, |
| { |
| "description": "Endpoint host trait", |
| "metadata": { |
| "protocol": "rest-xml", |
| "apiVersion": "2014-01-01" |
| }, |
| "clientEndpoint": "https://service.region.amazonaws.com", |
| "shapes": { |
| "StaticInputShape": { |
| "type": "structure", |
| "members": { |
| "Name": { |
| "shape": "StringType" |
| } |
| } |
| }, |
| "MemberRefInputShape": { |
| "type": "structure", |
| "members": { |
| "Name": { |
| "shape": "StringType", |
| "hostLabel": true |
| } |
| } |
| }, |
| "StringType": { |
| "type": "string" |
| } |
| }, |
| "cases": [ |
| { |
| "given": { |
| "name": "StaticOp", |
| "input": { |
| "shape": "StaticInputShape", |
| "locationName": "StaticOpRequest" |
| }, |
| "http": { |
| "method": "POST", |
| "requestUri": "/path" |
| }, |
| "endpoint":{ |
| "hostPrefix": "data-" |
| } |
| }, |
| "params": { |
| "Name": "myname" |
| }, |
| "serialized": { |
| "uri": "/path", |
| "body": "<StaticOpRequest><Name>myname</Name></StaticOpRequest>", |
| "host": "data-service.region.amazonaws.com" |
| } |
| }, |
| { |
| "given": { |
| "name": "MemberRefOp", |
| "input": { |
| "shape": "MemberRefInputShape", |
| "locationName": "MemberRefOpRequest" |
| }, |
| "http": { |
| "method": "POST", |
| "requestUri": "/path" |
| }, |
| "endpoint":{ |
| "hostPrefix": "foo-{Name}." |
| } |
| }, |
| "params": { |
| "Name": "myname" |
| }, |
| "serialized": { |
| "uri": "/path", |
| "body": "<MemberRefOpRequest><Name>myname</Name></MemberRefOpRequest>", |
| "host": "foo-myname.service.region.amazonaws.com" |
| } |
| } |
| ] |
| }, |
| { |
| "description": "Header whitespace", |
| "metadata": { |
| "protocol": "rest-xml", |
| "apiVersion": "2014-01-01" |
| }, |
| "shapes": { |
| "InputShape": { |
| "type": "structure", |
| "members": { |
| "Header1": { |
| "shape": "StringType", |
| "location": "header" |
| }, |
| "HeaderMap": { |
| "shape": "StringMap", |
| "location": "headers", |
| "locationName": "header-map-" |
| } |
| } |
| }, |
| "StringType": { |
| "type": "string" |
| }, |
| "StringMap": { |
| "type": "map", |
| "key": { |
| "shape": "StringType" |
| }, |
| "value": { |
| "shape": "StringType" |
| } |
| } |
| }, |
| "cases": [ |
| { |
| "given": { |
| "http": { |
| "method": "GET", |
| "requestUri": "/" |
| }, |
| "input": { |
| "shape": "InputShape" |
| }, |
| "name": "OperationName" |
| }, |
| "params": { |
| "Header1": " headerValue", |
| "HeaderMap": { |
| "leading-space": " value", |
| "with-space": " value ", |
| "leading-tab": " value", |
| " key-leading-space": "value", |
| " key-with-space ": "value" |
| } |
| }, |
| "serialized": { |
| "body": "", |
| "uri": "/", |
| "headers": { |
| "header1": "headerValue", |
| "header-map-leading-space": "value", |
| "header-map-with-space": "value", |
| "header-map-leading-tab": "value", |
| "header-map-key-leading-space": "value", |
| "header-map-key-with-space": "value" |
| } |
| } |
| } |
| ] |
| } |
| ] |