@typespec/http-specs 0.37.2

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 (334) 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 +45 -0
  9. package/dist/specs/authentication/api-key/mockapi.js.map +1 -0
  10. package/dist/specs/authentication/commonapi.d.ts +9 -0
  11. package/dist/specs/authentication/commonapi.d.ts.map +1 -0
  12. package/dist/specs/authentication/commonapi.js +19 -0
  13. package/dist/specs/authentication/commonapi.js.map +1 -0
  14. package/dist/specs/authentication/http/custom/mockapi.d.ts +3 -0
  15. package/dist/specs/authentication/http/custom/mockapi.d.ts.map +1 -0
  16. package/dist/specs/authentication/http/custom/mockapi.js +45 -0
  17. package/dist/specs/authentication/http/custom/mockapi.js.map +1 -0
  18. package/dist/specs/authentication/oauth2/mockapi.d.ts +3 -0
  19. package/dist/specs/authentication/oauth2/mockapi.d.ts.map +1 -0
  20. package/dist/specs/authentication/oauth2/mockapi.js +42 -0
  21. package/dist/specs/authentication/oauth2/mockapi.js.map +1 -0
  22. package/dist/specs/authentication/union/mockapi.d.ts +3 -0
  23. package/dist/specs/authentication/union/mockapi.d.ts.map +1 -0
  24. package/dist/specs/authentication/union/mockapi.js +37 -0
  25. package/dist/specs/authentication/union/mockapi.js.map +1 -0
  26. package/dist/specs/encode/bytes/mockapi.d.ts +3 -0
  27. package/dist/specs/encode/bytes/mockapi.d.ts.map +1 -0
  28. package/dist/specs/encode/bytes/mockapi.js +179 -0
  29. package/dist/specs/encode/bytes/mockapi.js.map +1 -0
  30. package/dist/specs/encode/datetime/mockapi.d.ts +3 -0
  31. package/dist/specs/encode/datetime/mockapi.d.ts.map +1 -0
  32. package/dist/specs/encode/datetime/mockapi.js +160 -0
  33. package/dist/specs/encode/datetime/mockapi.js.map +1 -0
  34. package/dist/specs/encode/duration/mockapi.d.ts +3 -0
  35. package/dist/specs/encode/duration/mockapi.d.ts.map +1 -0
  36. package/dist/specs/encode/duration/mockapi.js +116 -0
  37. package/dist/specs/encode/duration/mockapi.js.map +1 -0
  38. package/dist/specs/encode/numeric/mockapi.d.ts +3 -0
  39. package/dist/specs/encode/numeric/mockapi.d.ts.map +1 -0
  40. package/dist/specs/encode/numeric/mockapi.js +29 -0
  41. package/dist/specs/encode/numeric/mockapi.js.map +1 -0
  42. package/dist/specs/helper.d.ts +3 -0
  43. package/dist/specs/helper.d.ts.map +1 -0
  44. package/dist/specs/helper.js +7 -0
  45. package/dist/specs/helper.js.map +1 -0
  46. package/dist/specs/parameters/basic/mockapi.d.ts +3 -0
  47. package/dist/specs/parameters/basic/mockapi.d.ts.map +1 -0
  48. package/dist/specs/parameters/basic/mockapi.js +24 -0
  49. package/dist/specs/parameters/basic/mockapi.js.map +1 -0
  50. package/dist/specs/parameters/body-optionality/mockapi.d.ts +3 -0
  51. package/dist/specs/parameters/body-optionality/mockapi.d.ts.map +1 -0
  52. package/dist/specs/parameters/body-optionality/mockapi.js +62 -0
  53. package/dist/specs/parameters/body-optionality/mockapi.js.map +1 -0
  54. package/dist/specs/parameters/collection-format/mockapi.d.ts +3 -0
  55. package/dist/specs/parameters/collection-format/mockapi.d.ts.map +1 -0
  56. package/dist/specs/parameters/collection-format/mockapi.js +106 -0
  57. package/dist/specs/parameters/collection-format/mockapi.js.map +1 -0
  58. package/dist/specs/parameters/spread/mockapi.d.ts +3 -0
  59. package/dist/specs/parameters/spread/mockapi.d.ts.map +1 -0
  60. package/dist/specs/parameters/spread/mockapi.js +206 -0
  61. package/dist/specs/parameters/spread/mockapi.js.map +1 -0
  62. package/dist/specs/payload/json-merge-patch/mockapi.d.ts +40 -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 +141 -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 +84 -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 +153 -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 +189 -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 +63 -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 +32 -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 +15 -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 +27 -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 +15 -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 +46 -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 +47 -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 +79 -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 +246 -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 +104 -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 +103 -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 +46 -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 +53 -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 +48 -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 +79 -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 +147 -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 +47 -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 +47 -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 +122 -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 +99 -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 +52 -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 +138 -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 +346 -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 +147 -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 +197 -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 +213 -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 +274 -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 +113 -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 +76 -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 +24 -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 +26 -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 +53 -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 +25 -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 +29 -0
  221. package/dist/specs/versioning/typeChangedFrom/mockapi.js.map +1 -0
  222. package/package.json +53 -0
  223. package/specs/README.md +3 -0
  224. package/specs/authentication/api-key/main.tsp +39 -0
  225. package/specs/authentication/api-key/mockapi.ts +47 -0
  226. package/specs/authentication/commonapi.ts +43 -0
  227. package/specs/authentication/http/custom/main.tsp +39 -0
  228. package/specs/authentication/http/custom/mockapi.ts +47 -0
  229. package/specs/authentication/oauth2/main.tsp +44 -0
  230. package/specs/authentication/oauth2/mockapi.ts +44 -0
  231. package/specs/authentication/union/main.tsp +29 -0
  232. package/specs/authentication/union/mockapi.ts +39 -0
  233. package/specs/encode/bytes/main.tsp +369 -0
  234. package/specs/encode/bytes/mockapi.ts +309 -0
  235. package/specs/encode/datetime/main.tsp +344 -0
  236. package/specs/encode/datetime/mockapi.ts +274 -0
  237. package/specs/encode/duration/main.tsp +322 -0
  238. package/specs/encode/duration/mockapi.ts +204 -0
  239. package/specs/encode/numeric/main.tsp +71 -0
  240. package/specs/encode/numeric/mockapi.ts +39 -0
  241. package/specs/helper.ts +8 -0
  242. package/specs/parameters/basic/main.tsp +61 -0
  243. package/specs/parameters/basic/mockapi.ts +29 -0
  244. package/specs/parameters/body-optionality/main.tsp +63 -0
  245. package/specs/parameters/body-optionality/mockapi.ts +71 -0
  246. package/specs/parameters/collection-format/main.tsp +95 -0
  247. package/specs/parameters/collection-format/mockapi.ts +113 -0
  248. package/specs/parameters/spread/main.tsp +340 -0
  249. package/specs/parameters/spread/mockapi.ts +216 -0
  250. package/specs/payload/json-merge-patch/main.tsp +183 -0
  251. package/specs/payload/json-merge-patch/mockapi.ts +146 -0
  252. package/specs/payload/media-type/main.tsp +54 -0
  253. package/specs/payload/media-type/mockapi.ts +88 -0
  254. package/specs/payload/multipart/main.tsp +499 -0
  255. package/specs/payload/multipart/mockapi.ts +226 -0
  256. package/specs/payload/xml/main.tsp +312 -0
  257. package/specs/payload/xml/mockapi.ts +244 -0
  258. package/specs/routes/main.tsp +476 -0
  259. package/specs/routes/mockapi.ts +158 -0
  260. package/specs/scratch/.gitignore +3 -0
  261. package/specs/serialization/encoded-name/json/main.tsp +45 -0
  262. package/specs/serialization/encoded-name/json/mockapi.ts +34 -0
  263. package/specs/server/endpoint/not-defined/main.tsp +19 -0
  264. package/specs/server/endpoint/not-defined/mockapi.ts +16 -0
  265. package/specs/server/path/multiple/main.tsp +46 -0
  266. package/specs/server/path/multiple/mockapi.ts +29 -0
  267. package/specs/server/path/single/main.tsp +23 -0
  268. package/specs/server/path/single/mockapi.ts +16 -0
  269. package/specs/server/versions/not-versioned/main.tsp +39 -0
  270. package/specs/server/versions/not-versioned/mockapi.ts +55 -0
  271. package/specs/server/versions/versioned/main.tsp +65 -0
  272. package/specs/server/versions/versioned/mockapi.ts +68 -0
  273. package/specs/special-headers/conditional-request/main.tsp +89 -0
  274. package/specs/special-headers/conditional-request/mockapi.ts +83 -0
  275. package/specs/special-headers/repeatability/main.tsp +39 -0
  276. package/specs/special-headers/repeatability/mockapi.ts +47 -0
  277. package/specs/special-words/dec.js +52 -0
  278. package/specs/special-words/main.tsp +238 -0
  279. package/specs/special-words/mockapi.ts +407 -0
  280. package/specs/type/array/main.tsp +132 -0
  281. package/specs/type/array/mockapi.ts +119 -0
  282. package/specs/type/dictionary/main.tsp +122 -0
  283. package/specs/type/dictionary/mockapi.ts +115 -0
  284. package/specs/type/enum/extensible/main.tsp +64 -0
  285. package/specs/type/enum/extensible/mockapi.ts +55 -0
  286. package/specs/type/enum/fixed/main.tsp +60 -0
  287. package/specs/type/enum/fixed/mockapi.ts +55 -0
  288. package/specs/type/model/empty/main.tsp +39 -0
  289. package/specs/type/model/empty/mockapi.ts +51 -0
  290. package/specs/type/model/inheritance/enum-discriminator/main.tsp +169 -0
  291. package/specs/type/model/inheritance/enum-discriminator/mockapi.ts +99 -0
  292. package/specs/type/model/inheritance/nested-discriminator/main.tsp +223 -0
  293. package/specs/type/model/inheritance/nested-discriminator/mockapi.ts +150 -0
  294. package/specs/type/model/inheritance/not-discriminated/main.tsp +53 -0
  295. package/specs/type/model/inheritance/not-discriminated/mockapi.ts +49 -0
  296. package/specs/type/model/inheritance/recursive/main.tsp +70 -0
  297. package/specs/type/model/inheritance/recursive/mockapi.ts +48 -0
  298. package/specs/type/model/inheritance/single-discriminator/main.tsp +171 -0
  299. package/specs/type/model/inheritance/single-discriminator/mockapi.ts +126 -0
  300. package/specs/type/model/templated/main.tsp +130 -0
  301. package/specs/type/model/templated/mockapi.ts +102 -0
  302. package/specs/type/model/usage/main.tsp +48 -0
  303. package/specs/type/model/usage/mockapi.ts +56 -0
  304. package/specs/type/model/visibility/main.tsp +152 -0
  305. package/specs/type/model/visibility/mockapi.ts +139 -0
  306. package/specs/type/property/additional-properties/main.tsp +591 -0
  307. package/specs/type/property/additional-properties/mockapi.ts +477 -0
  308. package/specs/type/property/nullable/client.tsp +21 -0
  309. package/specs/type/property/nullable/main.tsp +162 -0
  310. package/specs/type/property/nullable/mockapi.ts +202 -0
  311. package/specs/type/property/optionality/main.tsp +258 -0
  312. package/specs/type/property/optionality/mockapi.ts +308 -0
  313. package/specs/type/property/value-types/main.tsp +285 -0
  314. package/specs/type/property/value-types/mockapi.ts +297 -0
  315. package/specs/type/scalar/main.tsp +164 -0
  316. package/specs/type/scalar/mockapi.ts +280 -0
  317. package/specs/type/union/main.tsp +262 -0
  318. package/specs/type/union/mockapi.ts +137 -0
  319. package/specs/versioning/added/main.tsp +135 -0
  320. package/specs/versioning/added/mockapi.ts +79 -0
  321. package/specs/versioning/madeOptional/main.tsp +64 -0
  322. package/specs/versioning/madeOptional/mockapi.ts +25 -0
  323. package/specs/versioning/removed/main.tsp +125 -0
  324. package/specs/versioning/removed/mockapi.ts +27 -0
  325. package/specs/versioning/renamedFrom/main.tsp +111 -0
  326. package/specs/versioning/renamedFrom/mockapi.ts +55 -0
  327. package/specs/versioning/returnTypeChangedFrom/main.tsp +56 -0
  328. package/specs/versioning/returnTypeChangedFrom/mockapi.ts +26 -0
  329. package/specs/versioning/typeChangedFrom/main.tsp +70 -0
  330. package/specs/versioning/typeChangedFrom/mockapi.ts +30 -0
  331. package/temp/.tsbuildinfo +1 -0
  332. package/tsconfig.build.json +9 -0
  333. package/tsconfig.json +11 -0
  334. package/tspconfig.yaml +2 -0
@@ -0,0 +1,132 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spec-lib";
3
+
4
+ using TypeSpec.Http;
5
+ using Azure.ClientGenerator.Core;
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 string> {
13
+ @scenario
14
+ @scenarioDoc(
15
+ """
16
+ Expected Array response body:
17
+ ```json
18
+ {doc}
19
+ ```
20
+ """,
21
+ {
22
+ doc: TDoc,
23
+ }
24
+ )
25
+ @get
26
+ get(): TArr;
27
+
28
+ @scenario
29
+ @scenarioDoc(
30
+ """
31
+ Expected Array input body:
32
+ ```json
33
+ {doc}
34
+ ```
35
+ """,
36
+ {
37
+ doc: TDoc,
38
+ }
39
+ )
40
+ @put
41
+ put(@body body: TArr): void;
42
+ }
43
+
44
+ @doc("Array of int32 values")
45
+ @route("/int32")
46
+ @operationGroup
47
+ interface Int32Value extends ArrayOperations<int32[], "[1, 2]"> {}
48
+
49
+ @doc("Array of int64 values")
50
+ @route("/int64")
51
+ @operationGroup
52
+ interface Int64Value
53
+ extends ArrayOperations<int64[], "[0x7FFFFFFFFFFFFFFF, -0x7FFFFFFFFFFFFFFF]"> {}
54
+
55
+ @doc("Array of boolean values")
56
+ @route("/boolean")
57
+ @operationGroup
58
+ interface BooleanValue extends ArrayOperations<boolean[], "[true, false]"> {}
59
+
60
+ @doc("Array of string values")
61
+ @route("/string")
62
+ @operationGroup
63
+ interface StringValue extends ArrayOperations<string[], "['hello', '']"> {}
64
+
65
+ @doc("Array of float values")
66
+ @route("/float32")
67
+ @operationGroup
68
+ interface Float32Value extends ArrayOperations<float32[], "[43.125]"> {}
69
+
70
+ @doc("Array of datetime values")
71
+ @route("/datetime")
72
+ @operationGroup
73
+ interface DatetimeValue extends ArrayOperations<utcDateTime[], "['2022-08-26T18:38:00Z']"> {}
74
+
75
+ @doc("Array of duration values")
76
+ @route("/duration")
77
+ @operationGroup
78
+ interface DurationValue extends ArrayOperations<duration[], "['P123DT22H14M12.011S']"> {}
79
+
80
+ @doc("Array of unknown values")
81
+ @route("/unknown")
82
+ @operationGroup
83
+ interface UnknownValue extends ArrayOperations<unknown[], "[1, 'hello', 'k3': null]"> {}
84
+
85
+ @doc("Array inner model")
86
+ model InnerModel {
87
+ @doc("Required string property")
88
+ property: string;
89
+
90
+ children?: InnerModel[];
91
+ }
92
+
93
+ @doc("Array of model values")
94
+ @route("/model")
95
+ @operationGroup
96
+ interface ModelValue
97
+ extends ArrayOperations<InnerModel[], "[{'property': 'hello'}, {'property': 'world'}]"> {}
98
+
99
+ alias NullableFloat = float32 | null;
100
+ @doc("Array of nullable float values")
101
+ @route("/nullable-float")
102
+ @operationGroup
103
+ interface NullableFloatValue extends ArrayOperations<NullableFloat[], "[1.25, null, 3.0]"> {}
104
+
105
+ alias NullableInt32 = int32 | null;
106
+ @doc("Array of nullable int32 values")
107
+ @route("/nullable-int32")
108
+ @operationGroup
109
+ interface NullableInt32Value extends ArrayOperations<NullableInt32[], "[1, null, 3]"> {}
110
+
111
+ alias NullableBoolean = boolean | null;
112
+ @doc("Array of nullable boolean values")
113
+ @route("/nullable-boolean")
114
+ @operationGroup
115
+ interface NullableBooleanValue extends ArrayOperations<NullableBoolean[], "[true, null, false]"> {}
116
+
117
+ alias NullableString = string | null;
118
+ @doc("Array of nullable string values")
119
+ @route("/nullable-string")
120
+ @operationGroup
121
+ interface NullableStringValue
122
+ extends ArrayOperations<NullableString[], "['hello', null, 'world']"> {}
123
+
124
+ alias NullableModel = InnerModel | null;
125
+ @doc("Array of nullable model values")
126
+ @route("/nullable-model")
127
+ @operationGroup
128
+ interface NullableModelValue
129
+ extends ArrayOperations<
130
+ NullableModel[],
131
+ "[{'property': 'hello'}, null, {'property': 'world'}]"
132
+ > {}
@@ -0,0 +1,119 @@
1
+ import { json, MockRequest, 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
+ handler: (req: MockRequest) => {
16
+ return {
17
+ status: 200,
18
+ body: json(data),
19
+ };
20
+ },
21
+ kind: "MockApiDefinition",
22
+ }),
23
+ put: passOnSuccess({
24
+ uri,
25
+ method: "put",
26
+ request: {
27
+ body: data,
28
+ },
29
+ response: {
30
+ status: 204,
31
+ },
32
+ handler: (req: MockRequest) => {
33
+ req.expect.coercedBodyEquals(data);
34
+ return {
35
+ status: 204,
36
+ };
37
+ },
38
+ kind: "MockApiDefinition",
39
+ }),
40
+ };
41
+ }
42
+
43
+ const Type_Array_Int32 = createServerTests(`/type/array/int32`, [1, 2]);
44
+ Scenarios.Type_Array_Int32Value_get = Type_Array_Int32.get;
45
+ Scenarios.Type_Array_Int32Value_put = Type_Array_Int32.put;
46
+
47
+ const Type_Array_Int64 = createServerTests(`/type/array/int64`, [
48
+ Number.MAX_SAFE_INTEGER,
49
+ Number.MIN_SAFE_INTEGER,
50
+ ]);
51
+ Scenarios.Type_Array_Int64Value_get = Type_Array_Int64.get;
52
+ Scenarios.Type_Array_Int64Value_put = Type_Array_Int64.put;
53
+
54
+ const Type_Array_Boolean = createServerTests(`/type/array/boolean`, [true, false]);
55
+ Scenarios.Type_Array_BooleanValue_get = Type_Array_Boolean.get;
56
+ Scenarios.Type_Array_BooleanValue_put = Type_Array_Boolean.put;
57
+
58
+ const Type_Array_String = createServerTests(`/type/array/string`, ["hello", ""]);
59
+ Scenarios.Type_Array_StringValue_get = Type_Array_String.get;
60
+ Scenarios.Type_Array_StringValue_put = Type_Array_String.put;
61
+
62
+ const Type_Array_Float32 = createServerTests(`/type/array/float32`, [43.125]);
63
+ Scenarios.Type_Array_Float32Value_get = Type_Array_Float32.get;
64
+ Scenarios.Type_Array_Float32Value_put = Type_Array_Float32.put;
65
+
66
+ const Type_Array_Datetime = createServerTests(`/type/array/datetime`, ["2022-08-26T18:38:00Z"]);
67
+ Scenarios.Type_Array_DatetimeValue_get = Type_Array_Datetime.get;
68
+ Scenarios.Type_Array_DatetimeValue_put = Type_Array_Datetime.put;
69
+
70
+ const Type_Array_Duration = createServerTests(`/type/array/duration`, ["P123DT22H14M12.011S"]);
71
+ Scenarios.Type_Array_DurationValue_get = Type_Array_Duration.get;
72
+ Scenarios.Type_Array_DurationValue_put = Type_Array_Duration.put;
73
+
74
+ const Type_Array_Unknown = createServerTests(`/type/array/unknown`, [1, "hello", null]);
75
+ Scenarios.Type_Array_UnknownValue_get = Type_Array_Unknown.get;
76
+ Scenarios.Type_Array_UnknownValue_put = Type_Array_Unknown.put;
77
+
78
+ const Type_Array_Model = createServerTests(`/type/array/model`, [
79
+ { property: "hello" },
80
+ { property: "world" },
81
+ ]);
82
+ Scenarios.Type_Array_ModelValue_get = Type_Array_Model.get;
83
+ Scenarios.Type_Array_ModelValue_put = Type_Array_Model.put;
84
+
85
+ const Type_Array_Nullable_Float = createServerTests(`/type/array/nullable-float`, [
86
+ 1.25,
87
+ null,
88
+ 3.0,
89
+ ]);
90
+ Scenarios.Type_Array_NullableFloatValue_get = Type_Array_Nullable_Float.get;
91
+ Scenarios.Type_Array_NullableFloatValue_put = Type_Array_Nullable_Float.put;
92
+
93
+ const Type_Array_Nullable_Boolean = createServerTests(`/type/array/nullable-boolean`, [
94
+ true,
95
+ null,
96
+ false,
97
+ ]);
98
+ Scenarios.Type_Array_NullableBooleanValue_get = Type_Array_Nullable_Boolean.get;
99
+ Scenarios.Type_Array_NullableBooleanValue_put = Type_Array_Nullable_Boolean.put;
100
+
101
+ const Type_Array_Nullable_Int32 = createServerTests(`/type/array/nullable-int32`, [1, null, 3]);
102
+ Scenarios.Type_Array_NullableInt32Value_get = Type_Array_Nullable_Int32.get;
103
+ Scenarios.Type_Array_NullableInt32Value_put = Type_Array_Nullable_Int32.put;
104
+
105
+ const Type_Array_Nullable_String = createServerTests(`/type/array/nullable-string`, [
106
+ "hello",
107
+ null,
108
+ "world",
109
+ ]);
110
+ Scenarios.Type_Array_NullableStringValue_get = Type_Array_Nullable_String.get;
111
+ Scenarios.Type_Array_NullableStringValue_put = Type_Array_Nullable_String.put;
112
+
113
+ const Type_Array_Nullable_Model = createServerTests(`/type/array/nullable-model`, [
114
+ { property: "hello" },
115
+ null,
116
+ { property: "world" },
117
+ ]);
118
+ Scenarios.Type_Array_NullableModelValue_get = Type_Array_Nullable_Model.get;
119
+ Scenarios.Type_Array_NullableModelValue_put = Type_Array_Nullable_Model.put;
@@ -0,0 +1,122 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spec-lib";
3
+
4
+ using TypeSpec.Http;
5
+ using Azure.ClientGenerator.Core;
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 string> {
13
+ @scenario
14
+ @scenarioDoc(
15
+ """
16
+ Expected dictionary response body:
17
+ ```json
18
+ {doc}
19
+ ```
20
+ """,
21
+ {
22
+ doc: TDoc,
23
+ }
24
+ )
25
+ @get
26
+ get(): TDict;
27
+
28
+ @scenario
29
+ @scenarioDoc(
30
+ """
31
+ Expected dictionary input body:
32
+ ```json
33
+ {doc}
34
+ ```
35
+ """,
36
+ {
37
+ doc: TDoc,
38
+ }
39
+ )
40
+ @put
41
+ put(@body body: TDict): void;
42
+ }
43
+
44
+ @doc("Dictionary of int32 values")
45
+ @route("/int32")
46
+ @operationGroup
47
+ interface Int32Value extends DictionaryOperations<Record<int32>, "{'k1': 1, 'k2': 2}"> {}
48
+
49
+ @doc("Dictionary of int64 values")
50
+ @route("/int64")
51
+ @operationGroup
52
+ interface Int64Value
53
+ extends DictionaryOperations<
54
+ Record<int64>,
55
+ "{'k1': 0x7FFFFFFFFFFFFFFF, 'k2': -0x7FFFFFFFFFFFFFFF}"
56
+ > {}
57
+
58
+ @doc("Dictionary of boolean values")
59
+ @route("/boolean")
60
+ @operationGroup
61
+ interface BooleanValue extends DictionaryOperations<Record<boolean>, "{'k1': true, 'k2': false}"> {}
62
+
63
+ @doc("Dictionary of string values")
64
+ @route("/string")
65
+ @operationGroup
66
+ interface StringValue extends DictionaryOperations<Record<string>, "{'k1': 'hello', 'k2': ''}"> {}
67
+
68
+ @doc("Dictionary of float values")
69
+ @route("/float32")
70
+ @operationGroup
71
+ interface Float32Value extends DictionaryOperations<Record<float32>, "{'k1': 43.125}"> {}
72
+
73
+ @doc("Dictionary of datetime values")
74
+ @route("/datetime")
75
+ @operationGroup
76
+ interface DatetimeValue
77
+ extends DictionaryOperations<Record<utcDateTime>, "{'k1': '2022-08-26T18:38:00Z'}"> {}
78
+
79
+ @doc("Dictionary of duration values")
80
+ @route("/duration")
81
+ @operationGroup
82
+ interface DurationValue
83
+ extends DictionaryOperations<Record<duration>, "{'k1': 'P123DT22H14M12.011S'}"> {}
84
+
85
+ @doc("Dictionary of unknown values")
86
+ @route("/unknown")
87
+ @operationGroup
88
+ interface UnknownValue
89
+ extends DictionaryOperations<Record<unknown>, "{'k1': 1, 'k2': 'hello', 'k3': null}"> {}
90
+
91
+ @doc("Dictionary inner model")
92
+ model InnerModel {
93
+ @doc("Required string property")
94
+ property: string;
95
+
96
+ children?: Record<InnerModel>;
97
+ }
98
+
99
+ @doc("Dictionary of model values")
100
+ @route("/model")
101
+ @operationGroup
102
+ interface ModelValue
103
+ extends DictionaryOperations<
104
+ Record<InnerModel>,
105
+ "{'k1': {'property': 'hello'}, 'k2': {'property': 'world'}}"
106
+ > {}
107
+
108
+ @doc("Dictionary of model values")
109
+ @route("/model/recursive")
110
+ @operationGroup
111
+ interface RecursiveModelValue
112
+ extends DictionaryOperations<
113
+ Record<InnerModel>,
114
+ "{'k1': {'property': 'hello', children: {}}, 'k2': {'property': 'world', children: {'k2.1': {'property': 'inner world'}}}}"
115
+ > {}
116
+
117
+ alias NullableFloat = float32 | null;
118
+ @doc("Dictionary of nullable float values")
119
+ @route("/nullable-float")
120
+ @operationGroup
121
+ interface NullableFloatValue
122
+ extends DictionaryOperations<Record<NullableFloat>, "{'k1': 1.25, 'k2': 0.5, 'k3': null}"> {}
@@ -0,0 +1,115 @@
1
+ import { json, MockRequest, 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
+ handler: (req: MockRequest) => {
16
+ return {
17
+ status: 200,
18
+ body: json(data),
19
+ };
20
+ },
21
+ kind: "MockApiDefinition",
22
+ }),
23
+ put: passOnSuccess({
24
+ uri,
25
+ method: "put",
26
+ request: {
27
+ body: data,
28
+ },
29
+ response: {
30
+ status: 204,
31
+ },
32
+ handler: (req: MockRequest) => {
33
+ req.expect.coercedBodyEquals(data);
34
+ return {
35
+ status: 204,
36
+ };
37
+ },
38
+ kind: "MockApiDefinition",
39
+ }),
40
+ };
41
+ }
42
+
43
+ const Type_Dictionary_Int32 = createServerTests(`/type/dictionary/int32`, { k1: 1, k2: 2 });
44
+ Scenarios.Type_Dictionary_Int32Value_get = Type_Dictionary_Int32.get;
45
+ Scenarios.Type_Dictionary_Int32Value_put = Type_Dictionary_Int32.put;
46
+
47
+ const Type_Dictionary_Int64 = createServerTests(`/type/dictionary/int64`, {
48
+ k1: Number.MAX_SAFE_INTEGER,
49
+ k2: Number.MIN_SAFE_INTEGER,
50
+ });
51
+ Scenarios.Type_Dictionary_Int64Value_get = Type_Dictionary_Int64.get;
52
+ Scenarios.Type_Dictionary_Int64Value_put = Type_Dictionary_Int64.put;
53
+
54
+ const Type_Dictionary_Boolean = createServerTests(`/type/dictionary/boolean`, {
55
+ k1: true,
56
+ k2: false,
57
+ });
58
+ Scenarios.Type_Dictionary_BooleanValue_get = Type_Dictionary_Boolean.get;
59
+ Scenarios.Type_Dictionary_BooleanValue_put = Type_Dictionary_Boolean.put;
60
+
61
+ const Type_Dictionary_String = createServerTests(`/type/dictionary/string`, {
62
+ k1: "hello",
63
+ k2: "",
64
+ });
65
+ Scenarios.Type_Dictionary_StringValue_get = Type_Dictionary_String.get;
66
+ Scenarios.Type_Dictionary_StringValue_put = Type_Dictionary_String.put;
67
+
68
+ const Type_Dictionary_Float32 = createServerTests(`/type/dictionary/float32`, { k1: 43.125 });
69
+ Scenarios.Type_Dictionary_Float32Value_get = Type_Dictionary_Float32.get;
70
+ Scenarios.Type_Dictionary_Float32Value_put = Type_Dictionary_Float32.put;
71
+
72
+ const Type_Dictionary_Datetime = createServerTests(`/type/dictionary/datetime`, {
73
+ k1: "2022-08-26T18:38:00Z",
74
+ });
75
+ Scenarios.Type_Dictionary_DatetimeValue_get = Type_Dictionary_Datetime.get;
76
+ Scenarios.Type_Dictionary_DatetimeValue_put = Type_Dictionary_Datetime.put;
77
+
78
+ const Type_Dictionary_Duration = createServerTests(`/type/dictionary/duration`, {
79
+ k1: "P123DT22H14M12.011S",
80
+ });
81
+ Scenarios.Type_Dictionary_DurationValue_get = Type_Dictionary_Duration.get;
82
+ Scenarios.Type_Dictionary_DurationValue_put = Type_Dictionary_Duration.put;
83
+
84
+ const Type_Dictionary_Unknown = createServerTests(`/type/dictionary/unknown`, {
85
+ k1: 1,
86
+ k2: "hello",
87
+ k3: null,
88
+ });
89
+ Scenarios.Type_Dictionary_UnknownValue_get = Type_Dictionary_Unknown.get;
90
+ Scenarios.Type_Dictionary_UnknownValue_put = Type_Dictionary_Unknown.put;
91
+
92
+ const Type_Dictionary_Model = createServerTests(`/type/dictionary/model`, {
93
+ k1: { property: "hello" },
94
+ k2: { property: "world" },
95
+ });
96
+ Scenarios.Type_Dictionary_ModelValue_get = Type_Dictionary_Model.get;
97
+ Scenarios.Type_Dictionary_ModelValue_put = Type_Dictionary_Model.put;
98
+
99
+ const Type_Dictionary_Model_Recursive = createServerTests(`/type/dictionary/model/recursive`, {
100
+ k1: { property: "hello", children: {} },
101
+ k2: {
102
+ property: "world",
103
+ children: { "k2.1": { property: "inner world" } },
104
+ },
105
+ });
106
+ Scenarios.Type_Dictionary_RecursiveModelValue_get = Type_Dictionary_Model_Recursive.get;
107
+ Scenarios.Type_Dictionary_RecursiveModelValue_put = Type_Dictionary_Model_Recursive.put;
108
+
109
+ const Type_Dictionary_Nullable_Float = createServerTests(`/type/dictionary/nullable-float`, {
110
+ k1: 1.25,
111
+ k2: 0.5,
112
+ k3: null,
113
+ });
114
+ Scenarios.Type_Dictionary_NullableFloatValue_get = Type_Dictionary_Nullable_Float.get;
115
+ Scenarios.Type_Dictionary_NullableFloatValue_put = Type_Dictionary_Nullable_Float.put;
@@ -0,0 +1,64 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spec-lib";
3
+
4
+ using TypeSpec.Http;
5
+
6
+ @scenarioService("/type/enum/extensible")
7
+ namespace Type.Enum.Extensible;
8
+
9
+ @doc("Days of the week")
10
+ union DaysOfWeekExtensibleEnum {
11
+ string,
12
+
13
+ @doc("Monday.")
14
+ Monday: "Monday",
15
+
16
+ @doc("Tuesday.")
17
+ Tuesday: "Tuesday",
18
+
19
+ @doc("Wednesday.")
20
+ Wednesday: "Wednesday",
21
+
22
+ @doc("Thursday.")
23
+ Thursday: "Thursday",
24
+
25
+ @doc("Friday.")
26
+ Friday: "Friday",
27
+
28
+ @doc("Saturday.")
29
+ Saturday: "Saturday",
30
+
31
+ @doc("Sunday.")
32
+ Sunday: "Sunday",
33
+ }
34
+
35
+ @route("/string")
36
+ interface String {
37
+ @scenario
38
+ @scenarioDoc("Expect to handle a known value. Mock api will return 'Monday'")
39
+ @get
40
+ @route("/known-value")
41
+ getKnownValue(): {
42
+ @body body: DaysOfWeekExtensibleEnum;
43
+ };
44
+
45
+ @scenario
46
+ @scenarioDoc("Expect to handle an unknown value. Mock api will return 'Weekend'")
47
+ @get
48
+ @route("/unknown-value")
49
+ getUnknownValue(): {
50
+ @body body: DaysOfWeekExtensibleEnum;
51
+ };
52
+
53
+ @scenario
54
+ @scenarioDoc("Expect to send a known value. Mock api expect to receive 'Monday'")
55
+ @put
56
+ @route("/known-value")
57
+ putKnownValue(@body body: DaysOfWeekExtensibleEnum): void;
58
+
59
+ @scenario
60
+ @scenarioDoc("Expect to handle an unknown value. Mock api expect to receive 'Weekend'")
61
+ @put
62
+ @route("/unknown-value")
63
+ putUnknownValue(@body body: DaysOfWeekExtensibleEnum): void;
64
+ }
@@ -0,0 +1,55 @@
1
+ import { json, MockRequest, 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
+ handler: (req: MockRequest) => {
16
+ return { status: 200, body: json(data) };
17
+ },
18
+ kind: "MockApiDefinition",
19
+ }),
20
+ put: passOnSuccess({
21
+ uri,
22
+ method: "put",
23
+ request: {
24
+ body: data,
25
+ headers: {
26
+ "Content-Type": "text/plain",
27
+ },
28
+ },
29
+ response: {
30
+ status: 204,
31
+ },
32
+ handler: (req: MockRequest) => {
33
+ req.expect.bodyEquals(data);
34
+ return { status: 204 };
35
+ },
36
+ kind: "MockApiDefinition",
37
+ }),
38
+ };
39
+ }
40
+
41
+ const Type_Enum_Extensible_String_Known_Value = createMockServerTests(
42
+ `/type/enum/extensible/string/known-value`,
43
+ "Monday",
44
+ );
45
+ Scenarios.Type_Enum_Extensible_String_getKnownValue = Type_Enum_Extensible_String_Known_Value.get;
46
+ Scenarios.Type_Enum_Extensible_String_putKnownValue = Type_Enum_Extensible_String_Known_Value.put;
47
+
48
+ const Type_Enum_Extensible_String_UnKnown_Value = createMockServerTests(
49
+ `/type/enum/extensible/string/unknown-value`,
50
+ "Weekend",
51
+ );
52
+ Scenarios.Type_Enum_Extensible_String_getUnknownValue =
53
+ Type_Enum_Extensible_String_UnKnown_Value.get;
54
+ Scenarios.Type_Enum_Extensible_String_putUnknownValue =
55
+ Type_Enum_Extensible_String_UnKnown_Value.put;
@@ -0,0 +1,60 @@
1
+ import "@typespec/http";
2
+ import "@typespec/spec-lib";
3
+
4
+ using Azure.Core;
5
+ using TypeSpec.Http;
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
+ }