query.json 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062
  1. [
  2. {
  3. "description": "Scalar members",
  4. "metadata": {
  5. "protocol": "query",
  6. "apiVersion": "2014-01-01"
  7. },
  8. "shapes": {
  9. "InputShape": {
  10. "type": "structure",
  11. "members": {
  12. "Foo": {
  13. "shape": "StringType"
  14. },
  15. "Bar": {
  16. "shape": "StringType"
  17. },
  18. "Baz": {
  19. "shape": "BooleanType"
  20. }
  21. }
  22. },
  23. "StringType": {
  24. "type": "string"
  25. },
  26. "BooleanType": {
  27. "type": "boolean"
  28. }
  29. },
  30. "cases": [
  31. {
  32. "given": {
  33. "input": {
  34. "shape": "InputShape"
  35. },
  36. "name": "OperationName"
  37. },
  38. "params": {
  39. "Foo": "val1",
  40. "Bar": "val2"
  41. },
  42. "serialized": {
  43. "uri": "/",
  44. "body": "Action=OperationName&Version=2014-01-01&Foo=val1&Bar=val2"
  45. }
  46. },
  47. {
  48. "given": {
  49. "input": {
  50. "shape": "InputShape"
  51. },
  52. "name": "OperationName"
  53. },
  54. "params": {
  55. "Baz": true
  56. },
  57. "serialized": {
  58. "uri": "/",
  59. "body": "Action=OperationName&Version=2014-01-01&Baz=true"
  60. }
  61. },
  62. {
  63. "given": {
  64. "input": {
  65. "shape": "InputShape"
  66. },
  67. "name": "OperationName"
  68. },
  69. "params": {
  70. "Baz": false
  71. },
  72. "serialized": {
  73. "uri": "/",
  74. "body": "Action=OperationName&Version=2014-01-01&Baz=false"
  75. }
  76. }
  77. ]
  78. },
  79. {
  80. "description": "Nested structure members",
  81. "metadata": {
  82. "protocol": "query",
  83. "apiVersion": "2014-01-01"
  84. },
  85. "shapes": {
  86. "InputShape": {
  87. "type": "structure",
  88. "members": {
  89. "StructArg": {
  90. "shape": "StructType"
  91. }
  92. }
  93. },
  94. "StructType": {
  95. "type": "structure",
  96. "members": {
  97. "ScalarArg": {
  98. "shape": "StringType"
  99. }
  100. }
  101. },
  102. "StringType": {
  103. "type": "string"
  104. }
  105. },
  106. "cases": [
  107. {
  108. "given": {
  109. "input": {
  110. "shape": "InputShape"
  111. },
  112. "name": "OperationName"
  113. },
  114. "params": {
  115. "StructArg": {
  116. "ScalarArg": "foo"
  117. }
  118. },
  119. "serialized": {
  120. "uri": "/",
  121. "body": "Action=OperationName&Version=2014-01-01&StructArg.ScalarArg=foo"
  122. }
  123. }
  124. ]
  125. },
  126. {
  127. "description": "List types",
  128. "metadata": {
  129. "protocol": "query",
  130. "apiVersion": "2014-01-01"
  131. },
  132. "shapes": {
  133. "InputShape": {
  134. "type": "structure",
  135. "members": {
  136. "ListArg": {
  137. "shape": "ListType"
  138. }
  139. }
  140. },
  141. "ListType": {
  142. "type": "list",
  143. "member": {
  144. "shape": "Strings"
  145. }
  146. },
  147. "Strings": {
  148. "type": "string"
  149. }
  150. },
  151. "cases": [
  152. {
  153. "given": {
  154. "input": {
  155. "shape": "InputShape"
  156. },
  157. "name": "OperationName"
  158. },
  159. "params": {
  160. "ListArg": [
  161. "foo",
  162. "bar",
  163. "baz"
  164. ]
  165. },
  166. "serialized": {
  167. "uri": "/",
  168. "body": "Action=OperationName&Version=2014-01-01&ListArg.member.1=foo&ListArg.member.2=bar&ListArg.member.3=baz"
  169. }
  170. },
  171. {
  172. "given": {
  173. "input": {
  174. "shape": "InputShape"
  175. },
  176. "name": "OperationName"
  177. },
  178. "params": {
  179. "ListArg": []
  180. },
  181. "serialized": {
  182. "uri": "/",
  183. "body": "Action=OperationName&Version=2014-01-01&ListArg="
  184. }
  185. }
  186. ]
  187. },
  188. {
  189. "description": "Flattened list",
  190. "metadata": {
  191. "protocol": "query",
  192. "apiVersion": "2014-01-01"
  193. },
  194. "shapes": {
  195. "InputShape": {
  196. "type": "structure",
  197. "members": {
  198. "ScalarArg": {
  199. "shape": "StringType"
  200. },
  201. "ListArg": {
  202. "shape": "ListType"
  203. },
  204. "NamedListArg": {
  205. "shape": "NamedListType"
  206. }
  207. }
  208. },
  209. "ListType": {
  210. "type": "list",
  211. "member": {
  212. "shape": "StringType"
  213. },
  214. "flattened": true
  215. },
  216. "NamedListType": {
  217. "type": "list",
  218. "member": {
  219. "shape": "StringType",
  220. "locationName": "Foo"
  221. },
  222. "flattened": true
  223. },
  224. "StringType": {
  225. "type": "string"
  226. }
  227. },
  228. "cases": [
  229. {
  230. "given": {
  231. "input": {
  232. "shape": "InputShape"
  233. },
  234. "name": "OperationName"
  235. },
  236. "params": {
  237. "ScalarArg": "foo",
  238. "ListArg": [
  239. "a",
  240. "b",
  241. "c"
  242. ]
  243. },
  244. "serialized": {
  245. "uri": "/",
  246. "body": "Action=OperationName&Version=2014-01-01&ScalarArg=foo&ListArg.1=a&ListArg.2=b&ListArg.3=c"
  247. }
  248. },
  249. {
  250. "given": {
  251. "input": {
  252. "shape": "InputShape"
  253. },
  254. "name": "OperationName"
  255. },
  256. "params": {
  257. "NamedListArg": [
  258. "a"
  259. ]
  260. },
  261. "serialized": {
  262. "uri": "/",
  263. "body": "Action=OperationName&Version=2014-01-01&Foo.1=a"
  264. }
  265. }
  266. ]
  267. },
  268. {
  269. "description": "Serialize flattened map type",
  270. "metadata": {
  271. "protocol": "query",
  272. "apiVersion": "2014-01-01"
  273. },
  274. "shapes": {
  275. "InputShape": {
  276. "type": "structure",
  277. "members": {
  278. "MapArg": {
  279. "shape": "StringMap"
  280. }
  281. }
  282. },
  283. "StringMap": {
  284. "type": "map",
  285. "key": {
  286. "shape": "StringType"
  287. },
  288. "value": {
  289. "shape": "StringType"
  290. },
  291. "flattened": true
  292. },
  293. "StringType": {
  294. "type": "string"
  295. }
  296. },
  297. "cases": [
  298. {
  299. "given": {
  300. "input": {
  301. "shape": "InputShape"
  302. },
  303. "name": "OperationName"
  304. },
  305. "params": {
  306. "MapArg": {
  307. "key1": "val1",
  308. "key2": "val2"
  309. }
  310. },
  311. "serialized": {
  312. "uri": "/",
  313. "body": "Action=OperationName&Version=2014-01-01&MapArg.1.key=key1&MapArg.1.value=val1&MapArg.2.key=key2&MapArg.2.value=val2"
  314. }
  315. }
  316. ]
  317. },
  318. {
  319. "description": "Non flattened list with LocationName",
  320. "metadata": {
  321. "protocol": "query",
  322. "apiVersion": "2014-01-01"
  323. },
  324. "shapes": {
  325. "InputShape": {
  326. "type": "structure",
  327. "members": {
  328. "ListArg": {
  329. "shape": "ListType"
  330. }
  331. }
  332. },
  333. "ListType": {
  334. "type": "list",
  335. "member": {
  336. "shape": "StringType",
  337. "locationName": "item"
  338. }
  339. },
  340. "StringType": {
  341. "type": "string"
  342. }
  343. },
  344. "cases": [
  345. {
  346. "given": {
  347. "input": {
  348. "shape": "InputShape"
  349. },
  350. "name": "OperationName"
  351. },
  352. "params": {
  353. "ListArg": [
  354. "a",
  355. "b",
  356. "c"
  357. ]
  358. },
  359. "serialized": {
  360. "uri": "/",
  361. "body": "Action=OperationName&Version=2014-01-01&ListArg.item.1=a&ListArg.item.2=b&ListArg.item.3=c"
  362. }
  363. }
  364. ]
  365. },
  366. {
  367. "description": "Flattened list with LocationName",
  368. "metadata": {
  369. "protocol": "query",
  370. "apiVersion": "2014-01-01"
  371. },
  372. "shapes": {
  373. "InputShape": {
  374. "type": "structure",
  375. "members": {
  376. "ScalarArg": {
  377. "shape": "StringType"
  378. },
  379. "ListArg": {
  380. "shape": "ListType"
  381. }
  382. }
  383. },
  384. "ListType": {
  385. "type": "list",
  386. "member": {
  387. "shape": "StringType",
  388. "locationName": "ListArgLocation"
  389. },
  390. "flattened": true
  391. },
  392. "StringType": {
  393. "type": "string"
  394. }
  395. },
  396. "cases": [
  397. {
  398. "given": {
  399. "input": {
  400. "shape": "InputShape"
  401. },
  402. "name": "OperationName"
  403. },
  404. "params": {
  405. "ScalarArg": "foo",
  406. "ListArg": [
  407. "a",
  408. "b",
  409. "c"
  410. ]
  411. },
  412. "serialized": {
  413. "uri": "/",
  414. "body": "Action=OperationName&Version=2014-01-01&ScalarArg=foo&ListArgLocation.1=a&ListArgLocation.2=b&ListArgLocation.3=c"
  415. }
  416. }
  417. ]
  418. },
  419. {
  420. "description": "Serialize map type",
  421. "metadata": {
  422. "protocol": "query",
  423. "apiVersion": "2014-01-01"
  424. },
  425. "shapes": {
  426. "InputShape": {
  427. "type": "structure",
  428. "members": {
  429. "MapArg": {
  430. "shape": "StringMap"
  431. }
  432. }
  433. },
  434. "StringMap": {
  435. "type": "map",
  436. "key": {
  437. "shape": "StringType"
  438. },
  439. "value": {
  440. "shape": "StringType"
  441. }
  442. },
  443. "StringType": {
  444. "type": "string"
  445. }
  446. },
  447. "cases": [
  448. {
  449. "given": {
  450. "input": {
  451. "shape": "InputShape"
  452. },
  453. "name": "OperationName"
  454. },
  455. "params": {
  456. "MapArg": {
  457. "key1": "val1",
  458. "key2": "val2"
  459. }
  460. },
  461. "serialized": {
  462. "uri": "/",
  463. "body": "Action=OperationName&Version=2014-01-01&MapArg.entry.1.key=key1&MapArg.entry.1.value=val1&MapArg.entry.2.key=key2&MapArg.entry.2.value=val2"
  464. }
  465. }
  466. ]
  467. },
  468. {
  469. "description": "Serialize map type with locationName",
  470. "metadata": {
  471. "protocol": "query",
  472. "apiVersion": "2014-01-01"
  473. },
  474. "shapes": {
  475. "InputShape": {
  476. "type": "structure",
  477. "members": {
  478. "MapArg": {
  479. "shape": "StringMap"
  480. }
  481. }
  482. },
  483. "StringMap": {
  484. "type": "map",
  485. "key": {
  486. "shape": "StringType",
  487. "locationName": "TheKey"
  488. },
  489. "value": {
  490. "shape": "StringType",
  491. "locationName": "TheValue"
  492. }
  493. },
  494. "StringType": {
  495. "type": "string"
  496. }
  497. },
  498. "cases": [
  499. {
  500. "given": {
  501. "input": {
  502. "shape": "InputShape"
  503. },
  504. "name": "OperationName"
  505. },
  506. "params": {
  507. "MapArg": {
  508. "key1": "val1",
  509. "key2": "val2"
  510. }
  511. },
  512. "serialized": {
  513. "uri": "/",
  514. "body": "Action=OperationName&Version=2014-01-01&MapArg.entry.1.TheKey=key1&MapArg.entry.1.TheValue=val1&MapArg.entry.2.TheKey=key2&MapArg.entry.2.TheValue=val2"
  515. }
  516. }
  517. ]
  518. },
  519. {
  520. "description": "Base64 encoded Blobs",
  521. "metadata": {
  522. "protocol": "query",
  523. "apiVersion": "2014-01-01"
  524. },
  525. "shapes": {
  526. "InputShape": {
  527. "type": "structure",
  528. "members": {
  529. "BlobArg": {
  530. "shape": "BlobType"
  531. }
  532. }
  533. },
  534. "BlobType": {
  535. "type": "blob"
  536. }
  537. },
  538. "cases": [
  539. {
  540. "given": {
  541. "input": {
  542. "shape": "InputShape"
  543. },
  544. "name": "OperationName"
  545. },
  546. "params": {
  547. "BlobArg": "foo"
  548. },
  549. "serialized": {
  550. "uri": "/",
  551. "body": "Action=OperationName&Version=2014-01-01&BlobArg=Zm9v"
  552. }
  553. }
  554. ]
  555. },
  556. {
  557. "description": "Base64 encoded Blobs nested",
  558. "metadata": {
  559. "protocol": "query",
  560. "apiVersion": "2014-01-01"
  561. },
  562. "shapes": {
  563. "InputShape": {
  564. "type": "structure",
  565. "members": {
  566. "BlobArgs": {
  567. "shape": "BlobsType"
  568. }
  569. }
  570. },
  571. "BlobsType": {
  572. "type": "list",
  573. "member": {
  574. "shape": "BlobType"
  575. },
  576. "flattened": true
  577. },
  578. "BlobType": {
  579. "type": "blob"
  580. }
  581. },
  582. "cases": [
  583. {
  584. "given": {
  585. "input": {
  586. "shape": "InputShape"
  587. },
  588. "name": "OperationName"
  589. },
  590. "params": {
  591. "BlobArgs": ["foo"]
  592. },
  593. "serialized": {
  594. "uri": "/",
  595. "body": "Action=OperationName&Version=2014-01-01&BlobArgs.1=Zm9v"
  596. }
  597. }
  598. ]
  599. },
  600. {
  601. "description": "Timestamp values",
  602. "metadata": {
  603. "protocol": "query",
  604. "apiVersion": "2014-01-01"
  605. },
  606. "shapes": {
  607. "InputShape": {
  608. "type": "structure",
  609. "members": {
  610. "TimeArg": {
  611. "shape": "TimestampType"
  612. },
  613. "TimeCustom": {
  614. "timestampFormat": "unixTimestamp",
  615. "shape": "TimestampType"
  616. },
  617. "TimeFormat": {
  618. "shape": "TimestampFormatType"
  619. }
  620. }
  621. },
  622. "TimestampFormatType": {
  623. "timestampFormat": "unixTimestamp",
  624. "type": "timestamp"
  625. },
  626. "TimestampType": {
  627. "type": "timestamp"
  628. }
  629. },
  630. "cases": [
  631. {
  632. "given": {
  633. "input": {
  634. "shape": "InputShape"
  635. },
  636. "name": "OperationName"
  637. },
  638. "params": {
  639. "TimeArg": 1422172800,
  640. "TimeCustom": 1422172800,
  641. "TimeFormat": 1422172800
  642. },
  643. "serialized": {
  644. "uri": "/",
  645. "body": "Action=OperationName&Version=2014-01-01&TimeArg=2015-01-25T08%3A00%3A00Z&TimeCustom=1422172800&TimeFormat=1422172800"
  646. }
  647. }
  648. ]
  649. },
  650. {
  651. "description": "Recursive shapes",
  652. "metadata": {
  653. "protocol": "query",
  654. "apiVersion": "2014-01-01"
  655. },
  656. "shapes": {
  657. "InputShape": {
  658. "type": "structure",
  659. "members": {
  660. "RecursiveStruct": {
  661. "shape": "RecursiveStructType"
  662. }
  663. }
  664. },
  665. "RecursiveStructType": {
  666. "type": "structure",
  667. "members": {
  668. "NoRecurse": {
  669. "shape": "StringType"
  670. },
  671. "RecursiveStruct": {
  672. "shape": "RecursiveStructType"
  673. },
  674. "RecursiveList": {
  675. "shape": "RecursiveListType"
  676. },
  677. "RecursiveMap": {
  678. "shape": "RecursiveMapType"
  679. }
  680. }
  681. },
  682. "RecursiveListType": {
  683. "type": "list",
  684. "member": {
  685. "shape": "RecursiveStructType"
  686. }
  687. },
  688. "RecursiveMapType": {
  689. "type": "map",
  690. "key": {
  691. "shape": "StringType"
  692. },
  693. "value": {
  694. "shape": "RecursiveStructType"
  695. }
  696. },
  697. "StringType": {
  698. "type": "string"
  699. }
  700. },
  701. "cases": [
  702. {
  703. "given": {
  704. "input": {
  705. "shape": "InputShape"
  706. },
  707. "name": "OperationName"
  708. },
  709. "params": {
  710. "RecursiveStruct": {
  711. "NoRecurse": "foo"
  712. }
  713. },
  714. "serialized": {
  715. "uri": "/",
  716. "body": "Action=OperationName&Version=2014-01-01&RecursiveStruct.NoRecurse=foo"
  717. }
  718. },
  719. {
  720. "given": {
  721. "input": {
  722. "shape": "InputShape"
  723. },
  724. "name": "OperationName"
  725. },
  726. "params": {
  727. "RecursiveStruct": {
  728. "RecursiveStruct": {
  729. "NoRecurse": "foo"
  730. }
  731. }
  732. },
  733. "serialized": {
  734. "uri": "/",
  735. "body": "Action=OperationName&Version=2014-01-01&RecursiveStruct.RecursiveStruct.NoRecurse=foo"
  736. }
  737. },
  738. {
  739. "given": {
  740. "input": {
  741. "shape": "InputShape"
  742. },
  743. "name": "OperationName"
  744. },
  745. "params": {
  746. "RecursiveStruct": {
  747. "RecursiveStruct": {
  748. "RecursiveStruct": {
  749. "RecursiveStruct": {
  750. "NoRecurse": "foo"
  751. }
  752. }
  753. }
  754. }
  755. },
  756. "serialized": {
  757. "uri": "/",
  758. "body": "Action=OperationName&Version=2014-01-01&RecursiveStruct.RecursiveStruct.RecursiveStruct.RecursiveStruct.NoRecurse=foo"
  759. }
  760. },
  761. {
  762. "given": {
  763. "input": {
  764. "shape": "InputShape"
  765. },
  766. "name": "OperationName"
  767. },
  768. "params": {
  769. "RecursiveStruct": {
  770. "RecursiveList": [
  771. {
  772. "NoRecurse": "foo"
  773. },
  774. {
  775. "NoRecurse": "bar"
  776. }
  777. ]
  778. }
  779. },
  780. "serialized": {
  781. "uri": "/",
  782. "body": "Action=OperationName&Version=2014-01-01&RecursiveStruct.RecursiveList.member.1.NoRecurse=foo&RecursiveStruct.RecursiveList.member.2.NoRecurse=bar"
  783. }
  784. },
  785. {
  786. "given": {
  787. "input": {
  788. "shape": "InputShape"
  789. },
  790. "name": "OperationName"
  791. },
  792. "params": {
  793. "RecursiveStruct": {
  794. "RecursiveList": [
  795. {
  796. "NoRecurse": "foo"
  797. },
  798. {
  799. "RecursiveStruct": {
  800. "NoRecurse": "bar"
  801. }
  802. }
  803. ]
  804. }
  805. },
  806. "serialized": {
  807. "uri": "/",
  808. "body": "Action=OperationName&Version=2014-01-01&RecursiveStruct.RecursiveList.member.1.NoRecurse=foo&RecursiveStruct.RecursiveList.member.2.RecursiveStruct.NoRecurse=bar"
  809. }
  810. },
  811. {
  812. "given": {
  813. "input": {
  814. "shape": "InputShape"
  815. },
  816. "name": "OperationName"
  817. },
  818. "params": {
  819. "RecursiveStruct": {
  820. "RecursiveMap": {
  821. "foo": {
  822. "NoRecurse": "foo"
  823. },
  824. "bar": {
  825. "NoRecurse": "bar"
  826. }
  827. }
  828. }
  829. },
  830. "serialized": {
  831. "uri": "/",
  832. "body": "Action=OperationName&Version=2014-01-01&RecursiveStruct.RecursiveMap.entry.1.key=foo&RecursiveStruct.RecursiveMap.entry.1.value.NoRecurse=foo&RecursiveStruct.RecursiveMap.entry.2.key=bar&RecursiveStruct.RecursiveMap.entry.2.value.NoRecurse=bar"
  833. }
  834. }
  835. ]
  836. },
  837. {
  838. "description": "Idempotency token auto fill",
  839. "metadata": {
  840. "protocol": "query",
  841. "apiVersion": "2014-01-01"
  842. },
  843. "shapes": {
  844. "InputShape": {
  845. "type": "structure",
  846. "members": {
  847. "Token": {
  848. "shape": "StringType",
  849. "idempotencyToken": true
  850. }
  851. }
  852. },
  853. "StringType": {
  854. "type": "string"
  855. }
  856. },
  857. "cases": [
  858. {
  859. "given": {
  860. "input": {
  861. "shape": "InputShape"
  862. },
  863. "http": {
  864. "method": "POST"
  865. },
  866. "name": "OperationName"
  867. },
  868. "params": {
  869. "Token": "abc123"
  870. },
  871. "serialized": {
  872. "uri": "/",
  873. "headers": {},
  874. "body": "Action=OperationName&Version=2014-01-01&Token=abc123"
  875. }
  876. },
  877. {
  878. "given": {
  879. "input": {
  880. "shape": "InputShape"
  881. },
  882. "http": {
  883. "method": "POST"
  884. },
  885. "name": "OperationName"
  886. },
  887. "params": {
  888. },
  889. "serialized": {
  890. "uri": "/",
  891. "headers": {},
  892. "body": "Action=OperationName&Version=2014-01-01&Token=00000000-0000-4000-8000-000000000000"
  893. }
  894. }
  895. ]
  896. },
  897. {
  898. "description": "Enum",
  899. "metadata": {
  900. "protocol": "query",
  901. "apiVersion": "2014-01-01"
  902. },
  903. "shapes": {
  904. "InputShape": {
  905. "type": "structure",
  906. "members": {
  907. "FooEnum": {
  908. "shape": "EnumType"
  909. },
  910. "ListEnums": {
  911. "shape": "EnumList"
  912. }
  913. }
  914. },
  915. "EnumType":{
  916. "type":"string",
  917. "enum":[
  918. "foo",
  919. "bar"
  920. ]
  921. },
  922. "EnumList":{
  923. "type":"list",
  924. "member": {"shape": "EnumType"}
  925. }
  926. },
  927. "cases": [
  928. {
  929. "given": {
  930. "input": {
  931. "shape": "InputShape"
  932. },
  933. "http": {
  934. "method": "POST"
  935. },
  936. "name": "OperationName"
  937. },
  938. "params": {
  939. "FooEnum": "foo",
  940. "ListEnums": ["foo", "", "bar"]
  941. },
  942. "serialized": {
  943. "uri": "/",
  944. "headers": {},
  945. "body": "Action=OperationName&Version=2014-01-01&FooEnum=foo&ListEnums.member.1=foo&ListEnums.member.2=&ListEnums.member.3=bar"
  946. }
  947. },
  948. {
  949. "given": {
  950. "input": {
  951. "shape": "InputShape"
  952. },
  953. "http": {
  954. "method": "POST"
  955. },
  956. "name": "OperationName"
  957. },
  958. "params": {
  959. "FooEnum": "foo"
  960. },
  961. "serialized": {
  962. "uri": "/",
  963. "headers": {},
  964. "body": "Action=OperationName&Version=2014-01-01&FooEnum=foo"
  965. }
  966. },
  967. {
  968. "given": {
  969. "input": {
  970. "shape": "InputShape"
  971. },
  972. "http": {
  973. "method": "POST"
  974. }, "name": "OperationName"
  975. },
  976. "params": {
  977. },
  978. "serialized": {
  979. "uri": "/",
  980. "headers": {},
  981. "body": "Action=OperationName&Version=2014-01-01"
  982. }
  983. }
  984. ]
  985. },
  986. {
  987. "description": "Endpoint host trait",
  988. "metadata": {
  989. "protocol": "query",
  990. "apiVersion": "2014-01-01"
  991. },
  992. "clientEndpoint": "https://service.region.amazonaws.com",
  993. "shapes": {
  994. "StaticInputShape": {
  995. "type": "structure",
  996. "members": {
  997. "Name": {
  998. "shape": "StringType"
  999. }
  1000. }
  1001. },
  1002. "MemberRefInputShape": {
  1003. "type": "structure",
  1004. "members": {
  1005. "Name": {
  1006. "shape": "StringType",
  1007. "hostLabel": true
  1008. }
  1009. }
  1010. },
  1011. "StringType": {
  1012. "type": "string"
  1013. }
  1014. },
  1015. "cases": [
  1016. {
  1017. "given": {
  1018. "name": "StaticOp",
  1019. "input": {
  1020. "shape": "StaticInputShape"
  1021. },
  1022. "http": {
  1023. "method": "POST"
  1024. },
  1025. "endpoint":{
  1026. "hostPrefix": "data-"
  1027. }
  1028. },
  1029. "params": {
  1030. "Name": "myname"
  1031. },
  1032. "serialized": {
  1033. "uri": "/",
  1034. "body": "Action=StaticOp&Version=2014-01-01&Name=myname",
  1035. "host": "data-service.region.amazonaws.com"
  1036. }
  1037. },
  1038. {
  1039. "given": {
  1040. "name": "MemberRefOp",
  1041. "input": {
  1042. "shape": "MemberRefInputShape"
  1043. },
  1044. "http": {
  1045. "method": "POST"
  1046. },
  1047. "endpoint":{
  1048. "hostPrefix": "foo-{Name}."
  1049. }
  1050. },
  1051. "params": {
  1052. "Name": "myname"
  1053. },
  1054. "serialized": {
  1055. "uri": "/",
  1056. "body": "Action=MemberRefOp&Version=2014-01-01&Name=myname",
  1057. "host": "foo-myname.service.region.amazonaws.com"
  1058. }
  1059. }
  1060. ]
  1061. }
  1062. ]