@azure-tools/typespec-ts 0.11.0 → 0.12.0-alpha.20230501.1

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 (412) hide show
  1. package/.rush/temp/package-deps_build.json +265 -152
  2. package/.rush/temp/shrinkwrap-deps.json +58 -54
  3. package/CHANGELOG.md +4 -0
  4. package/CONTRIBUTING.md +5 -2
  5. package/README.md +3 -3
  6. package/dist/src/casingUtils.d.ts +4 -0
  7. package/dist/src/casingUtils.d.ts.map +1 -0
  8. package/dist/src/casingUtils.js +39 -0
  9. package/dist/src/casingUtils.js.map +1 -0
  10. package/dist/src/emitUtil.js +7 -1
  11. package/dist/src/emitUtil.js.map +1 -1
  12. package/dist/src/index.d.ts.map +1 -1
  13. package/dist/src/index.js +41 -9
  14. package/dist/src/index.js.map +1 -1
  15. package/dist/src/lib.d.ts.map +1 -1
  16. package/dist/src/lib.js +2 -1
  17. package/dist/src/lib.js.map +1 -1
  18. package/dist/src/modelUtils.d.ts +22 -1
  19. package/dist/src/modelUtils.d.ts.map +1 -1
  20. package/dist/src/modelUtils.js +105 -13
  21. package/dist/src/modelUtils.js.map +1 -1
  22. package/dist/src/modular/buildApiIndex.d.ts +3 -0
  23. package/dist/src/modular/buildApiIndex.d.ts.map +1 -0
  24. package/dist/src/modular/buildApiIndex.js +12 -0
  25. package/dist/src/modular/buildApiIndex.js.map +1 -0
  26. package/dist/src/modular/buildClassicalClient.d.ts +4 -0
  27. package/dist/src/modular/buildClassicalClient.d.ts.map +1 -0
  28. package/dist/src/modular/buildClassicalClient.js +112 -0
  29. package/dist/src/modular/buildClassicalClient.js.map +1 -0
  30. package/dist/src/modular/buildClientContext.d.ts +7 -0
  31. package/dist/src/modular/buildClientContext.d.ts.map +1 -0
  32. package/dist/src/modular/buildClientContext.js +72 -0
  33. package/dist/src/modular/buildClientContext.js.map +1 -0
  34. package/dist/src/modular/buildCodeModel.d.ts +14 -0
  35. package/dist/src/modular/buildCodeModel.d.ts.map +1 -0
  36. package/dist/src/modular/buildCodeModel.js +1110 -0
  37. package/dist/src/modular/buildCodeModel.js.map +1 -0
  38. package/dist/src/modular/buildOperations.d.ts +13 -0
  39. package/dist/src/modular/buildOperations.d.ts.map +1 -0
  40. package/dist/src/modular/buildOperations.js +70 -0
  41. package/dist/src/modular/buildOperations.js.map +1 -0
  42. package/dist/src/modular/buildProjectFiles.d.ts +5 -0
  43. package/dist/src/modular/buildProjectFiles.d.ts.map +1 -0
  44. package/dist/src/modular/buildProjectFiles.js +182 -0
  45. package/dist/src/modular/buildProjectFiles.js.map +1 -0
  46. package/dist/src/modular/buildRootIndex.d.ts +4 -0
  47. package/dist/src/modular/buildRootIndex.d.ts.map +1 -0
  48. package/dist/src/modular/buildRootIndex.js +66 -0
  49. package/dist/src/modular/buildRootIndex.js.map +1 -0
  50. package/dist/src/modular/buildSharedTypes.d.ts +6 -0
  51. package/dist/src/modular/buildSharedTypes.d.ts.map +1 -0
  52. package/dist/src/modular/buildSharedTypes.js +33 -0
  53. package/dist/src/modular/buildSharedTypes.js.map +1 -0
  54. package/dist/src/modular/emitModels.d.ts +7 -0
  55. package/dist/src/modular/emitModels.d.ts.map +1 -0
  56. package/dist/src/modular/emitModels.js +63 -0
  57. package/dist/src/modular/emitModels.js.map +1 -0
  58. package/dist/src/modular/helpers/clientHelpers.d.ts +4 -0
  59. package/dist/src/modular/helpers/clientHelpers.d.ts.map +1 -0
  60. package/dist/src/modular/helpers/clientHelpers.js +31 -0
  61. package/dist/src/modular/helpers/clientHelpers.js.map +1 -0
  62. package/dist/src/modular/helpers/credentialHelpers.d.ts +7 -0
  63. package/dist/src/modular/helpers/credentialHelpers.d.ts.map +1 -0
  64. package/dist/src/modular/helpers/credentialHelpers.js +32 -0
  65. package/dist/src/modular/helpers/credentialHelpers.js.map +1 -0
  66. package/dist/src/modular/helpers/namingHelpers.d.ts +3 -0
  67. package/dist/src/modular/helpers/namingHelpers.d.ts.map +1 -0
  68. package/dist/src/modular/helpers/namingHelpers.js +4 -0
  69. package/dist/src/modular/helpers/namingHelpers.js.map +1 -0
  70. package/dist/src/modular/helpers/operationHelpers.d.ts +8 -0
  71. package/dist/src/modular/helpers/operationHelpers.d.ts.map +1 -0
  72. package/dist/src/modular/helpers/operationHelpers.js +274 -0
  73. package/dist/src/modular/helpers/operationHelpers.js.map +1 -0
  74. package/dist/src/modular/helpers/parameterHelpers.d.ts +3 -0
  75. package/dist/src/modular/helpers/parameterHelpers.d.ts.map +1 -0
  76. package/dist/src/modular/helpers/parameterHelpers.js +16 -0
  77. package/dist/src/modular/helpers/parameterHelpers.js.map +1 -0
  78. package/dist/src/modular/helpers/typeHelpers.d.ts +16 -0
  79. package/dist/src/modular/helpers/typeHelpers.d.ts.map +1 -0
  80. package/dist/src/modular/helpers/typeHelpers.js +92 -0
  81. package/dist/src/modular/helpers/typeHelpers.js.map +1 -0
  82. package/dist/src/modular/interfaces.d.ts +10 -0
  83. package/dist/src/modular/interfaces.d.ts.map +1 -0
  84. package/dist/src/modular/interfaces.js +2 -0
  85. package/dist/src/modular/interfaces.js.map +1 -0
  86. package/dist/src/modular/modularCodeModel.d.ts +121 -0
  87. package/dist/src/modular/modularCodeModel.d.ts.map +1 -0
  88. package/dist/src/modular/modularCodeModel.js +2 -0
  89. package/dist/src/modular/modularCodeModel.js.map +1 -0
  90. package/dist/src/operationUtil.d.ts +30 -4
  91. package/dist/src/operationUtil.d.ts.map +1 -1
  92. package/dist/src/operationUtil.js +77 -18
  93. package/dist/src/operationUtil.js.map +1 -1
  94. package/dist/src/transform/transform.d.ts +4 -6
  95. package/dist/src/transform/transform.d.ts.map +1 -1
  96. package/dist/src/transform/transform.js +17 -58
  97. package/dist/src/transform/transform.js.map +1 -1
  98. package/dist/src/transform/transformApiVersionInfo.d.ts +5 -0
  99. package/dist/src/transform/transformApiVersionInfo.d.ts.map +1 -0
  100. package/dist/src/transform/transformApiVersionInfo.js +64 -0
  101. package/dist/src/transform/transformApiVersionInfo.js.map +1 -0
  102. package/dist/src/transform/transformHelperFunctionDetails.d.ts +6 -0
  103. package/dist/src/transform/transformHelperFunctionDetails.d.ts.map +1 -0
  104. package/dist/src/transform/{transformAnnotationDetails.js → transformHelperFunctionDetails.js} +2 -2
  105. package/dist/src/transform/transformHelperFunctionDetails.js.map +1 -0
  106. package/dist/src/transform/transformParameters.d.ts +2 -2
  107. package/dist/src/transform/transformParameters.d.ts.map +1 -1
  108. package/dist/src/transform/transformParameters.js +20 -7
  109. package/dist/src/transform/transformParameters.js.map +1 -1
  110. package/dist/src/transform/transformPaths.d.ts +2 -2
  111. package/dist/src/transform/transformPaths.d.ts.map +1 -1
  112. package/dist/src/transform/transformPaths.js +15 -7
  113. package/dist/src/transform/transformPaths.js.map +1 -1
  114. package/dist/src/transform/transformResponses.d.ts +2 -2
  115. package/dist/src/transform/transformResponses.d.ts.map +1 -1
  116. package/dist/src/transform/transformResponses.js +23 -2
  117. package/dist/src/transform/transformResponses.js.map +1 -1
  118. package/dist/src/transform/transformSchemas.d.ts +2 -2
  119. package/dist/src/transform/transformSchemas.d.ts.map +1 -1
  120. package/dist/src/transform/transformSchemas.js +10 -22
  121. package/dist/src/transform/transformSchemas.js.map +1 -1
  122. package/dist/src/transform/transfromRLCOptions.d.ts +2 -2
  123. package/dist/src/transform/transfromRLCOptions.js +1 -1
  124. package/dist/src/transform/transfromRLCOptions.js.map +1 -1
  125. package/dist/tsconfig.tsbuildinfo +1 -1
  126. package/package.json +27 -19
  127. package/src/casingUtils.ts +48 -0
  128. package/src/emitUtil.ts +9 -4
  129. package/src/index.ts +53 -10
  130. package/src/lib.ts +2 -1
  131. package/src/modelUtils.ts +137 -14
  132. package/src/modular/buildApiIndex.ts +13 -0
  133. package/src/modular/buildClassicalClient.ts +147 -0
  134. package/src/modular/buildClientContext.ts +104 -0
  135. package/src/modular/buildCodeModel.ts +1449 -0
  136. package/src/modular/buildOperations.ts +95 -0
  137. package/src/modular/buildProjectFiles.ts +219 -0
  138. package/src/modular/buildRootIndex.ts +94 -0
  139. package/src/modular/buildSharedTypes.ts +40 -0
  140. package/src/modular/emitModels.ts +72 -0
  141. package/src/modular/helpers/clientHelpers.ts +38 -0
  142. package/src/modular/helpers/credentialHelpers.ts +40 -0
  143. package/src/modular/helpers/namingHelpers.ts +5 -0
  144. package/src/modular/helpers/operationHelpers.ts +418 -0
  145. package/src/modular/helpers/parameterHelpers.ts +17 -0
  146. package/src/modular/helpers/typeHelpers.ts +106 -0
  147. package/src/modular/interfaces.ts +10 -0
  148. package/src/modular/modularCodeModel.ts +151 -0
  149. package/src/modular/static/karma.conf.cjs +120 -0
  150. package/src/modular/static/rollup.test.config.js +67 -0
  151. package/src/modular/static/scripts/renameOutput.mjs +17 -0
  152. package/src/operationUtil.ts +119 -31
  153. package/src/transform/transform.ts +33 -96
  154. package/src/transform/transformApiVersionInfo.ts +108 -0
  155. package/src/transform/{transformAnnotationDetails.ts → transformHelperFunctionDetails.ts} +11 -11
  156. package/src/transform/transformParameters.ts +30 -14
  157. package/src/transform/transformPaths.ts +29 -19
  158. package/src/transform/transformResponses.ts +50 -8
  159. package/src/transform/transformSchemas.ts +20 -28
  160. package/src/transform/transfromRLCOptions.ts +3 -3
  161. package/test/commands/cadl-ranch-list.ts +53 -20
  162. package/test/commands/gen-cadl-ranch.ts +6 -2
  163. package/test/commands/run.ts +3 -13
  164. package/test/integration/arrayItemTypes.spec.ts +6 -3
  165. package/test/integration/azurecore.spec.ts +130 -0
  166. package/test/integration/collectionFormat.spec.ts +118 -0
  167. package/test/integration/dictionary.spec.ts +6 -2
  168. package/test/integration/extensibleEnums.spec.ts +8 -8
  169. package/test/integration/fixedEnums.spec.ts +7 -7
  170. package/test/integration/generated/arrays/itemTypes/src/clientDefinitions.ts +33 -18
  171. package/test/integration/generated/arrays/itemTypes/src/parameters.ts +8 -0
  172. package/test/integration/generated/arrays/itemTypes/src/responses.ts +11 -0
  173. package/test/integration/generated/arrays/itemTypes/tspconfig.yaml +5 -2
  174. package/test/integration/generated/authentication/apiKey/package.json +2 -2
  175. package/test/integration/generated/authentication/apiKey/tspconfig.yaml +5 -2
  176. package/test/integration/generated/authentication/oauth2/tspconfig.yaml +5 -2
  177. package/test/integration/generated/authentication/union/tspconfig.yaml +5 -2
  178. package/test/integration/generated/{resiliency/devDriven → azure/core}/README.md +7 -7
  179. package/test/integration/generated/{lro/lroBasic → azure/core}/api-extractor.json +1 -1
  180. package/test/integration/generated/{resiliency/devDriven → azure/core}/package.json +6 -6
  181. package/test/integration/generated/azure/core/src/azureCoreClient.ts +31 -0
  182. package/test/integration/generated/azure/core/src/clientDefinitions.ts +108 -0
  183. package/test/integration/generated/{resiliency/devDriven → azure/core}/src/index.ts +4 -3
  184. package/test/integration/generated/azure/core/src/isUnexpected.ts +178 -0
  185. package/test/integration/generated/azure/core/src/models.ts +18 -0
  186. package/test/integration/generated/azure/core/src/outputModels.ts +32 -0
  187. package/test/integration/generated/{resiliency/devDriven → azure/core}/src/paginateHelper.ts +55 -5
  188. package/test/integration/generated/azure/core/src/parameters.ts +68 -0
  189. package/test/integration/generated/azure/core/src/responses.ts +158 -0
  190. package/test/integration/generated/azure/core/src/serializeHelper.ts +16 -0
  191. package/test/integration/generated/azure/core/tspconfig.yaml +15 -0
  192. package/test/integration/generated/azure/core-traits/README.md +56 -0
  193. package/test/integration/generated/azure/core-traits/api-extractor.json +18 -0
  194. package/test/integration/generated/azure/core-traits/package.json +80 -0
  195. package/test/integration/generated/azure/core-traits/src/azureCoreTraitsClient.ts +31 -0
  196. package/test/integration/generated/azure/core-traits/src/clientDefinitions.ts +22 -0
  197. package/test/integration/generated/azure/core-traits/src/index.ts +13 -0
  198. package/test/integration/generated/{resiliency/devDriven → azure/core-traits}/src/isUnexpected.ts +6 -26
  199. package/test/integration/generated/azure/core-traits/src/outputModels.ts +10 -0
  200. package/test/integration/generated/azure/core-traits/src/parameters.ts +26 -0
  201. package/test/integration/generated/azure/core-traits/src/responses.ts +32 -0
  202. package/test/integration/generated/azure/core-traits/tspconfig.yaml +15 -0
  203. package/test/integration/generated/dictionary/package.json +2 -2
  204. package/test/integration/generated/dictionary/src/clientDefinitions.ts +35 -20
  205. package/test/integration/generated/dictionary/src/parameters.ts +8 -0
  206. package/test/integration/generated/dictionary/src/responses.ts +11 -0
  207. package/test/integration/generated/dictionary/tspconfig.yaml +5 -2
  208. package/test/integration/generated/enums/extensible/README.md +3 -3
  209. package/test/integration/generated/enums/extensible/package.json +2 -2
  210. package/test/integration/generated/enums/extensible/src/clientDefinitions.ts +5 -5
  211. package/test/integration/generated/enums/extensible/src/index.ts +3 -3
  212. package/test/integration/generated/enums/extensible/src/{enumsExtensible.ts → typeEnumExtensible.ts} +4 -4
  213. package/test/integration/generated/enums/extensible/tspconfig.yaml +5 -2
  214. package/test/integration/generated/enums/fixed/README.md +3 -3
  215. package/test/integration/generated/enums/fixed/package.json +2 -2
  216. package/test/integration/generated/enums/fixed/src/clientDefinitions.ts +5 -5
  217. package/test/integration/generated/enums/fixed/src/index.ts +3 -3
  218. package/test/integration/generated/enums/fixed/src/{enumsFixed.ts → typeEnumFixed.ts} +4 -4
  219. package/test/integration/generated/enums/fixed/tspconfig.yaml +5 -2
  220. package/test/integration/generated/hello/package.json +2 -2
  221. package/test/integration/generated/hello/tspconfig.yaml +5 -2
  222. package/test/integration/generated/internal/src/clientDefinitions.ts +27 -0
  223. package/test/integration/generated/internal/src/index.ts +13 -0
  224. package/test/integration/generated/{lro/lroBasic/src/azureLro.ts → internal/src/internalClient.ts} +5 -5
  225. package/test/integration/generated/internal/src/models.ts +8 -0
  226. package/test/integration/generated/internal/src/outputModels.ts +13 -0
  227. package/test/integration/generated/internal/src/parameters.ts +21 -0
  228. package/test/integration/generated/internal/src/responses.ts +20 -0
  229. package/test/integration/generated/internal/tspconfig.yaml +14 -0
  230. package/test/integration/generated/lro/lroCore/.eslintrc.json +11 -0
  231. package/test/integration/generated/lro/lroCore/README.md +56 -0
  232. package/test/integration/generated/{resiliency/devDriven → lro/lroCore}/api-extractor.json +1 -1
  233. package/test/integration/generated/lro/{lroBasic → lroCore}/package.json +6 -6
  234. package/test/integration/generated/lro/lroCore/rollup.config.js +118 -0
  235. package/test/integration/generated/lro/lroCore/src/clientDefinitions.ts +54 -0
  236. package/test/integration/generated/lro/lroCore/src/index.ts +15 -0
  237. package/test/integration/generated/lro/lroCore/src/isUnexpected.ts +135 -0
  238. package/test/integration/generated/lro/lroCore/src/models.ts +8 -0
  239. package/test/integration/generated/lro/lroCore/src/outputModels.ts +50 -0
  240. package/test/integration/generated/lro/lroCore/src/parameters.ts +25 -0
  241. package/test/integration/generated/lro/{lroBasic → lroCore}/src/pollingHelper.ts +38 -0
  242. package/test/integration/generated/lro/lroCore/src/responses.ts +109 -0
  243. package/test/integration/generated/lro/lroCore/src/specsAzureCoreLroStandard.ts +31 -0
  244. package/test/integration/generated/lro/lroCore/tsconfig.json +25 -0
  245. package/test/integration/generated/lro/lroCore/tspconfig.yaml +14 -0
  246. package/test/integration/generated/lro/lroRPC/.eslintrc.json +11 -0
  247. package/test/integration/generated/lro/{lroBasic → lroRPC}/README.md +7 -7
  248. package/test/integration/generated/lro/lroRPC/api-extractor.json +18 -0
  249. package/test/integration/generated/lro/lroRPC/package.json +82 -0
  250. package/test/integration/generated/lro/lroRPC/rollup.config.js +118 -0
  251. package/test/integration/generated/lro/lroRPC/src/clientDefinitions.ts +79 -0
  252. package/test/integration/generated/lro/lroRPC/src/index.ts +15 -0
  253. package/test/integration/generated/lro/lroRPC/src/isUnexpected.ts +153 -0
  254. package/test/integration/generated/lro/lroRPC/src/models.ts +8 -0
  255. package/test/integration/generated/lro/lroRPC/src/outputModels.ts +40 -0
  256. package/test/integration/generated/lro/lroRPC/src/parameters.ts +20 -0
  257. package/test/integration/generated/lro/lroRPC/src/pollingHelper.ts +127 -0
  258. package/test/integration/generated/lro/lroRPC/src/responses.ts +124 -0
  259. package/test/integration/generated/lro/lroRPC/src/specsAzureCoreLroRpc.ts +31 -0
  260. package/test/integration/generated/lro/lroRPC/tsconfig.json +25 -0
  261. package/test/integration/generated/lro/lroRPC/tspconfig.yaml +14 -0
  262. package/test/integration/generated/models/inheritance/README.md +3 -3
  263. package/test/integration/generated/models/inheritance/package.json +2 -2
  264. package/test/integration/generated/models/inheritance/src/clientDefinitions.ts +13 -11
  265. package/test/integration/generated/models/inheritance/src/index.ts +3 -3
  266. package/test/integration/generated/models/inheritance/src/{modelsInheritance.ts → typeModelInheritance.ts} +4 -4
  267. package/test/integration/generated/models/inheritance/tspconfig.yaml +5 -2
  268. package/test/integration/generated/models/propertyNullable/.eslintrc.json +11 -0
  269. package/test/integration/generated/models/propertyNullable/README.md +56 -0
  270. package/test/integration/generated/models/propertyNullable/api-extractor.json +18 -0
  271. package/test/integration/generated/models/propertyNullable/package.json +80 -0
  272. package/test/integration/generated/models/propertyNullable/rollup.config.js +118 -0
  273. package/test/integration/generated/models/propertyNullable/src/clientDefinitions.ts +227 -0
  274. package/test/integration/generated/models/propertyNullable/src/index.ts +13 -0
  275. package/test/integration/generated/models/propertyNullable/src/models.ts +56 -0
  276. package/test/integration/generated/models/propertyNullable/src/outputModels.ts +56 -0
  277. package/test/integration/generated/models/propertyNullable/src/parameters.ts +197 -0
  278. package/test/integration/generated/models/propertyNullable/src/responses.ts +144 -0
  279. package/test/integration/generated/{resiliency/devDriven/src/resiliencyDevDriven.ts → models/propertyNullable/src/typePropertyNullable.ts} +5 -5
  280. package/test/integration/generated/models/propertyNullable/tsconfig.json +25 -0
  281. package/test/integration/generated/models/propertyNullable/tspconfig.yaml +14 -0
  282. package/test/integration/generated/models/propertyOptional/README.md +3 -3
  283. package/test/integration/generated/models/propertyOptional/package.json +2 -2
  284. package/test/integration/generated/models/propertyOptional/src/clientDefinitions.ts +47 -47
  285. package/test/integration/generated/models/propertyOptional/src/index.ts +3 -3
  286. package/test/integration/generated/models/propertyOptional/src/parameters.ts +7 -6
  287. package/test/integration/generated/models/propertyOptional/src/responses.ts +4 -4
  288. package/test/integration/generated/models/propertyOptional/src/{modelsPropertyOptional.ts → typePropertyOptional.ts} +4 -4
  289. package/test/integration/generated/models/propertyOptional/tspconfig.yaml +5 -2
  290. package/test/integration/generated/models/propertyTypes/README.md +3 -3
  291. package/test/integration/generated/models/propertyTypes/package.json +2 -2
  292. package/test/integration/generated/models/propertyTypes/src/clientDefinitions.ts +55 -47
  293. package/test/integration/generated/models/propertyTypes/src/index.ts +3 -3
  294. package/test/integration/generated/models/propertyTypes/src/parameters.ts +8 -6
  295. package/test/integration/generated/models/propertyTypes/src/responses.ts +4 -4
  296. package/test/integration/generated/models/propertyTypes/src/{modelsPropertyTypes.ts → typePropertyValueTypes.ts} +4 -4
  297. package/test/integration/generated/models/propertyTypes/tspconfig.yaml +5 -2
  298. package/test/integration/generated/models/usage/README.md +3 -3
  299. package/test/integration/generated/models/usage/package.json +2 -2
  300. package/test/integration/generated/models/usage/src/clientDefinitions.ts +7 -7
  301. package/test/integration/generated/models/usage/src/index.ts +3 -3
  302. package/test/integration/generated/models/usage/src/{modelsUsage.ts → typeModelUsage.ts} +4 -4
  303. package/test/integration/generated/models/usage/tspconfig.yaml +5 -2
  304. package/test/integration/generated/models/visibility/README.md +3 -3
  305. package/test/integration/generated/models/visibility/package.json +2 -2
  306. package/test/integration/generated/models/visibility/src/clientDefinitions.ts +3 -3
  307. package/test/integration/generated/models/visibility/src/index.ts +3 -3
  308. package/test/integration/generated/models/visibility/src/{modelsVisibilityAutomatic.ts → typeModelVisibility.ts} +4 -4
  309. package/test/integration/generated/models/visibility/tspconfig.yaml +5 -2
  310. package/test/integration/generated/parameters/collection-format/src/clientDefinitions.ts +63 -0
  311. package/test/integration/generated/parameters/collection-format/src/collectionFormatClient.ts +31 -0
  312. package/test/integration/generated/parameters/collection-format/src/index.ts +12 -0
  313. package/test/integration/generated/parameters/collection-format/src/parameters.ts +71 -0
  314. package/test/integration/generated/parameters/collection-format/src/responses.ts +34 -0
  315. package/test/integration/generated/parameters/collection-format/src/serializeHelper.ts +28 -0
  316. package/test/integration/generated/parameters/collection-format/tspconfig.yaml +14 -0
  317. package/test/integration/generated/parameters/spread/src/clientDefinitions.ts +61 -0
  318. package/test/integration/generated/{lro/lroBasic → parameters/spread}/src/index.ts +4 -4
  319. package/test/integration/generated/parameters/spread/src/models.ts +7 -0
  320. package/test/integration/generated/parameters/spread/src/parameters.ts +61 -0
  321. package/test/integration/generated/parameters/spread/src/parametersSpread.ts +31 -0
  322. package/test/integration/generated/parameters/spread/src/responses.ts +25 -0
  323. package/test/integration/generated/parameters/spread/tspconfig.yaml +12 -0
  324. package/test/integration/generated/projection/src/clientDefinitions.ts +71 -0
  325. package/test/integration/generated/projection/src/index.ts +12 -0
  326. package/test/integration/generated/projection/src/models.ts +22 -0
  327. package/test/integration/generated/projection/src/parameters.ts +48 -0
  328. package/test/integration/generated/projection/src/projectionClient.ts +31 -0
  329. package/test/integration/generated/projection/src/responses.ts +34 -0
  330. package/test/integration/generated/projection/tspconfig.yaml +14 -0
  331. package/test/integration/generated/resiliency/srvDriven1/README.md +4 -4
  332. package/test/integration/generated/resiliency/srvDriven1/package.json +2 -2
  333. package/test/integration/generated/resiliency/srvDriven1/src/clientDefinitions.ts +25 -49
  334. package/test/integration/generated/resiliency/srvDriven1/src/index.ts +3 -5
  335. package/test/integration/generated/resiliency/srvDriven1/src/parameters.ts +11 -32
  336. package/test/integration/generated/resiliency/srvDriven1/src/responses.ts +9 -24
  337. package/test/integration/generated/resiliency/srvDriven1/src/serviceDrivenOldClient.ts +39 -0
  338. package/test/integration/generated/resiliency/srvDriven1/tspconfig.yaml +6 -2
  339. package/test/integration/generated/resiliency/srvDriven2/README.md +13 -4
  340. package/test/integration/generated/resiliency/srvDriven2/package.json +2 -2
  341. package/test/integration/generated/resiliency/srvDriven2/src/clientDefinitions.ts +32 -68
  342. package/test/integration/generated/resiliency/srvDriven2/src/index.ts +3 -5
  343. package/test/integration/generated/resiliency/srvDriven2/src/parameters.ts +19 -42
  344. package/test/integration/generated/resiliency/srvDriven2/src/responses.ts +10 -31
  345. package/test/integration/generated/resiliency/srvDriven2/src/serviceDrivenNewClient.ts +39 -0
  346. package/test/integration/generated/resiliency/srvDriven2/tspconfig.yaml +6 -2
  347. package/test/integration/generated/server/path/multiple/src/clientDefinitions.ts +35 -0
  348. package/test/integration/generated/server/path/multiple/src/index.ts +11 -0
  349. package/test/integration/generated/server/path/multiple/src/multipleParamInServerPathClient.ts +39 -0
  350. package/test/integration/generated/server/path/multiple/src/parameters.ts +7 -0
  351. package/test/integration/generated/server/path/multiple/src/responses.ts +14 -0
  352. package/test/integration/generated/server/path/multiple/tspconfig.yaml +14 -0
  353. package/test/integration/generated/server/path/single/src/clientDefinitions.ts +19 -0
  354. package/test/integration/generated/server/path/single/src/index.ts +11 -0
  355. package/test/integration/generated/server/path/single/src/parameters.ts +6 -0
  356. package/test/integration/generated/server/path/single/src/responses.ts +9 -0
  357. package/test/integration/generated/server/path/single/src/singleParamInServerPathClient.ts +34 -0
  358. package/test/integration/generated/server/path/single/tspconfig.yaml +14 -0
  359. package/test/integration/generated/specialWords/tspconfig.yaml +5 -2
  360. package/test/integration/generated/unions/src/clientDefinitions.ts +8 -8
  361. package/test/integration/generated/unions/tspconfig.yaml +5 -2
  362. package/test/integration/internal.spec.ts +43 -0
  363. package/test/integration/lroCore.spec.ts +89 -0
  364. package/test/integration/modelInheritance.spec.ts +13 -13
  365. package/test/integration/modelPropertyNullable.spec.ts +115 -0
  366. package/test/integration/modelPropertyOptional.spec.ts +32 -32
  367. package/test/integration/modelPropertyType.spec.ts +6 -6
  368. package/test/integration/modelUsage.spec.ts +7 -7
  369. package/test/integration/projection.spec.ts +102 -0
  370. package/test/integration/resiliencyDpgCustomization.spec.ts +69 -35
  371. package/test/integration/server.spec.ts +59 -0
  372. package/test/integration/spreadParameters.spec.ts +82 -0
  373. package/test/integration/unions.spec.ts +4 -4
  374. package/test/unit/apiVersion.spec.ts +388 -0
  375. package/test/unit/clientFactoryGenerator.spec.ts +0 -131
  376. package/test/unit/modelsGenerator.spec.ts +2 -2
  377. package/test/unit/parametersGenerator.spec.ts +1 -1
  378. package/test/unit/responsesGenerator.spec.ts +1 -1
  379. package/test/unit/util/emitUtil.ts +6 -5
  380. package/test/unit/util/testUtil.ts +3 -3
  381. package/dist/src/transform/transformAnnotationDetails.d.ts +0 -6
  382. package/dist/src/transform/transformAnnotationDetails.d.ts.map +0 -1
  383. package/dist/src/transform/transformAnnotationDetails.js.map +0 -1
  384. package/dist/src/transform/transformApiVersionParam.d.ts +0 -5
  385. package/dist/src/transform/transformApiVersionParam.d.ts.map +0 -1
  386. package/dist/src/transform/transformApiVersionParam.js +0 -76
  387. package/dist/src/transform/transformApiVersionParam.js.map +0 -1
  388. package/src/transform/transformApiVersionParam.ts +0 -104
  389. package/test/integration/generated/lro/lroBasic/src/clientDefinitions.ts +0 -37
  390. package/test/integration/generated/lro/lroBasic/src/parameters.ts +0 -8
  391. package/test/integration/generated/lro/lroBasic/src/responses.ts +0 -22
  392. package/test/integration/generated/lro/lroBasic/tspconfig.yaml +0 -11
  393. package/test/integration/generated/resiliency/devDriven/src/clientDefinitions.ts +0 -75
  394. package/test/integration/generated/resiliency/devDriven/src/models.ts +0 -8
  395. package/test/integration/generated/resiliency/devDriven/src/outputModels.ts +0 -25
  396. package/test/integration/generated/resiliency/devDriven/src/parameters.ts +0 -17
  397. package/test/integration/generated/resiliency/devDriven/src/responses.ts +0 -62
  398. package/test/integration/generated/resiliency/devDriven/tspconfig.yaml +0 -11
  399. package/test/integration/generated/resiliency/srvDriven1/src/models.ts +0 -6
  400. package/test/integration/generated/resiliency/srvDriven1/src/outputModels.ts +0 -6
  401. package/test/integration/generated/resiliency/srvDriven1/src/resiliencyServiceDriven1.ts +0 -31
  402. package/test/integration/generated/resiliency/srvDriven2/src/models.ts +0 -6
  403. package/test/integration/generated/resiliency/srvDriven2/src/outputModels.ts +0 -6
  404. package/test/integration/generated/resiliency/srvDriven2/src/resiliencyServiceDriven2.ts +0 -31
  405. package/test/integration/helloWorld.spec.ts +0 -20
  406. package/test/integration/lroBasic.spec.ts +0 -25
  407. /package/test/integration/generated/{resiliency/devDriven → azure/core}/.eslintrc.json +0 -0
  408. /package/test/integration/generated/{resiliency/devDriven → azure/core}/rollup.config.js +0 -0
  409. /package/test/integration/generated/{resiliency/devDriven → azure/core}/tsconfig.json +0 -0
  410. /package/test/integration/generated/{lro/lroBasic → azure/core-traits}/.eslintrc.json +0 -0
  411. /package/test/integration/generated/{lro/lroBasic → azure/core-traits}/rollup.config.js +0 -0
  412. /package/test/integration/generated/{lro/lroBasic → azure/core-traits}/tsconfig.json +0 -0
@@ -2,69 +2,45 @@
2
2
  // Licensed under the MIT license.
3
3
 
4
4
  import {
5
- HeadNoParamsParameters,
6
- GetRequiredParameters,
7
- PutRequiredOptionalParameters,
8
- PostParametersParameters,
9
- GetOptionalParameters,
5
+ FromNoneParameters,
6
+ FromOneRequiredParameters,
7
+ FromOneOptionalParameters,
10
8
  } from "./parameters";
11
9
  import {
12
- HeadNoParams200Response,
13
- GetRequired200Response,
14
- PutRequiredOptional200Response,
15
- PostParameters200Response,
16
- GetOptional200Response,
10
+ FromNone204Response,
11
+ FromOneRequired204Response,
12
+ FromOneOptional204Response,
17
13
  } from "./responses";
18
14
  import { Client, StreamableMethod } from "@azure-rest/core-client";
19
15
 
20
- export interface HeadNoParams {
21
- /**
22
- * Head request, no params.
23
- * Initially has no query parameters. After evolution, a new optional query parameter is added
24
- */
25
- head(
26
- options?: HeadNoParamsParameters
27
- ): StreamableMethod<HeadNoParams200Response>;
28
- /**
29
- * Get true Boolean value on path.
30
- * Initially only has one required Query Parameter. After evolution, a new optional query parameter is added
31
- */
32
- get(options: GetRequiredParameters): StreamableMethod<GetRequired200Response>;
33
- /** Initially has one required query parameter and one optional query parameter. After evolution, a new optional query parameter is added */
34
- put(
35
- options: PutRequiredOptionalParameters
36
- ): StreamableMethod<PutRequiredOptional200Response>;
16
+ export interface FromNone {
17
+ /** Test that currently accepts no parameters, will be updated in next spec to accept a new optional parameter as well */
18
+ head(options?: FromNoneParameters): StreamableMethod<FromNone204Response>;
37
19
  }
38
20
 
39
- export interface PostParameters {
40
- /** POST a JSON */
41
- post(
42
- options: PostParametersParameters
43
- ): StreamableMethod<PostParameters200Response>;
21
+ export interface FromOneRequired {
22
+ /** Test that currently accepts one required parameter, will be updated in next spec to accept a new optional parameter as well */
23
+ get(
24
+ options: FromOneRequiredParameters
25
+ ): StreamableMethod<FromOneRequired204Response>;
44
26
  }
45
27
 
46
- export interface GetOptional {
47
- /**
48
- * Get true Boolean value on path.
49
- * Initially has one optional query parameter. After evolution, a new optional query parameter is added
50
- */
28
+ export interface FromOneOptional {
29
+ /** Test that currently accepts one optional parameter, will be updated in next spec to accept a new optional parameter as well */
51
30
  get(
52
- options?: GetOptionalParameters
53
- ): StreamableMethod<GetOptional200Response>;
31
+ options?: FromOneOptionalParameters
32
+ ): StreamableMethod<FromOneOptional204Response>;
54
33
  }
55
34
 
56
35
  export interface Routes {
57
- /** Resource for '/resiliency/servicedriven1/parameters' has methods for the following verbs: head, get, put */
58
- (path: "/resiliency/servicedriven1/parameters"): HeadNoParams;
59
- /** Resource for '/resiliency/servicedriven1/parameters/\{contentTypePath\}' has methods for the following verbs: post */
60
- (
61
- path: "/resiliency/servicedriven1/parameters/{contentTypePath}",
62
- contentTypePath: "json"
63
- ): PostParameters;
64
- /** Resource for '/resiliency/servicedriven1/moreParameters' has methods for the following verbs: get */
65
- (path: "/resiliency/servicedriven1/moreParameters"): GetOptional;
36
+ /** Resource for '/add-optional-param/from-none' has methods for the following verbs: head */
37
+ (path: "/add-optional-param/from-none"): FromNone;
38
+ /** Resource for '/add-optional-param/from-one-required' has methods for the following verbs: get */
39
+ (path: "/add-optional-param/from-one-required"): FromOneRequired;
40
+ /** Resource for '/add-optional-param/from-one-optional' has methods for the following verbs: get */
41
+ (path: "/add-optional-param/from-one-optional"): FromOneOptional;
66
42
  }
67
43
 
68
- export type ResiliencyServiceDriven1Client = Client & {
44
+ export type ServiceDrivenOldClient = Client & {
69
45
  path: Routes;
70
46
  };
@@ -1,13 +1,11 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
3
 
4
- import ResiliencyServiceDriven1 from "./resiliencyServiceDriven1";
4
+ import ServiceDrivenOldClient from "./serviceDrivenOldClient";
5
5
 
6
- export * from "./resiliencyServiceDriven1";
6
+ export * from "./serviceDrivenOldClient";
7
7
  export * from "./parameters";
8
8
  export * from "./responses";
9
9
  export * from "./clientDefinitions";
10
- export * from "./models";
11
- export * from "./outputModels";
12
10
 
13
- export default ResiliencyServiceDriven1;
11
+ export default ServiceDrivenOldClient;
@@ -2,50 +2,29 @@
2
2
  // Licensed under the MIT license.
3
3
 
4
4
  import { RequestParameters } from "@azure-rest/core-client";
5
- import { PostInput } from "./models";
6
5
 
7
- export type HeadNoParamsParameters = RequestParameters;
6
+ export type FromNoneParameters = RequestParameters;
8
7
 
9
- export interface GetRequiredQueryParamProperties {
8
+ export interface FromOneRequiredQueryParamProperties {
10
9
  /** I am a required parameter */
11
10
  parameter: string;
12
11
  }
13
12
 
14
- export interface GetRequiredQueryParam {
15
- queryParameters: GetRequiredQueryParamProperties;
13
+ export interface FromOneRequiredQueryParam {
14
+ queryParameters: FromOneRequiredQueryParamProperties;
16
15
  }
17
16
 
18
- export type GetRequiredParameters = GetRequiredQueryParam & RequestParameters;
19
-
20
- export interface PutRequiredOptionalQueryParamProperties {
21
- /** I am a required parameter */
22
- requiredParam: string;
23
- /** I am an optional parameter */
24
- optionalParam?: string;
25
- }
26
-
27
- export interface PutRequiredOptionalQueryParam {
28
- queryParameters: PutRequiredOptionalQueryParamProperties;
29
- }
30
-
31
- export type PutRequiredOptionalParameters = PutRequiredOptionalQueryParam &
32
- RequestParameters;
33
-
34
- export interface PostParametersBodyParam {
35
- /** I am a body parameter. My only valid JSON entry is { url: "http://example.org/myimage.jpeg" } */
36
- body: PostInput;
37
- }
38
-
39
- export type PostParametersParameters = PostParametersBodyParam &
17
+ export type FromOneRequiredParameters = FromOneRequiredQueryParam &
40
18
  RequestParameters;
41
19
 
42
- export interface GetOptionalQueryParamProperties {
20
+ export interface FromOneOptionalQueryParamProperties {
43
21
  /** I am an optional parameter */
44
- optionalParam?: string;
22
+ parameter?: string;
45
23
  }
46
24
 
47
- export interface GetOptionalQueryParam {
48
- queryParameters?: GetOptionalQueryParamProperties;
25
+ export interface FromOneOptionalQueryParam {
26
+ queryParameters?: FromOneOptionalQueryParamProperties;
49
27
  }
50
28
 
51
- export type GetOptionalParameters = GetOptionalQueryParam & RequestParameters;
29
+ export type FromOneOptionalParameters = FromOneOptionalQueryParam &
30
+ RequestParameters;
@@ -2,33 +2,18 @@
2
2
  // Licensed under the MIT license.
3
3
 
4
4
  import { HttpResponse } from "@azure-rest/core-client";
5
- import { MessageOutput } from "./outputModels";
6
5
 
7
- /** The request has succeeded. */
8
- export interface HeadNoParams200Response extends HttpResponse {
9
- status: "200";
6
+ /** There is no content to send for this request, but the headers may be useful. */
7
+ export interface FromNone204Response extends HttpResponse {
8
+ status: "204";
10
9
  }
11
10
 
12
- /** Answer from service */
13
- export interface GetRequired200Response extends HttpResponse {
14
- status: "200";
15
- body: MessageOutput;
11
+ /** There is no content to send for this request, but the headers may be useful. */
12
+ export interface FromOneRequired204Response extends HttpResponse {
13
+ status: "204";
16
14
  }
17
15
 
18
- /** Answer from service */
19
- export interface PutRequiredOptional200Response extends HttpResponse {
20
- status: "200";
21
- body: MessageOutput;
22
- }
23
-
24
- /** Answer from service */
25
- export interface PostParameters200Response extends HttpResponse {
26
- status: "200";
27
- body: MessageOutput;
28
- }
29
-
30
- /** Answer from service */
31
- export interface GetOptional200Response extends HttpResponse {
32
- status: "200";
33
- body: MessageOutput;
16
+ /** There is no content to send for this request, but the headers may be useful. */
17
+ export interface FromOneOptional204Response extends HttpResponse {
18
+ status: "204";
34
19
  }
@@ -0,0 +1,39 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+
4
+ import { getClient, ClientOptions } from "@azure-rest/core-client";
5
+ import { ServiceDrivenOldClient } from "./clientDefinitions";
6
+
7
+ export interface ServiceDrivenOldClientOptions extends ClientOptions {
8
+ apiVersion?: string;
9
+ }
10
+
11
+ /**
12
+ * Initialize a new instance of `ServiceDrivenOldClient`
13
+ * @param serviceDeploymentVersion type: string, Pass in either 'v1' or 'v2'. This represents a version of the service deployment in history. 'v1' is for the deployment when the service had only one api version. 'v2' is for the deployment when the service had api-versions 'v1' and 'v2'.
14
+ * @param options type: ServiceDrivenOldClientOptions, the parameter for all optional parameters
15
+ */
16
+ export default function createClient(
17
+ serviceDeploymentVersion: string,
18
+ options: ServiceDrivenOldClientOptions = {}
19
+ ): ServiceDrivenOldClient {
20
+ const apiVersion = options.apiVersion ?? "v1";
21
+ const baseUrl =
22
+ options.baseUrl ??
23
+ `http://localhost:3000/resiliency/service-driven/client:v1/service:${serviceDeploymentVersion}/api-version:${apiVersion}`;
24
+ const userAgentInfo = `azsdk-js-srv-driven-1-rest/1.0.0`;
25
+ const userAgentPrefix =
26
+ options.userAgentOptions && options.userAgentOptions.userAgentPrefix
27
+ ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}`
28
+ : `${userAgentInfo}`;
29
+ options = {
30
+ ...options,
31
+ userAgentOptions: {
32
+ userAgentPrefix,
33
+ },
34
+ };
35
+
36
+ const client = getClient(baseUrl, options) as ServiceDrivenOldClient;
37
+
38
+ return client;
39
+ }
@@ -1,10 +1,14 @@
1
- emitters:
2
- "../../../../../../../../../../../packages/typespec-ts/dist/src/index.js":
1
+ emit:
2
+ - "@azure-tools/typespec-ts"
3
+ options:
4
+ "@azure-tools/typespec-ts":
5
+ "emitter-output-dir": "{project-root}"
3
6
  generateMetadata: true
4
7
  generateTest: false
5
8
  addCredentials: false
6
9
  azureSdkForJs: false
7
10
  isCadlTest: true
11
+ title: ServiceDrivenOldClient
8
12
  packageDetails:
9
13
  name: "@msinternal/srv-driven-1"
10
14
  description: "Srv Driven 1 Test Service"
@@ -1,6 +1,15 @@
1
- # ResiliencyServiceDriven2 REST client library for JavaScript
1
+ # ServiceDrivenNew REST client library for JavaScript
2
2
 
3
- DPG Swagger, this is the initial swagger a service could do
3
+ Test that we can grow up a service spec and service deployment into a multi-versioned service with full client support.
4
+
5
+ There are three concepts that should be clarified:
6
+ 1. Client spec version: refers to the spec that the client is generated from. 'v1' is a client generated from old.tsp and 'v2' is a client generated from main.tsp.
7
+ 2. Service deployment version: refers to a deployment version of the service. 'v1' represents the initial deployment of the service with a single api version. 'v2' represents the new deployment of a service with multiple api versions
8
+ 3. Api version: The initial deployment of the service only supports api version 'v1'. The new deployment of the service supports api versions 'v1' and 'v2'.
9
+
10
+ We test the following configurations from this service spec:
11
+ - A client generated from the second service spec can call the second deployment of a service with api version v1
12
+ - A client generated from the second service spec can call the second deployment of a service with api version v2
4
13
 
5
14
  **Please rely heavily on our [REST client docs](https://github.com/Azure/azure-sdk-for-js/blob/main/documentation/rest-clients.md) to use this library**
6
15
 
@@ -20,13 +29,13 @@ Key links:
20
29
 
21
30
  ### Install the `@msinternal/srv-driven-2` package
22
31
 
23
- Install the ResiliencyServiceDriven2 REST client REST client library for JavaScript with `npm`:
32
+ Install the ServiceDrivenNew REST client REST client library for JavaScript with `npm`:
24
33
 
25
34
  ```bash
26
35
  npm install @msinternal/srv-driven-2
27
36
  ```
28
37
 
29
- ### Create and authenticate a `ResiliencyServiceDriven2Client`
38
+ ### Create and authenticate a `ServiceDrivenNewClient`
30
39
 
31
40
  To use an [Azure Active Directory (AAD) token credential](https://github.com/Azure/azure-sdk-for-js/blob/main/sdk/identity/identity/samples/AzureIdentityExamples.md#authenticating-with-a-pre-fetched-access-token),
32
41
  provide an instance of the desired credential type obtained from the
@@ -52,7 +52,7 @@
52
52
  "autoPublish": false,
53
53
  "dependencies": {
54
54
  "@azure/core-auth": "^1.3.0",
55
- "@azure-rest/core-client": "^1.1.0",
55
+ "@azure-rest/core-client": "^1.1.2",
56
56
  "@azure/core-rest-pipeline": "^1.8.0",
57
57
  "@azure/logger": "^1.0.0",
58
58
  "tslib": "^2.2.0"
@@ -67,7 +67,7 @@
67
67
  "prettier": "^2.5.1",
68
68
  "rimraf": "^3.0.0",
69
69
  "source-map-support": "^0.5.9",
70
- "typescript": "~4.8.0",
70
+ "typescript": "~5.0.0",
71
71
  "@rollup/plugin-commonjs": "^24.0.0",
72
72
  "@rollup/plugin-json": "^6.0.0",
73
73
  "@rollup/plugin-multi-entry": "^6.0.0",
@@ -2,92 +2,56 @@
2
2
  // Licensed under the MIT license.
3
3
 
4
4
  import {
5
- HeadNoParamsParameters,
6
- GetRequiredParameters,
7
- PutRequiredOptionalParameters,
8
- DeleteParametersParameters,
9
- PostParametersParameters,
10
- GetOptionalParameters,
11
- GetNewOperationParameters,
5
+ AddOperationParameters,
6
+ FromNoneParameters,
7
+ FromOneRequiredParameters,
8
+ FromOneOptionalParameters,
12
9
  } from "./parameters";
13
10
  import {
14
- HeadNoParams200Response,
15
- GetRequired200Response,
16
- PutRequiredOptional200Response,
17
- DeleteParameters204Response,
18
- PostParameters200Response,
19
- GetOptional200Response,
20
- GetNewOperation200Response,
11
+ AddOperation204Response,
12
+ FromNone204Response,
13
+ FromOneRequired204Response,
14
+ FromOneOptional204Response,
21
15
  } from "./responses";
22
16
  import { Client, StreamableMethod } from "@azure-rest/core-client";
23
17
 
24
- export interface HeadNoParams {
25
- /**
26
- * Head request, no params.
27
- * Initially has no query parameters. After evolution, a new optional query parameter is added
28
- */
29
- head(
30
- options?: HeadNoParamsParameters
31
- ): StreamableMethod<HeadNoParams200Response>;
32
- /**
33
- * Get true Boolean value on path.
34
- * Initially only has one required Query Parameter. After evolution, a new optional query parameter is added
35
- */
36
- get(options: GetRequiredParameters): StreamableMethod<GetRequired200Response>;
37
- /** Initially has one required query parameter and one optional query parameter. After evolution, a new optional query parameter is added */
38
- put(
39
- options: PutRequiredOptionalParameters
40
- ): StreamableMethod<PutRequiredOptional200Response>;
41
- /**
42
- * Delete something.
43
- * Initially the path exists but there is no delete method. After evolution this is a new method in a known path
44
- */
18
+ export interface AddOperation {
19
+ /** Added operation */
45
20
  delete(
46
- options?: DeleteParametersParameters
47
- ): StreamableMethod<DeleteParameters204Response>;
21
+ options?: AddOperationParameters
22
+ ): StreamableMethod<AddOperation204Response>;
48
23
  }
49
24
 
50
- export interface PostParameters {
51
- /** POST a JSON or a JPEG */
52
- post(
53
- options: PostParametersParameters
54
- ): StreamableMethod<PostParameters200Response>;
25
+ export interface FromNone {
26
+ /** Test that grew up from accepting no parameters to an optional input parameter */
27
+ head(options?: FromNoneParameters): StreamableMethod<FromNone204Response>;
55
28
  }
56
29
 
57
- export interface GetOptional {
58
- /**
59
- * Get true Boolean value on path.
60
- * Initially has one optional query parameter. After evolution, a new optional query parameter is added
61
- */
30
+ export interface FromOneRequired {
31
+ /** Operation that grew up from accepting one required parameter to accepting a required parameter and an optional parameter. */
62
32
  get(
63
- options?: GetOptionalParameters
64
- ): StreamableMethod<GetOptional200Response>;
33
+ options: FromOneRequiredParameters
34
+ ): StreamableMethod<FromOneRequired204Response>;
65
35
  }
66
36
 
67
- export interface GetNewOperation {
68
- /**
69
- * I'm a new operation.
70
- * Initially neither path or method exist for this operation. After evolution, this is a new method in a new path
71
- */
37
+ export interface FromOneOptional {
38
+ /** Tests that we can grow up an operation from accepting one optional parameter to accepting two optional parameters. */
72
39
  get(
73
- options?: GetNewOperationParameters
74
- ): StreamableMethod<GetNewOperation200Response>;
40
+ options?: FromOneOptionalParameters
41
+ ): StreamableMethod<FromOneOptional204Response>;
75
42
  }
76
43
 
77
44
  export interface Routes {
78
- /** Resource for '/serviceDriven2/serviceDriven/parameters' has methods for the following verbs: head, get, put, delete */
79
- (path: "/serviceDriven2/serviceDriven/parameters"): HeadNoParams;
80
- /** Resource for '/serviceDriven2/serviceDriven/parameters/\{contentTypePath\}' has methods for the following verbs: post */
81
- (
82
- path: "/serviceDriven2/serviceDriven/parameters/{contentTypePath}",
83
- contentTypePath: "json" | "jpeg"
84
- ): PostParameters;
85
- /** Resource for '/serviceDriven2/serviceDriven/moreParameters' has methods for the following verbs: get */
86
- (path: "/serviceDriven2/serviceDriven/moreParameters"): GetOptional;
87
- /** Resource for '/serviceDriven2/serviceDriven/newPath' has methods for the following verbs: get */
88
- (path: "/serviceDriven2/serviceDriven/newPath"): GetNewOperation;
45
+ /** Resource for '/add-operation' has methods for the following verbs: delete */
46
+ (path: "/add-operation"): AddOperation;
47
+ /** Resource for '/add-optional-param/from-none' has methods for the following verbs: head */
48
+ (path: "/add-optional-param/from-none"): FromNone;
49
+ /** Resource for '/add-optional-param/from-one-required' has methods for the following verbs: get */
50
+ (path: "/add-optional-param/from-one-required"): FromOneRequired;
51
+ /** Resource for '/add-optional-param/from-one-optional' has methods for the following verbs: get */
52
+ (path: "/add-optional-param/from-one-optional"): FromOneOptional;
89
53
  }
90
54
 
91
- export type ResiliencyServiceDriven2Client = Client & {
55
+ export type ServiceDrivenNewClient = Client & {
92
56
  path: Routes;
93
57
  };
@@ -1,13 +1,11 @@
1
1
  // Copyright (c) Microsoft Corporation.
2
2
  // Licensed under the MIT license.
3
3
 
4
- import ResiliencyServiceDriven2 from "./resiliencyServiceDriven2";
4
+ import ServiceDrivenNewClient from "./serviceDrivenNewClient";
5
5
 
6
- export * from "./resiliencyServiceDriven2";
6
+ export * from "./serviceDrivenNewClient";
7
7
  export * from "./parameters";
8
8
  export * from "./responses";
9
9
  export * from "./clientDefinitions";
10
- export * from "./models";
11
- export * from "./outputModels";
12
10
 
13
- export default ResiliencyServiceDriven2;
11
+ export default ServiceDrivenNewClient;
@@ -2,67 +2,44 @@
2
2
  // Licensed under the MIT license.
3
3
 
4
4
  import { RequestParameters } from "@azure-rest/core-client";
5
- import { PostInput } from "./models";
6
5
 
7
- export interface HeadNoParamsQueryParamProperties {
8
- /** I'm a new input optional parameter */
9
- new_parameter?: string;
10
- }
11
-
12
- export interface HeadNoParamsQueryParam {
13
- queryParameters?: HeadNoParamsQueryParamProperties;
14
- }
6
+ export type AddOperationParameters = RequestParameters;
15
7
 
16
- export type HeadNoParamsParameters = HeadNoParamsQueryParam & RequestParameters;
17
-
18
- export interface GetRequiredQueryParamProperties {
19
- /** I am a required parameter */
20
- parameter: string;
8
+ export interface FromNoneQueryParamProperties {
21
9
  /** I'm a new input optional parameter */
22
- new_parameter?: string;
10
+ "new-parameter"?: string;
23
11
  }
24
12
 
25
- export interface GetRequiredQueryParam {
26
- queryParameters: GetRequiredQueryParamProperties;
13
+ export interface FromNoneQueryParam {
14
+ queryParameters?: FromNoneQueryParamProperties;
27
15
  }
28
16
 
29
- export type GetRequiredParameters = GetRequiredQueryParam & RequestParameters;
17
+ export type FromNoneParameters = FromNoneQueryParam & RequestParameters;
30
18
 
31
- export interface PutRequiredOptionalQueryParamProperties {
19
+ export interface FromOneRequiredQueryParamProperties {
32
20
  /** I am a required parameter */
33
- requiredParam: string;
34
- /** I am an optional parameter */
35
- optionalParam?: string;
21
+ parameter: string;
36
22
  /** I'm a new input optional parameter */
37
- new_parameter?: string;
23
+ "new-parameter"?: string;
38
24
  }
39
25
 
40
- export interface PutRequiredOptionalQueryParam {
41
- queryParameters: PutRequiredOptionalQueryParamProperties;
26
+ export interface FromOneRequiredQueryParam {
27
+ queryParameters: FromOneRequiredQueryParamProperties;
42
28
  }
43
29
 
44
- export type PutRequiredOptionalParameters = PutRequiredOptionalQueryParam &
30
+ export type FromOneRequiredParameters = FromOneRequiredQueryParam &
45
31
  RequestParameters;
46
32
 
47
- export interface PostParametersBodyParam {
48
- /** I am a body parameter. My only valid JSON entry is { url: "http://example.org/myimage.jpeg" } */
49
- body: PostInput;
50
- }
51
-
52
- export type PostParametersParameters = PostParametersBodyParam &
53
- RequestParameters;
54
- export type DeleteParametersParameters = RequestParameters;
55
-
56
- export interface GetOptionalQueryParamProperties {
33
+ export interface FromOneOptionalQueryParamProperties {
57
34
  /** I am an optional parameter */
58
- optionalParam?: string;
35
+ parameter?: string;
59
36
  /** I'm a new input optional parameter */
60
- new_parameter?: string;
37
+ "new-parameter"?: string;
61
38
  }
62
39
 
63
- export interface GetOptionalQueryParam {
64
- queryParameters?: GetOptionalQueryParamProperties;
40
+ export interface FromOneOptionalQueryParam {
41
+ queryParameters?: FromOneOptionalQueryParamProperties;
65
42
  }
66
43
 
67
- export type GetOptionalParameters = GetOptionalQueryParam & RequestParameters;
68
- export type GetNewOperationParameters = RequestParameters;
44
+ export type FromOneOptionalParameters = FromOneOptionalQueryParam &
45
+ RequestParameters;
@@ -2,44 +2,23 @@
2
2
  // Licensed under the MIT license.
3
3
 
4
4
  import { HttpResponse } from "@azure-rest/core-client";
5
- import { MessageOutput } from "./outputModels";
6
5
 
7
- /** The request has succeeded. */
8
- export interface HeadNoParams200Response extends HttpResponse {
9
- status: "200";
10
- }
11
-
12
- /** Answer from service */
13
- export interface GetRequired200Response extends HttpResponse {
14
- status: "200";
15
- body: MessageOutput;
16
- }
17
-
18
- /** Answer from service */
19
- export interface PutRequiredOptional200Response extends HttpResponse {
20
- status: "200";
21
- body: MessageOutput;
22
- }
23
-
24
- /** Answer from service */
25
- export interface PostParameters200Response extends HttpResponse {
26
- status: "200";
27
- body: MessageOutput;
6
+ /** There is no content to send for this request, but the headers may be useful. */
7
+ export interface AddOperation204Response extends HttpResponse {
8
+ status: "204";
28
9
  }
29
10
 
30
11
  /** There is no content to send for this request, but the headers may be useful. */
31
- export interface DeleteParameters204Response extends HttpResponse {
12
+ export interface FromNone204Response extends HttpResponse {
32
13
  status: "204";
33
14
  }
34
15
 
35
- /** Answer from service */
36
- export interface GetOptional200Response extends HttpResponse {
37
- status: "200";
38
- body: MessageOutput;
16
+ /** There is no content to send for this request, but the headers may be useful. */
17
+ export interface FromOneRequired204Response extends HttpResponse {
18
+ status: "204";
39
19
  }
40
20
 
41
- /** Answer from service */
42
- export interface GetNewOperation200Response extends HttpResponse {
43
- status: "200";
44
- body: MessageOutput;
21
+ /** There is no content to send for this request, but the headers may be useful. */
22
+ export interface FromOneOptional204Response extends HttpResponse {
23
+ status: "204";
45
24
  }
@@ -0,0 +1,39 @@
1
+ // Copyright (c) Microsoft Corporation.
2
+ // Licensed under the MIT license.
3
+
4
+ import { getClient, ClientOptions } from "@azure-rest/core-client";
5
+ import { ServiceDrivenNewClient } from "./clientDefinitions";
6
+
7
+ export interface ServiceDrivenNewClientOptions extends ClientOptions {
8
+ apiVersion?: string;
9
+ }
10
+
11
+ /**
12
+ * Initialize a new instance of `ServiceDrivenNewClient`
13
+ * @param serviceDeploymentVersion type: string, Pass in either 'v1' or 'v2'. This represents a version of the service deployment in history. 'v1' is for the deployment when the service had only one api version. 'v2' is for the deployment when the service had api-versions 'v1' and 'v2'.
14
+ * @param options type: ServiceDrivenNewClientOptions, the parameter for all optional parameters
15
+ */
16
+ export default function createClient(
17
+ serviceDeploymentVersion: string,
18
+ options: ServiceDrivenNewClientOptions = {}
19
+ ): ServiceDrivenNewClient {
20
+ const apiVersion = options.apiVersion ?? "v2";
21
+ const baseUrl =
22
+ options.baseUrl ??
23
+ `http://localhost:3000/resiliency/service-driven/client:v2/service:${serviceDeploymentVersion}/api-version:${apiVersion}`;
24
+ const userAgentInfo = `azsdk-js-srv-driven-2-rest/1.0.0`;
25
+ const userAgentPrefix =
26
+ options.userAgentOptions && options.userAgentOptions.userAgentPrefix
27
+ ? `${options.userAgentOptions.userAgentPrefix} ${userAgentInfo}`
28
+ : `${userAgentInfo}`;
29
+ options = {
30
+ ...options,
31
+ userAgentOptions: {
32
+ userAgentPrefix,
33
+ },
34
+ };
35
+
36
+ const client = getClient(baseUrl, options) as ServiceDrivenNewClient;
37
+
38
+ return client;
39
+ }