Skip to content

Commit d5c5977

Browse files
MaryGaov-jiaodi
andauthored
Fully support url template in Modular (#2884)
* Update the uri template from http operations * Refactor the uri template parameters * regen smoke * Update the UTs for testing * Refactor the code a little * Format the codes * regen smoke * fix unit test * Update to the main to resolve conflicts * Remove the folder first * Update the build issue * Update the test cases * Add test cases for url template * Update the UTs for url templates * Update the lib * Update the helper to pass all test cases * Remove useless codes * Update the template with renaming * Regen smoke test for batch services * Support allowReserved option * Fix the operation group issues * Rename uri to url * Add skipUrlEncoding so customers could set method-level skip encoding * Remove useless codes * Update the test cases * Update the unit test cases * Refresh the unit test for modular and rlc * add routes modular case * Fix the option parameter renaming issue * fix ci * Update the test dependency for ut * Support the tsv, ssv and pipe format * fix ci * Update the test cases * Update the test cases * Refine the helpers * fix ci * update * Fix the issues * revert change * Fix the issue * Update the test cases and refine the code a little * regen smoke * Update the test code to the latest * Update to the latest main * Merge to the latest main * Update the UTs in modular * Refresh the smoke testing * Update the test cases * Refresh the standard routes cases * Revert debug information * regen smoke test * fix ci * update test cases * Refresh the smoke test and add more UTs * Fix the smoke issues * Resolve comments * Resolve comments * Resolve comments * update http-specs version * regen code * fix ci * update test case * Format the code with standard 2 spaces indentation * Rename the internal helper function * Refresh smoke testing * Update the UTs --------- Co-authored-by: Jiao Di (MSFT) <80496810+v-jiaodi@users.noreply.github.com>
1 parent be73c48 commit d5c5977

81 files changed

Lines changed: 9065 additions & 1616 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.vscode/launch.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,4 +173,4 @@
173173
"outFiles": ["${workspaceFolder}/packages/*/dist/**/*.js"]
174174
}
175175
]
176-
}
176+
}

packages/typespec-test/test/NetworkAnalytics.Management/generated/typespec-ts/sdk/test/arm-test/src/api/dataProducts/index.ts

Lines changed: 141 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@ import {
4444
buildPagedAsyncIterator,
4545
} from "../../static-helpers/pagingHelpers.js";
4646
import { getLongRunningPoller } from "../../static-helpers/pollingHelpers.js";
47+
import { expandUrlTemplate } from "../../static-helpers/urlTemplate.js";
4748
import {
4849
StreamableMethod,
4950
PathUncheckedResponse,
@@ -58,18 +59,24 @@ export function _listBySubscriptionSend(
5859
requestOptions: {},
5960
},
6061
): StreamableMethod {
62+
const path = expandUrlTemplate(
63+
"/subscriptions/{subscriptionId}/providers/Microsoft.NetworkAnalytics/dataProducts{?api-version}",
64+
{
65+
subscriptionId: context.subscriptionId,
66+
"api-version": context.apiVersion,
67+
},
68+
{
69+
allowReserved: options?.requestOptions?.skipUrlEncoding,
70+
},
71+
);
6172
return context
62-
.path(
63-
"/subscriptions/{subscriptionId}/providers/Microsoft.NetworkAnalytics/dataProducts",
64-
context.subscriptionId,
65-
)
73+
.path(path)
6674
.get({
6775
...operationOptionsToRequestParameters(options),
6876
headers: {
6977
accept: "application/json",
7078
...options.requestOptions?.headers,
7179
},
72-
queryParameters: { "api-version": context.apiVersion },
7380
});
7481
}
7582

@@ -109,19 +116,25 @@ export function _listByResourceGroupSend(
109116
requestOptions: {},
110117
},
111118
): StreamableMethod {
119+
const path = expandUrlTemplate(
120+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts{?api-version}",
121+
{
122+
subscriptionId: context.subscriptionId,
123+
resourceGroupName: resourceGroupName,
124+
"api-version": context.apiVersion,
125+
},
126+
{
127+
allowReserved: options?.requestOptions?.skipUrlEncoding,
128+
},
129+
);
112130
return context
113-
.path(
114-
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts",
115-
context.subscriptionId,
116-
resourceGroupName,
117-
)
131+
.path(path)
118132
.get({
119133
...operationOptionsToRequestParameters(options),
120134
headers: {
121135
accept: "application/json",
122136
...options.requestOptions?.headers,
123137
},
124-
queryParameters: { "api-version": context.apiVersion },
125138
});
126139
}
127140

@@ -164,21 +177,27 @@ export function _listRolesAssignmentsSend(
164177
requestOptions: {},
165178
},
166179
): StreamableMethod {
180+
const path = expandUrlTemplate(
181+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}/listRolesAssignments{?api-version}",
182+
{
183+
subscriptionId: context.subscriptionId,
184+
resourceGroupName: resourceGroupName,
185+
dataProductName: dataProductName,
186+
"api-version": context.apiVersion,
187+
},
188+
{
189+
allowReserved: options?.requestOptions?.skipUrlEncoding,
190+
},
191+
);
167192
return context
168-
.path(
169-
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}/listRolesAssignments",
170-
context.subscriptionId,
171-
resourceGroupName,
172-
dataProductName,
173-
)
193+
.path(path)
174194
.post({
175195
...operationOptionsToRequestParameters(options),
176196
contentType: "application/json",
177197
headers: {
178198
accept: "application/json",
179199
...options.requestOptions?.headers,
180200
},
181-
queryParameters: { "api-version": context.apiVersion },
182201
body: _listRolesAssignmentsRequestSerializer(body),
183202
});
184203
}
@@ -223,21 +242,27 @@ export function _removeUserRoleSend(
223242
body: RoleAssignmentDetail,
224243
options: DataProductsRemoveUserRoleOptionalParams = { requestOptions: {} },
225244
): StreamableMethod {
245+
const path = expandUrlTemplate(
246+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}/removeUserRole{?api-version}",
247+
{
248+
subscriptionId: context.subscriptionId,
249+
resourceGroupName: resourceGroupName,
250+
dataProductName: dataProductName,
251+
"api-version": context.apiVersion,
252+
},
253+
{
254+
allowReserved: options?.requestOptions?.skipUrlEncoding,
255+
},
256+
);
226257
return context
227-
.path(
228-
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}/removeUserRole",
229-
context.subscriptionId,
230-
resourceGroupName,
231-
dataProductName,
232-
)
258+
.path(path)
233259
.post({
234260
...operationOptionsToRequestParameters(options),
235261
contentType: "application/json",
236262
headers: {
237263
accept: "application/json",
238264
...options.requestOptions?.headers,
239265
},
240-
queryParameters: { "api-version": context.apiVersion },
241266
body: roleAssignmentDetailSerializer(body),
242267
});
243268
}
@@ -280,21 +305,27 @@ export function _addUserRoleSend(
280305
body: RoleAssignmentCommonProperties,
281306
options: DataProductsAddUserRoleOptionalParams = { requestOptions: {} },
282307
): StreamableMethod {
308+
const path = expandUrlTemplate(
309+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}/addUserRole{?api-version}",
310+
{
311+
subscriptionId: context.subscriptionId,
312+
resourceGroupName: resourceGroupName,
313+
dataProductName: dataProductName,
314+
"api-version": context.apiVersion,
315+
},
316+
{
317+
allowReserved: options?.requestOptions?.skipUrlEncoding,
318+
},
319+
);
283320
return context
284-
.path(
285-
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}/addUserRole",
286-
context.subscriptionId,
287-
resourceGroupName,
288-
dataProductName,
289-
)
321+
.path(path)
290322
.post({
291323
...operationOptionsToRequestParameters(options),
292324
contentType: "application/json",
293325
headers: {
294326
accept: "application/json",
295327
...options.requestOptions?.headers,
296328
},
297-
queryParameters: { "api-version": context.apiVersion },
298329
body: roleAssignmentCommonPropertiesSerializer(body),
299330
});
300331
}
@@ -337,21 +368,27 @@ export function _rotateKeySend(
337368
body: KeyVaultInfo,
338369
options: DataProductsRotateKeyOptionalParams = { requestOptions: {} },
339370
): StreamableMethod {
371+
const path = expandUrlTemplate(
372+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}/rotateKey{?api-version}",
373+
{
374+
subscriptionId: context.subscriptionId,
375+
resourceGroupName: resourceGroupName,
376+
dataProductName: dataProductName,
377+
"api-version": context.apiVersion,
378+
},
379+
{
380+
allowReserved: options?.requestOptions?.skipUrlEncoding,
381+
},
382+
);
340383
return context
341-
.path(
342-
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}/rotateKey",
343-
context.subscriptionId,
344-
resourceGroupName,
345-
dataProductName,
346-
)
384+
.path(path)
347385
.post({
348386
...operationOptionsToRequestParameters(options),
349387
contentType: "application/json",
350388
headers: {
351389
accept: "application/json",
352390
...options.requestOptions?.headers,
353391
},
354-
queryParameters: { "api-version": context.apiVersion },
355392
body: keyVaultInfoSerializer(body),
356393
});
357394
}
@@ -396,21 +433,27 @@ export function _generateStorageAccountSasTokenSend(
396433
requestOptions: {},
397434
},
398435
): StreamableMethod {
436+
const path = expandUrlTemplate(
437+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}/generateStorageAccountSasToken{?api-version}",
438+
{
439+
subscriptionId: context.subscriptionId,
440+
resourceGroupName: resourceGroupName,
441+
dataProductName: dataProductName,
442+
"api-version": context.apiVersion,
443+
},
444+
{
445+
allowReserved: options?.requestOptions?.skipUrlEncoding,
446+
},
447+
);
399448
return context
400-
.path(
401-
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}/generateStorageAccountSasToken",
402-
context.subscriptionId,
403-
resourceGroupName,
404-
dataProductName,
405-
)
449+
.path(path)
406450
.post({
407451
...operationOptionsToRequestParameters(options),
408452
contentType: "application/json",
409453
headers: {
410454
accept: "application/json",
411455
...options.requestOptions?.headers,
412456
},
413-
queryParameters: { "api-version": context.apiVersion },
414457
body: accountSasSerializer(body),
415458
});
416459
}
@@ -454,20 +497,26 @@ export function _$deleteSend(
454497
dataProductName: string,
455498
options: DataProductsDeleteOptionalParams = { requestOptions: {} },
456499
): StreamableMethod {
500+
const path = expandUrlTemplate(
501+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}{?api-version}",
502+
{
503+
subscriptionId: context.subscriptionId,
504+
resourceGroupName: resourceGroupName,
505+
dataProductName: dataProductName,
506+
"api-version": context.apiVersion,
507+
},
508+
{
509+
allowReserved: options?.requestOptions?.skipUrlEncoding,
510+
},
511+
);
457512
return context
458-
.path(
459-
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}",
460-
context.subscriptionId,
461-
resourceGroupName,
462-
dataProductName,
463-
)
513+
.path(path)
464514
.delete({
465515
...operationOptionsToRequestParameters(options),
466516
headers: {
467517
accept: "application/json",
468518
...options.requestOptions?.headers,
469519
},
470-
queryParameters: { "api-version": context.apiVersion },
471520
});
472521
}
473522

@@ -517,21 +566,27 @@ export function _updateSend(
517566
properties: DataProductUpdate,
518567
options: DataProductsUpdateOptionalParams = { requestOptions: {} },
519568
): StreamableMethod {
569+
const path = expandUrlTemplate(
570+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}{?api-version}",
571+
{
572+
subscriptionId: context.subscriptionId,
573+
resourceGroupName: resourceGroupName,
574+
dataProductName: dataProductName,
575+
"api-version": context.apiVersion,
576+
},
577+
{
578+
allowReserved: options?.requestOptions?.skipUrlEncoding,
579+
},
580+
);
520581
return context
521-
.path(
522-
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}",
523-
context.subscriptionId,
524-
resourceGroupName,
525-
dataProductName,
526-
)
582+
.path(path)
527583
.patch({
528584
...operationOptionsToRequestParameters(options),
529585
contentType: "application/json",
530586
headers: {
531587
accept: "application/json",
532588
...options.requestOptions?.headers,
533589
},
534-
queryParameters: { "api-version": context.apiVersion },
535590
body: dataProductUpdateSerializer(properties),
536591
});
537592
}
@@ -578,20 +633,26 @@ export function _getSend(
578633
dataProductName: string,
579634
options: DataProductsGetOptionalParams = { requestOptions: {} },
580635
): StreamableMethod {
636+
const path = expandUrlTemplate(
637+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}{?api-version}",
638+
{
639+
subscriptionId: context.subscriptionId,
640+
resourceGroupName: resourceGroupName,
641+
dataProductName: dataProductName,
642+
"api-version": context.apiVersion,
643+
},
644+
{
645+
allowReserved: options?.requestOptions?.skipUrlEncoding,
646+
},
647+
);
581648
return context
582-
.path(
583-
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}",
584-
context.subscriptionId,
585-
resourceGroupName,
586-
dataProductName,
587-
)
649+
.path(path)
588650
.get({
589651
...operationOptionsToRequestParameters(options),
590652
headers: {
591653
accept: "application/json",
592654
...options.requestOptions?.headers,
593655
},
594-
queryParameters: { "api-version": context.apiVersion },
595656
});
596657
}
597658

@@ -631,21 +692,27 @@ export function _createSend(
631692
resource: DataProduct,
632693
options: DataProductsCreateOptionalParams = { requestOptions: {} },
633694
): StreamableMethod {
695+
const path = expandUrlTemplate(
696+
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}{?api-version}",
697+
{
698+
subscriptionId: context.subscriptionId,
699+
resourceGroupName: resourceGroupName,
700+
dataProductName: dataProductName,
701+
"api-version": context.apiVersion,
702+
},
703+
{
704+
allowReserved: options?.requestOptions?.skipUrlEncoding,
705+
},
706+
);
634707
return context
635-
.path(
636-
"/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.NetworkAnalytics/dataProducts/{dataProductName}",
637-
context.subscriptionId,
638-
resourceGroupName,
639-
dataProductName,
640-
)
708+
.path(path)
641709
.put({
642710
...operationOptionsToRequestParameters(options),
643711
contentType: "application/json",
644712
headers: {
645713
accept: "application/json",
646714
...options.requestOptions?.headers,
647715
},
648-
queryParameters: { "api-version": context.apiVersion },
649716
body: dataProductSerializer(resource),
650717
});
651718
}

0 commit comments

Comments
 (0)