github.com/aavshr/aws-sdk-go@v1.41.3/models/protocol_tests/input/rest-xml.json (about)

     1  [
     2    {
     3      "description": "Basic XML serialization",
     4      "metadata": {
     5        "protocol": "rest-xml",
     6        "apiVersion": "2014-01-01"
     7      },
     8      "shapes": {
     9        "InputShape": {
    10          "type": "structure",
    11          "members": {
    12            "Name": {
    13              "shape": "StringType"
    14            },
    15            "Description": {
    16              "shape": "StringType"
    17            }
    18          }
    19        },
    20        "StringType": {
    21          "type": "string"
    22        }
    23      },
    24      "cases": [
    25        {
    26          "given": {
    27            "http": {
    28              "method": "POST",
    29              "requestUri": "/2014-01-01/hostedzone"
    30            },
    31            "input": {
    32              "shape": "InputShape",
    33              "locationName": "OperationRequest",
    34              "xmlNamespace": {"uri": "https://foo/"}
    35            },
    36            "name": "OperationName"
    37          },
    38          "params": {
    39            "Name": "foo",
    40            "Description": "bar"
    41          },
    42          "serialized": {
    43            "method": "POST",
    44            "body": "<OperationRequest xmlns=\"https://foo/\"><Name>foo</Name><Description>bar</Description></OperationRequest>",
    45            "uri": "/2014-01-01/hostedzone",
    46            "headers": {}
    47          }
    48        },
    49        {
    50          "given": {
    51            "http": {
    52              "method": "PUT",
    53              "requestUri": "/2014-01-01/hostedzone"
    54            },
    55            "input": {
    56              "shape": "InputShape",
    57              "locationName": "OperationRequest",
    58              "xmlNamespace": {"uri": "https://foo/"}
    59            },
    60            "name": "OperationName"
    61          },
    62          "params": {
    63            "Name": "foo",
    64            "Description": "bar"
    65          },
    66          "serialized": {
    67            "method": "PUT",
    68            "body": "<OperationRequest xmlns=\"https://foo/\"><Name>foo</Name><Description>bar</Description></OperationRequest>",
    69            "uri": "/2014-01-01/hostedzone",
    70            "headers": {}
    71          }
    72        },
    73        {
    74          "given": {
    75            "http": {
    76              "method": "GET",
    77              "requestUri": "/2014-01-01/hostedzone"
    78            },
    79            "name": "OperationName"
    80          },
    81          "params": {},
    82          "serialized": {
    83            "method": "GET",
    84            "body": "",
    85            "uri": "/2014-01-01/hostedzone",
    86            "headers": {}
    87          }
    88        }
    89      ]
    90    },
    91    {
    92      "description": "Serialize other scalar types",
    93      "metadata": {
    94        "protocol": "rest-xml",
    95        "apiVersion": "2014-01-01"
    96      },
    97      "shapes": {
    98        "InputShape": {
    99          "type": "structure",
   100          "members": {
   101            "First": {
   102              "shape": "BoolType"
   103            },
   104            "Second": {
   105              "shape": "BoolType"
   106            },
   107            "Third": {
   108              "shape": "FloatType"
   109            },
   110            "Fourth": {
   111              "shape": "IntegerType"
   112            }
   113          }
   114        },
   115        "BoolType": {
   116          "type": "boolean"
   117        },
   118        "FloatType": {
   119          "type": "float"
   120        },
   121        "IntegerType": {
   122          "type": "integer"
   123        }
   124      },
   125      "cases": [
   126        {
   127          "given": {
   128            "http": {
   129              "method": "POST",
   130              "requestUri": "/2014-01-01/hostedzone"
   131            },
   132            "input": {
   133              "shape": "InputShape",
   134              "locationName": "OperationRequest",
   135              "xmlNamespace": {"uri": "https://foo/"}
   136            },
   137            "name": "OperationName"
   138          },
   139          "params": {
   140            "First": true,
   141            "Second": false,
   142            "Third": 1.2,
   143            "Fourth": 3
   144          },
   145          "serialized": {
   146            "method": "POST",
   147            "body": "<OperationRequest xmlns=\"https://foo/\"><First>true</First><Second>false</Second><Third>1.2</Third><Fourth>3</Fourth></OperationRequest>",
   148            "uri": "/2014-01-01/hostedzone",
   149            "headers": {}
   150          }
   151        }
   152      ]
   153    },
   154    {
   155      "description": "Nested structures",
   156      "metadata": {
   157        "protocol": "rest-xml",
   158        "apiVersion": "2014-01-01"
   159      },
   160      "shapes": {
   161        "InputShape": {
   162          "type": "structure",
   163          "members": {
   164            "SubStructure": {
   165              "shape": "SubStructure"
   166            },
   167            "Description": {
   168              "shape": "StringType"
   169            }
   170          }
   171        },
   172        "SubStructure": {
   173          "type": "structure",
   174          "members": {
   175            "Foo": {
   176              "shape": "StringType"
   177            },
   178            "Bar": {
   179              "shape": "StringType"
   180            }
   181          }
   182        },
   183        "StringType": {
   184          "type": "string"
   185        }
   186      },
   187      "cases": [
   188        {
   189          "given": {
   190            "http": {
   191              "method": "POST",
   192              "requestUri": "/2014-01-01/hostedzone"
   193            },
   194            "input": {
   195              "shape": "InputShape",
   196              "locationName": "OperationRequest",
   197              "xmlNamespace": {"uri": "https://foo/"}
   198            },
   199            "name": "OperationName"
   200          },
   201          "params": {
   202            "SubStructure": {
   203              "Foo": "a",
   204              "Bar": "b"
   205            },
   206            "Description": "baz"
   207          },
   208          "serialized": {
   209            "method": "POST",
   210            "body": "<OperationRequest xmlns=\"https://foo/\"><SubStructure><Foo>a</Foo><Bar>b</Bar></SubStructure><Description>baz</Description></OperationRequest>",
   211            "uri": "/2014-01-01/hostedzone",
   212            "headers": {}
   213          }
   214        },
   215        {
   216          "given": {
   217            "http": {
   218              "method": "POST",
   219              "requestUri": "/2014-01-01/hostedzone"
   220            },
   221            "input": {
   222              "shape": "InputShape",
   223              "locationName": "OperationRequest",
   224              "xmlNamespace": {"uri": "https://foo/"}
   225            },
   226            "name": "OperationName"
   227          },
   228          "params": {
   229            "SubStructure": {
   230              "Foo": "a",
   231              "Bar": null
   232            },
   233            "Description": "baz"
   234          },
   235          "serialized": {
   236            "method": "POST",
   237            "body": "<OperationRequest xmlns=\"https://foo/\"><SubStructure><Foo>a</Foo></SubStructure><Description>baz</Description></OperationRequest>",
   238            "uri": "/2014-01-01/hostedzone",
   239            "headers": {}
   240          }
   241        }
   242      ]
   243    },
   244    {
   245      "description": "Nested structures",
   246      "metadata": {
   247        "protocol": "rest-xml",
   248        "apiVersion": "2014-01-01"
   249      },
   250      "shapes": {
   251        "InputShape": {
   252          "type": "structure",
   253          "members": {
   254            "SubStructure": {
   255              "shape": "SubStructure"
   256            },
   257            "Description": {
   258              "shape": "StringType"
   259            }
   260          }
   261        },
   262        "SubStructure": {
   263          "type": "structure",
   264          "members": {
   265            "Foo": {
   266              "shape": "StringType"
   267            },
   268            "Bar": {
   269              "shape": "StringType"
   270            }
   271          }
   272        },
   273        "StringType": {
   274          "type": "string"
   275        }
   276      },
   277      "cases": [
   278        {
   279          "given": {
   280            "http": {
   281              "method": "POST",
   282              "requestUri": "/2014-01-01/hostedzone"
   283            },
   284            "input": {
   285              "shape": "InputShape",
   286              "locationName": "OperationRequest",
   287              "xmlNamespace": {"uri": "https://foo/"}
   288            },
   289            "name": "OperationName"
   290          },
   291          "params": {
   292            "SubStructure": {},
   293            "Description": "baz"
   294          },
   295          "serialized": {
   296            "method": "POST",
   297            "body": "<OperationRequest xmlns=\"https://foo/\"><SubStructure /><Description>baz</Description></OperationRequest>",
   298            "uri": "/2014-01-01/hostedzone",
   299            "headers": {}
   300          }
   301        }
   302      ]
   303    },
   304    {
   305      "description": "Non flattened lists",
   306      "metadata": {
   307        "protocol": "rest-xml",
   308        "apiVersion": "2014-01-01"
   309      },
   310      "shapes": {
   311        "InputShape": {
   312          "type": "structure",
   313          "members": {
   314            "ListParam": {
   315              "shape": "ListShape"
   316            }
   317          }
   318        },
   319        "ListShape": {
   320          "type": "list",
   321          "member": {
   322            "shape": "StringType"
   323          }
   324        },
   325        "StringType": {
   326          "type": "string"
   327        }
   328      },
   329      "cases": [
   330        {
   331          "given": {
   332            "http": {
   333              "method": "POST",
   334              "requestUri": "/2014-01-01/hostedzone"
   335            },
   336            "input": {
   337              "shape": "InputShape",
   338              "locationName": "OperationRequest",
   339              "xmlNamespace": {"uri": "https://foo/"}
   340            },
   341            "name": "OperationName"
   342          },
   343          "params": {
   344            "ListParam": [
   345              "one",
   346              "two",
   347              "three"
   348            ]
   349          },
   350          "serialized": {
   351            "method": "POST",
   352            "body": "<OperationRequest xmlns=\"https://foo/\"><ListParam><member>one</member><member>two</member><member>three</member></ListParam></OperationRequest>",
   353            "uri": "/2014-01-01/hostedzone",
   354            "headers": {}
   355          }
   356        }
   357      ]
   358    },
   359    {
   360      "description": "Non flattened lists with locationName",
   361      "metadata": {
   362        "protocol": "rest-xml",
   363        "apiVersion": "2014-01-01"
   364      },
   365      "shapes": {
   366        "InputShape": {
   367          "type": "structure",
   368          "members": {
   369            "ListParam": {
   370              "shape": "ListShape",
   371              "locationName": "AlternateName"
   372            }
   373          }
   374        },
   375        "ListShape": {
   376          "type": "list",
   377          "member": {
   378            "shape": "StringType",
   379            "locationName": "NotMember"
   380          }
   381        },
   382        "StringType": {
   383          "type": "string"
   384        }
   385      },
   386      "cases": [
   387        {
   388          "given": {
   389            "http": {
   390              "method": "POST",
   391              "requestUri": "/2014-01-01/hostedzone"
   392            },
   393            "input": {
   394              "shape": "InputShape",
   395              "locationName": "OperationRequest",
   396              "xmlNamespace": {"uri": "https://foo/"}
   397            },
   398            "name": "OperationName"
   399          },
   400          "params": {
   401            "ListParam": [
   402              "one",
   403              "two",
   404              "three"
   405            ]
   406          },
   407          "serialized": {
   408            "method": "POST",
   409            "body": "<OperationRequest xmlns=\"https://foo/\"><AlternateName><NotMember>one</NotMember><NotMember>two</NotMember><NotMember>three</NotMember></AlternateName></OperationRequest>",
   410            "uri": "/2014-01-01/hostedzone",
   411            "headers": {}
   412          }
   413        }
   414      ]
   415    },
   416    {
   417      "description": "Flattened lists",
   418      "metadata": {
   419        "protocol": "rest-xml",
   420        "apiVersion": "2014-01-01"
   421      },
   422      "shapes": {
   423        "InputShape": {
   424          "type": "structure",
   425          "members": {
   426            "ListParam": {
   427              "shape": "ListShape"
   428            }
   429          }
   430        },
   431        "ListShape": {
   432          "type": "list",
   433          "member": {
   434            "shape": "StringType"
   435          },
   436          "flattened": true
   437        },
   438        "StringType": {
   439          "type": "string"
   440        }
   441      },
   442      "cases": [
   443        {
   444          "given": {
   445            "http": {
   446              "method": "POST",
   447              "requestUri": "/2014-01-01/hostedzone"
   448            },
   449            "input": {
   450              "shape": "InputShape",
   451              "locationName": "OperationRequest",
   452              "xmlNamespace": {"uri": "https://foo/"}
   453            },
   454            "name": "OperationName"
   455          },
   456          "params": {
   457            "ListParam": [
   458              "one",
   459              "two",
   460              "three"
   461            ]
   462          },
   463          "serialized": {
   464            "method": "POST",
   465            "body": "<OperationRequest xmlns=\"https://foo/\"><ListParam>one</ListParam><ListParam>two</ListParam><ListParam>three</ListParam></OperationRequest>",
   466            "uri": "/2014-01-01/hostedzone",
   467            "headers": {}
   468          }
   469        }
   470      ]
   471    },
   472    {
   473      "description": "Flattened lists with locationName",
   474      "metadata": {
   475        "protocol": "rest-xml",
   476        "apiVersion": "2014-01-01"
   477      },
   478      "shapes": {
   479        "InputShape": {
   480          "type": "structure",
   481          "members": {
   482            "ListParam": {
   483              "shape": "ListShape",
   484              "locationName": "item"
   485            }
   486          }
   487        },
   488        "ListShape": {
   489          "type": "list",
   490          "member": {
   491            "shape": "StringType"
   492          },
   493          "flattened": true
   494        },
   495        "StringType": {
   496          "type": "string"
   497        }
   498      },
   499      "cases": [
   500        {
   501          "given": {
   502            "http": {
   503              "method": "POST",
   504              "requestUri": "/2014-01-01/hostedzone"
   505            },
   506            "input": {
   507              "shape": "InputShape",
   508              "locationName": "OperationRequest",
   509              "xmlNamespace": {"uri": "https://foo/"}
   510            },
   511            "name": "OperationName"
   512          },
   513          "params": {
   514            "ListParam": [
   515              "one",
   516              "two",
   517              "three"
   518            ]
   519          },
   520          "serialized": {
   521            "method": "POST",
   522            "body": "<OperationRequest xmlns=\"https://foo/\"><item>one</item><item>two</item><item>three</item></OperationRequest>",
   523            "uri": "/2014-01-01/hostedzone",
   524            "headers": {}
   525          }
   526        }
   527      ]
   528    },
   529    {
   530      "description": "List of structures",
   531      "metadata": {
   532        "protocol": "rest-xml",
   533        "apiVersion": "2014-01-01"
   534      },
   535      "shapes": {
   536        "InputShape": {
   537          "type": "structure",
   538          "members": {
   539            "ListParam": {
   540              "shape": "ListShape",
   541              "locationName": "item"
   542            }
   543          }
   544        },
   545        "ListShape": {
   546          "type": "list",
   547          "member": {
   548            "shape": "SingleFieldStruct"
   549          },
   550          "flattened": true
   551        },
   552        "StringType": {
   553          "type": "string"
   554        },
   555        "SingleFieldStruct": {
   556          "type": "structure",
   557          "members": {
   558            "Element": {
   559              "shape": "StringType",
   560              "locationName": "value"
   561            }
   562          }
   563        }
   564      },
   565      "cases": [
   566        {
   567          "given": {
   568            "http": {
   569              "method": "POST",
   570              "requestUri": "/2014-01-01/hostedzone"
   571            },
   572            "input": {
   573              "shape": "InputShape",
   574              "locationName": "OperationRequest",
   575              "xmlNamespace": {"uri": "https://foo/"}
   576            },
   577            "name": "OperationName"
   578          },
   579          "params": {
   580            "ListParam": [
   581              {
   582                "Element": "one"
   583              },
   584              {
   585                "Element": "two"
   586              },
   587              {
   588                "Element": "three"
   589              }
   590            ]
   591          },
   592          "serialized": {
   593            "method": "POST",
   594            "body": "<OperationRequest xmlns=\"https://foo/\"><item><value>one</value></item><item><value>two</value></item><item><value>three</value></item></OperationRequest>",
   595            "uri": "/2014-01-01/hostedzone",
   596            "headers": {}
   597          }
   598        }
   599      ]
   600    },
   601    {
   602      "description": "Blob shapes",
   603      "metadata": {
   604        "protocol": "rest-xml",
   605        "apiVersion": "2014-01-01"
   606      },
   607      "shapes": {
   608        "InputShape": {
   609          "type": "structure",
   610          "members": {
   611            "StructureParam": {
   612              "shape": "StructureShape"
   613            }
   614          }
   615        },
   616        "StructureShape": {
   617          "type": "structure",
   618          "members": {
   619            "b": {
   620              "shape": "BShape"
   621            }
   622          }
   623        },
   624        "BShape": {
   625          "type": "blob"
   626        }
   627      },
   628      "cases": [
   629        {
   630          "given": {
   631            "http": {
   632              "method": "POST",
   633              "requestUri": "/2014-01-01/hostedzone"
   634            },
   635            "input": {
   636              "shape": "InputShape",
   637              "locationName": "OperationRequest",
   638              "xmlNamespace": {"uri": "https://foo/"}
   639            },
   640            "name": "OperationName"
   641          },
   642          "params": {
   643            "StructureParam": {
   644              "b": "foo"
   645            }
   646          },
   647          "serialized": {
   648            "method": "POST",
   649            "body": "<OperationRequest xmlns=\"https://foo/\"><StructureParam><b>Zm9v</b></StructureParam></OperationRequest>",
   650            "uri": "/2014-01-01/hostedzone",
   651            "headers": {}
   652          }
   653        }
   654      ]
   655    },
   656    {
   657      "description": "Timestamp shapes",
   658      "metadata": {
   659        "protocol": "rest-xml",
   660        "apiVersion": "2014-01-01"
   661      },
   662      "shapes": {
   663        "InputShape": {
   664          "type": "structure",
   665          "members": {
   666            "TimeArg": {
   667              "shape": "TimestampType"
   668            },
   669            "TimeArgInHeader": {
   670              "shape": "TimestampType",
   671              "location": "header",
   672              "locationName": "x-amz-timearg"
   673            },
   674            "TimeArgInQuery": {
   675              "shape": "TimestampType",
   676              "location": "querystring",
   677              "locationName": "TimeQuery"
   678            },
   679            "TimeCustom": {
   680              "timestampFormat": "rfc822",
   681              "shape": "TimestampType"
   682            },
   683            "TimeCustomInHeader": {
   684              "timestampFormat": "unixTimestamp",
   685              "shape": "TimestampType",
   686              "location": "header",
   687              "locationName": "x-amz-timecustom-header"
   688            },
   689            "TimeCustomInQuery": {
   690              "timestampFormat": "unixTimestamp",
   691              "shape": "TimestampType",
   692              "location": "querystring",
   693              "locationName": "TimeCustomQuery"
   694            },
   695            "TimeFormat": {
   696              "shape": "TimestampFormatRfcType"
   697            },
   698            "TimeFormatInHeader": {
   699              "shape": "TimestampFormatUnixType",
   700              "location": "header",
   701              "locationName": "x-amz-timeformat-header"
   702            },
   703            "TimeFormatInQuery": {
   704              "shape": "TimestampFormatUnixType",
   705              "location": "querystring",
   706              "locationName": "TimeFormatQuery"
   707            }
   708          }
   709        },
   710        "TimestampFormatRfcType": {
   711          "timestampFormat": "rfc822",
   712          "type": "timestamp"
   713        },
   714        "TimestampFormatUnixType": {
   715          "timestampFormat": "unixTimestamp",
   716          "type": "timestamp"
   717        },
   718        "TimestampType": {
   719          "type": "timestamp"
   720        }
   721      },
   722      "cases": [
   723        {
   724          "given": {
   725            "http": {
   726              "method": "POST",
   727              "requestUri": "/2014-01-01/hostedzone"
   728            },
   729            "input": {
   730              "shape": "InputShape",
   731              "locationName": "TimestampStructure",
   732              "xmlNamespace": {"uri": "https://foo/"}
   733            },
   734            "name": "OperationName"
   735          },
   736          "params": {
   737            "TimeArg": 1422172800,
   738            "TimeArgInQuery": 1422172800,
   739            "TimeArgInHeader": 1422172800,
   740            "TimeCustom": 1422172800,
   741            "TimeCustomInQuery": 1422172800,
   742            "TimeCustomInHeader": 1422172800,
   743            "TimeFormat": 1422172800,
   744            "TimeFormatInQuery": 1422172800,
   745            "TimeFormatInHeader": 1422172800
   746          },
   747          "serialized": {
   748            "method": "POST",
   749            "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>",
   750            "uri": "/2014-01-01/hostedzone?TimeQuery=2015-01-25T08%3A00%3A00Z&TimeCustomQuery=1422172800&TimeFormatQuery=1422172800",
   751            "headers": {
   752              "x-amz-timearg": "Sun, 25 Jan 2015 08:00:00 GMT",
   753              "x-amz-timecustom-header": "1422172800",
   754              "x-amz-timeformat-header": "1422172800"
   755            }
   756          }
   757        }
   758      ]
   759    },
   760    {
   761      "description": "Header maps",
   762      "metadata": {
   763        "protocol": "rest-xml",
   764        "apiVersion": "2014-01-01"
   765      },
   766      "shapes": {
   767        "InputShape": {
   768          "type": "structure",
   769          "members": {
   770            "foo": {
   771              "shape": "FooShape"
   772            }
   773          }
   774        },
   775        "FooShape": {
   776          "type": "map",
   777          "location": "headers",
   778          "locationName": "x-foo-",
   779          "key": {
   780            "shape": "FooKeyValue"
   781          },
   782          "value": {
   783            "shape": "FooKeyValue"
   784          }
   785        },
   786        "FooKeyValue": {
   787          "type": "string"
   788        }
   789      },
   790      "cases": [
   791        {
   792          "given": {
   793            "http": {
   794              "method": "POST",
   795              "requestUri": "/"
   796            },
   797            "input": {
   798              "shape": "InputShape",
   799              "locationName": "OperationRequest",
   800              "xmlNamespace": {"uri": "https://foo/"}
   801            },
   802            "name": "OperationName"
   803          },
   804          "params": {
   805            "foo": {
   806              "a": "b",
   807              "c": "d"
   808            }
   809          },
   810          "serialized": {
   811            "method": "POST",
   812            "body": "",
   813            "uri": "/",
   814            "headers": {
   815              "x-foo-a": "b",
   816              "x-foo-c": "d"
   817            }
   818          }
   819        }
   820      ]
   821    },
   822    {
   823      "description": "Querystring list of strings",
   824      "metadata": {
   825        "protocol": "rest-xml",
   826        "apiVersion": "2014-01-01"
   827      },
   828      "shapes": {
   829        "InputShape": {
   830          "type": "structure",
   831          "members": {
   832            "Items": {
   833              "shape": "StringList",
   834              "location": "querystring",
   835              "locationName": "item"
   836            }
   837          }
   838        },
   839        "StringList": {
   840          "type": "list",
   841          "member": {
   842            "shape": "String"
   843          }
   844        },
   845        "String": {
   846          "type": "string"
   847        }
   848      },
   849      "cases": [
   850        {
   851          "given": {
   852            "http": {
   853              "method": "GET",
   854              "requestUri": "/path"
   855            },
   856            "input": {
   857              "shape": "InputShape"
   858            },
   859            "name": "OperationName"
   860          },
   861          "params": {
   862            "Items": ["value1", "value2"]
   863          },
   864          "serialized": {
   865            "body": "",
   866            "uri": "/path?item=value1&item=value2",
   867            "headers": {}
   868          }
   869        }
   870      ]
   871    },
   872    {
   873      "description": "String to string maps in querystring",
   874      "metadata": {
   875        "protocol": "rest-xml",
   876        "apiVersion": "2014-01-01"
   877      },
   878      "shapes": {
   879        "InputShape": {
   880          "type": "structure",
   881          "members": {
   882            "PipelineId": {
   883              "shape": "StringType",
   884              "location": "uri"
   885            },
   886            "QueryDoc": {
   887              "shape": "MapStringStringType",
   888              "location": "querystring"
   889            }
   890          }
   891        },
   892        "MapStringStringType": {
   893          "type": "map",
   894          "key": {
   895            "shape": "StringType"
   896          },
   897          "value": {
   898            "shape": "StringType"
   899          }
   900        },
   901        "StringType": {
   902          "type": "string"
   903        }
   904      },
   905      "cases": [
   906        {
   907          "given": {
   908            "http": {
   909              "method": "GET",
   910              "requestUri": "/2014-01-01/jobsByPipeline/{PipelineId}"
   911            },
   912            "input": {
   913              "shape": "InputShape"
   914            },
   915            "name": "OperationName"
   916          },
   917          "params": {
   918            "PipelineId": "foo",
   919            "QueryDoc": {
   920              "bar": "baz",
   921              "fizz": "buzz"
   922            }
   923          },
   924          "serialized": {
   925            "body": "",
   926            "uri": "/2014-01-01/jobsByPipeline/foo?bar=baz&fizz=buzz",
   927            "headers": {}
   928          }
   929        }
   930      ]
   931    },
   932    {
   933      "description": "String to string list maps in querystring",
   934      "metadata": {
   935        "protocol": "rest-xml",
   936        "apiVersion": "2014-01-01"
   937      },
   938      "shapes": {
   939        "InputShape": {
   940          "type": "structure",
   941          "members": {
   942            "PipelineId": {
   943              "shape": "StringType",
   944              "location": "uri"
   945            },
   946            "QueryDoc": {
   947              "shape": "MapStringStringListType",
   948              "location": "querystring"
   949            }
   950          }
   951        },
   952        "MapStringStringListType": {
   953          "type": "map",
   954          "key": {
   955            "shape": "StringType"
   956          },
   957          "value": {
   958            "shape": "StringListType"
   959          }
   960        },
   961        "StringListType": {
   962          "type": "list",
   963          "member": {
   964            "shape": "StringType"
   965          }
   966        },
   967        "StringType": {
   968          "type": "string"
   969        }
   970      },
   971      "cases": [
   972        {
   973          "given": {
   974            "http": {
   975              "method": "GET",
   976              "requestUri": "/2014-01-01/jobsByPipeline/{PipelineId}"
   977            },
   978            "input": {
   979              "shape": "InputShape"
   980            },
   981            "name": "OperationName"
   982          },
   983          "params": {
   984            "PipelineId": "id",
   985            "QueryDoc": {
   986              "foo": ["bar", "baz"],
   987              "fizz": ["buzz", "pop"]
   988            }
   989          },
   990          "serialized": {
   991            "body": "",
   992            "uri": "/2014-01-01/jobsByPipeline/id?foo=bar&foo=baz&fizz=buzz&fizz=pop",
   993            "headers": {}
   994          }
   995        }
   996      ]
   997    },
   998    {
   999      "description": "Boolean in querystring",
  1000      "metadata": {
  1001        "protocol": "rest-xml",
  1002        "apiVersion": "2014-01-01"
  1003      },
  1004      "shapes": {
  1005        "InputShape": {
  1006          "type": "structure",
  1007          "members": {
  1008            "BoolQuery": {
  1009              "shape": "BoolType",
  1010              "location": "querystring",
  1011              "locationName": "bool-query"
  1012            }
  1013          }
  1014        },
  1015        "BoolType": {
  1016          "type": "boolean"
  1017        }
  1018      },
  1019      "cases": [
  1020        {
  1021          "given": {
  1022            "http": {
  1023              "method": "GET",
  1024              "requestUri": "/path"
  1025            },
  1026            "input": {
  1027              "shape": "InputShape"
  1028            },
  1029            "name": "OperationName"
  1030          },
  1031          "params": {
  1032            "BoolQuery": true
  1033          },
  1034          "serialized": {
  1035            "body": "",
  1036            "uri": "/path?bool-query=true",
  1037            "headers": {}
  1038          }
  1039        },
  1040        {
  1041          "given": {
  1042            "http": {
  1043              "method": "GET",
  1044              "requestUri": "/path"
  1045            },
  1046            "input": {
  1047              "shape": "InputShape"
  1048            },
  1049            "name": "OperationName"
  1050          },
  1051          "params": {
  1052            "BoolQuery": false
  1053          },
  1054          "serialized": {
  1055            "body": "",
  1056            "uri": "/path?bool-query=false",
  1057            "headers": {}
  1058          }
  1059        }
  1060      ]
  1061    },
  1062    {
  1063      "description": "String payload",
  1064      "metadata": {
  1065        "protocol": "rest-xml",
  1066        "apiVersion": "2014-01-01"
  1067      },
  1068      "shapes": {
  1069        "InputShape": {
  1070          "type": "structure",
  1071          "members": {
  1072            "foo": {
  1073              "shape": "FooShape"
  1074            }
  1075          },
  1076          "payload": "foo"
  1077        },
  1078        "FooShape": {
  1079          "type": "string"
  1080        }
  1081      },
  1082      "cases": [
  1083        {
  1084          "given": {
  1085            "http": {
  1086              "method": "POST",
  1087              "requestUri": "/"
  1088            },
  1089            "input": {
  1090              "shape": "InputShape"
  1091            },
  1092            "name": "OperationName"
  1093          },
  1094          "params": {
  1095            "foo": "bar"
  1096          },
  1097          "serialized": {
  1098            "method": "POST",
  1099            "body": "bar",
  1100            "uri": "/"
  1101          }
  1102        }
  1103      ]
  1104    },
  1105    {
  1106      "description": "Blob payload",
  1107      "metadata": {
  1108        "protocol": "rest-xml",
  1109        "apiVersion": "2014-01-01"
  1110      },
  1111      "shapes": {
  1112        "InputShape": {
  1113          "type": "structure",
  1114          "members": {
  1115            "foo": {
  1116              "shape": "FooShape"
  1117            }
  1118          },
  1119          "payload": "foo"
  1120        },
  1121        "FooShape": {
  1122          "type": "blob"
  1123        }
  1124      },
  1125      "cases": [
  1126        {
  1127          "given": {
  1128            "http": {
  1129              "method": "POST",
  1130              "requestUri": "/"
  1131            },
  1132            "input": {
  1133              "shape": "InputShape"
  1134            },
  1135            "name": "OperationName"
  1136          },
  1137          "params": {
  1138            "foo": "bar"
  1139          },
  1140          "serialized": {
  1141            "method": "POST",
  1142            "body": "bar",
  1143            "uri": "/"
  1144          }
  1145        },
  1146        {
  1147          "given": {
  1148            "http": {
  1149              "method": "POST",
  1150              "requestUri": "/"
  1151            },
  1152            "input": {
  1153              "shape": "InputShape"
  1154            },
  1155            "name": "OperationName"
  1156          },
  1157          "params": {
  1158          },
  1159          "serialized": {
  1160            "method": "POST",
  1161            "body": "",
  1162            "uri": "/"
  1163          }
  1164        }
  1165      ]
  1166    },
  1167    {
  1168      "description": "Structure payload",
  1169      "metadata": {
  1170        "protocol": "rest-xml",
  1171        "apiVersion": "2014-01-01"
  1172      },
  1173      "shapes": {
  1174        "InputShape": {
  1175          "type": "structure",
  1176          "members": {
  1177            "foo": {
  1178              "shape": "FooShape"
  1179            }
  1180          },
  1181          "payload": "foo"
  1182        },
  1183        "FooShape": {
  1184          "locationName": "foo",
  1185          "type": "structure",
  1186          "members": {
  1187            "baz": {
  1188              "shape": "BazShape"
  1189            }
  1190          }
  1191        },
  1192        "BazShape": {
  1193          "type": "string"
  1194        }
  1195      },
  1196      "cases": [
  1197        {
  1198          "given": {
  1199            "http": {
  1200              "method": "POST",
  1201              "requestUri": "/"
  1202            },
  1203            "input": {
  1204              "shape": "InputShape"
  1205            },
  1206            "name": "OperationName"
  1207          },
  1208          "params": {
  1209            "foo": {
  1210              "baz": "bar"
  1211            }
  1212          },
  1213          "serialized": {
  1214            "method": "POST",
  1215            "body": "<foo><baz>bar</baz></foo>",
  1216            "uri": "/"
  1217          }
  1218        },
  1219        {
  1220          "given": {
  1221            "http": {
  1222              "method": "POST",
  1223              "requestUri": "/"
  1224            },
  1225            "input": {
  1226              "shape": "InputShape"
  1227            },
  1228            "name": "OperationName"
  1229          },
  1230          "params": {},
  1231          "serialized": {
  1232            "method": "POST",
  1233            "body": "",
  1234            "uri": "/"
  1235          }
  1236        },
  1237        {
  1238          "given": {
  1239            "http": {
  1240              "method": "POST",
  1241              "requestUri": "/"
  1242            },
  1243            "input": {
  1244              "shape": "InputShape"
  1245            },
  1246            "name": "OperationName"
  1247          },
  1248          "params": {
  1249            "foo": {}
  1250          },
  1251          "serialized": {
  1252            "method": "POST",
  1253            "body": "<foo />",
  1254            "uri": "/"
  1255          }
  1256        },
  1257        {
  1258          "given": {
  1259            "http": {
  1260              "method": "POST",
  1261              "requestUri": "/"
  1262            },
  1263            "input": {
  1264              "shape": "InputShape"
  1265            },
  1266            "name": "OperationName"
  1267          },
  1268          "params": {
  1269            "foo": null
  1270          },
  1271          "serialized": {
  1272            "method": "POST",
  1273            "body": "",
  1274            "uri": "/"
  1275          }
  1276        }
  1277      ]
  1278    },
  1279    {
  1280      "description": "XML Attribute",
  1281      "metadata": {
  1282        "protocol": "rest-xml",
  1283        "apiVersion": "2014-01-01"
  1284      },
  1285      "shapes": {
  1286        "InputShape": {
  1287          "type": "structure",
  1288          "members": {
  1289            "Grant": {
  1290              "shape": "Grant"
  1291            }
  1292          },
  1293          "payload": "Grant"
  1294        },
  1295        "Grant": {
  1296          "type": "structure",
  1297          "locationName": "Grant",
  1298          "members": {
  1299            "Grantee": {
  1300              "shape": "Grantee"
  1301            }
  1302          }
  1303        },
  1304        "Grantee": {
  1305          "type": "structure",
  1306          "members": {
  1307            "Type": {
  1308              "shape": "Type",
  1309              "locationName": "xsi:type",
  1310              "xmlAttribute": true
  1311            },
  1312            "EmailAddress": {
  1313              "shape": "StringType"
  1314            }
  1315          },
  1316          "xmlNamespace": {
  1317            "prefix": "xsi",
  1318            "uri":"http://www.w3.org/2001/XMLSchema-instance"
  1319          }
  1320        },
  1321        "Type": {
  1322          "type": "string"
  1323        },
  1324        "StringType": {
  1325          "type": "string"
  1326        }
  1327      },
  1328      "cases": [
  1329        {
  1330          "given": {
  1331            "http": {
  1332              "method": "POST",
  1333              "requestUri": "/"
  1334            },
  1335            "input": {
  1336              "shape": "InputShape"
  1337            },
  1338            "name": "OperationName"
  1339          },
  1340          "params": {
  1341            "Grant": {
  1342              "Grantee": {
  1343                "EmailAddress": "foo@example.com",
  1344                "Type": "CanonicalUser"
  1345              }
  1346            }
  1347          },
  1348          "serialized": {
  1349            "method": "POST",
  1350            "body": "<Grant><Grantee xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" xsi:type=\"CanonicalUser\"><EmailAddress>foo@example.com</EmailAddress></Grantee></Grant>",
  1351            "uri": "/"
  1352          }
  1353        }
  1354      ]
  1355    },
  1356    {
  1357      "description": "Greedy keys",
  1358      "metadata": {
  1359        "protocol": "rest-xml",
  1360        "apiVersion": "2014-01-01"
  1361      },
  1362      "shapes": {
  1363        "InputShape": {
  1364          "type": "structure",
  1365          "members": {
  1366            "Bucket": {
  1367              "shape": "BucketShape",
  1368              "location": "uri"
  1369            },
  1370            "Key": {
  1371              "shape": "KeyShape",
  1372              "location": "uri"
  1373            }
  1374          }
  1375        },
  1376        "BucketShape": {
  1377          "type": "string"
  1378        },
  1379        "KeyShape": {
  1380          "type": "string"
  1381        }
  1382      },
  1383      "cases": [
  1384        {
  1385          "given": {
  1386            "http": {
  1387              "method": "GET",
  1388              "requestUri": "/{Bucket}/{Key+}"
  1389            },
  1390            "input": {
  1391              "shape": "InputShape"
  1392            },
  1393            "name": "OperationName"
  1394          },
  1395          "params": {
  1396            "Key": "testing /123",
  1397            "Bucket": "my/bucket"
  1398          },
  1399          "serialized": {
  1400            "method": "GET",
  1401            "body": "",
  1402            "uri": "/my%2Fbucket/testing%20/123"
  1403          }
  1404        }
  1405      ]
  1406    },
  1407    {
  1408      "description": "Omits null query params, but serializes empty strings",
  1409      "metadata": {
  1410        "protocol": "rest-xml",
  1411        "apiVersion": "2014-01-01"
  1412      },
  1413      "shapes": {
  1414        "InputShape": {
  1415          "type": "structure",
  1416          "members": {
  1417            "foo": {
  1418              "location":"querystring",
  1419              "locationName":"param-name",
  1420              "shape": "Foo"
  1421            }
  1422          }
  1423        },
  1424        "Foo": {
  1425          "type": "string"
  1426        }
  1427      },
  1428      "cases": [
  1429        {
  1430          "given": {
  1431            "name": "OperationName",
  1432            "http": {
  1433              "method": "POST",
  1434              "requestUri": "/path"
  1435            },
  1436            "input": { "shape": "InputShape" }
  1437          },
  1438          "params": { "foo": null },
  1439          "serialized": {
  1440            "method": "POST",
  1441            "body": "",
  1442            "uri": "/path"
  1443          }
  1444        },
  1445        {
  1446          "given": {
  1447            "name": "OperationName",
  1448            "http": {
  1449              "method": "POST",
  1450              "requestUri": "/path?abc=mno"
  1451            },
  1452            "input": { "shape": "InputShape" }
  1453          },
  1454          "params": { "foo": "" },
  1455          "serialized": {
  1456            "method": "POST",
  1457            "body": "",
  1458            "uri": "/path?abc=mno&param-name="
  1459          }
  1460        }
  1461      ]
  1462    },
  1463    {
  1464      "description": "Recursive shapes",
  1465      "metadata": {
  1466        "protocol": "rest-xml",
  1467        "apiVersion": "2014-01-01"
  1468      },
  1469      "shapes": {
  1470        "InputShape": {
  1471          "type": "structure",
  1472          "members": {
  1473            "RecursiveStruct": {
  1474              "shape": "RecursiveStructType"
  1475            }
  1476          }
  1477        },
  1478        "RecursiveStructType": {
  1479          "type": "structure",
  1480          "members": {
  1481            "NoRecurse": {
  1482              "shape": "StringType"
  1483            },
  1484            "RecursiveStruct": {
  1485              "shape": "RecursiveStructType"
  1486            },
  1487            "RecursiveList": {
  1488              "shape": "RecursiveListType"
  1489            },
  1490            "RecursiveMap": {
  1491              "shape": "RecursiveMapType"
  1492            }
  1493          }
  1494        },
  1495        "RecursiveListType": {
  1496          "type": "list",
  1497          "member": {
  1498            "shape": "RecursiveStructType"
  1499          }
  1500        },
  1501        "RecursiveMapType": {
  1502          "type": "map",
  1503          "key": {
  1504            "shape": "StringType"
  1505          },
  1506          "value": {
  1507            "shape": "RecursiveStructType"
  1508          }
  1509        },
  1510        "StringType": {
  1511          "type": "string"
  1512        }
  1513      },
  1514      "cases": [
  1515        {
  1516          "given": {
  1517            "input": {
  1518              "shape": "InputShape",
  1519              "locationName": "OperationRequest",
  1520              "xmlNamespace": {"uri": "https://foo/"}
  1521            },
  1522            "http": {
  1523              "method": "POST",
  1524              "requestUri": "/path"
  1525            },
  1526            "name": "OperationName"
  1527          },
  1528          "params": {
  1529            "RecursiveStruct": {
  1530              "NoRecurse": "foo"
  1531            }
  1532          },
  1533          "serialized": {
  1534            "uri": "/path",
  1535            "body": "<OperationRequest xmlns=\"https://foo/\"><RecursiveStruct><NoRecurse>foo</NoRecurse></RecursiveStruct></OperationRequest>"
  1536          }
  1537        },
  1538        {
  1539          "given": {
  1540            "input": {
  1541              "shape": "InputShape",
  1542              "locationName": "OperationRequest",
  1543              "xmlNamespace": {"uri": "https://foo/"}
  1544            },
  1545            "http": {
  1546              "method": "POST",
  1547              "requestUri": "/path"
  1548            },
  1549            "name": "OperationName"
  1550          },
  1551          "params": {
  1552            "RecursiveStruct": {
  1553              "RecursiveStruct": {
  1554                "NoRecurse": "foo"
  1555              }
  1556            }
  1557          },
  1558          "serialized": {
  1559            "uri": "/path",
  1560            "body": "<OperationRequest xmlns=\"https://foo/\"><RecursiveStruct><RecursiveStruct><NoRecurse>foo</NoRecurse></RecursiveStruct></RecursiveStruct></OperationRequest>"
  1561          }
  1562        },
  1563        {
  1564          "given": {
  1565            "input": {
  1566              "shape": "InputShape",
  1567              "locationName": "OperationRequest",
  1568              "xmlNamespace": {"uri": "https://foo/"}
  1569            },
  1570            "http": {
  1571              "method": "POST",
  1572              "requestUri": "/path"
  1573            },
  1574            "name": "OperationName"
  1575          },
  1576          "params": {
  1577            "RecursiveStruct": {
  1578              "RecursiveStruct": {
  1579                "RecursiveStruct": {
  1580                  "RecursiveStruct": {
  1581                    "NoRecurse": "foo"
  1582                  }
  1583                }
  1584              }
  1585            }
  1586          },
  1587          "serialized": {
  1588            "uri": "/path",
  1589            "body": "<OperationRequest xmlns=\"https://foo/\"><RecursiveStruct><RecursiveStruct><RecursiveStruct><RecursiveStruct><NoRecurse>foo</NoRecurse></RecursiveStruct></RecursiveStruct></RecursiveStruct></RecursiveStruct></OperationRequest>"
  1590          }
  1591        },
  1592        {
  1593          "given": {
  1594            "input": {
  1595              "shape": "InputShape",
  1596              "locationName": "OperationRequest",
  1597              "xmlNamespace": {"uri": "https://foo/"}
  1598            },
  1599            "http": {
  1600              "method": "POST",
  1601              "requestUri": "/path"
  1602            },
  1603            "name": "OperationName"
  1604          },
  1605          "params": {
  1606            "RecursiveStruct": {
  1607              "RecursiveList": [
  1608                {
  1609                  "NoRecurse": "foo"
  1610                },
  1611                {
  1612                  "NoRecurse": "bar"
  1613                }
  1614              ]
  1615            }
  1616          },
  1617          "serialized": {
  1618            "uri": "/path",
  1619            "body": "<OperationRequest xmlns=\"https://foo/\"><RecursiveStruct><RecursiveList><member><NoRecurse>foo</NoRecurse></member><member><NoRecurse>bar</NoRecurse></member></RecursiveList></RecursiveStruct></OperationRequest>"
  1620          }
  1621        },
  1622        {
  1623          "given": {
  1624            "input": {
  1625              "shape": "InputShape",
  1626              "locationName": "OperationRequest",
  1627              "xmlNamespace": {"uri": "https://foo/"}
  1628            },
  1629            "http": {
  1630              "method": "POST",
  1631              "requestUri": "/path"
  1632            },
  1633            "name": "OperationName"
  1634          },
  1635          "params": {
  1636            "RecursiveStruct": {
  1637              "RecursiveList": [
  1638                {
  1639                  "NoRecurse": "foo"
  1640                },
  1641                {
  1642                  "RecursiveStruct": {
  1643                    "NoRecurse": "bar"
  1644                  }
  1645                }
  1646              ]
  1647            }
  1648          },
  1649          "serialized": {
  1650            "uri": "/path",
  1651            "body": "<OperationRequest xmlns=\"https://foo/\"><RecursiveStruct><RecursiveList><member><NoRecurse>foo</NoRecurse></member><member><RecursiveStruct><NoRecurse>bar</NoRecurse></RecursiveStruct></member></RecursiveList></RecursiveStruct></OperationRequest>"
  1652          }
  1653        },
  1654        {
  1655          "given": {
  1656            "input": {
  1657              "shape": "InputShape",
  1658              "locationName": "OperationRequest",
  1659              "xmlNamespace": {"uri": "https://foo/"}
  1660            },
  1661            "http": {
  1662              "method": "POST",
  1663              "requestUri": "/path"
  1664            },
  1665            "name": "OperationName"
  1666          },
  1667          "params": {
  1668            "RecursiveStruct": {
  1669              "RecursiveMap": {
  1670                "foo": {
  1671                  "NoRecurse": "foo"
  1672                },
  1673                "bar": {
  1674                  "NoRecurse": "bar"
  1675                }
  1676              }
  1677            }
  1678          },
  1679          "serialized": {
  1680            "uri": "/path",
  1681            "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>"
  1682          }
  1683        }
  1684      ]
  1685    },
  1686    {
  1687      "description": "Idempotency token auto fill",
  1688      "metadata": {
  1689        "protocol": "rest-xml",
  1690        "apiVersion": "2014-01-01"
  1691      },
  1692      "shapes": {
  1693        "InputShape": {
  1694          "type": "structure",
  1695          "members": {
  1696            "Token": {
  1697              "shape": "StringType",
  1698              "idempotencyToken": true
  1699            }
  1700          }
  1701        },
  1702        "StringType": {
  1703          "type": "string"
  1704        }
  1705      },
  1706      "cases": [
  1707        {
  1708          "given": {
  1709            "input": {
  1710              "shape": "InputShape"
  1711            },
  1712            "http": {
  1713              "method": "POST",
  1714              "requestUri": "/path"
  1715            },
  1716            "name": "OperationName"
  1717          },
  1718          "params": {
  1719            "Token": "abc123"
  1720          },
  1721          "serialized": {
  1722            "uri": "/path",
  1723            "headers": {},
  1724            "body": "<InputShape><Token>abc123</Token></InputShape>"
  1725          }
  1726        },
  1727        {
  1728          "given": {
  1729            "input": {
  1730              "shape": "InputShape"
  1731            },
  1732            "http": {
  1733              "method": "POST",
  1734              "requestUri": "/path"
  1735            },
  1736            "name": "OperationName"
  1737          },
  1738          "params": {
  1739          },
  1740          "serialized": {
  1741            "uri": "/path",
  1742            "headers": {},
  1743            "body": "<InputShape><Token>00000000-0000-4000-8000-000000000000</Token></InputShape>"
  1744          }
  1745        }
  1746      ]
  1747    },
  1748    {
  1749      "description": "Enum",
  1750      "metadata": {
  1751        "protocol": "rest-xml",
  1752        "apiVersion": "2014-01-01"
  1753      },
  1754      "shapes": {
  1755        "InputShape": {
  1756          "type": "structure",
  1757          "required": [
  1758              "URIFooEnum"
  1759          ],
  1760          "members": {
  1761            "HeaderEnum": {
  1762              "shape": "EnumType",
  1763              "location": "header",
  1764              "locationName": "x-amz-enum"
  1765            },
  1766            "FooEnum": {
  1767              "shape": "EnumType"
  1768            },
  1769            "URIFooEnum": {
  1770              "shape": "EnumType",
  1771              "location": "uri",
  1772              "locationName": "URIEnum"
  1773            },
  1774            "ListEnums": {
  1775              "shape": "EnumList"
  1776            },
  1777            "URIListEnums": {
  1778              "shape": "EnumList",
  1779              "location": "querystring",
  1780              "locationName": "ListEnums"
  1781            }
  1782          }
  1783        },
  1784        "EnumType":{
  1785          "type":"string",
  1786          "enum":[
  1787            "foo",
  1788            "bar",
  1789            "0",
  1790            "1"
  1791          ]
  1792        },
  1793        "EnumList":{
  1794          "type":"list",
  1795          "member": {"shape": "EnumType"}
  1796        }
  1797      },
  1798      "cases": [
  1799        {
  1800          "given": {
  1801            "input": {
  1802              "shape": "InputShape"
  1803            },
  1804            "http": {
  1805              "method": "POST",
  1806              "requestUri": "/Enum/{URIEnum}"
  1807            },
  1808            "name": "OperationName"
  1809          },
  1810          "params": {
  1811            "HeaderEnum": "baz",
  1812            "FooEnum": "foo",
  1813            "URIFooEnum": "bar",
  1814            "ListEnums": ["foo", "", "bar"],
  1815            "URIListEnums": ["0", "", "1"]
  1816          },
  1817          "serialized": {
  1818            "uri": "/Enum/bar?ListEnums=0&ListEnums=&ListEnums=1",
  1819            "headers": {"x-amz-enum": "baz"},
  1820            "body": "<InputShape><FooEnum>foo</FooEnum><ListEnums><member>foo</member><member></member><member>bar</member></ListEnums></InputShape>"
  1821          }
  1822        },
  1823        {
  1824          "given": {
  1825            "input": {
  1826              "shape": "InputShape"
  1827            },
  1828            "http": {
  1829              "method": "POST",
  1830              "requestUri": "/Enum/{URIEnum}"
  1831            },
  1832            "name": "OperationName"
  1833          },
  1834          "params": {
  1835            "URIFooEnum": "bar"
  1836          },
  1837          "serialized": {
  1838            "uri": "/Enum/bar",
  1839            "headers": {}
  1840          }
  1841        }
  1842      ]
  1843    },
  1844    {
  1845      "description": "Endpoint host trait",
  1846      "metadata": {
  1847        "protocol": "rest-xml",
  1848        "apiVersion": "2014-01-01"
  1849      },
  1850      "clientEndpoint": "https://service.region.amazonaws.com",
  1851      "shapes": {
  1852        "StaticInputShape": {
  1853          "type": "structure",
  1854          "members": {
  1855            "Name": {
  1856              "shape": "StringType"
  1857            }
  1858          }
  1859        },
  1860        "MemberRefInputShape": {
  1861          "type": "structure",
  1862          "members": {
  1863            "Name": {
  1864              "shape": "StringType",
  1865              "hostLabel": true
  1866            }
  1867          }
  1868        },
  1869        "StringType": {
  1870          "type": "string"
  1871        }
  1872      },
  1873      "cases": [
  1874        {
  1875          "given": {
  1876            "name": "StaticOp",
  1877            "input": {
  1878              "shape": "StaticInputShape",
  1879              "locationName": "StaticOpRequest"
  1880            },
  1881            "http": {
  1882              "method": "POST",
  1883              "requestUri": "/path"
  1884            },
  1885            "endpoint":{
  1886                "hostPrefix": "data-"
  1887            }
  1888          },
  1889          "params": {
  1890            "Name": "myname"
  1891          },
  1892          "serialized": {
  1893            "uri": "/path",
  1894            "body": "<StaticOpRequest><Name>myname</Name></StaticOpRequest>",
  1895            "host": "data-service.region.amazonaws.com"
  1896          }
  1897        },
  1898        {
  1899          "given": {
  1900            "name": "MemberRefOp",
  1901            "input": {
  1902              "shape": "MemberRefInputShape",
  1903              "locationName": "MemberRefOpRequest"
  1904            },
  1905            "http": {
  1906              "method": "POST",
  1907              "requestUri": "/path"
  1908            },
  1909            "endpoint":{
  1910                "hostPrefix": "foo-{Name}."
  1911            }
  1912          },
  1913          "params": {
  1914            "Name": "myname"
  1915          },
  1916          "serialized": {
  1917            "uri": "/path",
  1918            "body": "<MemberRefOpRequest><Name>myname</Name></MemberRefOpRequest>",
  1919            "host": "foo-myname.service.region.amazonaws.com"
  1920          }
  1921        }
  1922      ]
  1923    },
  1924    {
  1925      "description": "Header whitespace",
  1926      "metadata": {
  1927        "protocol": "rest-xml",
  1928        "apiVersion": "2014-01-01"
  1929      },
  1930      "shapes": {
  1931        "InputShape": {
  1932          "type": "structure",
  1933          "members": {
  1934            "Header1": {
  1935              "shape": "StringType",
  1936              "location": "header"
  1937            },
  1938            "HeaderMap": {
  1939              "shape": "StringMap",
  1940              "location": "headers",
  1941              "locationName": "header-map-"
  1942            }
  1943          }
  1944        },
  1945        "StringType": {
  1946          "type": "string"
  1947        },
  1948        "StringMap": {
  1949          "type": "map",
  1950          "key": {
  1951            "shape": "StringType"
  1952          },
  1953          "value": {
  1954            "shape": "StringType"
  1955          }
  1956        }
  1957      },
  1958      "cases": [
  1959        {
  1960          "given": {
  1961            "http": {
  1962              "method": "GET",
  1963              "requestUri": "/"
  1964            },
  1965            "input": {
  1966              "shape": "InputShape"
  1967            },
  1968            "name": "OperationName"
  1969          },
  1970          "params": {
  1971            "Header1": "   headerValue",
  1972            "HeaderMap": {
  1973                "leading-space": "   value",
  1974                "with-space": "   value   ",
  1975                "leading-tab": "    value",
  1976                "   key-leading-space": "value",
  1977                "   key-with-space   ": "value"
  1978            }
  1979          },
  1980          "serialized": {
  1981            "body": "",
  1982            "uri": "/",
  1983            "headers": {
  1984                "header1": "headerValue",
  1985                "header-map-leading-space": "value",
  1986                "header-map-with-space": "value",
  1987                "header-map-leading-tab": "value",
  1988                "header-map-key-leading-space": "value",
  1989                "header-map-key-with-space": "value"
  1990            }
  1991          }
  1992        }
  1993      ]
  1994    }
  1995  ]