@typespec/http-specs 0.1.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (335) hide show
  1. package/CHANGELOG.md +1 -0
  2. package/LICENSE +21 -0
  3. package/README.md +36 -0
  4. package/assets/image.jpg +0 -0
  5. package/assets/image.png +0 -0
  6. package/dist/specs/authentication/api-key/mockapi.d.ts +3 -0
  7. package/dist/specs/authentication/api-key/mockapi.d.ts.map +1 -0
  8. package/dist/specs/authentication/api-key/mockapi.js +33 -0
  9. package/dist/specs/authentication/api-key/mockapi.js.map +1 -0
  10. package/dist/specs/authentication/http/custom/mockapi.d.ts +3 -0
  11. package/dist/specs/authentication/http/custom/mockapi.d.ts.map +1 -0
  12. package/dist/specs/authentication/http/custom/mockapi.js +33 -0
  13. package/dist/specs/authentication/http/custom/mockapi.js.map +1 -0
  14. package/dist/specs/authentication/oauth2/mockapi.d.ts +3 -0
  15. package/dist/specs/authentication/oauth2/mockapi.d.ts.map +1 -0
  16. package/dist/specs/authentication/oauth2/mockapi.js +30 -0
  17. package/dist/specs/authentication/oauth2/mockapi.js.map +1 -0
  18. package/dist/specs/authentication/union/mockapi.d.ts +3 -0
  19. package/dist/specs/authentication/union/mockapi.d.ts.map +1 -0
  20. package/dist/specs/authentication/union/mockapi.js +29 -0
  21. package/dist/specs/authentication/union/mockapi.js.map +1 -0
  22. package/dist/specs/encode/bytes/mockapi.d.ts +3 -0
  23. package/dist/specs/encode/bytes/mockapi.d.ts.map +1 -0
  24. package/dist/specs/encode/bytes/mockapi.js +167 -0
  25. package/dist/specs/encode/bytes/mockapi.js.map +1 -0
  26. package/dist/specs/encode/datetime/mockapi.d.ts +3 -0
  27. package/dist/specs/encode/datetime/mockapi.d.ts.map +1 -0
  28. package/dist/specs/encode/datetime/mockapi.js +160 -0
  29. package/dist/specs/encode/datetime/mockapi.js.map +1 -0
  30. package/dist/specs/encode/duration/mockapi.d.ts +3 -0
  31. package/dist/specs/encode/duration/mockapi.d.ts.map +1 -0
  32. package/dist/specs/encode/duration/mockapi.js +103 -0
  33. package/dist/specs/encode/duration/mockapi.js.map +1 -0
  34. package/dist/specs/encode/numeric/mockapi.d.ts +3 -0
  35. package/dist/specs/encode/numeric/mockapi.d.ts.map +1 -0
  36. package/dist/specs/encode/numeric/mockapi.js +22 -0
  37. package/dist/specs/encode/numeric/mockapi.js.map +1 -0
  38. package/dist/specs/helper.d.ts +3 -0
  39. package/dist/specs/helper.d.ts.map +1 -0
  40. package/dist/specs/helper.js +7 -0
  41. package/dist/specs/helper.js.map +1 -0
  42. package/dist/specs/parameters/basic/mockapi.d.ts +3 -0
  43. package/dist/specs/parameters/basic/mockapi.d.ts.map +1 -0
  44. package/dist/specs/parameters/basic/mockapi.js +20 -0
  45. package/dist/specs/parameters/basic/mockapi.js.map +1 -0
  46. package/dist/specs/parameters/body-optionality/mockapi.d.ts +3 -0
  47. package/dist/specs/parameters/body-optionality/mockapi.d.ts.map +1 -0
  48. package/dist/specs/parameters/body-optionality/mockapi.js +50 -0
  49. package/dist/specs/parameters/body-optionality/mockapi.js.map +1 -0
  50. package/dist/specs/parameters/collection-format/mockapi.d.ts +3 -0
  51. package/dist/specs/parameters/collection-format/mockapi.d.ts.map +1 -0
  52. package/dist/specs/parameters/collection-format/mockapi.js +76 -0
  53. package/dist/specs/parameters/collection-format/mockapi.js.map +1 -0
  54. package/dist/specs/parameters/spread/mockapi.d.ts +3 -0
  55. package/dist/specs/parameters/spread/mockapi.d.ts.map +1 -0
  56. package/dist/specs/parameters/spread/mockapi.js +155 -0
  57. package/dist/specs/parameters/spread/mockapi.js.map +1 -0
  58. package/dist/specs/payload/content-negotiation/mockapi.d.ts +3 -0
  59. package/dist/specs/payload/content-negotiation/mockapi.d.ts.map +1 -0
  60. package/dist/specs/payload/content-negotiation/mockapi.js +169 -0
  61. package/dist/specs/payload/content-negotiation/mockapi.js.map +1 -0
  62. package/dist/specs/payload/json-merge-patch/mockapi.d.ts +38 -0
  63. package/dist/specs/payload/json-merge-patch/mockapi.d.ts.map +1 -0
  64. package/dist/specs/payload/json-merge-patch/mockapi.js +90 -0
  65. package/dist/specs/payload/json-merge-patch/mockapi.js.map +1 -0
  66. package/dist/specs/payload/media-type/mockapi.d.ts +3 -0
  67. package/dist/specs/payload/media-type/mockapi.d.ts.map +1 -0
  68. package/dist/specs/payload/media-type/mockapi.js +59 -0
  69. package/dist/specs/payload/media-type/mockapi.js.map +1 -0
  70. package/dist/specs/payload/multipart/mockapi.d.ts +3 -0
  71. package/dist/specs/payload/multipart/mockapi.d.ts.map +1 -0
  72. package/dist/specs/payload/multipart/mockapi.js +323 -0
  73. package/dist/specs/payload/multipart/mockapi.js.map +1 -0
  74. package/dist/specs/payload/xml/mockapi.d.ts +15 -0
  75. package/dist/specs/payload/xml/mockapi.d.ts.map +1 -0
  76. package/dist/specs/payload/xml/mockapi.js +183 -0
  77. package/dist/specs/payload/xml/mockapi.js.map +1 -0
  78. package/dist/specs/routes/mockapi.d.ts +3 -0
  79. package/dist/specs/routes/mockapi.d.ts.map +1 -0
  80. package/dist/specs/routes/mockapi.js +94 -0
  81. package/dist/specs/routes/mockapi.js.map +1 -0
  82. package/dist/specs/serialization/encoded-name/json/mockapi.d.ts +3 -0
  83. package/dist/specs/serialization/encoded-name/json/mockapi.d.ts.map +1 -0
  84. package/dist/specs/serialization/encoded-name/json/mockapi.js +20 -0
  85. package/dist/specs/serialization/encoded-name/json/mockapi.js.map +1 -0
  86. package/dist/specs/server/endpoint/not-defined/mockapi.d.ts +3 -0
  87. package/dist/specs/server/endpoint/not-defined/mockapi.d.ts.map +1 -0
  88. package/dist/specs/server/endpoint/not-defined/mockapi.js +12 -0
  89. package/dist/specs/server/endpoint/not-defined/mockapi.js.map +1 -0
  90. package/dist/specs/server/path/multiple/mockapi.d.ts +3 -0
  91. package/dist/specs/server/path/multiple/mockapi.d.ts.map +1 -0
  92. package/dist/specs/server/path/multiple/mockapi.js +21 -0
  93. package/dist/specs/server/path/multiple/mockapi.js.map +1 -0
  94. package/dist/specs/server/path/single/mockapi.d.ts +3 -0
  95. package/dist/specs/server/path/single/mockapi.d.ts.map +1 -0
  96. package/dist/specs/server/path/single/mockapi.js +12 -0
  97. package/dist/specs/server/path/single/mockapi.js.map +1 -0
  98. package/dist/specs/server/versions/not-versioned/mockapi.d.ts +3 -0
  99. package/dist/specs/server/versions/not-versioned/mockapi.d.ts.map +1 -0
  100. package/dist/specs/server/versions/not-versioned/mockapi.js +42 -0
  101. package/dist/specs/server/versions/not-versioned/mockapi.js.map +1 -0
  102. package/dist/specs/server/versions/versioned/mockapi.d.ts +3 -0
  103. package/dist/specs/server/versions/versioned/mockapi.d.ts.map +1 -0
  104. package/dist/specs/server/versions/versioned/mockapi.js +43 -0
  105. package/dist/specs/server/versions/versioned/mockapi.js.map +1 -0
  106. package/dist/specs/special-headers/conditional-request/mockapi.d.ts +3 -0
  107. package/dist/specs/special-headers/conditional-request/mockapi.d.ts.map +1 -0
  108. package/dist/specs/special-headers/conditional-request/mockapi.js +55 -0
  109. package/dist/specs/special-headers/conditional-request/mockapi.js.map +1 -0
  110. package/dist/specs/special-headers/repeatability/mockapi.d.ts +3 -0
  111. package/dist/specs/special-headers/repeatability/mockapi.d.ts.map +1 -0
  112. package/dist/specs/special-headers/repeatability/mockapi.js +36 -0
  113. package/dist/specs/special-headers/repeatability/mockapi.js.map +1 -0
  114. package/dist/specs/special-words/dec.d.ts +22 -0
  115. package/dist/specs/special-words/dec.d.ts.map +1 -0
  116. package/dist/specs/special-words/dec.js +37 -0
  117. package/dist/specs/special-words/dec.js.map +1 -0
  118. package/dist/specs/special-words/mockapi.d.ts +3 -0
  119. package/dist/specs/special-words/mockapi.d.ts.map +1 -0
  120. package/dist/specs/special-words/mockapi.js +223 -0
  121. package/dist/specs/special-words/mockapi.js.map +1 -0
  122. package/dist/specs/type/array/mockapi.d.ts +3 -0
  123. package/dist/specs/type/array/mockapi.d.ts.map +1 -0
  124. package/dist/specs/type/array/mockapi.js +92 -0
  125. package/dist/specs/type/array/mockapi.js.map +1 -0
  126. package/dist/specs/type/dictionary/mockapi.d.ts +3 -0
  127. package/dist/specs/type/dictionary/mockapi.d.ts.map +1 -0
  128. package/dist/specs/type/dictionary/mockapi.js +91 -0
  129. package/dist/specs/type/dictionary/mockapi.js.map +1 -0
  130. package/dist/specs/type/enum/extensible/mockapi.d.ts +3 -0
  131. package/dist/specs/type/enum/extensible/mockapi.d.ts.map +1 -0
  132. package/dist/specs/type/enum/extensible/mockapi.js +39 -0
  133. package/dist/specs/type/enum/extensible/mockapi.js.map +1 -0
  134. package/dist/specs/type/enum/fixed/mockapi.d.ts +3 -0
  135. package/dist/specs/type/enum/fixed/mockapi.d.ts.map +1 -0
  136. package/dist/specs/type/enum/fixed/mockapi.js +42 -0
  137. package/dist/specs/type/enum/fixed/mockapi.js.map +1 -0
  138. package/dist/specs/type/model/empty/mockapi.d.ts +3 -0
  139. package/dist/specs/type/model/empty/mockapi.d.ts.map +1 -0
  140. package/dist/specs/type/model/empty/mockapi.js +37 -0
  141. package/dist/specs/type/model/empty/mockapi.js.map +1 -0
  142. package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.d.ts +3 -0
  143. package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.d.ts.map +1 -0
  144. package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js +69 -0
  145. package/dist/specs/type/model/inheritance/enum-discriminator/mockapi.js.map +1 -0
  146. package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.d.ts +3 -0
  147. package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.d.ts.map +1 -0
  148. package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js +127 -0
  149. package/dist/specs/type/model/inheritance/nested-discriminator/mockapi.js.map +1 -0
  150. package/dist/specs/type/model/inheritance/not-discriminated/mockapi.d.ts +3 -0
  151. package/dist/specs/type/model/inheritance/not-discriminated/mockapi.d.ts.map +1 -0
  152. package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js +37 -0
  153. package/dist/specs/type/model/inheritance/not-discriminated/mockapi.js.map +1 -0
  154. package/dist/specs/type/model/inheritance/recursive/mockapi.d.ts +3 -0
  155. package/dist/specs/type/model/inheritance/recursive/mockapi.d.ts.map +1 -0
  156. package/dist/specs/type/model/inheritance/recursive/mockapi.js +40 -0
  157. package/dist/specs/type/model/inheritance/recursive/mockapi.js.map +1 -0
  158. package/dist/specs/type/model/inheritance/single-discriminator/mockapi.d.ts +3 -0
  159. package/dist/specs/type/model/inheritance/single-discriminator/mockapi.d.ts.map +1 -0
  160. package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js +99 -0
  161. package/dist/specs/type/model/inheritance/single-discriminator/mockapi.js.map +1 -0
  162. package/dist/specs/type/model/templated/mockapi.d.ts +3 -0
  163. package/dist/specs/type/model/templated/mockapi.d.ts.map +1 -0
  164. package/dist/specs/type/model/templated/mockapi.js +63 -0
  165. package/dist/specs/type/model/templated/mockapi.js.map +1 -0
  166. package/dist/specs/type/model/usage/mockapi.d.ts +3 -0
  167. package/dist/specs/type/model/usage/mockapi.d.ts.map +1 -0
  168. package/dist/specs/type/model/usage/mockapi.js +41 -0
  169. package/dist/specs/type/model/usage/mockapi.js.map +1 -0
  170. package/dist/specs/type/model/visibility/mockapi.d.ts +3 -0
  171. package/dist/specs/type/model/visibility/mockapi.d.ts.map +1 -0
  172. package/dist/specs/type/model/visibility/mockapi.js +107 -0
  173. package/dist/specs/type/model/visibility/mockapi.js.map +1 -0
  174. package/dist/specs/type/property/additional-properties/mockapi.d.ts +3 -0
  175. package/dist/specs/type/property/additional-properties/mockapi.d.ts.map +1 -0
  176. package/dist/specs/type/property/additional-properties/mockapi.js +333 -0
  177. package/dist/specs/type/property/additional-properties/mockapi.js.map +1 -0
  178. package/dist/specs/type/property/nullable/mockapi.d.ts +3 -0
  179. package/dist/specs/type/property/nullable/mockapi.d.ts.map +1 -0
  180. package/dist/specs/type/property/nullable/mockapi.js +132 -0
  181. package/dist/specs/type/property/nullable/mockapi.js.map +1 -0
  182. package/dist/specs/type/property/optionality/mockapi.d.ts +3 -0
  183. package/dist/specs/type/property/optionality/mockapi.d.ts.map +1 -0
  184. package/dist/specs/type/property/optionality/mockapi.js +185 -0
  185. package/dist/specs/type/property/optionality/mockapi.js.map +1 -0
  186. package/dist/specs/type/property/value-types/mockapi.d.ts +3 -0
  187. package/dist/specs/type/property/value-types/mockapi.d.ts.map +1 -0
  188. package/dist/specs/type/property/value-types/mockapi.js +214 -0
  189. package/dist/specs/type/property/value-types/mockapi.js.map +1 -0
  190. package/dist/specs/type/scalar/mockapi.d.ts +3 -0
  191. package/dist/specs/type/scalar/mockapi.d.ts.map +1 -0
  192. package/dist/specs/type/scalar/mockapi.js +193 -0
  193. package/dist/specs/type/scalar/mockapi.js.map +1 -0
  194. package/dist/specs/type/union/mockapi.d.ts +3 -0
  195. package/dist/specs/type/union/mockapi.d.ts.map +1 -0
  196. package/dist/specs/type/union/mockapi.js +106 -0
  197. package/dist/specs/type/union/mockapi.js.map +1 -0
  198. package/dist/specs/versioning/added/mockapi.d.ts +3 -0
  199. package/dist/specs/versioning/added/mockapi.d.ts.map +1 -0
  200. package/dist/specs/versioning/added/mockapi.js +54 -0
  201. package/dist/specs/versioning/added/mockapi.js.map +1 -0
  202. package/dist/specs/versioning/madeOptional/mockapi.d.ts +3 -0
  203. package/dist/specs/versioning/madeOptional/mockapi.d.ts.map +1 -0
  204. package/dist/specs/versioning/madeOptional/mockapi.js +17 -0
  205. package/dist/specs/versioning/madeOptional/mockapi.js.map +1 -0
  206. package/dist/specs/versioning/removed/mockapi.d.ts +3 -0
  207. package/dist/specs/versioning/removed/mockapi.d.ts.map +1 -0
  208. package/dist/specs/versioning/removed/mockapi.js +19 -0
  209. package/dist/specs/versioning/removed/mockapi.js.map +1 -0
  210. package/dist/specs/versioning/renamedFrom/mockapi.d.ts +3 -0
  211. package/dist/specs/versioning/renamedFrom/mockapi.d.ts.map +1 -0
  212. package/dist/specs/versioning/renamedFrom/mockapi.js +38 -0
  213. package/dist/specs/versioning/renamedFrom/mockapi.js.map +1 -0
  214. package/dist/specs/versioning/returnTypeChangedFrom/mockapi.d.ts +3 -0
  215. package/dist/specs/versioning/returnTypeChangedFrom/mockapi.d.ts.map +1 -0
  216. package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js +18 -0
  217. package/dist/specs/versioning/returnTypeChangedFrom/mockapi.js.map +1 -0
  218. package/dist/specs/versioning/typeChangedFrom/mockapi.d.ts +3 -0
  219. package/dist/specs/versioning/typeChangedFrom/mockapi.d.ts.map +1 -0
  220. package/dist/specs/versioning/typeChangedFrom/mockapi.js +21 -0
  221. package/dist/specs/versioning/typeChangedFrom/mockapi.js.map +1 -0
  222. package/package.json +55 -0
  223. package/spec-summary.md +7463 -0
  224. package/specs/README.md +3 -0
  225. package/specs/authentication/api-key/main.tsp +40 -0
  226. package/specs/authentication/api-key/mockapi.ts +35 -0
  227. package/specs/authentication/http/custom/main.tsp +40 -0
  228. package/specs/authentication/http/custom/mockapi.ts +35 -0
  229. package/specs/authentication/oauth2/main.tsp +45 -0
  230. package/specs/authentication/oauth2/mockapi.ts +32 -0
  231. package/specs/authentication/union/main.tsp +30 -0
  232. package/specs/authentication/union/mockapi.ts +31 -0
  233. package/specs/encode/bytes/main.tsp +363 -0
  234. package/specs/encode/bytes/mockapi.ts +297 -0
  235. package/specs/encode/datetime/main.tsp +339 -0
  236. package/specs/encode/datetime/mockapi.ts +274 -0
  237. package/specs/encode/duration/main.tsp +318 -0
  238. package/specs/encode/duration/mockapi.ts +191 -0
  239. package/specs/encode/numeric/main.tsp +69 -0
  240. package/specs/encode/numeric/mockapi.ts +32 -0
  241. package/specs/helper.ts +8 -0
  242. package/specs/parameters/basic/main.tsp +58 -0
  243. package/specs/parameters/basic/mockapi.ts +25 -0
  244. package/specs/parameters/body-optionality/main.tsp +61 -0
  245. package/specs/parameters/body-optionality/mockapi.ts +59 -0
  246. package/specs/parameters/collection-format/main.tsp +92 -0
  247. package/specs/parameters/collection-format/mockapi.ts +83 -0
  248. package/specs/parameters/spread/main.tsp +337 -0
  249. package/specs/parameters/spread/mockapi.ts +165 -0
  250. package/specs/payload/content-negotiation/main.tsp +61 -0
  251. package/specs/payload/content-negotiation/mockapi.ts +188 -0
  252. package/specs/payload/json-merge-patch/main.tsp +184 -0
  253. package/specs/payload/json-merge-patch/mockapi.ts +95 -0
  254. package/specs/payload/media-type/main.tsp +52 -0
  255. package/specs/payload/media-type/mockapi.ts +63 -0
  256. package/specs/payload/multipart/main.tsp +500 -0
  257. package/specs/payload/multipart/mockapi.ts +364 -0
  258. package/specs/payload/xml/main.tsp +302 -0
  259. package/specs/payload/xml/mockapi.ts +238 -0
  260. package/specs/routes/main.tsp +477 -0
  261. package/specs/routes/mockapi.ts +175 -0
  262. package/specs/scratch/.gitignore +3 -0
  263. package/specs/serialization/encoded-name/json/main.tsp +45 -0
  264. package/specs/serialization/encoded-name/json/mockapi.ts +22 -0
  265. package/specs/server/endpoint/not-defined/main.tsp +20 -0
  266. package/specs/server/endpoint/not-defined/mockapi.ts +13 -0
  267. package/specs/server/path/multiple/main.tsp +47 -0
  268. package/specs/server/path/multiple/mockapi.ts +23 -0
  269. package/specs/server/path/single/main.tsp +24 -0
  270. package/specs/server/path/single/mockapi.ts +13 -0
  271. package/specs/server/versions/not-versioned/main.tsp +40 -0
  272. package/specs/server/versions/not-versioned/mockapi.ts +51 -0
  273. package/specs/server/versions/versioned/main.tsp +64 -0
  274. package/specs/server/versions/versioned/mockapi.ts +64 -0
  275. package/specs/special-headers/conditional-request/main.tsp +89 -0
  276. package/specs/special-headers/conditional-request/mockapi.ts +59 -0
  277. package/specs/special-headers/repeatability/main.tsp +39 -0
  278. package/specs/special-headers/repeatability/mockapi.ts +47 -0
  279. package/specs/special-words/dec.js +52 -0
  280. package/specs/special-words/main.tsp +234 -0
  281. package/specs/special-words/mockapi.ts +384 -0
  282. package/specs/type/array/main.tsp +108 -0
  283. package/specs/type/array/mockapi.ts +107 -0
  284. package/specs/type/dictionary/main.tsp +101 -0
  285. package/specs/type/dictionary/mockapi.ts +103 -0
  286. package/specs/type/enum/extensible/main.tsp +65 -0
  287. package/specs/type/enum/extensible/mockapi.ts +48 -0
  288. package/specs/type/enum/fixed/main.tsp +60 -0
  289. package/specs/type/enum/fixed/mockapi.ts +44 -0
  290. package/specs/type/model/empty/main.tsp +40 -0
  291. package/specs/type/model/empty/mockapi.ts +40 -0
  292. package/specs/type/model/inheritance/enum-discriminator/main.tsp +169 -0
  293. package/specs/type/model/inheritance/enum-discriminator/mockapi.ts +89 -0
  294. package/specs/type/model/inheritance/nested-discriminator/main.tsp +224 -0
  295. package/specs/type/model/inheritance/nested-discriminator/mockapi.ts +130 -0
  296. package/specs/type/model/inheritance/not-discriminated/main.tsp +54 -0
  297. package/specs/type/model/inheritance/not-discriminated/mockapi.ts +39 -0
  298. package/specs/type/model/inheritance/recursive/main.tsp +71 -0
  299. package/specs/type/model/inheritance/recursive/mockapi.ts +41 -0
  300. package/specs/type/model/inheritance/single-discriminator/main.tsp +172 -0
  301. package/specs/type/model/inheritance/single-discriminator/mockapi.ts +103 -0
  302. package/specs/type/model/templated/main.tsp +130 -0
  303. package/specs/type/model/templated/mockapi.ts +66 -0
  304. package/specs/type/model/usage/main.tsp +49 -0
  305. package/specs/type/model/usage/mockapi.ts +45 -0
  306. package/specs/type/model/visibility/main.tsp +153 -0
  307. package/specs/type/model/visibility/mockapi.ts +108 -0
  308. package/specs/type/property/additional-properties/main.tsp +549 -0
  309. package/specs/type/property/additional-properties/mockapi.ts +464 -0
  310. package/specs/type/property/nullable/main.tsp +139 -0
  311. package/specs/type/property/nullable/mockapi.ts +187 -0
  312. package/specs/type/property/optionality/main.tsp +226 -0
  313. package/specs/type/property/optionality/mockapi.ts +296 -0
  314. package/specs/type/property/value-types/main.tsp +244 -0
  315. package/specs/type/property/value-types/mockapi.ts +300 -0
  316. package/specs/type/scalar/main.tsp +136 -0
  317. package/specs/type/scalar/mockapi.ts +199 -0
  318. package/specs/type/union/main.tsp +249 -0
  319. package/specs/type/union/mockapi.ts +130 -0
  320. package/specs/versioning/added/main.tsp +136 -0
  321. package/specs/versioning/added/mockapi.ts +57 -0
  322. package/specs/versioning/madeOptional/main.tsp +65 -0
  323. package/specs/versioning/madeOptional/mockapi.ts +18 -0
  324. package/specs/versioning/removed/main.tsp +126 -0
  325. package/specs/versioning/removed/mockapi.ts +20 -0
  326. package/specs/versioning/renamedFrom/main.tsp +112 -0
  327. package/specs/versioning/renamedFrom/mockapi.ts +40 -0
  328. package/specs/versioning/returnTypeChangedFrom/main.tsp +57 -0
  329. package/specs/versioning/returnTypeChangedFrom/mockapi.ts +19 -0
  330. package/specs/versioning/typeChangedFrom/main.tsp +71 -0
  331. package/specs/versioning/typeChangedFrom/mockapi.ts +22 -0
  332. package/temp/.tsbuildinfo +1 -0
  333. package/tsconfig.build.json +8 -0
  334. package/tsconfig.json +11 -0
  335. package/tspconfig.yaml +2 -0
@@ -0,0 +1,108 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spector";
3
+
4
+ using Http;
5
+ using Spector;
6
+
7
+ @doc("Illustrates various types of arrays.")
8
+ @scenarioService("/type/array")
9
+ namespace Type.Array;
10
+
11
+ @doc("Template to have Array operations")
12
+ interface ArrayOperations<TArr, TDoc extends valueof string> {
13
+ @scenario
14
+ @scenarioDoc("""
15
+ Expected Array response body:
16
+ ```json
17
+ ${TDoc}
18
+ ```
19
+ """)
20
+ @get
21
+ get(): TArr;
22
+
23
+ @scenario
24
+ @scenarioDoc("""
25
+ Expected Array input body:
26
+ ```json
27
+ ${TDoc}
28
+ ```
29
+ """)
30
+ @put
31
+ put(@body body: TArr): void;
32
+ }
33
+
34
+ @doc("Array of int32 values")
35
+ @route("/int32")
36
+ interface Int32Value extends ArrayOperations<int32[], "[1, 2]"> {}
37
+
38
+ @doc("Array of int64 values")
39
+ @route("/int64")
40
+ interface Int64Value
41
+ extends ArrayOperations<int64[], "[0x7FFFFFFFFFFFFFFF, -0x7FFFFFFFFFFFFFFF]"> {}
42
+
43
+ @doc("Array of boolean values")
44
+ @route("/boolean")
45
+ interface BooleanValue extends ArrayOperations<boolean[], "[true, false]"> {}
46
+
47
+ @doc("Array of string values")
48
+ @route("/string")
49
+ interface StringValue extends ArrayOperations<string[], "['hello', '']"> {}
50
+
51
+ @doc("Array of float values")
52
+ @route("/float32")
53
+ interface Float32Value extends ArrayOperations<float32[], "[43.125]"> {}
54
+
55
+ @doc("Array of datetime values")
56
+ @route("/datetime")
57
+ interface DatetimeValue extends ArrayOperations<utcDateTime[], "['2022-08-26T18:38:00Z']"> {}
58
+
59
+ @doc("Array of duration values")
60
+ @route("/duration")
61
+ interface DurationValue extends ArrayOperations<duration[], "['P123DT22H14M12.011S']"> {}
62
+
63
+ @doc("Array of unknown values")
64
+ @route("/unknown")
65
+ interface UnknownValue extends ArrayOperations<unknown[], "[1, 'hello', 'k3': null]"> {}
66
+
67
+ @doc("Array inner model")
68
+ model InnerModel {
69
+ @doc("Required string property")
70
+ property: string;
71
+
72
+ children?: InnerModel[];
73
+ }
74
+
75
+ @doc("Array of model values")
76
+ @route("/model")
77
+ interface ModelValue
78
+ extends ArrayOperations<InnerModel[], "[{'property': 'hello'}, {'property': 'world'}]"> {}
79
+
80
+ alias NullableFloat = float32 | null;
81
+ @doc("Array of nullable float values")
82
+ @route("/nullable-float")
83
+ interface NullableFloatValue extends ArrayOperations<NullableFloat[], "[1.25, null, 3.0]"> {}
84
+
85
+ alias NullableInt32 = int32 | null;
86
+ @doc("Array of nullable int32 values")
87
+ @route("/nullable-int32")
88
+ interface NullableInt32Value extends ArrayOperations<NullableInt32[], "[1, null, 3]"> {}
89
+
90
+ alias NullableBoolean = boolean | null;
91
+ @doc("Array of nullable boolean values")
92
+ @route("/nullable-boolean")
93
+ interface NullableBooleanValue extends ArrayOperations<NullableBoolean[], "[true, null, false]"> {}
94
+
95
+ alias NullableString = string | null;
96
+ @doc("Array of nullable string values")
97
+ @route("/nullable-string")
98
+ interface NullableStringValue
99
+ extends ArrayOperations<NullableString[], "['hello', null, 'world']"> {}
100
+
101
+ alias NullableModel = InnerModel | null;
102
+ @doc("Array of nullable model values")
103
+ @route("/nullable-model")
104
+ interface NullableModelValue
105
+ extends ArrayOperations<
106
+ NullableModel[],
107
+ "[{'property': 'hello'}, null, {'property': 'world'}]"
108
+ > {}
@@ -0,0 +1,107 @@
1
+ import { json, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ function createServerTests(uri: string, data: any) {
6
+ return {
7
+ get: passOnSuccess({
8
+ uri,
9
+ method: "get",
10
+ request: {},
11
+ response: {
12
+ status: 200,
13
+ body: json(data),
14
+ },
15
+ kind: "MockApiDefinition",
16
+ }),
17
+ put: passOnSuccess({
18
+ uri,
19
+ method: "put",
20
+ request: {
21
+ body: data,
22
+ },
23
+ response: {
24
+ status: 204,
25
+ },
26
+ kind: "MockApiDefinition",
27
+ }),
28
+ };
29
+ }
30
+
31
+ const Type_Array_Int32 = createServerTests(`/type/array/int32`, [1, 2]);
32
+ Scenarios.Type_Array_Int32Value_get = Type_Array_Int32.get;
33
+ Scenarios.Type_Array_Int32Value_put = Type_Array_Int32.put;
34
+
35
+ const Type_Array_Int64 = createServerTests(`/type/array/int64`, [
36
+ Number.MAX_SAFE_INTEGER,
37
+ Number.MIN_SAFE_INTEGER,
38
+ ]);
39
+ Scenarios.Type_Array_Int64Value_get = Type_Array_Int64.get;
40
+ Scenarios.Type_Array_Int64Value_put = Type_Array_Int64.put;
41
+
42
+ const Type_Array_Boolean = createServerTests(`/type/array/boolean`, [true, false]);
43
+ Scenarios.Type_Array_BooleanValue_get = Type_Array_Boolean.get;
44
+ Scenarios.Type_Array_BooleanValue_put = Type_Array_Boolean.put;
45
+
46
+ const Type_Array_String = createServerTests(`/type/array/string`, ["hello", ""]);
47
+ Scenarios.Type_Array_StringValue_get = Type_Array_String.get;
48
+ Scenarios.Type_Array_StringValue_put = Type_Array_String.put;
49
+
50
+ const Type_Array_Float32 = createServerTests(`/type/array/float32`, [43.125]);
51
+ Scenarios.Type_Array_Float32Value_get = Type_Array_Float32.get;
52
+ Scenarios.Type_Array_Float32Value_put = Type_Array_Float32.put;
53
+
54
+ const Type_Array_Datetime = createServerTests(`/type/array/datetime`, ["2022-08-26T18:38:00Z"]);
55
+ Scenarios.Type_Array_DatetimeValue_get = Type_Array_Datetime.get;
56
+ Scenarios.Type_Array_DatetimeValue_put = Type_Array_Datetime.put;
57
+
58
+ const Type_Array_Duration = createServerTests(`/type/array/duration`, ["P123DT22H14M12.011S"]);
59
+ Scenarios.Type_Array_DurationValue_get = Type_Array_Duration.get;
60
+ Scenarios.Type_Array_DurationValue_put = Type_Array_Duration.put;
61
+
62
+ const Type_Array_Unknown = createServerTests(`/type/array/unknown`, [1, "hello", null]);
63
+ Scenarios.Type_Array_UnknownValue_get = Type_Array_Unknown.get;
64
+ Scenarios.Type_Array_UnknownValue_put = Type_Array_Unknown.put;
65
+
66
+ const Type_Array_Model = createServerTests(`/type/array/model`, [
67
+ { property: "hello" },
68
+ { property: "world" },
69
+ ]);
70
+ Scenarios.Type_Array_ModelValue_get = Type_Array_Model.get;
71
+ Scenarios.Type_Array_ModelValue_put = Type_Array_Model.put;
72
+
73
+ const Type_Array_Nullable_Float = createServerTests(`/type/array/nullable-float`, [
74
+ 1.25,
75
+ null,
76
+ 3.0,
77
+ ]);
78
+ Scenarios.Type_Array_NullableFloatValue_get = Type_Array_Nullable_Float.get;
79
+ Scenarios.Type_Array_NullableFloatValue_put = Type_Array_Nullable_Float.put;
80
+
81
+ const Type_Array_Nullable_Boolean = createServerTests(`/type/array/nullable-boolean`, [
82
+ true,
83
+ null,
84
+ false,
85
+ ]);
86
+ Scenarios.Type_Array_NullableBooleanValue_get = Type_Array_Nullable_Boolean.get;
87
+ Scenarios.Type_Array_NullableBooleanValue_put = Type_Array_Nullable_Boolean.put;
88
+
89
+ const Type_Array_Nullable_Int32 = createServerTests(`/type/array/nullable-int32`, [1, null, 3]);
90
+ Scenarios.Type_Array_NullableInt32Value_get = Type_Array_Nullable_Int32.get;
91
+ Scenarios.Type_Array_NullableInt32Value_put = Type_Array_Nullable_Int32.put;
92
+
93
+ const Type_Array_Nullable_String = createServerTests(`/type/array/nullable-string`, [
94
+ "hello",
95
+ null,
96
+ "world",
97
+ ]);
98
+ Scenarios.Type_Array_NullableStringValue_get = Type_Array_Nullable_String.get;
99
+ Scenarios.Type_Array_NullableStringValue_put = Type_Array_Nullable_String.put;
100
+
101
+ const Type_Array_Nullable_Model = createServerTests(`/type/array/nullable-model`, [
102
+ { property: "hello" },
103
+ null,
104
+ { property: "world" },
105
+ ]);
106
+ Scenarios.Type_Array_NullableModelValue_get = Type_Array_Nullable_Model.get;
107
+ Scenarios.Type_Array_NullableModelValue_put = Type_Array_Nullable_Model.put;
@@ -0,0 +1,101 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spector";
3
+
4
+ using Http;
5
+ using Spector;
6
+
7
+ @doc("Illustrates various of dictionaries.")
8
+ @scenarioService("/type/dictionary")
9
+ namespace Type.Dictionary;
10
+
11
+ @doc("Template to have dictionary operations")
12
+ interface DictionaryOperations<TDict, TDoc extends valueof string> {
13
+ @scenario
14
+ @scenarioDoc("""
15
+ Expected dictionary response body:
16
+ ```json
17
+ ${TDoc}
18
+ ```
19
+ """)
20
+ @get
21
+ get(): TDict;
22
+
23
+ @scenario
24
+ @scenarioDoc("""
25
+ Expected dictionary input body:
26
+ ```json
27
+ ${TDoc}
28
+ ```
29
+ """)
30
+ @put
31
+ put(@body body: TDict): void;
32
+ }
33
+
34
+ @doc("Dictionary of int32 values")
35
+ @route("/int32")
36
+ interface Int32Value extends DictionaryOperations<Record<int32>, "{'k1': 1, 'k2': 2}"> {}
37
+
38
+ @doc("Dictionary of int64 values")
39
+ @route("/int64")
40
+ interface Int64Value
41
+ extends DictionaryOperations<
42
+ Record<int64>,
43
+ "{'k1': 0x7FFFFFFFFFFFFFFF, 'k2': -0x7FFFFFFFFFFFFFFF}"
44
+ > {}
45
+
46
+ @doc("Dictionary of boolean values")
47
+ @route("/boolean")
48
+ interface BooleanValue extends DictionaryOperations<Record<boolean>, "{'k1': true, 'k2': false}"> {}
49
+
50
+ @doc("Dictionary of string values")
51
+ @route("/string")
52
+ interface StringValue extends DictionaryOperations<Record<string>, "{'k1': 'hello', 'k2': ''}"> {}
53
+
54
+ @doc("Dictionary of float values")
55
+ @route("/float32")
56
+ interface Float32Value extends DictionaryOperations<Record<float32>, "{'k1': 43.125}"> {}
57
+
58
+ @doc("Dictionary of datetime values")
59
+ @route("/datetime")
60
+ interface DatetimeValue
61
+ extends DictionaryOperations<Record<utcDateTime>, "{'k1': '2022-08-26T18:38:00Z'}"> {}
62
+
63
+ @doc("Dictionary of duration values")
64
+ @route("/duration")
65
+ interface DurationValue
66
+ extends DictionaryOperations<Record<duration>, "{'k1': 'P123DT22H14M12.011S'}"> {}
67
+
68
+ @doc("Dictionary of unknown values")
69
+ @route("/unknown")
70
+ interface UnknownValue
71
+ extends DictionaryOperations<Record<unknown>, "{'k1': 1, 'k2': 'hello', 'k3': null}"> {}
72
+
73
+ @doc("Dictionary inner model")
74
+ model InnerModel {
75
+ @doc("Required string property")
76
+ property: string;
77
+
78
+ children?: Record<InnerModel>;
79
+ }
80
+
81
+ @doc("Dictionary of model values")
82
+ @route("/model")
83
+ interface ModelValue
84
+ extends DictionaryOperations<
85
+ Record<InnerModel>,
86
+ "{'k1': {'property': 'hello'}, 'k2': {'property': 'world'}}"
87
+ > {}
88
+
89
+ @doc("Dictionary of model values")
90
+ @route("/model/recursive")
91
+ interface RecursiveModelValue
92
+ extends DictionaryOperations<
93
+ Record<InnerModel>,
94
+ "{'k1': {'property': 'hello', children: {}}, 'k2': {'property': 'world', children: {'k2.1': {'property': 'inner world'}}}}"
95
+ > {}
96
+
97
+ alias NullableFloat = float32 | null;
98
+ @doc("Dictionary of nullable float values")
99
+ @route("/nullable-float")
100
+ interface NullableFloatValue
101
+ extends DictionaryOperations<Record<NullableFloat>, "{'k1': 1.25, 'k2': 0.5, 'k3': null}"> {}
@@ -0,0 +1,103 @@
1
+ import { json, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ function createServerTests(uri: string, data: any) {
6
+ return {
7
+ get: passOnSuccess({
8
+ uri,
9
+ method: "get",
10
+ request: {},
11
+ response: {
12
+ status: 200,
13
+ body: json(data),
14
+ },
15
+ kind: "MockApiDefinition",
16
+ }),
17
+ put: passOnSuccess({
18
+ uri,
19
+ method: "put",
20
+ request: {
21
+ body: data,
22
+ },
23
+ response: {
24
+ status: 204,
25
+ },
26
+ kind: "MockApiDefinition",
27
+ }),
28
+ };
29
+ }
30
+
31
+ const Type_Dictionary_Int32 = createServerTests(`/type/dictionary/int32`, { k1: 1, k2: 2 });
32
+ Scenarios.Type_Dictionary_Int32Value_get = Type_Dictionary_Int32.get;
33
+ Scenarios.Type_Dictionary_Int32Value_put = Type_Dictionary_Int32.put;
34
+
35
+ const Type_Dictionary_Int64 = createServerTests(`/type/dictionary/int64`, {
36
+ k1: Number.MAX_SAFE_INTEGER,
37
+ k2: Number.MIN_SAFE_INTEGER,
38
+ });
39
+ Scenarios.Type_Dictionary_Int64Value_get = Type_Dictionary_Int64.get;
40
+ Scenarios.Type_Dictionary_Int64Value_put = Type_Dictionary_Int64.put;
41
+
42
+ const Type_Dictionary_Boolean = createServerTests(`/type/dictionary/boolean`, {
43
+ k1: true,
44
+ k2: false,
45
+ });
46
+ Scenarios.Type_Dictionary_BooleanValue_get = Type_Dictionary_Boolean.get;
47
+ Scenarios.Type_Dictionary_BooleanValue_put = Type_Dictionary_Boolean.put;
48
+
49
+ const Type_Dictionary_String = createServerTests(`/type/dictionary/string`, {
50
+ k1: "hello",
51
+ k2: "",
52
+ });
53
+ Scenarios.Type_Dictionary_StringValue_get = Type_Dictionary_String.get;
54
+ Scenarios.Type_Dictionary_StringValue_put = Type_Dictionary_String.put;
55
+
56
+ const Type_Dictionary_Float32 = createServerTests(`/type/dictionary/float32`, { k1: 43.125 });
57
+ Scenarios.Type_Dictionary_Float32Value_get = Type_Dictionary_Float32.get;
58
+ Scenarios.Type_Dictionary_Float32Value_put = Type_Dictionary_Float32.put;
59
+
60
+ const Type_Dictionary_Datetime = createServerTests(`/type/dictionary/datetime`, {
61
+ k1: "2022-08-26T18:38:00Z",
62
+ });
63
+ Scenarios.Type_Dictionary_DatetimeValue_get = Type_Dictionary_Datetime.get;
64
+ Scenarios.Type_Dictionary_DatetimeValue_put = Type_Dictionary_Datetime.put;
65
+
66
+ const Type_Dictionary_Duration = createServerTests(`/type/dictionary/duration`, {
67
+ k1: "P123DT22H14M12.011S",
68
+ });
69
+ Scenarios.Type_Dictionary_DurationValue_get = Type_Dictionary_Duration.get;
70
+ Scenarios.Type_Dictionary_DurationValue_put = Type_Dictionary_Duration.put;
71
+
72
+ const Type_Dictionary_Unknown = createServerTests(`/type/dictionary/unknown`, {
73
+ k1: 1,
74
+ k2: "hello",
75
+ k3: null,
76
+ });
77
+ Scenarios.Type_Dictionary_UnknownValue_get = Type_Dictionary_Unknown.get;
78
+ Scenarios.Type_Dictionary_UnknownValue_put = Type_Dictionary_Unknown.put;
79
+
80
+ const Type_Dictionary_Model = createServerTests(`/type/dictionary/model`, {
81
+ k1: { property: "hello" },
82
+ k2: { property: "world" },
83
+ });
84
+ Scenarios.Type_Dictionary_ModelValue_get = Type_Dictionary_Model.get;
85
+ Scenarios.Type_Dictionary_ModelValue_put = Type_Dictionary_Model.put;
86
+
87
+ const Type_Dictionary_Model_Recursive = createServerTests(`/type/dictionary/model/recursive`, {
88
+ k1: { property: "hello", children: {} },
89
+ k2: {
90
+ property: "world",
91
+ children: { "k2.1": { property: "inner world" } },
92
+ },
93
+ });
94
+ Scenarios.Type_Dictionary_RecursiveModelValue_get = Type_Dictionary_Model_Recursive.get;
95
+ Scenarios.Type_Dictionary_RecursiveModelValue_put = Type_Dictionary_Model_Recursive.put;
96
+
97
+ const Type_Dictionary_Nullable_Float = createServerTests(`/type/dictionary/nullable-float`, {
98
+ k1: 1.25,
99
+ k2: 0.5,
100
+ k3: null,
101
+ });
102
+ Scenarios.Type_Dictionary_NullableFloatValue_get = Type_Dictionary_Nullable_Float.get;
103
+ Scenarios.Type_Dictionary_NullableFloatValue_put = Type_Dictionary_Nullable_Float.put;
@@ -0,0 +1,65 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spector";
3
+
4
+ using Http;
5
+ using Spector;
6
+
7
+ @scenarioService("/type/enum/extensible")
8
+ namespace Type.Enum.Extensible;
9
+
10
+ @doc("Days of the week")
11
+ union DaysOfWeekExtensibleEnum {
12
+ string,
13
+
14
+ @doc("Monday.")
15
+ Monday: "Monday",
16
+
17
+ @doc("Tuesday.")
18
+ Tuesday: "Tuesday",
19
+
20
+ @doc("Wednesday.")
21
+ Wednesday: "Wednesday",
22
+
23
+ @doc("Thursday.")
24
+ Thursday: "Thursday",
25
+
26
+ @doc("Friday.")
27
+ Friday: "Friday",
28
+
29
+ @doc("Saturday.")
30
+ Saturday: "Saturday",
31
+
32
+ @doc("Sunday.")
33
+ Sunday: "Sunday",
34
+ }
35
+
36
+ @route("/string")
37
+ interface String {
38
+ @scenario
39
+ @scenarioDoc("Expect to handle a known value. Mock api will return 'Monday'")
40
+ @get
41
+ @route("/known-value")
42
+ getKnownValue(): {
43
+ @body body: DaysOfWeekExtensibleEnum;
44
+ };
45
+
46
+ @scenario
47
+ @scenarioDoc("Expect to handle an unknown value. Mock api will return 'Weekend'")
48
+ @get
49
+ @route("/unknown-value")
50
+ getUnknownValue(): {
51
+ @body body: DaysOfWeekExtensibleEnum;
52
+ };
53
+
54
+ @scenario
55
+ @scenarioDoc("Expect to send a known value. Mock api expect to receive 'Monday'")
56
+ @put
57
+ @route("/known-value")
58
+ putKnownValue(@body body: DaysOfWeekExtensibleEnum): void;
59
+
60
+ @scenario
61
+ @scenarioDoc("Expect to handle an unknown value. Mock api expect to receive 'Weekend'")
62
+ @put
63
+ @route("/unknown-value")
64
+ putUnknownValue(@body body: DaysOfWeekExtensibleEnum): void;
65
+ }
@@ -0,0 +1,48 @@
1
+ import { json, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ function createMockServerTests(uri: string, data: any) {
6
+ return {
7
+ get: passOnSuccess({
8
+ uri,
9
+ method: "get",
10
+ request: {},
11
+ response: {
12
+ status: 200,
13
+ body: json(data),
14
+ },
15
+ kind: "MockApiDefinition",
16
+ }),
17
+ put: passOnSuccess({
18
+ uri,
19
+ method: "put",
20
+ request: {
21
+ body: data,
22
+ headers: {
23
+ "Content-Type": "text/plain",
24
+ },
25
+ },
26
+ response: {
27
+ status: 204,
28
+ },
29
+ kind: "MockApiDefinition",
30
+ }),
31
+ };
32
+ }
33
+
34
+ const Type_Enum_Extensible_String_Known_Value = createMockServerTests(
35
+ `/type/enum/extensible/string/known-value`,
36
+ "Monday",
37
+ );
38
+ Scenarios.Type_Enum_Extensible_String_getKnownValue = Type_Enum_Extensible_String_Known_Value.get;
39
+ Scenarios.Type_Enum_Extensible_String_putKnownValue = Type_Enum_Extensible_String_Known_Value.put;
40
+
41
+ const Type_Enum_Extensible_String_UnKnown_Value = createMockServerTests(
42
+ `/type/enum/extensible/string/unknown-value`,
43
+ "Weekend",
44
+ );
45
+ Scenarios.Type_Enum_Extensible_String_getUnknownValue =
46
+ Type_Enum_Extensible_String_UnKnown_Value.get;
47
+ Scenarios.Type_Enum_Extensible_String_putUnknownValue =
48
+ Type_Enum_Extensible_String_UnKnown_Value.put;
@@ -0,0 +1,60 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spector";
3
+
4
+ using Http;
5
+ using Spector;
6
+
7
+ @scenarioService("/type/enum/fixed")
8
+ namespace Type.Enum.Fixed;
9
+
10
+ #suppress "@azure-tools/typespec-azure-core/use-extensible-enum" "For testing"
11
+ @doc("Days of the week")
12
+ enum DaysOfWeekEnum {
13
+ @doc("Monday.")
14
+ Monday,
15
+
16
+ @doc("Tuesday.")
17
+ Tuesday,
18
+
19
+ @doc("Wednesday.")
20
+ Wednesday,
21
+
22
+ @doc("Thursday.")
23
+ Thursday,
24
+
25
+ @doc("Friday.")
26
+ Friday,
27
+
28
+ @doc("Saturday.")
29
+ Saturday,
30
+
31
+ @doc("Sunday.")
32
+ Sunday,
33
+ }
34
+
35
+ @route("/string")
36
+ interface String {
37
+ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing"
38
+ @scenario
39
+ @scenarioDoc("Expect to handle a known value. Mock api will return 'Monday'")
40
+ @get
41
+ @route("/known-value")
42
+ @doc("getKnownValue")
43
+ getKnownValue(): DaysOfWeekEnum;
44
+
45
+ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing"
46
+ @scenario
47
+ @scenarioDoc("Expect to send a known value. Mock api expect to receive 'Monday'")
48
+ @put
49
+ @route("/known-value")
50
+ @doc("putKnownValue")
51
+ putKnownValue(@body @doc("_") body: DaysOfWeekEnum): void;
52
+
53
+ #suppress "@azure-tools/typespec-azure-core/use-standard-operations" "For testing"
54
+ @scenario
55
+ @scenarioDoc("Expect to handle an unknown value. Mock api expect to receive 'Weekend'")
56
+ @put
57
+ @route("/unknown-value")
58
+ @doc("putUnknownValue")
59
+ putUnknownValue(@body @doc("_") body: DaysOfWeekEnum): void;
60
+ }
@@ -0,0 +1,44 @@
1
+ import { json, passOnCode, passOnSuccess, ScenarioMockApi } from "@typespec/spec-api";
2
+
3
+ export const Scenarios: Record<string, ScenarioMockApi> = {};
4
+
5
+ Scenarios.Type_Enum_Fixed_String_getKnownValue = passOnSuccess({
6
+ uri: "/type/enum/fixed/string/known-value",
7
+ method: "get",
8
+ request: {},
9
+ response: {
10
+ status: 200,
11
+ body: json("Monday"),
12
+ },
13
+ kind: "MockApiDefinition",
14
+ });
15
+ Scenarios.Type_Enum_Fixed_String_putKnownValue = passOnSuccess({
16
+ uri: "/type/enum/fixed/string/known-value",
17
+ method: "put",
18
+ request: {
19
+ body: "Monday",
20
+ headers: {
21
+ "Content-Type": "application/json",
22
+ },
23
+ },
24
+ response: {
25
+ status: 204,
26
+ },
27
+ kind: "MockApiDefinition",
28
+ });
29
+
30
+ Scenarios.Type_Enum_Fixed_String_putUnknownValue = passOnCode(500, {
31
+ uri: "/type/enum/fixed/string/unknown-value",
32
+ method: "put",
33
+ request: {
34
+ body: "Weekend",
35
+ headers: {
36
+ "Content-Type": "application/json",
37
+ },
38
+ status: 500,
39
+ },
40
+ response: {
41
+ status: 500,
42
+ },
43
+ kind: "MockApiDefinition",
44
+ });
@@ -0,0 +1,40 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spector";
3
+
4
+ using Http;
5
+ using Spector;
6
+
7
+ @doc("Illustrates usage of empty model used in operation's parameters and responses.")
8
+ @scenarioService("/type/model/empty")
9
+ namespace Type.Model.Empty;
10
+
11
+ @doc("Empty model used in operation parameters")
12
+ model EmptyInput {}
13
+
14
+ @doc("Empty model used in operation return type")
15
+ model EmptyOutput {}
16
+
17
+ @doc("Empty model used in both parameter and return type")
18
+ model EmptyInputOutput {}
19
+
20
+ @scenario
21
+ @scenarioDoc("Send a PUT request with the following body {}")
22
+ @route("/alone")
23
+ @put
24
+ op putEmpty(@body input: EmptyInput): void;
25
+
26
+ @scenario
27
+ @scenarioDoc("Send a GET request which returns the following body {}")
28
+ @route("/alone")
29
+ @get
30
+ op getEmpty(): {
31
+ @body body: EmptyOutput;
32
+ };
33
+
34
+ @scenario
35
+ @scenarioDoc("Send a POST request with the following body {} which returns the same.")
36
+ @route("/round-trip")
37
+ @post
38
+ op postRoundTripEmpty(@body body: EmptyInputOutput): {
39
+ @body body: EmptyInputOutput;
40
+ };